3BUA000146-600 A en System 800xa Batch Management 6.0 Configuration

Download as pdf or txt
Download as pdf or txt
You are on page 1of 564

System 800xA Batch Management

Configuration
System Version 6.0

Power and productivity


for a better world™
System 800xA Batch Management
Configuration

System Version 6.0


NOTICE
This document contains information about one or more ABB products and may include a description
of or a reference to one or more standards that may be generally relevant to the ABB products. The
presence of any such description of a standard or reference to a standard is not a representation that
all of the ABB products referenced in this document support all of the features of the described or ref-
erenced standard. In order to determine the specific features supported by a particular ABB product,
the reader should consult the product specifications for the particular ABB product.
ABB may have one or more patents or pending patent applications protecting the intellectual property
in the ABB products described in this document.
The information in this document is subject to change without notice and should not be construed as
a commitment by ABB. ABB assumes no responsibility for any errors that may appear in this document.
Products described or referenced in this document are designed to be connected, and to communicate
information and data via a secure network. It is the sole responsibility of the system/product owner to
provide and continuously ensure a secure connection between the product and the system network
and/or any other networks that may be connected.
The system/product owners must establish and maintain appropriate measures, including, but not lim-
ited to, the installation of firewalls, application of authentication measures, encryption of data, installa-
tion of antivirus programs, and so on, to protect the system, its products and networks, against security
breaches, unauthorized access, interference, intrusion, leakage, and/or theft of data or information.
ABB verifies the function of released products and updates. However system/product owners are ulti-
mately responsible to ensure that any system update (including but not limited to code changes, con-
figuration file changes, third-party software updates or patches, hardware change out, and so on) is
compatible with the security measures implemented. The system/product owners must verify that the
system and associated products function as expected in the environment they are deployed.
In no event shall ABB be liable for direct, indirect, special, incidental or consequential damages of any
nature or kind arising from the use of this document, nor shall ABB be liable for incidental or conse-
quential damages arising from use of any software or hardware described in this document.
This document and parts thereof must not be reproduced or copied without written permission from
ABB, and the contents thereof must not be imparted to a third party nor used for any unauthorized pur-
pose.
The software or hardware described in this document is furnished under a license and may be used,
copied, or disclosed only in accordance with the terms of such license. This product meets the require-
ments specified in EMC Directive 2004/108/EC and in Low Voltage Directive 2006/95/EC.

TRADEMARKS
All rights to copyrights, registered trademarks, and trademarks reside with their respective owners.

Copyright © 2003-2015 by ABB.


All rights reserved.

Release: October 2015


Document number: 3BUA000146-600 A
Table of Contents

About This User Manual


General ............................................................................................................................25
User Manual Conventions ...............................................................................................25
Feature Pack .........................................................................................................25
Use of Warning, Caution, Information, and Tip Icons .........................................26
Terminology.....................................................................................................................27
Released User Manuals and Release Notes.....................................................................27

Section 1 - Introduction
Intended User...................................................................................................................30
ISA-88 Compliance .........................................................................................................30
Batch Management Licensing .........................................................................................31

Section 2 - Description and Operation


Flexible Batch Processing ...............................................................................................33
Post Installation Configuration ........................................................................................34
Batch Redundancy Configuration ........................................................................34
Shutdown Script ...................................................................................................38
Setting the Date Format for Batch Auto ID for Automatic Scheduling...............39
Print BMA Report Configuration.........................................................................40
Configuration Overview ..................................................................................................40
Batch Management Configuration .......................................................................41
Equipment Configuration....................................................................41
Procedure Configuration .....................................................................42
Miscellaneous Batch Configuration ....................................................43
Batch Management Run Time .........................................................................................43

3BUA000146-600 A 5
Table of Contents

Sample Batch Management PFC ......................................................................... 44


Special Instructions to the Operator..................................................................... 46
Messages ...................................................................................... 46
SOP ...................................................................................... 46
Operator Changes to Procedures and Values ....................................................... 46
Version Control .................................................................................................... 47
Synchronized Batch Operations........................................................................... 47
Abnormal Conditions in Flexible Batch Processes ......................................................... 48
Detection and Correction ..................................................................................... 48
Regulatory Control Logic Interlocks ................................................................... 49
Equipment Phase Logic ....................................................................................... 49
Exception Logic ................................................................................................... 49
Audit Trail ....................................................................................................................... 50
Alarm and Event Lists..................................................................................................... 54
Security ........................................................................................................................... 56
Security Definition Aspect................................................................................... 56
Batch Cell Definition Aspect ............................................................................... 57
Batch Equipment Aspect ..................................................................................... 65
Other Aspects....................................................................................................... 66
Permissions Tab ................................................................................................... 67
Examples ............................................................................................................ 68
Example 1 ...................................................................................... 68
Example 2 ...................................................................................... 68
Example 3 ...................................................................................... 69
Batch Operation Access Levels ........................................................................... 69
Special Batch Security Features .......................................................................... 70
Permission to Assign Phase Parameter Values ................................... 70
Permission to Change Procedure Parameters ..................................... 71
Process and Batch Cells ....................................................................................... 72
Batch Cell Unrelated to Equipment Used........................................... 73
Procedures Not Associated with Any Batch Cell ............................... 73
Authentication...................................................................................................... 74

6 3BUA000146-600 A
Table of Contents

Optimizing AC 800M Performance.................................................................................77


Control Builder Controller Task Update Rates ....................................................78
OPC Server Controller Update Rates...................................................................78
Batch OPC Group Update Rates ..........................................................................78

Section 3 - Parameter, Variable, and Expression Overview


Parameters .......................................................................................................................81
Phase Parameters in the Controller Configuration ...............................................82
Phase Parameters During Equipment Aspect Configuration ...............................83
Viewing and Changing Phase Parameters at Run Time .......................................84
Procedure Parameters and Procedure Specific Values .........................................85
Creation of Procedure Parameters........................................................................86
Assignment of Procedure Specific Values ...........................................................87
Procedure Parameters Accessible When a Batch Is Scheduled ...........................89
Viewing and Changing Procedure Parameters at Run Time ................................91
Passing Parameter Values to a Nested Subprocedure...........................................94
Parameter Summary ........................................................................................................97
Output Parameters ...........................................................................................................97
Expressions and Variables .............................................................................................100
Changes to a Private Parameter .....................................................................................101

Section 4 - Equipment Configuration (Batch Advanced


Templates)
Introduction ...................................................................................................................103
Overview........................................................................................................................103
Phase Types ...................................................................................................................104
Equipment Phase Logic .................................................................................................110
Batch Equipment ...........................................................................................................111
Shared Equipment Communication Modules................................................................115
Equipment Logic ...........................................................................................................115
Control Module Instances..............................................................................................117
Tasks ............................................................................................................................119
Controller Settings.........................................................................................................119

3BUA000146-600 A 7
Table of Contents

AE Max No of Named Value Items ................................................................... 120


AE Max Percent of Log Strings......................................................................... 120
Actual Memory Allocation ............................................................... 120
Example Calculation......................................................................... 121
Download Project .......................................................................................................... 122
Equipment Groups ........................................................................................................ 122
Unit List Types with Duplicate Names (displayed in PPA)............................... 123
Batch Advanced Templates Library .............................................................................. 125
State Change Diagrams...................................................................................... 125
Data Types and Constants .................................................................................. 129
Templates .......................................................................................................... 130
PhaseTemplate .................................................................................. 130
SharedEquipmentModuleTemplate................................................... 140
UnitTemplate .................................................................................... 150
High and Low Limit Behavior ........................................................................... 160
Phase .................................................................................... 160
Unit and Shared Equipment .............................................................. 162
Batch Object Communication............................................................................ 164
BatchCommClient ............................................................................ 166
BatchCommServer............................................................................ 166
BatchCommServerExt ...................................................................... 170
AC 800M/C Memory Usage .............................................................................. 172

Section 5 - Equipment Configuration (EPT Control Modules)


Introduction ................................................................................................................... 175
Overview ....................................................................................................................... 175
Equipment Phase Logic................................................................................................. 176
Phases ........................................................................................................................... 176
Batch Equipment ........................................................................................................... 179
Batch Unit Activation.................................................................................................... 183
Equipment Phases ......................................................................................................... 184
Equipment Groups ........................................................................................................ 187

8 3BUA000146-600 A
Table of Contents

Section 6 - Procedures
Introduction ...................................................................................................................189
PFC Types......................................................................................................................190
Recipe Procedure ...............................................................................................191
Unit Procedure ...................................................................................................191
Operation ...........................................................................................................192
Exception Procedure ..........................................................................................192
Layered Procedure.........................................................................................................192
Procedure Handling .......................................................................................................194
Version Control ..................................................................................................195
Create ...........................................................................................................196
Edit ...........................................................................................................197
Approve ...........................................................................................................197
Cut, Copy, Delete, and Paste ..............................................................................198
Compare ...........................................................................................................198
Cross-References................................................................................................199
Version History...................................................................................................199
Procedure Configuration................................................................................................201
Batch Cells .........................................................................................................201
Control Recipes..................................................................................................202
Procedure Configuration Window......................................................................204
File Menu ....................................................................................206
Edit Menu ....................................................................................207
View Menu ....................................................................................208
Tools Menu ....................................................................................210
Layout Menu ....................................................................................212
Context Menu....................................................................................215
Block Palette ......................................................................................................215
Phase ....................................................................................216
Procedure ....................................................................................216
Batch manager action .......................................................................216
Branch [start] ....................................................................................216

3BUA000146-600 A 9
Table of Contents

Branch [end] .................................................................................... 216


Parallel branch [start] ....................................................................... 217
Parallel branch [end] ........................................................................ 217
Transition .................................................................................... 217
Procedure Header .......................................................................................................... 218
Header Configuration Window .......................................................................... 218
Description .................................................................................... 218
Procedure Header Text...................................................................... 219
Procedure SOP .............................................................................................................. 219
Configuration ..................................................................................................... 220
Find a Text String in SOP Text .......................................................................... 221
Replace a Text String in SOP Text..................................................................... 221
SOP Section Index ............................................................................................. 222
Import SOP Text ................................................................................................ 222
Procedure Parameters.................................................................................................... 222
Expressions and Variables ................................................................................. 223
varput, varget, varputs, vargets ......................................................... 224
bvarput, bvarget, bvarputs, bvargets.................................................. 224
gvarput, gvarget, gvarputs, gvargets ................................................. 224
Configuration of Procedure Parameters............................................................. 224
Adding a Parameter............................................................................................ 226
Float Type Parameters....................................................................... 228
Integer Type Parameter ..................................................................... 228
String Type Parameters ..................................................................... 228
List Type Parameters......................................................................... 229
Equipment List Type Parameters ...................................................... 229
Changing a Procedure Parameter....................................................................... 231
Copying a Procedure Parameter......................................................................... 231
Deleting a Procedure Parameter......................................................................... 231
Checks - Defining Parameter Relationships ...................................................... 231
Configuring the PFC ..................................................................................................... 233
Procedure Objects .............................................................................................. 234

10 3BUA000146-600 A
Table of Contents

Assigning Procedure Boundaries - Start and End Objects.................................235


Balancing Procedure Elements and Actions ......................................................235
Assigning Restart Points ....................................................................................235
Allocating and Deallocating Batch Equipment..................................................236
Configuring PFC Block Labels ..........................................................................238
Static Text Labels ..............................................................................238
Dynamic Text Labels ........................................................................238
Parameter Value Labels.....................................................................240
Acquiring Equipment for Immediate Use ..........................................................242
Releasing Equipment .........................................................................................244
Reserving Equipment .........................................................................................244
Unreserving Equipment .....................................................................................245
Selecting Equipment ..........................................................................................245
Cost Factor ....................................................................................246
Equipment Expression/Selected Equipment .....................................246
Deselecting Equipment ......................................................................................247
Configuring PFC Function Blocks ................................................................................247
Configuring Procedure Blocks ...........................................................................248
Configuring Phase Blocks..................................................................................251
Counting Phase Parameters................................................................................256
Configuring Sequences ......................................................................................257
Simultaneous Processing....................................................................................257
Defining Multiple Procedure Paths ....................................................................258
Looping Structure Configuration .......................................................................258
Configuring Transition Blocks...........................................................................259
Displaying User Graphics ..................................................................................259
Other Batch Management Actions ................................................................................260
Providing and Requesting Information Within a Procedure ..............................260
Message BMA Color Configuration .................................................261
Message BMA Response Access Level Configuration.....................262
Message BMA Optional Verification................................................262
Message Configuration .....................................................................262

3BUA000146-600 A 11
Table of Contents

Deleting Configured Messages ......................................................... 265


Previewing the Message Presentation Window ................................ 265
Reordering Messages in the Message Presentation Window............ 265
Creating Reusable Message Templates............................................. 266
Copying Messages ............................................................................ 266
HTML Configuration Method .......................................................... 266
Collecting Data From a PFC.............................................................................. 267
Logical Name.................................................................................... 268
OPC Item .................................................................................... 268
Data Collection Rate ......................................................................... 269
Printing a Report From a PFC ........................................................................... 269
Scheduling Jobs From a PFC............................................................................. 270
Assigning Values and Evaluating Expressions From a PFC.............................. 272
Issuing Operating System Commands from a PFC ........................................... 273
Command .................................................................................... 274
Status, Output, and Error .................................................................. 274
Correlating the PFC and the SOP ...................................................................... 276
Connecting Objects on a PFC ............................................................................ 277
Exception Handling....................................................................................................... 278
Configuring an Exception Procedure ............................................................................ 279
Usage Guidelines ............................................................................................... 280
Main Logic .................................................................................... 280
Exception Procedures ....................................................................... 280
Add an Exception Procedure to a Procedure ..................................................... 280
Configure an Exception Procedure .................................................................... 282
Runtime Characteristics of the Exception Procedure ........................................ 284
Exception Logic Considerations ........................................................................ 286
Monitoring for Multiple Conditions .................................................................. 287
Batch Data Collection ................................................................................................... 290

Section 7 - Automatic Batch ID Generation


Introduction ................................................................................................................... 291
Create Pattern ................................................................................................................ 292

12 3BUA000146-600 A
Table of Contents

Configure Sequence Number.........................................................................................293


Find Text........................................................................................................................294
Replace Patterns and Text..............................................................................................294
Save or Cancel Aspect Changes ....................................................................................295
Print Patterns..................................................................................................................295

Appendix A - Configuring Batch Variables and Expressions


Introduction ...................................................................................................................297
Batch Expression Structure ...........................................................................................297
Operators .......................................................................................................................298
Punctuation.........................................................................................................300
IF/ELSE Syntax .................................................................................................300
Constants ...........................................................................................................301
Text Entry Format ..............................................................................................301
Rules for Evaluating Expressions..................................................................................302
Rule 1 ...........................................................................................................303
Rule 2 ...........................................................................................................303
Rule 3 ...........................................................................................................303
Rule 4 ...........................................................................................................303
Rule 5 ...........................................................................................................303
Rule 6 ...........................................................................................................303
Rule 7 ...........................................................................................................303
Rule 8 ...........................................................................................................304
Rule 9 ...........................................................................................................304
Rule 10 ...........................................................................................................304
Examples ...........................................................................................................306
Built-In Functions..........................................................................................................307
Batch ...........................................................................................................307
DBA ...........................................................................................................315
Use of _bUnitAttributeHelpers Functions..........................................................317
General ...........................................................................................................320
Variables ...........................................................................................................323
Batch Management Function Wizard ............................................................................323

3BUA000146-600 A 13
Table of Contents

Expression Editing Area .................................................................................... 326


Data Selection Area ........................................................................................... 326
Functions .................................................................................... 327
Equipments .................................................................................... 327
OPC Properties ................................................................................. 327
Parameters .................................................................................... 327
Search .................................................................................... 327
Help Area .......................................................................................................... 327
Custom Functions.......................................................................................................... 328
Add .......................................................................................................... 328
Configure .......................................................................................................... 328
Save and Cancel ................................................................................................. 329
Using Functions within Functions ..................................................................... 330
Parameters and Test Variables .......................................................................... 330
Test a Custom Function ..................................................................................... 332
Edit .......................................................................................................... 333
Delete .......................................................................................................... 333
Views .......................................................................................................... 333
Search and Replace ............................................................................................ 333
Lock and Unlock................................................................................................ 334

Appendix H - Log Configuration


Introduction ................................................................................................................... 339
Spreadsheet Logs .......................................................................................................... 339
fpbget( ) Function .............................................................................................. 340
fpbgetd( ) Function ............................................................................................ 340
fpbtget( ) Function ............................................................................................. 341
fpubid( ) Function .............................................................................................. 342

Appendix I - Configuring a Graphic


Introduction ................................................................................................................... 343
View a PFC.................................................................................................................... 343
View Messages .............................................................................................................. 343

14 3BUA000146-600 A
Table of Contents

View Batch Status..........................................................................................................344


Batch Equipment Information .......................................................................................345

Appendix J - Batch Command Interface


Introduction ...................................................................................................................347
batch_cbatch ..................................................................................................................347
batch_chgunit ................................................................................................................350
batch_sbatch ..................................................................................................................351

Appendix K - Batch Utilities


Introduction ...................................................................................................................355
Miscellaneous Batch Configuration ..............................................................................355
Batch Settings.....................................................................................................356
History Options ..................................................................................................357
Event Settings.....................................................................................................358
Equipment Settings ............................................................................................360
Synchronize........................................................................................................362
Select Batch Colors ............................................................................................364
Text, Block, and Blink Color Attributes............................................365
Blink Rate Attribute ..........................................................................365
Color Discrepancies ..........................................................................366
Manage Batch IDs..............................................................................................368
Default Faceplate Selection................................................................................368
Default Procedure Configuration...................................................................................368
Backup Procedure Versions Retained ................................................................369
Default Batch Cell..............................................................................................369
Strict ISA-88 Option ..........................................................................................370
Error On PFC Branch Mismatch........................................................................370
Back Up and Restore .....................................................................................................371
800xA Import and Export ..................................................................................371
Report Configuration .....................................................................................................372
Configure a Report .............................................................................................373
Report Output.....................................................................................................374

3BUA000146-600 A 15
Table of Contents

Batch Toolbar ................................................................................................................ 375


Batch Phase and Unit Maintenance Tool ...................................................................... 376
Batch Search Utility ...................................................................................................... 378
Setup Tab .................................................................................... 379
Expressions Tab ................................................................................ 380

Appendix L - External Historians


Introduction ................................................................................................................... 385
800xA System ............................................................................................................... 385
Information Management.............................................................................................. 385
Batch Management and Custom Arguments................................................................. 387

Appendix M - AC 800M/C Controller


(Batch Advanced Templates)
Introduction ................................................................................................................... 389
Example Controller Configuration................................................................................ 390
Custom Library .................................................................................................. 390
Equipment Phases .............................................................................................. 391
Equipment .......................................................................................................... 391
Example Control System Configuration ....................................................................... 391
Control System Process................................................................................................. 396
Segmenting the Process................................................................................................. 397
Raw Material Feeder Configuration .................................................................. 398
Feed Tank 1 Configuration ................................................................................ 399
Feed Tank 2 Configuration ................................................................................ 400
Reactor 1 Configuration..................................................................................... 401
Reactor 2 Configuration..................................................................................... 402
Mix Feeder 1 Configuration............................................................................... 403
Mix Feeder 2 Configuration............................................................................... 404
Product Feeder Configuration............................................................................ 405
Catch Tank 1 Configuration ............................................................................... 406
Catch Tank 2 Configuration ............................................................................... 407
Catch Tank 3 Configuration ............................................................................... 408

16 3BUA000146-600 A
Table of Contents

Catch Tank 4 Configuration ...............................................................................409


Synchronization of Equipment Attribute Changes ........................................................410

Appendix N - AC 800M/C Controller


(EPT Control Modules)
Introduction ...................................................................................................................411
Example Controller Configuration ................................................................................412
Equipment Phases ..............................................................................................412
AttemptAt_Drain...............................................................................412
SampleTest_Charge...........................................................................413
ExampleTestEquip_Agitate...............................................................413
Recipe Phases.....................................................................................................413
Agitate ....................................................................................413
Charge ....................................................................................414
Drain ....................................................................................414
Equipment ..........................................................................................................415
Example Control System Configuration........................................................................416
Control System Process .................................................................................................422
Segmenting the Process .................................................................................................422
Raw Material Feeder Configuration...................................................................423
Feed Tank 1 Configuration.................................................................................424
Feed Tank 2 Configuration.................................................................................425
Reactor 1 Configuration .....................................................................................426
Reactor 2 Configuration .....................................................................................427
Mix Feeder 1 Configuration...............................................................................428
Mix Feeder 2 Configuration...............................................................................429
Product Feeder Configuration ............................................................................430
Catch Tank 1 Configuration ...............................................................................431
Catch Tank 2 Configuration ...............................................................................432
Catch Tank 3 Configuration ...............................................................................433
Catch Tank 4 Configuration ...............................................................................434

3BUA000146-600 A 17
Table of Contents

Appendix O - Function Phase Driver


Introduction ................................................................................................................... 435
General Procedure ......................................................................................................... 436
Configuration Data ........................................................................................................ 437
Example......................................................................................................................... 439

Appendix P - Batch Web Services Interface


Introduction ................................................................................................................... 445
Specifying Objects ........................................................................................................ 445
Read Function Calls ...................................................................................................... 448
GetActiveBatches............................................................................................... 448
Input .................................................................................... 448
Output .................................................................................... 448
Return .................................................................................... 448
Description .................................................................................... 448
Example .................................................................................... 449
GetBatchDetails ................................................................................................. 449
Input .................................................................................... 449
Output .................................................................................... 449
Return .................................................................................... 449
Description .................................................................................... 450
Example .................................................................................... 450
GetListOfActiveBatches .................................................................................... 450
Input .................................................................................... 450
Output .................................................................................... 450
Return .................................................................................... 451
Description .................................................................................... 451
Example .................................................................................... 451
GetProcedureDetails .......................................................................................... 451
Input .................................................................................... 451
Output .................................................................................... 452
Return .................................................................................... 452

18 3BUA000146-600 A
Table of Contents

Description ....................................................................................452
Example ....................................................................................452
GetProcedures ....................................................................................................452
Input ....................................................................................453
Output ....................................................................................453
Return ....................................................................................453
Description ....................................................................................453
Example ....................................................................................453
GetTagKeyData ..................................................................................................454
Input ....................................................................................454
Output ....................................................................................454
Return ....................................................................................454
Description ....................................................................................454
Example ....................................................................................454
GetEquipmentDetails .........................................................................................455
Input ....................................................................................455
Output ....................................................................................455
Return ....................................................................................455
Description ....................................................................................456
Example ....................................................................................456
GetEquipmentStatus...........................................................................................457
Input ....................................................................................457
Output ....................................................................................457
Return ....................................................................................457
Description ....................................................................................457
Example ....................................................................................457
GetFormulaParameters.......................................................................................458
Input ....................................................................................458
Output ....................................................................................459
Return ....................................................................................459
Description ....................................................................................459
Example ....................................................................................459

3BUA000146-600 A 19
Table of Contents

GetListOfAllBatches ......................................................................................... 460


Input .................................................................................... 460
Output .................................................................................... 460
Return .................................................................................... 460
Example .................................................................................... 460
GetAllBatches .................................................................................................... 461
Input .................................................................................... 461
Output .................................................................................... 461
Return .................................................................................... 461
Description .................................................................................... 461
Write Function Calls ..................................................................................................... 462
ChangeBatch ...................................................................................................... 462
Input .................................................................................... 462
Output .................................................................................... 463
Return .................................................................................... 463
Description .................................................................................... 463
Example .................................................................................... 463
ScheduleBatch ................................................................................................... 464
Output .................................................................................... 465
Return .................................................................................... 466
Description .................................................................................... 466
Example .................................................................................... 466
SetEquipmentAttribute ...................................................................................... 467
Input .................................................................................... 467
Output .................................................................................... 467
Return .................................................................................... 467
Description .................................................................................... 467
Example .................................................................................... 467

Appendix Q - MOD 300 Connectivity


Introduction ................................................................................................................... 469
MOD_UNIT Object ...................................................................................................... 470
MOD_PHASE Object ................................................................................................... 470

20 3BUA000146-600 A
Table of Contents

ISA-88 Phase Template .................................................................................................471


UserAbn Template.........................................................................................................473

Appendix R - Harmony Connectivity


Introduction ...................................................................................................................475
Harmony Equipment Objects .............................................................................475
Harmony Phase Objects .....................................................................................476
Example Configuration..................................................................................................476
Harmony Control System Process.................................................................................482
Segmenting the Process .................................................................................................483
Raw Material Feeder Configuration...................................................................484
Feed Tank 1 Configuration.................................................................................485
Feed Tank 2 Configuration.................................................................................486
Reactor 1 Configuration .....................................................................................487
Reactor 2 Configuration .....................................................................................488
Mix Feeder 1 Configuration...............................................................................489
Mix Feeder 2 Configuration...............................................................................490
Product Feeder Configuration ............................................................................491
Catch Tank 1 Configuration ...............................................................................492
Catch Tank 2 Configuration ...............................................................................493
Catch Tank 3 Configuration ...............................................................................494
Catch Tank 4 Configuration ...............................................................................495

Appendix S - DCI Connectivity


Introduction ...................................................................................................................497
MSET Object.................................................................................................................497
DCI_PHS Object ...........................................................................................................498

Appendix T - AC 870P/Melody Connectivity


Introduction ...................................................................................................................499
Integration......................................................................................................................499
Workflow .......................................................................................................................501
Composer ...........................................................................................................501

3BUA000146-600 A 21
Table of Contents

Melody Uploader Tool ....................................................................................... 502


Batch Management ............................................................................................ 502
Manual Workflow.......................................................................................................... 503
Batch Equipment Aspect ................................................................................... 503
Equipment Phase Tab......................................................................................... 504
SFC Path .................................................................................... 506
Phase Parameters .............................................................................. 506
Batch Phase Aspect............................................................................................ 507
Parameters Tab.................................................................................. 508

Appendix U - VB Graphics and PG2 Graphics


Introduction ................................................................................................................... 511
Changes and Recommendations ................................................................................... 511

Appendix V - Simple Batch and Parameter Management


Introduction ................................................................................................................... 515
Prerequisites .................................................................................................................. 515
Microsoft Office – Excel 2013........................................................................... 515
Microsoft Office – Excel 2010.......................................................................... 516
Procedure to Open and Add Formula Sheets ................................................................ 516
Unit List Types with Duplicate Names ......................................................................... 522
Procedure to Modify Scheduler Lists............................................................................ 524
Procedure to Add a non-Formula Sheet ........................................................................ 525

Appendix W - Scheduling Batch from a Non-800xA Node


Introduction ................................................................................................................... 527
Pre-requisites ................................................................................................................ 527
Procedure to configure the Target Server ...................................................................... 528
To configure a Target Server:............................................................................. 528

Appendix X - Batch Spreadsheet Scheduler Security


User Level Permissions ................................................................................................. 533
Password Protection ...................................................................................................... 534

22 3BUA000146-600 A
Table of Contents

Workbook ...........................................................................................................534
Worksheets .........................................................................................................534
Procedure to Unprotect the Worksheet...............................................................535
Procedure to Change the Worksheet Password ..................................................537
Procedure to View the VBAProject....................................................................538
Procedure to Modify the VBAProject Password................................................540
Batch Cell Object ..........................................................................................................541
Location of Batch Cell Object............................................................................541
Procedure to Create a Batch Cell Object............................................................543

Appendix Y - Batch Scheduler Aspect


Functionality..................................................................................................................545
Config View .......................................................................................................545
Restrictions while editing the fields ..................................................548
Main View ..........................................................................................................548
Adding a Scheduler Aspect Button to a Process Graphic (PG) 2 .....550

Revision History
Introduction ...................................................................................................................555
Revision History ............................................................................................................555
Updates in Revision Index A.........................................................................................555

Index

3BUA000146-600 A 23
Table of Contents

24 3BUA000146-600 A
About This User Manual

General
Any security measures described in this user manual, for example, for user
access, password security, network security, firewalls, virus protection, etc.,
represent possible steps that a user of an 800xA System may want to consider
based on a risk assessment for a particular application and installation. This risk
assessment, as well as the proper implementation, configuration, installation,
operation, administration, and maintenance of all relevant security related
equipment, software, and procedures, are the responsibility of the user of the
800xA System.
This User Manual describes how to configure the Batch Management system
software.

User Manual Conventions


Microsoft Windows conventions are normally used for the standard presentation of
material when entering text, key sequences, prompts, messages, menu items, screen
elements, etc.

Feature Pack
The Feature Pack content (including text, tables, and figures) included in this
User Manual is distinguished from the existing content using the following
two separators:
Feature Pack Functionality______________________________________________________________________

<Feature Pack Content>


___________________________________________________________________________________________

3BUA000146-600 A 25
Use of Warning, Caution, Information, and Tip Icons About This User Manual

Feature Pack functionality included in an existing table is indicated using a


table footnote (*) :
*Feature Pack Functionality

Feature Pack functionality in an existing figure is indicated using callouts.


Unless noted, all other information in this User Manual applies to 800xA Systems
with or without a Feature Pack installed.

Use of Warning, Caution, Information, and Tip Icons


This User Manual includes Warning, Caution, and Information where appropriate to
point out safety related or other important information. It also includes Tip to point
out useful hints to the reader. The corresponding symbols should be interpreted as
follows:
Electrical warning icon indicates the presence of a hazard that could result in
electrical shock.

Warning icon indicates the presence of a hazard that could result in personal
injury.
Caution icon indicates important information or warning related to the concept
discussed in the text. It might indicate the presence of a hazard that could result
in corruption of software or damage to equipment/property.
Information icon alerts the reader to pertinent facts and conditions.

Tip icon indicates advice on, for example, how to design your project or how to
use a certain function
Although Warning hazards are related to personal injury, and Caution hazards are
associated with equipment or property damage, it should be understood that
operation of damaged equipment could, under certain operational conditions, result
in degraded process performance leading to personal injury or death. Therefore,
fully comply with all Warning and Caution notices.

26 3BUA000146-600 A
About This User Manual Terminology

Terminology
A complete and comprehensive list of terms is included in System 800xA System
Guide Functional Description (3BSE038018*). The listing includes terms and
definitions that apply to the 800xA System where the usage is different from
commonly accepted industry standard definitions and definitions given in standard
dictionaries such as Webster’s Dictionary of Computer Terms.

Released User Manuals and Release Notes


A complete list of all User Manuals and Release Notes applicable to System 800xA
is provided in System 800xA Released User Documents (3BUA000263*).
System 800xA Released User Documents (3BUA000263*) is updated each time a
document is updated or a new document is released. It is in pdf format and is
provided in the following ways:
• Included on the documentation media provided with the system and published
to ABB SolutionsBank when released as part of a major or minor release,
Service Pack, Feature Pack, or System Revision.
• Published to ABB SolutionsBank when a User Manual or Release Note is
updated in between any of the release cycles listed in the first bullet.
A product bulletin is published each time System 800xA Released User
Documents (3BUA000263*) is updated and published to ABB SolutionsBank.

3BUA000146-600 A 27
Released User Manuals and Release Notes About This User Manual

28 3BUA000146-600 A
Section 1 Introduction

Batch Management, the Batch Management add-on for the 800xA System is a
powerful, flexible software used to configure, run, and manage Batch operations.
This instruction describes the configuration aspects of Batch Management. Batch
configuration consists of planning, organizing and designing a batch process control
system.
Managing Batch operations consists of tasks such as making sure that equipment
needed by one batch is not being used by another batch, sending instructions to the
controller about which phases to execute next (the procedure) and sending values
that will be used for various parameters in the recipe (the formula) to the controller.
All these tasks are performed by the batch manager within Batch Management.
Operation details are provided in the System 800xA Batch Management Operation
(3BUA000145*).
The batch manager of Batch Management is integrated with the 800xA system,
Information Management, and controller subsystems (AC 800M/C). The Batch
Management performs the following tasks:
• Allocates and de-allocates the batch processing equipment.
• Stores information about the resources available at the site for flexible batch
processing in the equipment aspects.
• Stores procedures and formula values in the recipe database.
• Schedules batches.
• Downloads the phase name to the control system.
• Downloads the phase parameter values, such as temperature or ingredient
weight, to the control system.
• Sends instructions to the control system to start a phase.
• Stores Batch data in the batch database.

3BUA000146-600 A 29
Intended User Section 1 Introduction

Information Management performs the following tasks:


• Provides hierarchical history of batch data and events.
• Allows the custom organization, storage, archival, and retrieval of batch data
and events.
• Generates batch reports.
• Allows easy batch to batch analysis of trend data.
The AC 800M/C controller performs the following functions:
• Stores the phase logic.
• Executes the phase logic, interlocking, and process control.
• Sends transaction messages to the batch manager at the end of phases.
• Reacts to abnormal conditions.
• Generates exception messages, event messages, and alarms.

Intended User
This instruction contains information specific to the configuration of Batch
Management to perform flexible batch operations. This instruction is directed
towards:
• Process engineers who plan and implement control strategies for a batch
processing plant. They perform controller configuration and equipment
configuration.
• Product specialists who create recipes.
It is assumed that the engineers and specialists:
• Know how to use engineering tools to configure the AC 800M/C controller.
• Are familiar with equipment phase logic configuration.
• Are familiar with the 800xA system operator interface.
• Know how to access controller configuration functions.

ISA-88 Compliance
Instructions on adhering to ISA-88 are described in Strict ISA-88 Option on page
370. When the option is enabled, the system limits the flexibility available so that
the procedures conform to the ISA-88 guidelines.

30 3BUA000146-600 A
Section 1 Introduction Batch Management Licensing

Batch Management Licensing


Batch Management licensing is based on:
• Batch server.
• Number of batch equipment.
• Number of concurrent batch clients.
• Batch schedule interface (optional).
• Batch server redundancy (optional).
The number of batch equipment instances includes each piece of equipment
configured in Batch Management including both units and shared equipment
modules. The number of batch procedures includes each procedure configured in
Batch Management including master recipe procedures, unit procedures, operations,
and exception procedures.
The number of batch advanced phases represents the total number of phase
instances in all units in all projects (Control Structure). This feature also includes
access to batch advanced templates control modules for phases, units, and shared
equipment modules. Phases defined with the Equipment Procedure Template (EPT)
method do not count against this license feature.
If the appropriate license is obtained, every 800xA system node on the system can
be a Batch Management client. The clients can be used to initiate batch operations
and to view batch displays.
The batch manager only runs on the Batch Management server. There is only one
batch server (which can be redundant) in a system.

3BUA000146-600 A 31
Batch Management Licensing Section 1 Introduction

32 3BUA000146-600 A
Section 2 Description and Operation

This section provides an overview of flexible batch processing and the steps
involved in the configuration of Batch Management.
Allow Batch Management configuration data input and editing operations to
fully complete before performing other actions through the Plant Explorer or
Control Builder applications.

Flexible Batch Processing


Flexible batch processing permits control logic and resources such as equipment to
be used in a variety of ways to produce different products.
Flexibility is built into the Batch Management approach to configuring recipes. The
master recipe is created by drawing a flowchart of the process using an object
oriented approach. This flowchart is called a procedure function chart (PFC).
The objects used in the PFC represent:
• Batch manager actions such as allocating an equipment resource, sending the
operator a message, collecting data to be used later in a batch report.
• Phase operations (created during controller configuration) specifically for the
requirements of a customer.
• Extension actions (execute a previously configured action).
• A subprocedure.
These objects can be combined in any sequence supported by the batch resources.
The system permits configuration of procedures consisting of a single thread of
processing, branched logic, or parallel operations. At run time, the operator
monitors the progress of the batch run while viewing a copy of the diagram created
during procedure configuration.

3BUA000146-600 A 33
Post Installation Configuration Section 2 Description and Operation

Flexibility of formulas used to create batch products is enabled in a number of ways:


• The equipment phase logic can find parameters specified by name.
• Values can be assigned to parameters in a number of ways, including by the
operator at run time (if the recipe is so configured).
• The values assigned to parameters can be logical expressions, as well as fixed
values.

Post Installation Configuration


Batch Redundancy Configuration
To activate the Batch Redundancy Server, follow the steps mentioned below:
1. In the Batch Primary Server, navigate to ABB Start Menu-> ABB Industrial
IT 800xA-> Production Management -> ABB Batch Mirroring Utility.
a. Provide the Mirror Node Name (Secondary Server) and Witness Node
Name (Node configured as witness during Installation) and then click

34 3BUA000146-600 A
Section 2 Description and Operation Batch Redundancy Configuration

Activate as shown in Figure 1.

Figure 1. Batch Redundancy Configuration

3BUA000146-600 A 35
Batch Redundancy Configuration Section 2 Description and Operation

b. Click Yes to continue as shown in Figure 2.

Figure 2. Confirm Activation Window

36 3BUA000146-600 A
Section 2 Description and Operation Batch Redundancy Configuration

Figure 3 shows the Batch Redundancy Activation in progress.

Figure 3. Batch Redundancy Activation In-progress Window

3BUA000146-600 A 37
Shutdown Script Section 2 Description and Operation

Redundancy is activated and displayed as shown in Figure 4.

Figure 4. Batch Redundancy Activation Completion Status Window

The Batch Redundancy Status is described in the System 800xA Batch Management
Operation (3BUA000145*).

Shutdown Script
The batch_shutdown.bat script shuts down the Batch application properly and must
be installed on all Batch Servers. To install this script:
1. Click Start and type gpedit.msc in the text box and then click OK.

38 3BUA000146-600 A
Section 2 Description and Operation Setting the Date Format for Batch Auto ID for Automatic

2. Select Computer Configuration > Windows Settings > Scripts


(Startup/Shutdown).
3. Double-click Shutdown.
4. Click Add and then Browse.
5. Select: <DRIVE:\>Program Files(x86)\ABB Industrial
IT\Produce IT\Batch\bin\batch_shutdown.bat in the Script Name
field and then click Open.
6. Click OK twice to complete the installation and close the Group Policy dialog
box.

Setting the Date Format for Batch Auto ID for Automatic Scheduling
Perform the following procedure on all Batch Server nodes if using Batch Auto ID
for Automatic Scheduling. Do not change any of the settings that were made while
setting up Windows before installing the 800xA System.
1. Log off the 800xA Installer User account.
2. Log into the 800xA Service account.
3. Open Windows Control Panel.
4. Double-click Regional and Language Options to launch the Regional and
Language Options dialog box.
5. Click Customize this format to launch the Customize Regional Options dialog
box.
6. Click the Date tab.
7. Change the value in the Short date drop-down list to MM/dd/yyyy and click
Apply.
8. Log off of the 800xA Service User account and log back into the 800xA
Installer User account.

3BUA000146-600 A 39
Print BMA Report Configuration Section 2 Description and Operation

Print BMA Report Configuration


In order to print a BMA report, the Batch application and the AT Service Account
must be configured to use the settings of a certain account. All print requests for a
BMA report from any user will use the settings from this account to print the report.
To configure the AT Service Account:
1. Navigate to ABB Start Menu-> ABB Industrial IT 800xA-> System >
Configuration Wizard.
2. Double-click Systems Software User Settings.
3. Record the user account name listed in the Service Account, Used by System
Software field and exit the Configuration Wizard.
4. Use standard Windows procedures to access Task Scheduler via Windows
Control Panel > Administrative Tools.
5. Select Action > AT Service Account Configuration from the menu bar.
6. Select Another User Account: and click Change User....
7. Enter the user account name recorded earlier in this procedure.
8. Enter the password for the account in the Password field and click OK twice.
9. Log in as the user recorded earlier in this procedure and configure a default
printer.
10. Create the following folder on all Batch Server nodes:
C:\Windows\SysWOW64\config\systemprofile\Desktop.

Configuration Overview
The tasks required to take advantage of the benefits of the Batch Management
flexible batch subsystem are:
• Planning resource use.
• Writing equipment phase control logic.
• Configuring the controller modules required to handle input and output data,
control loops, and execution of sequence logic.

40 3BUA000146-600 A
Section 2 Description and Operation Batch Management Configuration

• Configuring the equipment database that describes the hardware and software
resources available at the site. Refer to Section 4, Equipment Configuration
(Batch Advanced Templates) and Section 5, Equipment Configuration (EPT
Control Modules).
• Creating recipes that can include both subprocedures and formulas, using
reusable logic components. Refer to Section 6, Procedures.
The controller and Batch Management can be configured simultaneously. Within
Batch Management, equipment must be configured before it can be referenced by
procedures.

Batch Management Configuration


Batch Management configuration tools (accessed various ways) provide access to
the:
• Equipment database configuration - Batch Management records information
about the resources available for flexible batch processing in the equipment
database.
• Procedure configuration - Batch Management stores procedures in the recipe
database.
• Miscellaneous and default batch configuration.
Information on batch utilities, tools, and functions is provided in Appendix K, Batch
Utilities.

Equipment Configuration
The equipment aspects contain a collection of interrelated definitions of phases,
equipment, and equipment groups. Equipment must be configured before
procedures can reference it (although changes can be made later). Complete
instructions to configure the equipment are provided in Section 4, Equipment
Configuration (Batch Advanced Templates) and Section 5, Equipment
Configuration (EPT Control Modules).
The steps to configure the equipment aspects are:
1. Configure phase definitions, including the phase parameters, default values,
and access levels.

3BUA000146-600 A 41
Batch Management Configuration Section 2 Description and Operation

2. Verify the phases match the equipment phases defined for the controller (EPT
control modules only).
3. Configure equipment names.
4. Specify equipment attributes. Identify characteristics of the equipment that
could have an effect on which equipment should be used for a particular batch.
5. Specify which phases can run on which equipment.
6. Define equipment groups.

Procedure Configuration
Once the equipment has been configured, procedures can be created that reference
the equipment. Complete instructions on configuring procedures are provided in
Section 6, Procedures.
The batch cells need to be specified before the procedure configuration. For more
information, refer to the sub headings Process and Batch Cells on page 72 and
Batch Cells on page 201.
Batch Management procedures are configured by creating PFCs (procedure
function charts). Procedures are drawn using an object oriented approach. The PFC
created during procedure configuration will also be used at run time by the operator
to monitor the progress of a batch.
The steps to create a procedure are:
1. Configure the procedure header providing information about the procedure.
2. If desired, configure the standard operating procedure (SOP), which is a textual
representation of the procedure.
3. Configure procedure parameters.
4. Create the PFC.
a. Add objects representing batch manager actions to acquire equipment.
b. Add objects representing phases, subprocedures, compute batch manager
actions, message batch manager actions, etc., which includes defining
each object. Procedure specific values for procedure and phase parameters
can be included.

42 3BUA000146-600 A
Section 2 Description and Operation Batch Management Run Time

c. Add objects representing batch manager actions to release equipment.


d. Link objects on the PFC using the connector tool.

Miscellaneous Batch Configuration


Additional batch configuration activities are performed using various methods.
Refer to Appendix K, Batch Utilities. These activities include defining message
priorities, specifying the number of backup versions of procedures to be retained,
and the option to change the colors used in PFCs. The retention limit for display of
completed Batches is also specified using these methods.
The Batch Manager runs under the 800xA system. When the software is installed, a
node is designated as a primary server. A second node can optionally be designated
as a Redundant Server along with another node designated as Witness Server in the
system.

Batch Management Run Time


An operator schedules a Batch by:
• Assigning a unique batch ID to schedule a single batch or multiple IDs to
schedule a batch campaign. A batch campaign uses the same master recipe for
all the batches in the campaign.
• Assigning the batch to a lot (optional).
• Specifying the recipe to be used.
• Configuring a start time.
• Specifying the mode of operation (automatic, semi-automatic, and manual).
• Making last minute checks of values assigned to parameters (optional).
The operator can monitor the progress of the batch process by watching the colors
and symbols on the PFC. The operator can also monitor using an online standard
operating procedure (SOP) and an equipment phase faceplate. Pending messages
and requests for operator input will be indicated through a predefined color of the
PFC batch manager action block (default is yellow). The operator has the option of
opening a dialog box to view the message and, if needed, provide the input.

3BUA000146-600 A 43
Sample Batch Management PFC Section 2 Description and Operation

Batch Management will send instructions to the controller to run particular phase
logic programs as specified in the procedure. Values of phase parameters being used
in the procedure can be made available to the equipment phase in the controller.
The Batch manager is running under the 800xA system, but it is the controller that is
actually controlling the process. If communication between the 800xA system and
the controller is severed while a batch is running, the controller can continue to run
the current phase.
Recipes can be configured so that a set of phases are grouped in a sequence. At run
time, the batch manager would issue a single instruction to the controller to run the
entire group of phases bounded by a sequence start and sequence end in the PFC. At
the same time, the values of all parameters required for the phases would be sent to
the controller. During configuration, consider carefully how to group phases into
sequences. Place the sequence end at a point where it would be safe for operations
to be suspended if communications fail.
A redundant Batch Management Server can be installed on the network. If the
Primary Batch Management Server fails, then the backup would take over the Batch
Management operations automatically.
While installing the Batch Management software on a workstation, the installer will
specify whether it is to be a Primary Server, a secondary (Redundant) Server, a
Witness Server (if Secondary Server is present) or a client.
The node designated as server (both primary and redundant) will have on its hard
drive the Batch Management database which includes:
• Recipes.
• Historical data on batches that have already run.
Any client node can be used to access information stored in the Batch Management
database.

Sample Batch Management PFC


Figure 5 shows a sample PFC. It is a flowchart of a procedure. Many procedures are
too complex to fit clearly on a single diagram and would be configured with layered

44 3BUA000146-600 A
Section 2 Description and Operation Sample Batch Management PFC

PFCs. An object on the top layer would represent another PFC. The depth of nested
PFCs is configurable.

Figure 5. Sample Procedure Function Chart (PFC)

Objects that can be used on a PFC include the following:


• Batch manager actions - used for data collection, message display,
computations, allocation of hardware, executing a previously configured
action, etc.
• Phases.
• Procedures.
• Extension actions - used to execute a previously configured action.
• Transitions that test for a condition.
• Branch starts and branch ends used to represent the start and end of a logical
branch in the process.
• Parallel starts and parallel ends used in parallel processing.
A special type of procedure, called an exception procedure, can be configured as
part of a normal procedure to define exception logic. This type of procedure

3BUA000146-600 A 45
Special Instructions to the Operator Section 2 Description and Operation

provides the option of defining product related exception triggers and its
corresponding responses.
A copy of the procedure PFC is displayed for the operator at run time. Changing
colors and symbols on the PFC help the operator monitor the progress of the batch
process. The colors and symbols are configurable, and graphics can be included on a
PFC.

Special Instructions to the Operator


As the operator monitors the progress of a batch using the PFC, there are several
ways in which special instructions can be displayed.

Messages
A type of procedure object called the message batch manager action is available to
the configurer. When this object is included in a procedure, continuation of the
batch processing requires that the operator read and respond to a message. Operator
responses are made a permanent part of the records in the history associated with
this batch. Refer to Other Batch Management Actions on page 260 for further
details.

SOP
A standard operating procedure can be configured. Operator input can also be
included in the SOP associated with the batch. This input is also made part of the
permanent record associated with the batch.

Operator Changes to Procedures and Values


It is possible to configure the batch management subsystem so that an operator can
or can not make changes to the procedure and formula at run time. What the
operator can change at run time depends on the access level assigned to the operator
and the minimum access level needed to make a change. An access level is specified
during configuration for all possible changes.
In addition, security can be configured on Batch Management so that individual
operators are limited to cells in the process to which they have access.

46 3BUA000146-600 A
Section 2 Description and Operation Version Control

Operators having the appropriate permissions can make runtime edits to control
recipes.
The master recipe is not changed by these runtime edits, only the control recipe
for the current batch.

Version Control
All procedures are version controlled with revision histories. In addition to approved
versions, additional versions can be stored by Batch Management. Revision
histories include date/time stamps with comments about the changes made. A
version update is forced each time a procedure is approved.
Information associated with a specific batch is identified in the batch database with
a unique batch ID. Once data has been entered in the batch history, it can not be
changed. The record of the batch ID is retained and it can not be reused.
Information is placed in the batch database when it is:
• Recorded automatically by the system. This includes information such as the
recipe procedure name and version used, the batch (and phase) start time, end
time, status, parameter values, etc.
• Recorded by the system in response to instructions in the procedure (data
collection batch manager action). This can include tag key collected data which
is collected once per Batch.
• Entered by the operator in response to a message or in the SOP.
Information in the batch database can be included in a custom Excel spreadsheet
that can be printed in response to an operator instruction. Refer to Appendix H, Log
Configuration for further details.

Synchronized Batch Operations


Procedures can be synchronized using the flexible batch management subsystem.
The PFC can include objects representing the start and end of parallel processing, as
well as transition blocks. They will test for a condition and only permit processing
to continue when the condition has been met. Synchronization between procedure
blocks in two different PFCs is accomplished using transition and compute blocks.

3BUA000146-600 A 47
Abnormal Conditions in Flexible Batch Processes Section 2 Description and Operation

Abnormal Conditions in Flexible Batch Processes


Abnormal conditions can be divided into three categories. Refer to Table 1.

Table 1. Abnormal Conditions

Condition Description
Unexpected Unexpected process conditions such as a temperature exceeding normal
conditions ranges, the level of liquid in a tank dropping below a certain level, the pressure
dropping in a steam line. Unexpected process conditions are manifested to the
800xA System through the values of tag atoms.
Device failures Device failures such as a pump failing to start, a solenoid valve failing to open, a
thermocouple burning out.
These are process device failures. The control system provides redundancy in
many areas to guard against failures: multiple 800xA workstations, redundant
Batch Management servers, redundant controllers, redundant data highway,
redundant I/O boards in the controller.
Unexpected Unexpected device statuses such as a controller going into manual mode during
status a ramp phase, a motor control valve opening during a hold phase.

When the system detects abnormal process conditions, alarm messages and event
messages are broadcast to operators. The equipment phase logic can support
preconfigured corrective actions and abnormal condition detection, in addition to
the ability of setting alarms and messages. The 800xA system provides many ways
to alert operators of abnormal conditions:
• Alarm annunciator display bar.
• Alarm and event lists.
• Point and group displays (faceplates).
• Graphics.
Monitoring of the process using these displays is facilitated by the ability of the
800xA system to have multiple operator workplaces open simultaneously.

Detection and Correction


As part of the control system there are likely to be relays that take valves to a safe
state in the event of a power failure or controller card removal. An uninterruptable

48 3BUA000146-600 A
Section 2 Description and Operation Regulatory Control Logic Interlocks

power supply is probably installed on the DCS control system to allow for an
orderly shutdown.
In a batch process there are still all the concerns of a nonbatch process, but batch has
the additional concern of multiple product types that have their own abnormal
conditions that affect the quality of the batch. These abnormal conditions are the
ones focused on in this section.

Regulatory Control Logic Interlocks


The first line of abnormal condition detection and corrective actions in the control
system is located in the regulatory control logic in the controller. Control logic
interprets the signals from the process and outputs signals to control process
equipment. Interlocks constantly check for a certain condition and automatically
take corrective actions, or prevent unsafe or potentially damaging actions from
occurring and notify the operator of the abnormal conditions. In a batch process,
interlocks should be used for abnormal conditions that can occur whether a batch is
active or inactive. Typical interlocks include high pressure, high level or low level
interlocks in a vessel preventing an agitator from starting or running, etc.

Equipment Phase Logic


The equipment phase logic can detect problems, inform the operator and take
corrective actions. This logic should be used for conditions that only occur while a
batch is active. Usually these interlocks affect product quality, such as a high
temperature in a cook cycle, or corrective actions needed if an agitator fails to start
during a blend phase.

Exception Logic
Another tool for detecting and handling abnormal conditions during procedure
execution is the exception procedure. An exception procedure is a special type of
subprocedure that is executed in parallel with a normal procedure thread. The
exception procedure is configured to monitor for one or more abnormal conditions.
A transition object is configured for each condition to be monitored. If the
expression for the transition object becomes true (the condition occurs), the
exception handling logic is executed.

3BUA000146-600 A 49
Audit Trail Section 2 Description and Operation

Because exception procedures are configured at the procedure level, and presented
with the same type of graphical user interface as a PFC, there are a number of
benefits.
• Because the exception logic is associated with a particular procedure, the
exception logic is specific to a particular product.
• When an exception procedure is configured to span multiple blocks in a
procedure, monitoring continues during the intervals between procedure block
execution, as well as during the execution of procedure blocks. Refer to
Configuring an Exception Procedure on page 278 for further details.
• The exception procedure can be monitoring for multiple conditions for
different durations.
• Configuration uses the same tools and building blocks as those used during
regular procedure configuration.

Audit Trail
The 800xA system audit trail function can be configured to collect and display the
audit events corresponding to the execution of batch runtime operations. Refer to
Table 6 for a list of the batch operations that generate audit events.
To configure an audit trail of batch audit events:
1. Select the Admin Structure\Administrative Objects\Domains\
domain_name\Audit Trail Config aspect.

50 3BUA000146-600 A
Section 2 Description and Operation Audit Trail

2. Enable the Audit Trail Active option in the Audit Trail Config aspect window
(Figure 6).

Figure 6. Audit Trail Configuration Aspect Window

3. Configure the filter options as desired in the Audit Event Filtering area and
click Apply.
4. Add an Alarm and Event List aspect to the object that will contain the audit
trail list.
5. Select the configuration view of the created aspect.
6. Select Common Audit List in the Configuration Name field of the alarm and
event list window (Figure 7) and click Apply. The alarm and event list window

3BUA000146-600 A 51
Audit Trail Section 2 Description and Operation

should now resemble that shown in Figure 8.

Figure 7. Alarm and Event List Aspect Window

Figure 8. Example Audit Trail Listing

7. Click the view configuration button.


8. Select the Filter tab.

52 3BUA000146-600 A
Section 2 Description and Operation Audit Trail

9. Enable Batch Operator Action Audit in the Categories area of the Alarm and
Event List Configuration window (Figure 9).

Figure 9. Alarm and Event List Configuration (Filter Tab) Window

10. Configure the remaining filter options as desired.


11. Select the Column tab.

3BUA000146-600 A 53
Alarm and Event Lists Section 2 Description and Operation

12. Configure the column layout as desired and click Apply. Refer to Figure 10.

Figure 10. Alarm and Event List Configuration (Column Tab) Window

Alarm and Event Lists


Batch alarms and events can be included in 800xA alarm and event lists in the same
manner as 800xA alarms and events are included. Refer to the appropriate 800xA
system instruction for more information. While configuring the filter options, select
the batch categories that contain the alarms and events to be included. Table 2
describes the batch related categories.
Refer to Batch Settings on page 356 for information about appending alarms and
events generated by equipment acquired by a batch with batch information such as
batch ID, campaign ID, lot ID, and procedure path.
The Procedure Path column on alarm and event list displays the name of the recipe
procedure for events and alarms generated by the controller. For batch related events
and alarms, the Procedure Path column displays the name of the recipe procedure

54 3BUA000146-600 A
Section 2 Description and Operation Alarm and Event Lists

Table 2. Batch Categories

Categories Description
Batch alarm Batch alarms (condition events) generated during the execution of
batch recipes such as:
System events (batch system failovers and security violations)
Message pending
Breakpoint reached
Batch errors
Batch block status message History of events generated during the execution of a batch
recipe. These events include start times, end times, and
parameter values.
Batch operator action Requests to execute batch related actions such as start, stop,
skip block, restart at a given point, change mode, etc. This is not
the same thing as operator actions on batch related equipment
such as changing a set point or opening a valve. (audit event)
Batch operator comment Events generated when a block comment is entered using the
block status window. (audit event)
Batch operator schedule The person who scheduled the batch. (audit event)
Batch procedure exported Notification of snap shots of control recipes (at start, end, and edit
points) being collected by PDL (if enabled)
Batch remote job schedule Events generated when the job schedule BMA block is executed.
The event contains the information required to schedule a job on
a remote node.
Batch resource transaction Events generated when equipment is acquired, released,
reserved, unreserved, selected, and unselected.
Batch start log association and The time the data collection BMA starts and stops the collection
batch end log association of batch history data.
Batch tag change Changes to batch tag key data.

and block (in the format recipename.blocknumber) that generated the events and
alarms.

3BUA000146-600 A 55
Security Section 2 Description and Operation

For recipes that contain subprocedures, the Procedure Path includes the block
number for each subprocedure (recipename.blocknumber.blocknumber). The PDL
storage of procedure path is limited to 40 characters and is truncated if exceeds this
limit.

Security
Batch objects are configured in the 800xA system structures in same manner as all
other 800xA objects. 800xA security protocols control batch objects and all other
objects the same way. 800xA security provides a security definition by default.
However, it is recommended that a more comprehensive security definition be
established.
A security definition is established through the use of many aspects but the three
most important aspects are security definition, batch cell definition, and Batch
equipment.

Security Definition Aspect


The security definition Aspect links users to permissions. Nineteen permissions (by
default) can be allowed or denied:
• Administrate.
• Approve.
• Batch configure.
• Configure.
• Create synchronization package.
• Download.
• Enter.
• First signature.
• Force I/O.
• Load synchronization package.
• Modify alarm hiding.
• Modify history.
• Operate.
• Read.
• Second signature.
• Security configure.
• Shutdown.

56 3BUA000146-600 A
Section 2 Description and Operation Batch Cell Definition Aspect

• Supervise.
• Tune.
This aspect establishes this linking for the object it is added to and all objects below
it down to the next security definition aspect. Refer to the appropriate 800xA system
security instruction for more information.

Batch Cell Definition Aspect


The Batch cell definition Aspect also links permissions to the batch operations that
can be performed.
To change the permission required for an operation (for the whole batch system)
controlled by the batch cell definition aspect:
1. Log on as an administrator (or other user that has access to the Aspect System
Structure).
2. Select Aspect System Structure\Aspect System Structure, Aspect
Category\Batch Management Procedures, Aspect System\Batch Cell, Aspect
Type\Batch Cell Definition, Aspect Category\Aspect Category Definition.
3. Select the operation on the Permissions tab. Table 3 describes the operations
unique to the batch cell definition aspect.
4. Select the desired security permission in the Permissions field and click Apply.
If the Batch Management system is being operated with security enabled and the
default security configuration has been changed so that the Library Structure is
protected from access by nonprivileged users, use of the Default Batch Cell object
located in that structure can cause problems since its permission access is
determined by its location.
This problem can be avoided by not using the Default Batch Cell object or by
placing the Default Batch Cell object under the control of another Security
Definition aspect. For example, a Security Definition aspect with object scope could
be placed on the Default Cell object itself. The Default Batch Cell object could also
be inserted into another structure where Batch runtime operations are permitted.

3BUA000146-600 A 57
Batch Cell Definition Aspect Section 2 Description and Operation

Table 3. Batch-Specific Operations

Default
Aspect Category Operation Description
Permission
Batch ID Edit Batch ID Pattern Change the pattern used to Configure
generate batch IDs for this
procedure.
Edit Batch ID Sequence Change the sequence number Supervise
Number associated with this procedure.
BatchRT Delete Delete batches that have not Operate
yet been started.
BatchRT 2ndDelete Second approval to delete Supervise
batches that have not yet been
started.
BatchRT Schedule Schedule batches. Operate
BatchRT 2ndSchedule Second approval to schedule Supervise
batches.
BatchRT Terminate Terminate batch execution. Operate

58 3BUA000146-600 A
Section 2 Description and Operation Batch Cell Definition Aspect

Table 3. Batch-Specific Operations (Continued)

Default
Aspect Category Operation Description
Permission
Batch cell definition BatchRT 2ndTerminate Second approval to terminate Supervise
batch execution.
BatchRT ChangeMode_Auto Change batch or block Operate
execution mode to automatic.
BatchRT Second approval to change Supervise
2ndChangeMode_Auto batch or block execution mode
to automatic.
BatchRT Change batch or block Operate
ChangeMode_Manual execution mode to manual.
BatchRT Second approval to change Supervise
2ndChangeMode_Manual batch or block execution mode
to manual.
BatchRT ChangeMode Change batch or block Operate
_SemiAuto execution mode to
semiautomatic.
BatchRT Second approval to change Supervise
2ndChangeMode_SemiAuto batch or block execution mode
to semiautomatic.
BatchRT Abort Abort batch or block execution. Operate
BatchRT 2ndAbort Second approval to abort Supervise
batch or block execution.
BatchRT Continue Continue block execution. Operate
BatchRT 2ndContinue Second approval to continue Supervise
block execution.
BatchRT Hold Hold batch or block execution. Operate
BatchRT 2ndHold Second approval to hold batch Supervise
or block execution.

3BUA000146-600 A 59
Batch Cell Definition Aspect Section 2 Description and Operation

Table 3. Batch-Specific Operations (Continued)

Default
Aspect Category Operation Description
Permission
Batch cell definition BatchRT Pause Pause batch or block Operate
(continued) execution.
BatchRT 2ndPause Second approval to pause Supervise
batch or block execution.
BatchRT Restart Restart batch or block Operate
execution.
BatchRT 2ndRestart Second approval to restart Supervise
batch or block execution.
BatchRT Resume Resume batch or block Operate
execution.
BatchRT 2ndResume Second approval to resume Supervise
batch or block execution.
BatchRT Start Start block execution. Operate
BatchRT 2ndStart Second approval to start block Supervise
execution.
BatchRT Stop Stop batch or block execution. Operate
BatchRT 2ndStop Second approval to stop block Supervise
execution.
BatchRT ChangeParameter Change batch or block Operate
parameters.
BatchRT Second approval to change Supervise
2ndChangeParameter batch or block parameters.
BatchRT ChangePriority Change the priority of a batch. Operate
BatchRT 2ndChangePriority Second approval to change the Supervise
priority of a batch.
BatchRT ChangeVariable Change batch variable. Operate

60 3BUA000146-600 A
Section 2 Description and Operation Batch Cell Definition Aspect

Table 3. Batch-Specific Operations (Continued)

Default
Aspect Category Operation Description
Permission
Batch cell definition BatchRT Second approval to change Supervise
(continued) 2ndChangeVariable batch variable.
BatchRT ConfigureBMA Configure BMA and transition Configure
blocks.
BatchRT 2ndConfigureBMA Second approval to configure Supervise
BMA and transition blocks.
BatchRT EditPFC Runtime edit of procedure. Configure
BatchRT 2ndEditPFC Second approval to runtime Supervise
edit a procedure.
BatchRT Enter first PFC block dialog Operate
PFCBlockComment comment.
BatchRT Enter second PFC block dialog Supervise
2ndPFCBlockComment comment.
BatchRT PFCSOPComment Enter first PFC SOP comment. Operate
BatchRT Enter second SOP comment. Supervise
2ndPFCSOPComment
BatchRT PickRestartPoint Pick restart points. Operate
BatchRT Second approval to pick restart Supervise
2ndPickRestartPoint points.
BatchRT Change option on History Operate
ScheduleHistoryOptions Options tab of Miscellaneous
Configuration aspect.
BatchRT 2nd approval of change option Supervise
2ndScheduleHistoryOptions on History Options tab of
Miscellaneous Configuration
aspect.
BatchRT SetBreakPoints Set breakpoints on blocks. Operate

3BUA000146-600 A 61
Batch Cell Definition Aspect Section 2 Description and Operation

Table 3. Batch-Specific Operations (Continued)

Default
Aspect Category Operation Description
Permission
Batch cell definition BatchRT 2ndSetBreakPoints Second approval to set Supervise
(continued) breakpoints on blocks.
BatchRT SkipBlocks Skip blocks. Operate
BatchRT 2ndSkipBlocks Second approval to skip Supervise
blocks.
BatchRT AccessMessage Respond to batch messages. Operate
Individual messages can also
be restricted during BMA
message configuration.
BatchRT Second approval of batch Supervise
2ndApproveMessage message. Individual messages
can also be restricted during
BMA message configuration.
BatchRT Add Add a batch. Operate
BatchRT Engineer1 Batch runtime access level. Configure
BatchRT Engineer2
BatchRT Engineer3
BatchRT Operate1 Batch runtime access level. Operate
BatchRT Operate2
BatchRT Operate3
BatchRT Supervise1 Batch runtime access level. Supervise
BatchRT Supervise2
BatchRT Supervise3

62 3BUA000146-600 A
Section 2 Description and Operation Batch Cell Definition Aspect

Table 3. Batch-Specific Operations (Continued)

Default
Aspect Category Operation Description
Permission
Batch cell definition BatchRT View View batch runtime activities Operate
(continued) from Batch Overview, PFCs,
and status displays. Additional
access to issue commands in
accordance with other runtime
functions is required.
Batch equipment BatchRT ReserveEquipment Change batch equipment Operate
status to reserved.
BatchRT Second approval to change Supervise
2ndReserveEquipment batch equipment status to
reserved.
BatchRT ReleaseEquipment Change batch equipment Operate
status to released.
BatchRT Second approval to change Supervise
2ndReleaseEquipment batch equipment status to
released.
BatchRT DisableEquipment Change batch equipment Operate
status to disabled.
BatchRT Second approval to change Supervise
2ndDisableEquipment batch equipment status to
disabled.
BatchRT EnableEquipment Change batch equipment Operate
status to enabled.
BatchRT Second approval to change Supervise
2ndEnableEquipment batch equipment status to
enabled.
BatchRT DiscardEquipment Empties the pending batch list Operate
or queue.

3BUA000146-600 A 63
Batch Cell Definition Aspect Section 2 Description and Operation

Table 3. Batch-Specific Operations (Continued)

Default
Aspect Category Operation Description
Permission
Batch equipment BatchRT Second approval to empty the Supervise
(continued) 2ndDiscardEquipment pending batch list or queue.
BatchRT Change batch equipment Operate
ChangeEquipmentAttributes attributes.
BatchRT Second approval to change Supervise
2ndChangeEquipmentAttrib batch equipment attributes.
ute
BatchRT ViewEquipment View equipment in the Operate
Equipment Overview window.
BatchRT Engineer1 Batch runtime access level. Configure
BatchRT Engineer2
BatchRT Engineer3
BatchRT Operate1 Batch runtime access level. Operate
BatchRT Operate2
BatchRT Operate3
BatchRT Supervise1 Batch runtime access level. Supervise
BatchRT Supervise2
BatchRT Supervise3
Modify Modify aspect in any way. Configure
Batch function Edit Function Edit the batch function. Configure

64 3BUA000146-600 A
Section 2 Description and Operation Batch Equipment Aspect

Table 3. Batch-Specific Operations (Continued)

Default
Aspect Category Operation Description
Permission
Development Approve Procedure1 First approval of procedure. Operate
procedure and
version procedure 2ndApprove Procedure1 Second approval of procedure. Supervise
Edit Procedure Edit the procedure that has Configure
been copied to development.
Modify Modify aspect in any way. Configure2
Approved procedure Edit Procedure Edit the procedure that has Configure
been copied to development.
Modify Modify aspect in any way. Configure2
Remaining Batch Modify Modify aspect in any way. Configure
aspect categories
NOTES:
1. Users must have permission to utilize the Modify operation in order to approve a procedure because the Name
aspect of the procedure is changed during the approval process.
2. The default procedure configuration aspect has a default permission of Administrate.

Batch Equipment Aspect


The batch equipment aspect performs several functions. It identifies equipment as
being batch enabled. Batch enabled means that the equipment can be acquired,
selected, etc. by batch procedures. The phases that can be executed by this
equipment are specified using this aspect. This aspect also links permissions to
some of the batch operations that can be performed.
To change the permission required for an operation (for the whole batch system)
controlled by the batch equipment aspect:
1. Log on as an administrator (or other user that has access to the Aspect System
Structure).
2. Select Aspect System Structure\Aspect System Structure, Aspect
Category\Batch Management Equipment, Aspect System\Batch Equipment,
Aspect Type\Batch Equipment, Aspect Category\Aspect Category Definition.

3BUA000146-600 A 65
Other Aspects Section 2 Description and Operation

3. Select the Permissions tab.


4. Select the operation. Table 3 describes the operations.
5. Select the desired security permission in the Permissions field and click Apply.

Other Aspects
The Batch Cell Definition and Batch Equipment aspects are not the only aspects that
link batch operations to permission. The following information lists all the aspects
(located in the Aspect System Structure) used to define batch security.
Batch Management Equipment, Aspect System
Batch Equipment, Aspect Type
Batch Equipment, Aspect Category
Batch Phase, Aspect Type
Batch Phase, Aspect Category
Equipment Group, Aspect Type
Equipment Group, Aspect Category
Batch Management Miscellaneous, Aspect System
Miscellaneous Configuration, Aspect Type
Miscellaneous Configuration, Aspect Category
Batch Management Overviews, Aspect System
Batch History Information, Aspect Type
Batch History Information, Aspect Category
Batch History Overview, Aspect Type
Batch History Overview, Aspect Category
Batch Information, Aspect Type
Batch Information, Aspect Category
Batch Overview, Aspect Type
Batch Overview, Aspect Category
Batch PFC, Aspect Type
Batch PFC, Aspect Category
Batch Schedule, Aspect Type
Batch Schedule, Aspect Category
Block Status, Aspect Type
Block Status, Aspect Category
Equipment Information, Aspect Type

66 3BUA000146-600 A
Section 2 Description and Operation Permissions Tab

Equipment Information, Aspect Category


Equipment Overview, Aspect Type
Equipment Overview, Aspect Category
PFC Header, Aspect Type
PFC Header, Aspect Category
Batch Management Procedures, Aspect System
Batch Cell, Aspect Type
Batch Cell Definition, Aspect Category
Batch ID, Aspect Type
Batch ID, Aspect Category
Default Procedure Configuration, Aspect Type
Default Procedure Configuration, Aspect Category
Procedure Configuration, Aspect Type
Procedure Configuration, Aspect Category
Procedure Xrefs, Aspect Type
Procedure Xrefs, Aspect Category
Procedures Types, Aspect Type
Approved Procedure, Aspect Category
Development Procedure, Aspect Category
Version Procedure, Aspect Category
Procedures, Aspect Type
Exception Procedure, Aspect Category
Operation, Aspect Category
Recipe Procedure, Aspect Category
Unit Procedure, Aspect Category

Permissions Tab
The Permissions property tab of these aspects displays the batch specific operations,
the security level required by each operation, and if the current user is allowed or
denied each operation.
The data in this window is derived by comparing the aspect category definition
aspect (cross-references batch operation to permissions) to the appropriate security
definition aspect (defines the permissions granted to a user).

3BUA000146-600 A 67
Examples Section 2 Description and Operation

Examples
To better understand how these aspects work together, refer to Figure 11 and the
following three examples.

Figure 11. Example Security Structure

Example 1
A user tries to schedule a batch procedure that executes in the Storage Tank A-B2-
ST cell. The batch software compares the Batch Cell Definition aspect, Batch
Equipment aspect, and security definition aspect of the storage tank object to
determine what operations the user is allowed to execute.

Example 2
A user tries to release Mixing Unit 2 (part of the Mixing Units cell). The batch
software compares the Batch Equipment aspect (on the Mixing Unit 2 object) with

68 3BUA000146-600 A
Section 2 Description and Operation Batch Operation Access Levels

the Security Definition and Batch Cell Definition aspects (on the Mixing Units
object) to determine what operations the user is allowed to execute.

Example 3
A user tries to abort a batch procedure executing in the Product Distribution
Manifold A-B2-PD cell. The batch software compares the Batch Equipment and
Batch Cell Definition aspects (on the Product Distribution Manifold A-B2-PD cell)
to the nearest Security Definition aspect (found by looking up the tree structure) to
determine what operations the user is allowed to execute. The Security Definition
aspect on the Site A object would be used in this case.

Batch Operation Access Levels


There are times during procedure configuration and equipment definition when a
batch operation (access level) must be specified. This operation controls who can
answer a message, edit runtime recipe parameters, edit runtime equipment
attributes, etc. Table 4 lists the batch operations and corresponding default
permissions.

Table 4. Default Permissions

Batch Operations
Permission
(Access Levels)
Operator Level 1 Operate
Operator Level 2 Operate
Operator Level 3 Operate
Engineer Level 1 Configure
Engineer Level 2 Configure
Engineer Level 3 Configure
Supervisor Level 1 Supervise
Supervisor Level 2 Supervise
Supervisor Level 3 Supervise

3BUA000146-600 A 69
Special Batch Security Features Section 2 Description and Operation

Special Batch Security Features


There are two special security-related features that can be utilized:
• Permission to assign phase parameter values.
• Permission to change procedure parameters.

Permission to Assign Phase Parameter Values


Access level assignments are made in several stages of configuration of the system.
These determine who has permission to assign phase parameter values. Table 5
describes the permissions assigned during each stage of configuration.

Table 5. Configuration Stage/Permissions Interaction

Configuration
Description
Stage
Login account First, access level assignments made when login accounts are configured
access levels determine who can perform the activities related to flexible batch processing
during which phase parameter values are assigned.
Equipment aspect Permission to assign phase parameter values is also affected by configuration
configuration of the equipment aspects. Phase parameters associated with each phase are
specified. Among the characteristics that can be configured for each phase
parameter is the default value. The value of a phase parameter can be
changed from the default during configuration of a procedure using the phase
and, under some circumstances, when a batch is scheduled and run. During
configuration of a phase parameter, an access level is assigned. This is the
minimum access level necessary to change the parameter value at run time.
Procedure During procedure configuration, the value of a phase parameter to be used in a
configuration particular procedure can be changed from the default assigned in the
equipment aspects. In addition, during procedure configuration the access
level needed to change the value of the parameter after a batch has been
scheduled (but before the instructions to run the phase have been sent to the
controller by the batch manager) is specified. The access level can also be
changed to No Access, preventing any further changes to the value.

70 3BUA000146-600 A
Section 2 Description and Operation Special Batch Security Features

Table 5. Configuration Stage/Permissions Interaction (Continued)

Configuration
Description
Stage
Scheduled batch When a batch is scheduled to be run as described in the System 800xA Batch
Management Operation (3BUA000145*), the Parameters button in the Batch
Schedule window opens a window containing procedure parameters
associated with the procedure, not phase parameters. However, access to the
phase parameters used by a phase in the procedure is available through the
block status window for the phase object in the PFC. An operator who has the
access level that is assigned to the parameter and as that assigned to the
phase parameter during configuration of the procedure can use the Batch
Parameters window (accessed using Parameters in the block status window)
to assign a different value to the phase parameter, and to specify a new access
level needed by an operator to change the value again. It is also possible to
change the level to No Access, preventing further changes.
NOTE: No Access literally means no further access by anyone including the person who changed the level to No
Access.

Permission to Change Procedure Parameters


Procedure parameters are created during procedure configuration as described in
Section 6, Procedures. During configuration a procedure parameter can be specified
as public or private. Only public parameters will be displayed at run time and can
have their values changed. The access level assigned to the parameters and the
access level assigned to a public procedure parameter determine the access level
needed to change the value when a procedure is scheduled using the pop-up window
opened through the Parameters button in the Batch Schedule window. Permission
to add a batch using the batch scheduler and therefore, to access this window, is
determined by the access level specified for the operator and the level required to
add a batch. An operator with the proper access level can assign a different value to
the procedure parameter when scheduling the batch, and assign an access level
(different than the default) needed to make a further change to the procedure
parameters value.
Once the batch has been scheduled, but before it runs, an operator whose access
includes the required access level for the parameter and for the procedure
parameters can use the pop-up window opened by the Parameters button on the

3BUA000146-600 A 71
Process and Batch Cells Section 2 Description and Operation

batch status window to change the value of the procedure parameter to a value
associated only with that batch ID. At this stage the access level needed to make a
further change to the procedure parameter value can also be changed.
Any change made to a parameter value at run time applies to only the current batch.
Any changes made at run time do not affect the master recipe.
It is possible to use the procedure parameter access level assignment feature to
specify No Access. This literally means no further access to anyone including the
person who changed the level to No Access.

Process and Batch Cells


Whether an operator can schedule and run a batch using a particular procedure
depends on two things:
1. Which batch cells (if any) were specified when the top level procedure was
configured.
2. Which batch cells can be accessed by the operator.
When a procedure is configured in the procedure database, the procedure can be
assigned to one or more batch cells. If the procedure is assigned to one or more
batch cells, then only operators that can access at least one matching cell will even
see the procedure on the list of available procedures when they schedule a batch.
The batch overview showing what batches are scheduled, active, and completed will
also be filtered on the basis of batch cells that can be accessed by the operator.
Batch cells can be congruent with process cells. However, batch cells do not
necessarily have to coincide with process cells.
Batch Management cells can be assigned on some basis other than 800xA cells
because they are used by the products for different purposes. Batch Management
uses cells for security administration.
The batch manager only looks at the batch cells associated with the top level PFC
for Chicken_Soup. If Chicken_Soup includes a subprocedure Cool_Down, it
does not matter what batch cells were specified for Cool_Down during
configuration. An operator’s accessible cells only have to match the batch cell
associated with the top level procedure Chicken_Soup.

72 3BUA000146-600 A
Section 2 Description and Operation Process and Batch Cells

When an operator schedules a batch, the Batch Schedule window includes a Batch
Cell drop-down box used to specify the batch cells (if more than one is applicable
for the procedure) to be associated with this batch.
If a procedure has more than one batch cell associated with it, but the operator
accessible cells do not match all of them, only the matches will be available. For
example, Chicken_Soup was assigned to Batch Cells 62, 63, and 64. If an operator’s
Account Cells are 2, 3, 4, and 62, then only 62 can be selected in the Batch Schedule
window at a workstation where the operator is logged in.
The batch cell associated with a batch is included in the information in the Batch
Overview window.

Batch Cell Unrelated to Equipment Used


The batch cell specified when a batch is scheduled does not have any effect on the
equipment used for a batch. The equipment used for a batch depends on the
procedure.
If the configurer wants the resources used to run a batch to be in a single process
cell, the procedure should be configured to use specifically named equipment units
or SEMs in that cell (or from particular equipment groups containing resources
limited to that cell). Then the batch cell is considered to be congruent with the
process cell.
However, the equipment used can be selected automatically by the batch manager
on the basis of attributes configured in the equipment aspects and in the procedure.
In this case, the batch manager will use any available equipment that meets the
configured criteria, regardless of the equipment location in the plant.

Procedures Not Associated with Any Batch Cell


During procedure configuration, specifying one or more batch cells for the
procedure is optional. When an operator schedules a batch using a procedure for
which no batch cells were specified during configuration, the batch manager will
check the default batch cell assigned using the Default Procedure Configuration
window to verify the operator has permission there. If the operator does not have
permission in the default batch cell, the procedure will instead default to the first

3BUA000146-600 A 73
Authentication Section 2 Description and Operation

cell to which the operator has access. This default batch cell will be displayed in the
Batch Schedule window Batch Cell box.
The batch cell can be changed when the batch is scheduled. The operator is
permitted to change the cell selection during scheduling of the batch.

Authentication
It is possible to configure the batch system to require one or two approvals before
certain operations are performed. Table 6 lists the operations that can be configured
to require approvals.

Table 6. Operations Supporting Authentication

Operation Aspect Category Aspect


Delete command Batch cell authentication Batch cell authentication
Schedule command
Terminate command
Change mode automatic
Change mode manual
Change mode semiautomatic
Abort command
Continue command
Hold command
Pause command
Restart command

74 3BUA000146-600 A
Section 2 Description and Operation Authentication

Table 6. Operations Supporting Authentication (Continued)

Operation Aspect Category Aspect


Resume command Batch cell authentication Batch cell authentication
(continued) (continued)
Start command
Stop command
Change parameter
Change priority
Change variable
Configure BMA
Edit PFC
PFC block comment
PFC SOP comment
Pick restart point
Schedule history options
Set breakpoints
Skip blocks
Reserve equipment Batch equipment Equipment
authentication
Release equipment
Disable equipment
Enable equipment
Discard equipment
Change equipment attribute
Approve procedure Development procedure Development procedure
authentication
Approve procedure Version procedure Version procedure
authentication

3BUA000146-600 A 75
Authentication Section 2 Description and Operation

The Approve Change operation_name window is displayed when an operation


configured to require a first approval is attempted. The first approval name and
password should be that of the currently logged-on user. Enter the appropriate user
ID and password, reason for change, and approval comments (if desired). Figure 12
shows an example of the Approve Change operation_name window displayed when
attempting an operation configured to require a first and second approval.

Figure 12. Example Approve Change Window

To configure an operation to require approvals:


1. Select the aspect containing the operation:

76 3BUA000146-600 A
Section 2 Description and Operation Optimizing AC 800M Performance

– Aspect System Structure\Batch Management Procedures\Batch


Cell\Batch Cell Definition\Batch Cell Authentication.
– Aspect System Structure\Batch Management Equipment\Batch
Equipment\Batch Equipment\Equipment Authentication.
– Aspect System Structure\Batch Management Procedures\Procedure
Types\Development Procedure\Development Procedure Authentication.
– Aspect System Structure\Batch Management Procedures\Procedure
Types\Version Procedure\Version Procedure Authentication.
2. Enable the first or first and second authentication options and click Apply.

Figure 13. Batch Cell Authentication Dialog

Optimizing AC 800M Performance


In order to optimize the AC 800M performance with Batch Management, use the
following settings for a normally loaded controller:

3BUA000146-600 A 77
Control Builder Controller Task Update Rates Section 2 Description and Operation

Control Builder Controller Task Update Rates


Set the rates to values appropriate to the process.

OPC Server Controller Update Rates


High 1000 ms
Above Normal 2000 ms
Normal 5000 ms
Below Normal 10000 ms
Low 30000 ms
Strings 1000 ms
The High and Strings values should be double the values of the slowest of the
Control Builder Controller Task Update Rate tasks.

Batch OPC Group Update Rates


ItemMap Update Rate 2000 ms
Phase Update Rate 2000 ms
Unit Update Rate 2000 ms
These values should be double the value of the High and String values of the OPC
Server Controller Update Rate tasks.
The Batch OPC Group Update Rates listed are the default values. If necessary, use
the following procedure to change the Batch OPC Group Update Rates:
1. On the primary batch server, from a DOS prompt run regedit.
2. Select the "HKEY_LOCAL_MACHINE on Local Machine" dialog.
– Windows 64-bit version, Navigate to
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ABB\
Produce IT\6.0\Communications\.
3. Double click the Batch OPC Group Update Rates (specified in the previous
list) and change their values accordingly.
4. Repeat Step 1 through Step 3 on the secondary batch server (if necessary).
5. On redundant Batch Management systems, failover the batch server. On
nonredundant Batch Management systems:

78 3BUA000146-600 A
Section 2 Description and Operation Batch OPC Group Update Rates

a. Select Services Structure\Batch Service, Service\batch_group_name,


Service Group.
b. Select the Service Group Definition aspect.
c. Select the Configuration tab.
d. Select the provider that is currently the batch server.
e. Disable the Enabled option.
f. Click Apply.
g. Enable the Enabled option.
h. Click Apply.

3BUA000146-600 A 79
Batch OPC Group Update Rates Section 2 Description and Operation

80 3BUA000146-600 A
Section 3 Parameter, Variable, and
Expression Overview

This section provides general information about parameters, variables and


expressions and how they are used in Batch Management systems.
To permit flexibility when configuring phase logic and creating procedures, Batch
Management uses parameters and variables to represent values, and permits the use
of logical expressions when specifying the procedure and batch specific values of a
parameter. It is important to understand the options available to a configurer before
beginning to plan for implementation of control strategies using Batch
Management. Details on editing parameters and expressions are provided in the
configuration sections in this instruction. Details of expression structure, functions,
and variables are provided in Appendix A, Configuring Batch Variables and
Expressions.

Parameters
A parameter is a named value. Examples of values that it might be useful to name in
flexible batch processing are the temperature of a reactor, a quantity of an
ingredient, and the state of a device such as an agitator.
Three types of parameters (phase, procedure, and extension action) are used in
Batch Management flexible batch processing.
Phase parameters are associated with the equipment phase logic configured in the
controller. Each phase parameter is configured in both the controller and in the
equipment aspects of Batch Management.
Procedure parameters are associated with using control logic in a specific
procedure, or within a procedure for process management. Procedure parameters are
configured during procedure configuration and are stored in Batch Management.

3BUA000146-600 A 81
Phase Parameters in the Controller Configuration Section 3 Parameter, Variable, and Expression

Extension action parameters are associated with a configured action. Extension


action parameters are configured on any extension action block.

Phase Parameters in the Controller Configuration


Phase parameters are named values used by equipment phase logic. A phase
parameter name can consist of up to 32 ASCII characters. The same parameter
name can be used by more than one phase.
There are three types of phase parameters: integer, floating point, and string (80
character text string).
The access level needed to assign a procedure specific or batch specific value to the
phase parameter when configuring a procedure or running a batch is stored in the
equipment aspects as described in Security on page 56.
The value for each parameter written at run time to the controller can come from
one of two sources:
The default configured for the phase parameter during configuration of the
equipment. The default must be a constant.
- or -
The procedure specific phase parameter value that is used instead of the default
if a procedure specific value was assigned to the phase parameter during
procedure configuration as described in Assignment of Procedure Specific
Values on page 87. This procedure specific value can be a constant, an
expression (which can contain variables), or a procedure parameter.
In addition, it is possible to permit operators to make batch specific changes to
phase parameter values right up until the time that the instructions to run a phase or
sequence are sent to the controller. Refer to Viewing and Changing Procedure
Parameters at Run Time on page 91.
If a parameter value is configured directly in phase logic during equipment phase
logic configuration, the configured value will be overwritten by the appropriate
value from Batch Management.

82 3BUA000146-600 A
Section 3 Parameter, Variable, and Expression Overview Phase Parameters During Equipment

Phase Parameters During Equipment Aspect Configuration


During configuration of the equipment aspects the resources available for flexible
batch processing at the site are described. Part of this process is specifying what
phases can run on a particular piece of equipment such as a reactor or a mixing tank.
The names of the parameters used by each phase must also be specified. In addition
to naming the phase parameters, the specification process also includes entering:
• The type of value the parameter represents (integer, floating point, string, list).
• A default value that must be a constant.
• A description of the parameter.
• The minimum access level required to assign a custom value to the parameter.
Refer to Security on page 56 for more information about permissions and
access levels.
It is recommended that the name used for a phase parameter in the equipment
aspects be the same as that configured in the equipment phase in the controller.
Failure to use the same name will result in a runtime error of that phase in some
controllers.

3BUA000146-600 A 83
Viewing and Changing Phase Parameters at Run Time Section 3 Parameter, Variable, and

Figure 14 shows a parameter list in which several parameters have already been
entered. For example, the list shows that the default value assigned to phase
parameter A1 is floating point 1.0.

Figure 14. Batch Phase Parameters Window

The phase parameter A3 has been assigned the floating point value 3.0 (representing
a certain amount). The phase parameter S2 has been assigned String S2. The phase
parameter S3 has been assigned String S3.

Viewing and Changing Phase Parameters at Run Time


Clicking any block (object) in a PFC for a scheduled batch will display a block
status window. The block status window for a phase object contains a Parameter
button that opens a Batch Phase Parameters window shown in Figure 14.
The parameters listed on the left are phase parameters followed by their
descriptions. The first time this window is opened following the scheduling of a
Batch, the text entry boxes on the right contain the assignments made during phase
operation assignment in procedure configuration as described in Assignment of
Procedure Specific Values on page 87. The Value column show the value of the

84 3BUA000146-600 A
Section 3 Parameter, Variable, and Expression Overview Procedure Parameters and Procedure

expression shown in the Expression column. If no expression has been entered (the
Expression column is empty), the Value and Default columns will be equal.
The assignment of the value can be changed for this instance of the phase if:
• Instructions to run the phase have not yet been sent to the controller by the
batch manager.
• The parameter was defined in the equipment aspects.
• The operator has a high enough access level.
To assign a new value for that specific parameter, enter a new expression or edit the
existing expression in the Expression column. The function wizard (refer to
Figure 85) can be used to enter an expression by clicking in the Expression column
and clicking the function wizard toolbar button. Once the new value has been
assigned, click Compute to cause the system to check for syntax errors, evaluate the
expression, and display the new value in the Value column. Clicking OK causes all
the expressions to be checked for syntax errors, evaluated, and the window being
closed.
In contrast to the Parameter button on the block status window for a phase object
that provides access to phase parameters, the Parameter button on the block status
window for a procedure block provides access to another window used to change
procedure parameters for the subprocedure as described in Passing Parameter
Values to a Nested Subprocedure on page 94.

Procedure Parameters and Procedure Specific Values


Procedure parameters are associated with a specific procedure. A procedure
parameter value is specified during procedure configuration using a constant. The
value of a procedure parameter can, in turn, be used to specify the value of a phase
parameter for this procedure. Procedure parameters are extremely valuable in many
environments.
A procedure can be configured in such a way that an operator with the appropriate
access level will easily be able to enter a custom value for procedure parameters
through the Batch Parameters window (refer to Figure 16) at the time a batch is
scheduled to be run. This value can be specified using a constant or an expression.
The expression can contain variables as described in Expressions and Variables on
page 100.

3BUA000146-600 A 85
Creation of Procedure Parameters Section 3 Parameter, Variable, and Expression Overview

Procedure parameters are also useful for procedure management operations. Not
only can a procedure parameter be used to represent a value such as a quantity of a
material or the temperature of a reactor, one could be used in a procedure object to
represent an operand in a conditional operation. To provide a simple example,
suppose each time a batch was run the configurer wanted the operator to decide,
based on a visual inspection of a tank, whether or not the tank cleaning phase of the
procedure should be executed. The configurer could define a procedure parameter
called Clean and then cause the system to test for the value of Clean by including an
object in the procedure called a transition object. If the value assigned to clean by
the operator at run time was Yes, the cleaning phase of the procedure would be
included in the process when the execution of the batch reached the transition
object. If the operator entered No, the tank would not be cleaned for that batch.

Creation of Procedure Parameters


A Tools menu, available from the title bar of the PFC Editor window, contains an
item Procedure Parameters used to create procedure parameters and to assign a
description, data type, and default value to each. Procedure parameters are stored in
the batch database. Procedure parameters and their values are not written to the
controller. To send a procedure parameter to the controller, the procedure parameter
must be assigned to a phase parameter, since only phase parameters are sent to the
controller.
The data types available for a procedure parameter are floating point, string, list, and
equipment list. In the case of list and equipment list, the possible values that could
be used are configured in the form of a list, permitting the configurer to limit the
choices available to an operator at run time.
The default value must be a constant, not an expression. Part of the process of
defining procedure parameters is to specify whether it is a private parameter for
which the default will always be used, or a public parameter for which the value can
be changed by a user with the correct access level (and to specify the minimum
access level). Private parameters are not displayed when a batch is scheduled. The
values of private batch parameters can be read and set using batch web service
function calls.
Refer to Changes to a Private Parameter on page 101 for information about the
special circumstances under which the default value of a private parameter is not
used.

86 3BUA000146-600 A
Section 3 Parameter, Variable, and Expression Overview Assignment of Procedure Specific Values

When scheduling a Batch, the operator can enter a custom value for a public
parameter. This custom value can be a constant or an expression. When a batch is
scheduled, the operator will be able to view the public procedure parameters
assigned to the top level of the procedure being used to run the batch. Procedures
can contain nested subprocedures that in turn can contain other subprocedures. At
run time the operator will be presented with the list of procedure parameters for the
top level procedure only (refer to Figure 17). Therefore, if a subprocedure contains a
procedure parameter that the operator needs to assign a special value at run time,
during procedure configuration the configurer must make the link between
procedure parameters on various procedure levels as discussed in Passing Parameter
Values to a Nested Subprocedure on page 94.
The procedure parameters defined here can be used to specify a value for phase
parameters for this procedure. This specification of values for phase parameters
used by this procedure is done during procedure configuration as described in
Assignment of Procedure Specific Values on page 87. Refer to Configuration of
Procedure Parameters on page 224 for detailed procedures on adding and editing
procedure parameters.

Assignment of Procedure Specific Values


During creation of a procedure, objects are drawn on the procedure function chart.
Among the objects available to the procedure configurer are objects for batch
manager action (BMA), procedure, and phase. Each object of these types must be
assigned. In other words, the system must be told which BMA, procedure, or phase
the object represents.
Specifying what an object represents is performed using a window accessed from
the Edit menu in the PFC Editor window. The window used to assign an object
varies, depending on the type of object being defined. Once an object representing a
phase is added to a PFC, the Block Properties option on the Edit menu opens a
window used to specify the phase the object represents. Once the phase has been
specified, the window will be updated to show the list of phase parameters
associated with that phase as configured in the equipment aspects. Text entry boxes
are provided for the assignment of procedure specific values to these phase

3BUA000146-600 A 87
Assignment of Procedure Specific Values Section 3 Parameter, Variable, and Expression Overview

parameters. Figure 15 shows a Phase Operation Assignment window in which


procedure specific values have been entered.

Figure 15. Phase Operation Assignment Window

The default value assigned to phase parameter Agitator is 0 (representing off).


However, the value assigned here is represented by agit, a procedure parameter
defined in the procedure parameter configuration step described in Creation of
Procedure Parameters on page 86. Remember that when a batch is scheduled, the
operator will be able to see all procedure parameters for the top level procedure.
Therefore, if a procedure parameter (agit) is used to represent the value of a phase
parameter (agitator), the operator may be able to change the value of the phase
parameter at run time by changing the value of the procedure parameter used to
specify the value of the phase parameter. Whether the operator will be able to make
the change will depend on whether the procedure parameter was defined as a public
parameter, and whether the operator has a high enough access level. (Although it is
also possible for an operator to change the value of a phase parameter directly at run
time, it can not be done from the Batch Schedule window.)

88 3BUA000146-600 A
Section 3 Parameter, Variable, and Expression Overview Procedure Parameters Accessible When

The value assigned to phase parameter FtType is also represented by a procedure


parameter.
The value of phase parameter RmAmount has been specified by an expression
containing procedure parameters and a constant. Expressions are discussed in
Expressions and Variables on page 100.
The value specified for phase parameter RmType is a string RM1. The fact that it is
a string is indicated by the double quotation marks (") enclosing RM1.
The values assigned to the phase parameters here will be the defaults any time a
copy of this batch (master) procedure is used as a control procedure to run a batch.
However, each time the procedure is used, phase parameter values specific to that
instance of the procedure for a batch can be assigned. Refer to Viewing and
Changing Procedure Parameters at Run Time on page 91.

Procedure Parameters Accessible When a Batch Is Scheduled


When an operator schedules a batch to run, there is an opportunity for custom values
to be assigned to public procedure parameters. The operator uses a batch scheduler
window to assign a batch ID, select a procedure to be used for the batch, schedule a

3BUA000146-600 A 89
Procedure Parameters Accessible When a Batch Is Scheduled Section 3 Parameter, Variable, and

start time for the batch, etc. Click Parameters in the Batch Schedule window and
the window shown in Figure 16 will open.

Figure 16. Batch Parameters Window

The parameters listed are the procedure parameters for the top level procedure. To
the right of the procedure parameter name is its description and the default value
assigned during the procedure configuration step described in Creation of Procedure
Parameters on page 86. The operator can accept these values for the batch or assign
new ones using the text entry boxes, if the operator has the appropriate access level.
When specifying values, the operator can use an expression as described in
Expressions and Variables on page 100.
The function of scheduling a batch is also protected through the Batch
Management security system. Refer to Security on page 56.
Once new values have been entered, click Check to cause the system to attempt to
check the expressions. Range checks will be performed for constants. Equipment
names will be checked for validity. In addition, if any special checks were

90 3BUA000146-600 A
Section 3 Parameter, Variable, and Expression Overview Viewing and Changing Procedure

configured for the parameters during procedure configuration, these checks will be
executed.
True computation of the expressions is not possible at this point because the
values required for computation do not exist until runtime.
The following values are examples of data that does not exist in the configuration
view:
-Any expression that uses OPC items from the running system.
- Batch and Global variables that are initialized and/or their values set in another
procedure.
These variable(s) are not initialized or the values are not correspond to the values
set during runtime in the procedure being tested.
Any procedure or phase parameters using expressions that use OPC items, Batch
variables or Global Variables can calculate the values that are out of range at
runtime.
If the check is successful, the newly entered values will be displayed in the Value
column. Clicking OK will result in the entries being checked and the window being
closed.
Not only can the procedure be configured to permit the operator to assign custom
values to procedure parameters at run time, a means has also been provided for
making last minute changes to public phase parameters under certain circumstances
as described in Viewing and Changing Procedure Parameters at Run Time on page
91.

Viewing and Changing Procedure Parameters at Run Time


An object on an PFC can represent another procedure, commonly called a
subprocedure. This nested procedure may contain procedure parameters. The
Parameter button on the block status window for a procedure block representing a
subprocedure provides access to the window (Figure 17) used to change procedure
parameters created when the nested subprocedure was configured. Additional
information about passing parameter values between layers of a procedure is

3BUA000146-600 A 91
Viewing and Changing Procedure Parameters at Run Time Section 3 Parameter, Variable, and

provided in Passing Parameter Values to a Nested Subprocedure on page 94.

Figure 17. Block Parameters Window

This window will contain the public procedure parameters for the subprocedure
PFC represented by the block on the higher level procedure that was clicked on to
display this window. The procedure parameters are followed by their descriptions.
The Value column shows the value of the expression shown in the Expression
column. If no expression has been entered (the Expression column is empty), the
Value and Default column values will be equal.
If the Default Value is set to 'No Default', then the Expression Column cannot be
left empty. The user must provide an expression value. Users can choose a
specific unit from the drop-down menu as shown in Figure 18, or change the type
to Equipment List and then choose ‘No Default’.

92 3BUA000146-600 A
Section 3 Parameter, Variable, and Expression Overview Viewing and Changing Procedure

Figure 18. Expression Column

The assignment of the value can be changed for this instance of the PFC if the
operator has a high enough access level. To assign a new value, enter a new
expression or edit the existing expression in the Expression column. The function
wizard can be used to enter an expression by clicking in the Expression column and
clicking the function wizard toolbar button. Once the new value has been assigned,
click Compute to cause the system to check for syntax errors, evaluate the
expression, and display the new value in the Value column. Clicking OK causes all
the expressions to be checked for syntax errors, evaluated and the window being
closed.
On the Procedure Operation Assignment window, users should choose No default
under default value column and then click OK. Without selecting an expression if
the users schedule Batch through web services or any alternate methods, there is an
error message displayed at the Start block of the PFC runtime as shown in
Figure 19.

3BUA000146-600 A 93
Passing Parameter Values to a Nested Subprocedure Section 3 Parameter, Variable, and

Figure 19. Error Message

Passing Parameter Values to a Nested Subprocedure


An important aspect of Batch Management flexible batch processing is the ease
with which procedure elements can be reused. Procedures contain phases that can
be reused within one procedure, as well as being used by any number of procedures.
Procedures also can contain nested subprocedures. Thus, a procedure can be thought

94 3BUA000146-600 A
Section 3 Parameter, Variable, and Expression Overview Passing Parameter Values to a Nested

of as consisting of a number of layers. As the diagram in Figure 20 shows, an object


on a top level PFC can represent another procedure that is at a lower level.

Figure 20. Passing Procedure Parameter Values From the Top Down

This hierarchical decomposition of a complex procedure not only facilitates


configuration by permitting reuse of tested subprocedures, but also maximizes
clarity of presentation of the process to the operator. The operator can monitor the
progress of a batch process through a series of PFCs, instead of being confronted
with one PFC crammed with information.
When assigning an object on a higher level procedure to represent a lower level
procedure, the lower level procedure must already exist. Each subprocedure is
configured as if it were a stand alone procedure, with a start and end in its PFC. In
addition, each procedure, regardless of whether it is meant to be a top level

3BUA000146-600 A 95
Passing Parameter Values to a Nested Subprocedure Section 3 Parameter, Variable, and

procedure, or be nested within another procedure, will have its own set of procedure
parameters configured in the window accessed by selecting Tools > Procedure
Parameters from the title bar of the screen used to draw the PFC.
At run time, only the procedure parameters for the top level procedure and the
current level procedure will appear on the window displayed using the Batch
Parameter and Parameter buttons, respectively, on the Batch Schedule window. If
the operator needs to enter a custom value for a procedure parameter in a nested
procedure on the second level, the configurer must create a procedure parameter on
the top level procedure, then define the value of the procedure parameter at the
lower level to be the upper level procedure parameter.
For example, assume a top level procedure called VegSupreme is being created.
VegSupreme is a soup procedure that includes a subprocedure that has already been
created called CondenseSoup. CondenseSoup uses a procedure parameter called
vat_temp. The product specialist wants the operator to be able to manually enter a
temperature at run time. However, at run time the Batch Schedule window
Parameter button will display only the VegSupreme parameters, so vat_temp will
not be included because it is a procedure parameter for the lower level procedure,
CondenseSoup. The solution is to create a VegSupreme procedure parameter called
Vat_Temp, and to define the value of the CondenseSoup procedure parameter
vat_temp as being Vat_Temp, the VegSupreme procedure parameter. This
assignment is made using assign object for the CondenseSoup procedure block
during the configuration of VegSupreme.
When the operator enters a value for Vat_Temp in the top level procedure, the value
will be passed down to vat_temp in the lower level procedure. Refer to Figure 20.
There is nothing stopping the procedure parameters, at all levels, having the same
name. However, to avoid confusion until the operators become familiar with the
concept of parameter value passing, the configurer might want to differentiate
between top level procedure parameters and lower level parameters using upper and
lower case, or some other system that seems useful locally.
There is no limit to the number of procedure levels through which a value can be
passed, as long as the value definition of a procedure parameter on each level points
to a procedure parameter on the level above it. A subprocedure will only get a value
from the level immediately above it.

96 3BUA000146-600 A
Section 3 Parameter, Variable, and Expression Overview Parameter Summary

So far only the description of passing a value down through layers has been
discussed. Values can be passed both up and down between PFC layers through the
use of expressions and variables (refer to Expressions and Variables on page 100 for
more information).

Parameter Summary
A summary of phase and procedure are shown in Table 7, and Table 8.

Table 7. Phase Parameters

Configured
Node Value Applies To Considerations
By
Batch Equipment Parameter All uses of parameter It is recommended that the
Management aspects name, default in all procedures name match the name in
value, access unless procedure or controller equipment phase.
level batch specific values
are assigned
PFC Procedure All uses of the Value can be specified using a
configuration specific value parameter in this constant or an expression
phase object instance of this
assignment phase in this PFC
Batch PFC Batch This instance of this Value can be specified using a
phase object specific value phase in this batch constant or an expression; can
block status for this phase not be changed once
window instructions to run the phase
have been sent to the
controller by the batch
manager

Output Parameters
Batch advanced phase parameters with the direction of out and in/out (Refer to
Section 4, Equipment Configuration (Batch Advanced Templates).) send parameter

3BUA000146-600 A 97
Output Parameters Section 3 Parameter, Variable, and Expression Overview

Table 8. Procedure Parameters

Node Configured In Value Applies To Considerations


Top Level Procedure
Batch PFC procedure Parameter name, All uses of parameter in Default must be
Management parameter default value, this PFC unless a batch a constant
configuration public/private, specific value is
access level assigned
Batch parameter Batch specific All uses of the parameter Value can be
window from batch value in this instance of the specified using
schedule window procedure (PFC) a constant or an
expression
Lower Level Procedure
Batch PFC procedure Parameter name, All uses of parameter in Default must be
Management parameter default value, this PFC unless a batch a constant
configuration public/private, specific value is
access level assigned
Block status window Batch specific All uses of the parameter Value can be
for object on higher value in the lower level PFC for specified using
level procedure the batch a constant or an
representing lower expression
level procedure

values to the PDL database. One use of this database is to provide parameter values
for reports.
An out direction parameter does not receive a value from Batch Management. At
phase completion, Batch Management retrieves the value of the OutValue controller
variable (Figure 21) and stores this value in a procedure variable (if specified by the
procedure). This value is also sent to the PDL database. The control logic must be
configured to write the appropriate output value to the OutValue variable. The

98 3BUA000146-600 A
Section 3 Parameter, Variable, and Expression Overview Output Parameters

output value will not be collected if the logic does not write a value to the OutValue
variable.

Figure 21. Controller Variables Tab

An in/out direction parameter receives a value from Batch Management before it is


invoked. At phase completion, Batch Management retrieves the value of the
OutValue controller variable and provides both the parameter starting value
(provided by Batch Management) and final value of the OutValue variable to the
PDL database. The final value of the OutValue variable is also stored in a procedure
variable (if specified by the procedure). The control logic must be configured to
write the appropriate output value to the OutValue variable. The output value will
not be collected if the logic does not write a value to the OutValue variable.

3BUA000146-600 A 99
Expressions and Variables Section 3 Parameter, Variable, and Expression Overview

Expressions and Variables


To provide maximum flexibility, the value to be represented by a procedure
parameter on a lower level procedure can be specified using an expression when the
procedure is used by a higher level procedure. An expression can also be used to
specify the procedure specific or batch specific value of a phase parameter. The
procedure and phase parameter default must be a constant. Details concerning the
structure, operators, and syntax of batch expressions are provided in Appendix A,
Configuring Batch Variables and Expressions.
A number of operators are available for use in batch expressions. Batch expressions
can be used in place of a constant numeric or text value in many configurable items.
Some of the uses for the operators are discussed in Table 9.

Table 9. Operator Usages

Usage Description
Compute BMA Compute batch manager action is an object on a PFC that performs
a computation.
Select equipment BMA Select equipment batch manager action is an object on a PFC that
selects a piece of equipment.
Transition object Transition object is an object on a PFC that tests a condition before
allowing batch processing to continue.
Procedure parameter value The specification of a procedure parameter value.

The operations include arithmetic and trigonometric functions, comparison


operations, string and file functions, and functions to put and get tag data, and batch
database data. Custom functions can also be created. Operators are also available to
store data as a named variable, and to retrieve the data using the variable name. It is
not necessary to declare these variables. Simply using an expression putting data to
the variable creates it. The value is put into a storage space from which it can be
retrieved.
These variables can be edited through the Overviews window (Figure 22), which
can be accessed through the Batch Variables context menu command in the
runtime view of PFC Editor.

100 3BUA000146-600 A
Section 3 Parameter, Variable, and Expression Overview Changes to a Private Parameter

Figure 22. Overviews Window

These variables are not the same as equipment phase controller variables. There are
three sets of get and put commands for batch variables, each set with a different
scope. Refer to Table 10.
The bvarput and bvarget commands are extremely useful for making a value
available to all layers of a procedure.

Changes to a Private Parameter


There is one circumstance that can result in the value of a private parameter being
changed from the default assigned during configuration. The user can take
advantage of the auto equipment scheduling function. To use this function a special

3BUA000146-600 A 101
Changes to a Private Parameter Section 3 Parameter, Variable, and Expression Overview

object must be added to the PFC for a procedure. This object represents the select
equipment batch manager action described in Section 6, Procedures. When this
object is used in a PFC the batch manager will automatically select the equipment to
be used at run time based on the attributes and selection criteria that have been
configured.
If the same procedure also contains a procedure parameter relating to the
equipment, the default value assigned to the procedure parameter by the configurer
will be overwritten at run time even if the procedure parameter is a private
parameter. A procedure equipment parameter can be overwritten as a result of a
select BMA action.
This can also have an effect on the value of a phase parameter. In Assignment of
Procedure Specific Values on page 87 it was stated that a procedure parameter can
be used to specify the value of a phase parameter. If the procedure parameter is
overwritten as a result of the select equipment batch manager action, then the batch
manager action will result in the value of the phase parameter being changed as a
result of the change to the procedure parameter.

Table 10. Get and Put Commands for Variables

Command Description
varput, varget, The varput command is used to create a variable and store a numeric value
varputs, vargets where it is accessible to a varget command within the same PFC. The varputs
and vargets commands are used for strings.
bvarput, bvarget, The bvarput command is used to create a variable and store the numeric
bvarputs, bvargets value where it is accessible to a bvarget command in any PFC within a single
batch. The bvarputs and bvargets commands are used for strings.
gvarput, gvarget, The gvarput command is used to create a variable and store the numeric
gvarputs, gvargets value where it is accessible to a gvarget command in any PFC in any batch on
the system. The gvarputs and gvargets commands are used for strings.

102 3BUA000146-600 A
Section 4 Equipment Configuration (Batch
Advanced Templates)

Introduction
This section describes the configuration of Batch Management equipment using
batch advanced templates control modules:
• PhaseTemplate
• SharedEquipmentModuleTemplate
• UnitTemplate
• Batch Unit Instances

Overview
Equipment configuration consists of:
• Creating phase module types.
• Defining phase module type logic and parameters.
• Creating batch equipment control module types.
• Defining batch equipment control module type logic and attributes.
• Creating instances of the types.
Creation of equipment phase and unit logic is performed using a controller specific
application. Batch Management is used to define plant equipment, equipment
attributes, phases, phase parameters, and to assign phases to equipment.
Workstations used to configure batch equipment must contain the Control Builder
M Professional function.

3BUA000146-600 A 103
Phase Types Section 4 Equipment Configuration (Batch Advanced Templates)

Phase Types
Phases are created so that procedure developers need only specify a phase name and
set the parameters for phases that they need to execute. They do not need to know
the details of how the phase works or how it can work differently on the different
pieces of equipment it is assigned to work on.
To create and configure (in a library) the phase types used by procedure developers:
1. Create a new project (if it does not already exist):
a. Open the 800xA plant explorer workplace.
b. Select the Control Structure in the plant explorer workplace.
Step c through Step h are not necessary if the control network already exists and
is configured to use the appropriate OPC® server node.
c. Add a Control Network object to the object that will contain the control
network which in turn will contain the Control Builder project.
d. Select the OPC Data Source Definition aspect of the newly created control
network and click New.
e. Click Add in the New Service Group window.
f. Select the desired OPC server node in the Add Service Provider window
and click OK.
g. Click OK in the New Service Group window.
h. Click Apply.
i. Add a new object of the desired project type to the newly created control
network.
j. Select the Project aspect of the newly created control project.
k. Select the Libraries tab. and click Insert.
l. Select Object Types\Control System\AC 800M/C
Connect\Libraries\BatchAdvTemplatesLib x.x-x and click OK.
Templates can be copied into an application or library.

2. Create a custom library:

104 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Phase Types

a. Right click the control project and select Open Project to open the
Control Builder M Professional window.
b. Right click Libraries and select New Library.
c. Enter a name for the custom library being created and click OK.
d. Right click Connected Libraries located under the custom library and
select Connect Library.
e. Select ProduceITBatchLib in the Connect Library window and click OK.
f. Repeat Step d through Step e for the BasicLib, BatchAdvTemplatesLib,
IconLib, MMSComLib, and AlarmEventLib libraries.
3. Create the necessary phase types:
a. Right click Libraries\BatchAdvTemplatesLib x.x-x\Control Module
Types\PhaseTemplate (Batch Phase) and select Copy.
b. Right click Control Module Types within the custom library and select
Paste.
c. Select the Control Builder Name aspect of the newly pasted
PhaseTemplate (Batch Phase) object (Object Type Structure\Object
Types\Control System\AC 800M/C
Connect\Libraries\user_library_name\Control Module
Types\batch_phase_name).
d. Enter a unique name for the phase type and click Apply.
e. Select the Batch Phase aspect of the newly pasted batch phase object in
the plant explorer workplace.
f. Select the General sheet.
g. If necessary, edit the Short Name field to contain an abbreviated name of
the batch phase. This name is combined with the Unit Instance Name and
used during the automatic generation of batch parameter variables, batch
attribute variables, alarm source names, etc. The combined name must be
unique among all phases within a unit and is limited to a maximum of 30
characters.

3BUA000146-600 A 105
Phase Types Section 4 Equipment Configuration (Batch Advanced Templates)

h. Enable the Private option if the phase is to be executed by controller


applications only (not executable from procedures). Leave this option
disabled to allow execution of the phase by procedures.
i. Enable the Application Accessible option to allow applications running in
the controller to execute this phase. Leave this option disabled to prevent
controller applications from executing phases created from this type.
j. Enable the Start Only If Normal option to ensure that the phase will start
only if the batch equipment it is connected to is in the running state.
Attempts to start a phase on equipment that is any other state results in the
failure of the phase to start and the phase remaining in its current state.
Leave this option disabled to allow the phase to start regardless of the
batch equipment state.
k. Select the parameters sheet.
l. Use the insert a new phase parameter button to add and configure all the
phase parameters for this phase. Refer to Figure 23. Table 11 describes the
parameter fields.

Figure 23. Phase Parameter Configuration

m. Click the save button.


The order in which the parameters are displayed on the Parameter sheet can be
changed by selecting the parameters to be moved and dragging them to the desired
location within the list. While dragging, a red line indicates the location to which the
parameters will be moved.
Phase parameter data can be copied (from an Excel spreadsheet, another phase, etc.)
to the phase parameters sheet. If no parameters currently exist in the phase or none
of the existing parameters are to be overwritten and the copied parameters names do

106 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Phase Types

Table 11. Phase Parameter Fields

Field Description
Name Defines the name of the parameter. Do not use Control Builder data type names in
parameter names.
Local Parameter name becomes the phase control module variable name which is
limited to a maximum of 30 characters.
Non-local Parameter name is combined with the phase short name to create the phase
control module parameter name which is limited to a maximum of 30 characters.
Description Detailed description of the parameter.
Type The three types are text, float, and integer. Text types are either unconstrained or
constrained. Unconstrained means that any text can be entered into the Value
field. Constrained means that data entered in the Constraints field will determine
what value can be entered for this parameter. It is used when it is necessary to limit
the potential values available.

Direction The three directions are in, out, and in/out:


The in direction identifies a parameter that receives a value from Batch
Management when the phase starts.
The out direction identifies a parameter that does not receive a value from Batch
Management. Batch Management retrieves the value of the OutValue variable at
phase completion and stores this value in a procedure variable (if specified by the
procedure). This value is also sent to the PDL database.
The in/out direction identifies a parameter that receives a value from Batch
Management when the phase starts. Batch Management retrieves the value of the
OutValue variable at phase completion and sends both the parameter starting
value (provided by Batch Management) and final value of the OutValue variable to
the PDL database. The final value of the OutValue variable is also stored in a
procedure variable (if specified by the procedure).
Refer to Output Parameters on page 97 for more information about the out and
in/out directions.

3BUA000146-600 A 107
Phase Types Section 4 Equipment Configuration (Batch Advanced Templates)

Table 11. Phase Parameter Fields (Continued)

Field Description
Level The three levels are local, level 1, and level N:
Local creates a variable in the phase control module with the name
_bparameter_name where parameter_name is the name of the parameter.
Level 1 creates a variable in the unit control module with the name
_bshort_nameparameter_name where short_name is the short name of the phase
and parameter_name is the name of the parameter. A connection (named
_bparameter_name) is created in the phase control module and set to the variable
in the unit control module.
Level N creates only a connection (named _bparameter_name) in the phase
control module. It is up to the configurer to use one of two possible methods to
define the variable and set the connections to this variable:
Level Method 1 - Define the variable at the unit control module and set the
(continued) connections in the phase control module. This is similar to Level 1 but allows
configurer to control variable naming instead of using the automatic naming
scheme.
Method 2 - Define the variable at the Control Builder application as an
application variable (Variables sheet on the application). Configurer must also
add a connection in the instantiated unit control module, set the phase control
module connection to the unit control module connection, and then set the
unit control module connection to the application variable.
When adding a level N parameter to a phase type from which instances have
already been made, a set of warnings (about failing to set ranges and not finding
variables for the ranges) is generated for each instance because connection to the
variable cannot be made until after the add operation. After the variable has been
added and connected, the configurer must use the equipment editor on each
phase instance to set the instance specific ranges and default values. If the added
level N parameter has a direction of Out or In/Out, run unit synchronization with the
Level N Out and In/Out parameters option enabled (from the Equipment Settings
tab of the Miscellaneous Configuration aspect).
Default value Defines the default value. If constraints are going to be used, configure them first
and then use the pull-down menu in this field to select the appropriate default
value.

108 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Phase Types

Table 11. Phase Parameter Fields (Continued)

Field Description
Low Low limit parameter. This field is mandatory by default but can be left blank if the
appropriate Miscellaneous Configuration aspect option is enabled.
High High limit parameter. This field is mandatory by default but can be left blank if the
appropriate Miscellaneous Configuration aspect option is enabled.
Eng. Units Defines the measurement units (lbs, secs, etc.).
Access level Defines the default access level for the parameter used during batch run time. An
access level of no access denotes parameters that cannot be changed at run time
(default values are always used).
Constraints Displays the constraint list for text type parameters. Separate value by commas
and use space for blank spaces. Leave this field empty for unconstrained text
types.

not currently exist on the phase parameters sheet, the copied data is added onto the
phase parameters sheet. However, parameters can’t be pasted directly onto the phase
parameters sheet. It is necessary to create blank rows and then paste the parameters
into the blank rows.
The Equipment sheet will show all the equipment that this phase applies to. Refer to
Figure 24. Only after the phases are assigned to the equipment will this sheet
display information.

Figure 24. Procedure Phase - Associated Equipment

3BUA000146-600 A 109
Equipment Phase Logic Section 4 Equipment Configuration (Batch Advanced Templates)

Equipment Phase Logic


Control logic in the controller that defines how a task is performed by a piece of
equipment is called equipment phase logic. This logic may use control module
parameters, phase parameters, or both to accomplish the task. These parameters are
set to the values configured in the equipment phase when the phase is executed.
Equipment phase logic is developed, tested, and downloaded from a controller
specific application. This application also puts equipment phase data into the
appropriate 800xA structure. The control structure is used by AC 800M/C
controllers.
To define equipment phase logic:
1. Right click the custom phase type (Object Type Structure\Object Types\Control
System\AC 800M/C Connect\Libraries\user_library_name\Control Module
Types\batch_phase_name) and select Control Module Type Editor. The logic
editor window (Figure 25) is displayed.

Figure 25. Logic Editor Window

110 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Batch Equipment

2. Configure the phase type logic as desired and save the phase type.
All parameters and variables whose name contains the _b prefix have been
created by Batch Management for internal use and should not be edited in any
way.

Batch Equipment
Batch equipment that will execute equipment phase logic must have the equipment
phase assigned to it. All the equipment phases that can be executed on a piece of
equipment must be assigned to that equipment.
The following procedure describes how to use a unit control module template to
create a unit control module type. The procedure to use shared equipment module
templates to create shared equipment module types is similar to this procedure
except for the additional steps required to utilize the shared equipment
communication modules. Refer to Shared Equipment Communication Modules on
page 115 for more information.
To create and configure a unit control module type:
1. Right click Libraries\BatchAdvTemplatesLib x.x-x\Control Module
Types\UnitTemplate (Batch Unit) in the Control Builder M Professional
window and select Copy.
2. Right click Control Module Types within the custom library and select Paste.
3. Select the Control Builder Name aspect of the newly copied UnitTemplate
(Batch Unit) object and select Rename. (Object Type Structure\Object
Types\Control System\AC 800M/C
Connect\Libraries\custom_library_name\Control Module
Types\batch_unit_name)
4. Enter a unique name for the type and click Apply.
5. Select the Batch Equipment aspect of the renamed batch unit object in the
800xA plant explorer workplace.
6. Configure the Controller Type properties. Refer to Table 39 for more
information. Refer to Figure 37.
7. Select the Equipment Attributes sheet.

3BUA000146-600 A 111
Batch Equipment Section 4 Equipment Configuration (Batch Advanced Templates)

8. Use the insert a new attribute button to add and configure all the attributes for
this unit. Table 12 describes each attribute.

Table 12. Equipment Attribute Fields

Field Description
Name Defines the name of the attribute (30 characters maximum). Do not use Control
Builder data type names in attribute names.
Description Detailed description of the attribute.
Type The four types are text, float, integer, and OPC data point. Text types are either
unconstrained or constrained. Unconstrained means that any text can be entered
into the Value field. Constrained means that data entered in the Constraints field
will determine what value can be entered for this attribute. It is used when it is
necessary to limit the potential values available. OPC data point is a reference to
an OPC item. When used to set a property within a piece of batch equipment, the
OPC data point is unit relative.
In Controller Determines if a control module representing the attribute is added to the unit object
(enabled) or the attribute data is kept in the batch database (disabled).
Constant Makes an In Controller attribute not writable (enabled) or writable (disabled). This
applies to both the equipment status and recipe logic using the unitattput,
unitattputs, rwattput, and rwattputs commands.
Default value Defines the default value. The default value of an OPC data point is a path to a
selectable OPC item. If constraints are going to be used, configure them first and
then use the pull-down menu in this field to select the appropriate default value.
The default value defined in the equipment aspects does not change at run time.
Low Low limit attribute. This field is mandatory by default but can be left blank if the
appropriate Miscellaneous Configuration aspect option is enabled.
High High limit attribute. This field is mandatory by default but can be left blank if the
appropriate Miscellaneous Configuration aspect option is enabled.
Eng. Units Defines the measurement units (lbs, secs, etc.).

112 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Batch Equipment

Table 12. Equipment Attribute Fields (Continued)

Field Description
Access level This defines the runtime access level to the attribute. The Batch Manager has the
highest access level. Therefore, a recipe can write to any equipment attribute that
has an access level other than No Access (using unitattput/unitattputs commands).
A recipe can also write the values to the attribute with the Access Level of “No
Access” for the following attribute types/fields:
• OPC properties (OPC Datapoint, OPC Float, OPC Integer and OPC Text)
• In Controller
A recipe cannot write the values to No Access Local attributes (Float, Integer and
Text).
Constraints Displays the constraint list for text type attribute.

9. Click the save button.


The order in which the attributes are displayed in the Equipment Attributes
sheet can be changed by selecting the attributes to be moved and dragging them
to the desired location within the list. While dragging, a red line indicates the
location to which the attributes will be moved.
10. Click the insert a new equipment phase button.
11. Select the phase type to associate with the unit type in the Phase to Insert
window and click OK.
12. If desired, edit the Phase Alias field. The default value of this field is the name
of the phase control module type. When the phase alias is saved, it will be the
Control Builder name of the phase. The phase alias is also used by the
procedure editor to create the list of possible phases that can execute on a piece
of equipment.
13. Click the save changes button.
14. Repeat Step 10 through Step 13 for each phase type that is to be associated
with the unit type.
15. Right click the unit type in the Control Builder M Professional window and
select Editor.

3BUA000146-600 A 113
Batch Equipment Section 4 Equipment Configuration (Batch Advanced Templates)

16. Configure the unit type logic as desired.


17. Save the unit type.
18. To display attribute information (for up to 10 attributes) on the Attributes tab:
a. Right click the Attributes faceplate element aspect of the unit control
module object and select Edit.
b. Select the object that represents the attribute in the right side of the
Element Browser window.

Figure 26. Element Browser Window

c. Select InputElement on the left side of the window.


d. Click Add Element.
e. Move the highlighted object to the desired location on the Attributes tab.
f. Repeat Step b through Step e for the remaining attributes.
g. Save the faceplate information and exit the graphic builder window.
19. Deploy the Attributes aspect.

114 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Shared Equipment

Shared Equipment Communication Modules


The total number of BatchCommServer (one per shared equipment type) and
BatchCommServerExt control modules on a shared equipment type should be equal
to the number specified in the Maximum Users equipment property.
Add a BatchConnect control module to the control modules that request data from
the shared equipment type. Configure the parameters of the BatchConnect control
modules to communicate with the BatchCommServer control module supplying the
data.
Customer control logic should be configured so that if a connect operation fails, it
will be retried up to two more times. One second should separate the connect
operations.

Equipment Logic
Control logic in the equipment that defines how a task is performed by a piece of
equipment is called equipment logic. This logic may use control module parameters,
equipment attributes, or both to accomplish the task. These parameters are set to the
values configured in the equipment.
Equipment logic is developed, tested, and downloaded from a controller specific
application. This application also puts equipment data into the appropriate 800xA
structure. The control structure is used by AC 800M/C controllers.
To define equipment logic:
1. Right click the custom equipment type (Object Type Structure\Object
Types\Control System\AC 800M/C Connect\Libraries\user_library_name
\Control Module Types\batch_shared_equipment_name) and select Control

3BUA000146-600 A 115
Equipment Logic Section 4 Equipment Configuration (Batch Advanced Templates)

Module type Editor. The logic editor window (Figure 27) is displayed.

Figure 27. Logic Editor Window

2. Configure the equipment type logic as desired and save the equipment type.
All parameters and variables whose name contains the _b prefix have been
created by Batch Management for internal use and should not be edited in any
way.

116 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Control Module Instances

Control Module Instances


Instances of the control module types to be used must be added to an application
within the Control Builder project. To add the first application to the Control
Builder project, rename the default application with a unique name.
Add only the control module instances that are required. Instances that fail to
connect or become disconnected (caused by bad OPC quality or the controller
through which the equipment communicates becoming unavailable) consume
CPU resources which can effect performance. Make disconnected instances
inactive to prevent unnecessary CPU resource consumption
To add other applications (second, third, etc.) to the Control Builder project:
1. Right click Applications in the Control Builder M Professional window and
select New Application.
2. Enter a unique name for the application in the New Application window and
click OK.
To connect libraries to an application contained within a Control Builder project:
1. Right click application_name\Connected Libraries and select Connect
Library.
2. Select the ProduceITBatchLib library in the Connect Library window and click
OK.
3. Repeat Step 1 through Step 2 for the BasicLib, BatchAdvTemplatesLib,
IconLib, MMSComLib, and AlarmEventLib libraries.
To add an instance of a control module type to an application:
1. Right click Control Modules within the application in the Control Builder M
Professional window and select New Control Module.
2. Select the application or library containing the control module type (from
which the instance is to be created) in the New Control Module window

3BUA000146-600 A 117
Control Module Instances Section 4 Equipment Configuration (Batch Advanced Templates)

(Figure 28).

Figure 28. New Control Module Window

3. Select the control module type and enter a unique name for the control module
instance in the Instance Name field.
4. Enable the Connect parameters option and click OK.
Disabling the Connect parameters option allows parameters to be connected at a
later time by right clicking the control module instance and selecting
Connections on the pop-up menu.
5. If the Connect parameters option was not enabled, connect each parameter by
specifying a variable, parameter, or text in the Parameter column of the
Connections window (Figure 29). If the Connect parameters option was

118 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Tasks

enabled, proceed to Step 7.

Figure 29. Connections Window

6. If desired, select Editor > Check to verify that the Parameter column
information is correct. Results of the check function are listed at the bottom of
the window.
7. Select Editor > Save to check and save the control module instance.

Tasks
A task must be assigned to every application in the project. The project will not
download correctly if a task is not assigned to each application.

Controller Settings
Two parameters in every controller utilizing the ProduceITBatchLib library must
have its buffer configured to support the large string events generated by Batch
Management. To access the AE Max no of Named Value items and AE Max Percent
of Log Strings parameters:
1. Right click the CPU of the controller and select Editor.

3BUA000146-600 A 119
AE Max No of Named Value ItemsSection 4 Equipment Configuration (Batch Advanced Templates)

2. Select the Settings sheet.

AE Max No of Named Value Items


The desired result from the queue should be determined before the value of this field
can be calculated. For example, a plant that only needs to prevent the loss of events
when the input rate of events to the queue exceeds the output rate of the queue (in
the case of bursts of events) would need a relatively small queue. A plant that cannot
lose events would need a larger queue to handle the bursts of events and prevent the
loss of events due to the short term loss of a server.
The events that contribute named value items to this queue are:
• Phase start and phase complete events (Number of named value items per event
= 2 + number of phase parameters).
• Phase level state change events (Number of named value items per event = 3).
• Unit level state change events (Number of named value items per event =
3 + (3 * number of phases in the unit)).
• Events generated by Data To Simple Event function codes. The configuration
of these function codes will determine the number of named value items
required by these function codes.

AE Max Percent of Log Strings


The recommended minimum value for this parameter is 40 percent. Add up the total
number of string phase parameters used in the maximum number of active phases in
the controller to determine the actual percentage value.

Actual Memory Allocation


The total amount of memory allocated to the buffers that handle named value items
is calculated by adding
(AE Max No of Named Value Items * 170 * AE Max Percent of Log Strings)/100
and
(AE Max No of Named Value Items * 100 * (100 - AE Max Percent of Log
Strings))/100

120 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) AE Max Percent of Log Strings

and then dividing the sum by


(AE Max Number of Event Subscriptions + AE Max No of Local Printer Event
Queue)

Example Calculation
Assume a controller contains five units, the maximum number of phases that are
active simultaneously in any one unit is three, and each phase has 10 parameters.
Each phase has one phase start and one phase complete state change. Also assume
that the maximum number of events (Batch Management issued phase starts,
operator issued commands, units acquired, units set to running, etc.) generated by an
object (units and phases) is one per state change.
• 5 units.
• 3 simultaneous active phases per unit (maximum).
• 5 possible unit state change events * (3 * phases + 3) = 60 named value items.
• 15 possible phase change events * 3 = 45 named value items.
• 2 phase starts/completes per phase = 2 * (2 + 10 parameters) = 24 named value
items.
In this example, Batch Management commands all objects to change state about
every 60 seconds and a minimum of 10 minutes of event buffering is desired.
• 60 items + 45 items + 24 items = 129 items.
• 129 items * (600 secs/60 secs) = 1290 items.
• Maximum possible named value items in 10 minutes = 1290.
Assume that about 40 percent (AE Max Percent of Log Strings value) of the items
return string information while the remaining 60 percent returns numeric
information. Also, the AE Max Number of Event Subscriptions value is two and the
AE Max No of Local Printer Event Queues value is one. The actual controller
memory allocated is:
(1290 named value items * 170 bytes/item * 40)/100 = 87.72 kilobytes
(1290 named value items * 100 bytes/item * (100 - 40))/100 = 77.4 kilobytes
87.72 kilobytes + 77.4 kilobytes = 165.12 kilobytes
2 (event subscriptions) + 1 (local printer event queues) = 3 total queues

3BUA000146-600 A 121
Download Project Section 4 Equipment Configuration (Batch Advanced Templates)

Total memory allocated = 3 queues * 165.12 kilobytes = 495.36 kilobytes

Download Project
Download the Control Builder project to the desired controller by selecting Tools >
Download and Go Online in the Control Builder M Professional window.

Equipment Groups
Equipment groups are a convenient way to organize equipment. These groups make
it easier to create the member lists associated with equipment list type parameters.
Refer to Equipment List Type Parameters on page 229 for more information.
To create a new equipment groups:
1. Select the Equipment Structure in the plant explorer workplace.
2. Add an Equipment Groups object to the object (or the background to select the
root) that will contain the equipment groups object.
To create an equipment group, add an equipment group object to the equipment
groups object that will contain the equipment group.
To configure an equipment group object:
1. Select the equipment group aspect of the equipment group object.
2. Use the buttons to move batch enabled equipment from the Available
Equipment area to the Equipment In Group area and click Apply. Refer to

122 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Unit List Types with Duplicate

Figure 30.

Figure 30. Equipment Group Window

Unit List Types with Duplicate Names (displayed in PPA)


Unit name for the unit type parameter with the duplicate name is displayed in PPA
as shown in Figure 31.

3BUA000146-600 A 123
Unit List Types with Duplicate Names (displayed in PPA) Section 4 Equipment Configuration (Batch

Figure 31. Unit List Types with Duplicate Names

124 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Batch Advanced Templates

Batch Advanced Templates Library


The BatchAdvTemplatesLib contains functionality for Batch Handling using batch
advanced control modules. Templates for these control module types are provided in
this library. Copy the appropriate templates from this library to the user application
or library. Rename and edit the copied templates to create a control module type.
Create an instance of these types to utilize the configured functionality of the types.
During the compilation of the Batch control modules a number of warning
messages indicating the following may appear: Calling <Function Name>
multiple times is not recommended. To eliminate these warning message, set the
compiler switch setting: Multiple calls to same Function Block to Allowed for the
specific project in CBM.

State Change Diagrams


State change diagrams show what state to expect after issuing a state command.
Figure 32, Figure 33, and Figure 34 are the state change diagrams for units, shared
equipment, and phases.

3BUA000146-600 A 125
State Change Diagrams Section 4 Equipment Configuration (Batch Advanced Templates)

Figure 32. Unit State Change Diagram

126 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) State Change Diagrams

Figure 33. Shared Equipment State Change Diagram

3BUA000146-600 A 127
State Change Diagrams Section 4 Equipment Configuration (Batch Advanced Templates)

Figure 34. Phase State Change Diagram

128 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Data Types and Constants

Data Types and Constants


Constants (instead of actual values) should be used when checking for the following
commands and states. These constants are contained in the BatchCommands
(Table 13) and BatchStates (Table 14) data types.

Table 13. BatchCommands Constants

Initial
Name Data Type Attribute Description
Value
Start Dint Constant 1 Start command
Pause Dint Constant 2 Pause command
Hold Dint Constant 3 Hold command
Stop Dint Constant 4 Stop command
Abort Dint Constant 5 Abort command
Resume Dint Constant 6 Resume command
Restart Dint Constant 7 Restart command
Reset Dint Constant 8 Reset command
Acquire Dint Constant 9 Acquire command
Release Dint Constant 10 Release command
Disable Dint Constant 11 Disable command
Enable Dint Constant 12 Enable command
ClearException Dint Constant 13 Clear exception command
ResetRelease Dint Constant 14 Reset/Release command
AcquireStart Dint Constant 15 Acquire/Start command

3BUA000146-600 A 129
Templates Section 4 Equipment Configuration (Batch Advanced Templates)

Table 14. BatchStates Constants

Initial
Name Data Type Attribute Description
Value
Idle Dint Constant 0 Idle state
Running Dint Constant 1 Running state
Complete Dint Constant 2 Complete state
Pausing Dint Constant 3 Pausing state
Paused Dint Constant 4 Paused state
Holding Dint Constant 5 Holding state
Held Dint Constant 6 Held state
Restarting Dint Constant 7 Restarting state
Stopping Dint Constant 8 Stopping state
Stopped Dint Constant 9 Stopped state
Aborting Dint Constant 10 Aborting state
Aborted Dint Constant 11 Aborted state
OutOfService Dint Constant 12 Out of service state

Templates
The BatchAdvTemplatesLib library contains the following templates:
• PhaseTemplate.
• SharedEquipmentModuleTemplate.
• UnitTemplate.

PhaseTemplate
This control module is a template for the implementation of a phase module type
(equipment phase) in the controller. A unit module contains all phase-specific
functions, phase logic, and exceptions. Create an instance of the phase control
module type to implement a phase control module. Table 15 list the parameters used
by this template. Table 16 lists the variables used by this template.

130 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Templates

Table 15. PhaseTemplate Parameters

Initial
Name Data Type Description
Value
Name String (32 N/A IN - Name of the phase used as SRCName for
characters max) events
StartAppl Bool False IN/OUT - Start order from application, must be
connected to start application in core
_bBatchConnection BatchConnection N/A IN/OUT - Connection to unit or equipment
module
Status PhaseBatchStatus False OUT - Status, connected to core by default

Table 16. PhaseTemplate Variables

Initial
Name Data Type Description
Value
_bName String (32 N/A Short name for alarm and event, value created
characters max) when phase is added to a unit, format is
unit_namephase_short_name
_bProcedurePath String (140 N/A Path of the recipe procedure that started the
characters max) phase. This variable is not currently used
(reserved for future use).
_bData BatchDataConn N/A Connection between Core and
ection parameters/attributes
Exception BatchException N/A Exception from code, connected to core and
used by ThrowBatchException (by default)
RunningComplete Bool False Enables user to transition from first SFC to
second SFC
_bPrivatePhase Bool False Indicates if this phase is private (true) or public
(false)
_bApplicationAcces Bool False Indicates if an application can (true) or cannot
sible (false) issue start and reset commands to this
public phase

3BUA000146-600 A 131
Templates Section 4 Equipment Configuration (Batch Advanced Templates)

Table 16. PhaseTemplate Variables (Continued)

Initial
Name Data Type Description
Value
_bStartOnlyIfUnitNo Bool True Indicates if a phase can start only if the unit is in
rmal1 normal condition (true) or if the unit can be in an
exception condition (false)
NOTE: 1. The unit containing the phase must be acquired by the unit and the phase must be in auto mode before the
_bStartOnlyIfUnitNormal variable will function as described.

This template has code blocks associated with the Running, Holding, Restarting,
Stopping, Aborting, and Monitor states. Interlock parameters can be connected to
the phase core module.
Additional inhibit parameters which cannot be overridden from the Batch template
faceplate have been added to phase control modules. Once these parameters are set
to true in the controller code, the corresponding mode change or operation cannot be
attained (overridden from the faceplate).

Core ProduceITBatchLib.PhaseCore. This core control module implements all


phase specific behavior. Table 17 lists the parameters used by this control module.

Table 17. PhaseCore Parameters

Initial
Name Data Type Description
Value
PhaseName String (32 N/A In - Name of the phase used as SRCName
characters max) for events, connected to phase short name.
AISrcName String (32 N/A IN - Name used as SRCName for events,
characters max) _bName by default.
ProcedurePath String (140 N/A IN - Path of the recipe procedure that started
characters max) the phase. This parameter is not currently
used (reserved for future use).

132 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Templates

Table 17. PhaseCore Parameters (Continued)

Initial
Name Data Type Description
Value
RunningCode1,2 CodeblockAttributes Default IN/OUT - Code block control variable for
code block associated with Running and
Pausing states.
PausedCode1,2 CodeblockAttributes Default IN/OUT - Code block control variable for
code block associated with Paused state.
HoldingCode1,2 CodeblockAttributes Default IN/OUT - Code block control variable for
code block associated with Holding state.
HeldCode1,2 CodeblockAttributes Default IN/OUT - Code block control variable for
code block associated with Held state.
RestartingCode1,2 CodeblockAttributes Default IN/OUT - Code block control variable for
code block associated with Restarting state.
StoppingCode1,2 CodeblockAttributes Default IN/OUT - Code block control variable for
code block associated with Stopping state.
StoppedCode1,2 CodeblockAttributes Default IN/OUT - Code block control variable for
code block associated with Stopped state.
AbortingCode1,2 CodeblockAttributes Default IN/OUT - Code block control variable for
code block associated with Aborting state.
AbortedCode1,2 CodeblockAttributes Default IN/OUT - Code block control variable for
code block associated with Aborted state.
CompletedCode1,2 CodeblockAttributes Default IN/OUT - Code block control variable for
code block associated with Completed state.
IdleCode1,2 CodeblockAttributes Default IN/OUT - Code block control variable for
code block associated with Idle state.
StartAppl3 Bool False IN (OUT) - Start order from application.
AbortAppl3 Bool False IN (OUT) - Abort order from application.
StopAppl3 Bool False IN (OUT) - Stop order from application.
HoldAppl3 Bool False IN (OUT) - Hold order from application.

3BUA000146-600 A 133
Templates Section 4 Equipment Configuration (Batch Advanced Templates)

Table 17. PhaseCore Parameters (Continued)

Initial
Name Data Type Description
Value
PauseAppl3 Bool False IN (OUT) - Pause order from application.
ResumeAppl3 Bool False IN (OUT) - Resume order from application.
RestartAppl3 Bool False IN (OUT) - Restart order from application.
3
ResetAppl Bool False IN (OUT) - Reset order from application.
InhibitStartAppl3,4 Bool False IN - Interlock from application for disabling of
Start command.
InhibitPauseAppl3,4 Bool False IN - Interlock from application for disabling of
Pause exception.
InhibitHoldAppl3,4 Bool False IN - Interlock from application for disabling of
Hold exception.
InhibitStopAppl3,4 Bool False IN - Interlock from application for disabling of
Stop exception.
InhibitAbortAppl3,4 Bool False IN - Interlock from application for disabling of
Abort exception.
InhibitResumeAppl3 Bool False IN - Interlock from application for disabling of
,4
Resume command.
InhibitRestartAppl3,4 Bool False IN - Interlock from application for disabling of
Restart command.
InhibitResetAppl3,4 Bool False IN - Interlock from application for disabling of
Reset command.
InhibitUnitExCondA Bool False IN - Interlock from application for decoupling
ppl3,4 of ExceptionCondition.
InhibitExceptionStar Bool False IN - Interlock from application for disabling of
tAppl3,4 phase start when application is in an
exception condition.
InhibitStartNOv3,4,5 Bool False IN - Interlock from application for disabling of
Start command.

134 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Templates

Table 17. PhaseCore Parameters (Continued)

Initial
Name Data Type Description
Value
InhibitPauseNOv3,4, Bool False IN - Interlock from application for disabling of
5
Pause exception.
InhibitHoldNOv3,4,5 Bool False IN - Interlock from application for disabling of
Hold exception.
InhibitStopNOv3,4,5 Bool False IN - Interlock from application for disabling of
Stop exception.
InhibitAbortNOv3,4,5 Bool False IN - Interlock from application for disabling of
Abort exception.
InhibitResumeNOv3, Bool False IN - Interlock from application for disabling of
4,5
Resume command.
InhibitRestartNOv3,4 Bool False IN - Interlock from application for disabling of
,5 Restart command.
InhibitResetNOv3,4, Bool False IN - Interlock from application for disabling of
5
Reset command.
InhibitUnitExCondN Bool False IN - Interlock from application for decoupling
Ov3,4,5 of ExceptionCondition.
InhibitExceptionStar Bool False IN - Interlock from application for disabling of
tNOv3,4,5 phase start when application is in an
exception condition.
BatchConnection BatchConnection Default IN/OUT - Connection to unit or equipment
module.
Exception BatchException Default IN (OUT) - Exception from code.
BatchData BatchDataException IN (OUT) - Status of phase parameters and
attributes.
Status PhaseBatchStatus Default OUT - Status, connected to phase status.
AESeverity Dint 500 IN - Severity of logged events from 1 (low) to
1000 (high).

3BUA000146-600 A 135
Templates Section 4 Equipment Configuration (Batch Advanced Templates)

Table 17. PhaseCore Parameters (Continued)

Initial
Name Data Type Description
Value
AEClass Dint 1 IN - Class logged events belongs (to from 1
to 9999).
PhaseElapsedTime Time Default OUT - Current elapsed time that the phase
has been non-idle (time since start).
NOTE:
1. To delete an ISA-88 code block:
a. Open unit or phase type to edit in Control Builder.
b. Delete code block.
c. Save type.
d. Open Core module to edit connections.
e. Delete parameter name of code block that was deleted.
f. Save Core module connections.
2. To add an ISA-88 code block:
a. Open unit or phase type to edit in Control Builder.
b. Add code block (only structured text and SFC type).
c. Save type.
d. Open Core module to edit connections.
e. Add code block (exact code block tab label) to Core module.
f. Save Core module connections.
3. These must be connected (from the phase type) before being used.
4. Inhibiting this command or exception from the application actually inhibits this command or exception no matter
where it is sent from.
5. Use caution when implementing these parameters because they cannot be overridden from the faceplate.

Inhibit parameters (InhibitoperationNOv) which cannot be overridden from the


Batch template faceplate have been added to this control module. Once these
parameters are set to true in the controller code, the corresponding mode change or
operation cannot be performed (overridden from the faceplate).

Throw ProduceITBatchLib.ThrowBatchException. The ThrowBatchException


function block is used to create and send exceptions to the core modules from the
application code. The function block evaluates the status of the current exception.
The exception which has higher priority or higher exception severity (if the
priorities are equal) is sent to the core. Table 18 lists the parameters used by this
function block.

136 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Templates

Table 18. ThrowBatchException Parameters (Input and Output)

Initial
Name Data Type Attribute Direction Description
Value
Req Bool In False Requests one create
operation on positive edge
Exception BatchException In_Out To be connected to the
exception parameter of the
core module
TargetState Dint Retain In 0 The state that is the target
of the exception:
Idle = 0
Running = 1
Pause = 2
Hold = 3
Stop = 4
Abort = 5
Scope Dint Retain In 0 Scope of the exception:
Local = 0
Unit/shared equipment
module = 1
ExceptionID String (10 Retain In ID of exception
characters max)
ExceptionSeverity Dint Retain In 0 The severity within
TargetState
Description String (40 Retain In Description of the exception
characters max)
Status Dint Retain Out Result of last created and
sent exception
Error Bool Retain Out True if exception wasn't
created and sent

Priority components are evaluated in the order: TargetState (listed highest to lowest
- abort = 5, stop = 4, hold = 3, pause = 2), Severity, Scope (unit/shared equipment-

3BUA000146-600 A 137
Templates Section 4 Equipment Configuration (Batch Advanced Templates)

scope being higher than phase-scope). Lower "priority" (the evaluated value)
TargetState values than the current exception will be disregarded. No exception will
be created and sent if any of the parameters are out of range. If an exception isn’t
created and sent, the reason can be interpreted from the Status parameter using the
following error codes.
1 Exception successfully thrown.
-38 Parameter value is outside allowed limits.
-5630 An exception with higher target state is already thrown.
-5631 An exception with higher severity is already thrown.
-5632 An exception with unit/shared equipment module scope and equal
severity is already thrown.
A unique scenario can sometimes occur when a unit/shared equipment module tries
to throw a batch exception. If a unit/shared equipment module meets the condition
to throw a batch exception, an evaluation is made to determine if the unit/shared
equipment module can transition to the target state specified in the batch exception.
If the unit/shared equipment module can transition to the target state, it does so and
the exception is sent to the phases for evaluation. The exception will not be thrown
if the phase cannot transition to the target state specified. If the unit/shared
equipment module cannot transition to the target state, the transition does not take
place and the exception is not sent to the phases for evaluation. In this case, the
exception is effectively lost.
Another unique scenario can sometimes occur when a phase throws a unit/shared
equipment module scope batch exception. The exception will be executed first at the
phase and then at the unit/shared equipment module.
Example (Local Scope)
IF MonitorLocalError THEN (* Always attempting to throw when exception
condition is true *)
Throw(Req := false,
Exception := Exception);
Throw(Req := true,
Exception := Exception,
TargetState := ThrowTargetState,
Scope := 0,

138 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Templates

ExceptionID := MonitorErrorID,
ExceptionSeverity := 50,
Description := MonitorLErrorMessage);
END_IF;
Example (Unit/Shared Equipment Scope)
IF MonitorUnitError THEN (* Always attempting to throw when exception
condition is true *)
Throw(Req := false,
Exception := Exception);
Throw(Req := true,
Exception := Exception,
TargetState := ThrowTargetState,
Scope := 1,
ExceptionID := MonitorErrorID,
ExceptionSeverity := 50,
Description := MonitorGErrorMessage);
END_IF;
Example (Process Condition, One Shot)
(* Monitor for ProcessError Only attempts throw when ProcessError condition
changes 0 to 1 *)
Throw(Req := ProcessBool,
Exception := Exception,
TargetState := ThrowTargetState,
Scope := 1,
ExceptionID := MonitorErrorID,
ExceptionSeverity := 50,
Description := MonitorGErrorMessage);

TerminateState ProduceITBatchLib.TerminateState. This command is


automatically added to all states ending in 'ing'. This command terminates the code
block immediately and the next state defined by the core module will be started. Do
not delete the line of code! The state will never complete. It may be necessary to
place the terminate code within some other code to prevent leaving the state
prematurely.

3BUA000146-600 A 139
Templates Section 4 Equipment Configuration (Batch Advanced Templates)

Example
(*Holding State Terminate State Example*)
(* User code should be placed here *)
(* If HoldingDone then *)
TerminateState(StateCodeblock := Holding);
(*End_if;*)
(* No user code after this line *)

Clear ProduceITBatchLib.ClearBatchException. The ClearBatchException


function block is used to clear any existing batch exception conditions generated by
the ThrowBatchException function block and operator-initiated state changes.
Table 19 lists the parameters used by this function block.

Table 19. ClearBatchException Parameters

Initial
Name Data Type Description
Value
Exception BatchException N/A IN/OUT - Connect this to the Exception parameter of the
core module

Example
(* Programatically clears the Exception when ClearError is True *)
If ClearError then
Clear(Exception := Exception);
ClearError := false;
end_if;

SharedEquipmentModuleTemplate
This control module is a template for implementation of a shared equipment module
control module type in the controller. The shared equipment module contains all
equipment module-specific functions, unit logic, exceptions, and all defined phases
for the equipment module. Create an instance of the shared equipment module
control module type to implement a shared equipment module control module.
Table 21 list the parameters used by this template. Table 20 lists the variables used
by this template.

140 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Templates

Table 20. SharedEquipmentModuleTemplate Parameters

Initial
Name Data Type Description
Value
Name String (32 N/A IN - Name of the equipment module
characters max)
ExceptionSeverityHSI Dint 100 IN - Severity for exceptions from faceplate
ExceptionSeverityBM Dint N/A IN - Severity for exceptions from batch manager
Status EquipmentModu Default OUT - Status
leBatchStatus

Table 21. SharedEquipmentModuleTemplate Variables

Initial
Name Data Type Description
Value
Exception BatchException N/A Exception from code
_bBatchConnection BatchConnection N/A Connection to Core and phase modules
_bData BatchDataConne Default Connection between Core and
ction parameters/attributes
RunningComplete Bool False Enables the user to transition from the first SFC
to the second SFC
ServerName String (8 Server1 Name of the communication server
characters max)
Exception1Conn BatchCommServ N/A Data structure that links the BatchCommServer
erConnection and BatchCommServerExt control modules

This template has code blocks associated with the Running, Holding, Restarting,
Stopping, and Aborting states. Interlock parameters can be connected to the unit
core module. Phases are added using the Batch Equipment aspect and the phases are
added as private (not visible to the batch manager).

3BUA000146-600 A 141
Templates Section 4 Equipment Configuration (Batch Advanced Templates)

SharedEquipModuleCore ProduceITBatchLib.SharedEquipModuleCore. The


SharedEquipModuleCore control module implements all equipment module
specific behavior. Table 22 lists the parameters used by this control module.

Table 22. SharedEquipModuleCore Parameters

Initial
Name Data Type Description
Value
EquipmentModuleName String (32 N/A In - Name of the shared equipment module
characters max)
RunningCode1,2 CodeblockAttrib Default IN/OUT - Code block control variable for
utes code block associated with Running and
Pausing states
PausedCode1,2 CodeblockAttrib Default IN/OUT - Code block control variable for
utes code block associated with Paused state
HoldingCode1,2 CodeblockAttrib Default IN/OUT - Code block control variable for
utes code block associated with Holding state
HeldCode1,2 CodeblockAttrib Default IN/OUT - Code block control variable for
utes code block associated with Held state
RestartingCode1,2 CodeblockAttrib Default IN/OUT - Code block control variable for
utes code block associated with Restarting state
StoppingCode1,2 CodeblockAttrib Default IN/OUT - Code block control variable for
utes code block associated with Stopping state
StoppedCode1,2 CodeblockAttrib Default IN/OUT - Code block control variable for
utes code block associated with Stopped state
AbortingCode1,2 CodeblockAttrib Default IN/OUT - Code block control variable for
utes code block associated with Aborting state
AbortedCode1,2 CodeblockAttrib Default IN/OUT - Code block control variable for
utes code block associated with Aborted state
IdleCode1,2 CodeblockAttrib Default IN/OUT - Code block control variable for
utes code block associated with Idle state

142 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Templates

Table 22. SharedEquipModuleCore Parameters

Initial
Name Data Type Description
Value
OutOfServiceCode1,2 CodeblockAttrib Default IN/OUT - Code block control variable for
utes code block associated with Disabled state
AcquireAppl3 Bool False IN (OUT) - Acquire from application.
BatchIDAppl3 Bool False IN (OUT) - BatchID for acquire from
application.
ReleaseAppl3 Bool False IN (OUT) - Unacquire from application.
DisableAppl3 Bool False IN (OUT) - Order for disabling of the shared
equipment module from application.
EnableAppl3 Bool False IN (OUT) - Order for enabling of the shared
equipment module from application.
StartAppl3 Bool False IN (OUT) - Start order from application.
3
ResumeAppl Bool False IN (OUT) - Resume order from application.
RestartAppl3 Bool False IN (OUT) - Restart order from application.
ResetAppl3 Bool False IN (OUT) - Reset order from application.
InhibitStartAppl3,4 Bool False IN - Interlock from application for disabling
of Start command.
InhibitPauseAppl3,4 Bool False IN - Interlock from application for disabling
of Pause exception.
InhibitHoldAppl3,4 Bool False IN - Interlock from application for disabling
of Hold exception.
InhibitStopAppl3,4 Bool False IN - Interlock from application for disabling
of Stop exception.
InhibitResumeAppl3,4 Bool False IN - Interlock from application for disabling
of Resume command.
InhibitRestartAppl3,4 Bool False IN - Interlock from application for disabling
of Restart command.

3BUA000146-600 A 143
Templates Section 4 Equipment Configuration (Batch Advanced Templates)

Table 22. SharedEquipModuleCore Parameters

Initial
Name Data Type Description
Value
InhibitResetAppl3,4 Bool False IN - Interlock from application for disabling
of Reset command.
InhibitAbortAppl3,4 Bool False IN - Interlock from application for disabling
of Abort exception.
InhibitAcquireAppl3,4 Bool False IN - Interlock from application for disabling
of Acquire command.
InhibitDisableAppl3,4 Bool False IN - Interlock from application for disabling
of Disable command.
InhibitEnableAppl3,4 Bool False IN - Interlock from application for enabling of
Disable command.
InhibitStartNOv3,4,5 Bool False IN - Interlock from application for disabling
of Start command.
InhibitPauseNOv3,4,5 Bool False IN - Interlock from application for disabling
of Pause exception.
InhibitHoldNOv3,4,5 Bool False IN - Interlock from application for disabling
of Hold exception.
InhibitStopNOv3,4,5 Bool False IN - Interlock from application for disabling
of Stop exception.
InhibitAbortNOv3,4,5 Bool False IN - Interlock from application for disabling
of Abort exception.
InhibitResumeNOv3,4,5 Bool False IN - Interlock from application for disabling
of Resume command.
InhibitRestartNOv3,4,5 Bool False IN - Interlock from application for disabling
of Restart command.
InhibitResetNOv3,4,5 Bool False IN - Interlock from application for disabling
of Reset command.

144 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Templates

Table 22. SharedEquipModuleCore Parameters

Initial
Name Data Type Description
Value
InhibitDisableNOv3,4,5 Bool False IN - Interlock from application for disabling
of Disable command.
InhibitEnableNOv3,4,5 Bool False IN - Interlock from application for enabling of
Disable command.
InhibitAcquireNOv3,4,5 Bool False IN - Interlock from application for disabling
the Acquire command.
InhibitReleaseNOv3,4,5 Bool False IN - Interlock from application for disabling
the Release command.
BatchConnection BatchConnectio Default IN/OUT - Connection to phases.
n
BatchData BatchDataExcep IN (OUT) - Status of phase parameters and
tion attributes.
Exception BatchException Default IN (OUT) - Exception from code/application.
ExceptionSeverityHSI Dint 100 IN - Severity for exceptions from faceplate.
ExceptionSeverityBM Dint 50 IN - Severity for exceptions from batch
manager.
Status EquipmentModu Default OUT - Status.
leBatchStatus
AESeverity Dint 500 IN - Severity of logged events from 1 (low) to
1000 (high).
AEClass Dint 1 IN - Class logged events belongs (to from 1
to 9999).

3BUA000146-600 A 145
Templates Section 4 Equipment Configuration (Batch Advanced Templates)

Table 22. SharedEquipModuleCore Parameters

Initial
Name Data Type Description
Value
LEGInhibitControl Dint 0 0 - Always inhibit the deploying (Go
command) and rejecting (Revert command)
of online changes made using the Load-
Evaluate-Go functionality.
1 - Inhibit the Go and Revert commands
except when the state of the SEM and all of
the associated phases is Idle.
All batch components that inhibit the Go and
Revert commands will be listed in the
Evaluation report.
NOTE:
1. To delete an ISA-88 code block:
a. Open unit or phase type to edit in Control Builder.
b. Delete code block.
c. Save type.
d. Open Core module to edit connections.
e. Delete parameter name of code block that was deleted.
f. Save Core module connections.
2. To add an ISA-88 code block:
a. Open unit or phase type to edit in Control Builder.
b. Add code block (only structured text and SFC type).
c. Save type.
d. Open Core module to edit connections.
e. Add code block (exact code block tab label) to Core module.
f. Save Core module connections.
3. These must be connected (from the shared equipment type) before being used.
4. Inhibiting this command or exception from the application actually inhibits this command or exception no matter
where it is sent from.
5. Use caution when implementing these parameters because they cannot be overridden from the faceplate.

Inhibit parameters (InhibitoperationNOv) which cannot be overridden from the


Batch template faceplate have been added to this control module. Once these
parameters are set to true in the controller code, the corresponding mode change or
operation cannot be attained (overridden from the faceplate).

146 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Templates

Throw ProduceITBatchLib.ThrowBatchException.
The ThrowBatchException function block is used to create and send exceptions to
the core modules from the application code. The function block evaluates the status
of the current exception. If the new exception has higher priority, then it will be sent
to the core. Table 23 lists the parameters used by this function block.

Table 23. ThrowBatchException Parameters (Input and Output)

Initial
Name Data Type Attribute Direction Description
Value
Req Bool In False Requests one create
operation on positive edge
Exception BatchException In_Out To be connected to the
exception parameter of the
core module
TargetState Dint Retain In 0 The state that is the target
of the exception:
Idle = 0
Running = 1
Pause = 2
Hold = 3
Stop = 4
Abort = 5
Scope1 Dint Retain In 0 Scope of the exception:
Local = 0
Unit/shared equipment
module = 1
ExceptionID String (10 Retain In ID of exception
characters max)
ExceptionSeverity Dint Retain In 0 The severity within
TargetState
Description String (40 Retain In Description of the exception
characters max)

3BUA000146-600 A 147
Templates Section 4 Equipment Configuration (Batch Advanced Templates)

Table 23. ThrowBatchException Parameters (Input and Output) (Continued)

Initial
Name Data Type Attribute Direction Description
Value
Status Dint Retain Out Result of last created and
sent exception
Error Bool Retain Out True if exception wasn't
created and sent
NOTE: 1. All ThrowBatchExceptions (from shared equipment) are treated as having unit/shared equipment scope
regardless of the Scope parameter value

Priority components are evaluated in the order: TargetState (listed highest to lowest
- abort = 5, stop = 4, hold = 3, pause = 2), Severity, Scope (unit/shared equipment-
scope being higher than phase-scope). Lower “priority” (the evaluated value)
TargetState values than the current exception will be disregarded. No exception will
be created and sent if any of the parameters are out of range. If an exception isn’t
created and sent, the reason can be interpreted from the Status parameter using the
following error codes.
1 Exception successfully thrown
-38 Parameter value is outside allowed limits
-5630 An exception with higher target state is already thrown
-5631 An exception with higher severity is already thrown
-5632 An exception with Unit scope and equal severity is already thrown
A unique scenario can sometimes occur when a shared equipment module tries to
throw a batch exception. If a shared equipment module meets the condition to throw
a batch exception, an evaluation is made to determine if the shared equipment
module can transition to the target state specified in the batch exception. If the
shared equipment module can transition to the target state, it does so and the
exception is sent to the phases for evaluation. The exception will not be thrown if
the phase cannot transition to the target state specified. If the shared equipment
module cannot transition to the target state, the transition does not take place and the
exception is not sent to the phases for evaluation. In this case, the exception is
effectively lost.

148 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Templates

Another unique scenario can sometimes occur when a phase throws a shared
equipment module scope batch exception. The exception will be executed first at the
phase and then at the shared equipment module.
Example (Unit/Shared Equipment Scope)
IF MonitorUnitError THEN (* Always attempting to throw when exception
condition is true *)
Throw(Req := false,
Exception := Exception);
Throw(Req := true,
Exception := Exception,
TargetState := ThrowTargetState,
Scope := 1,
ExceptionID := MonitorErrorID,
ExceptionSeverity := 50,
Description := MonitorGErrorMessage);
END_IF;
Example (Process Condition, One Shot)
(* Monitor for ProcessError Only attempts throw when ProcessError condition
changes 0 to 1 *)
Throw(Req := ProcessError,
Exception := Exception,
TargetState := ThrowTargetState,
Scope := 1,
ExceptionID := MonitorErrorID,
ExceptionSeverity := 50,
Description := MonitorGErrorMessage);

TerminateState ProduceITBatchLib.TerminateState. This command is


automatically added to all states ending in 'ing'. This command terminates the code
block immediately and the next state defined by the core module will be started. Do
not delete the line of code! The state will never complete. It may be necessary to
place the terminate code within some other code to prevent leaving the state
prematurely.

3BUA000146-600 A 149
Templates Section 4 Equipment Configuration (Batch Advanced Templates)

Clear ProduceITBatchLib.ClearBatchException. The ClearBatchException


function block is used to clear any existing batch exception conditions generated by
the ThrowBatchException function block and operator-initiated state changes.
Table 24 lists the parameters used by this function block.

Table 24. ClearBatchException Parameters

Initial
Name Data Type Description
Value
Exception BatchException N/A IN/OUT - Connect this to the Exception parameter of the
core module

Example
(* Programatically clears the Exception when ClearError is True *)
If ClearError then
Clear(Exception := Exception);
ClearError := false;
end_if;

UnitTemplate
This control module is a template for the implementation of a unit control module
type in the controller. A unit module contains all unit-specific functions, unit logic,
exceptions, and all defined phases for the unit. Create an instance of the unit control
module type to implement a unit control module. Table 25 list the parameters used
by this template. Table 26 lists the variables used by this template.

Table 25. UnitTemplate Parameters

Initial
Name Data Type Description
Value
Name String (32 N/A IN - Name of the unit
characters max)
ExceptionSeverityHSI Dint 100 IN - Severity for exceptions from faceplate

150 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Templates

Table 25. UnitTemplate Parameters (Continued)

Initial
Name Data Type Description
Value
ExceptionSeverityBM Dint N/A IN - Severity for exceptions from batch
manager
Status UnitBatchStatus Default OUT - Status, connected by default to core

Table 26. UnitTemplate Variables

Initial
Name Data Type Description
Value
Exception BatchException N/A Exception from code. connected to core and
used by ThrowBatchException (by default)
_bBatchConnection BatchConnection N/A Connection to Core and phase modules
_bData BatchDataConne N/A Connection between Core and
ction parameters/attributes
SetCompleteStatus Dint N/A Not currently used
RunningComplete Bool N/A Enables the user to transition from the first SFC
to the second SFC.

This template has code blocks associated with the Running, Holding, Restarting,
Stopping, Aborting, and Monitor states. Interlock parameters can be connected to
the unit core module. Phases are added using the Batch Equipment aspect. The
names of phases are created in a start code block by concatenating the unit name and
a string constant variable assigned to the phase instance name.

Core ProduceITBatchLib.UnitCore. This core control module implements all unit


specific behavior. Table 27 lists the parameters used by this control module.
Inhibit parameters (InhibitoperationNOv) which cannot be overridden from the
Batch template faceplate have been added to this control module. Once these
parameters are set to true in the controller code, the corresponding mode change or
operation cannot be attained (overridden from the faceplate).

3BUA000146-600 A 151
Templates Section 4 Equipment Configuration (Batch Advanced Templates)

Table 27. UnitCore Parameters

Initial
Name Data Type Description
Value
UnitName String (32 N/A In - Name of the unit
characters max)
RunningCode1,2 CodeblockAttribut Default IN/OUT - Code block control variable for code
es block associated with Running and Pausing
states
PausedCode1,2 CodeblockAttribut Default IN/OUT - Code block control variable for code
es block associated with Paused state
HoldingCode1,2 CodeblockAttribut Default IN/OUT - Code block control variable for code
es block associated with Holding state
HeldCode1,2 CodeblockAttribut Default IN/OUT - Code block control variable for code
es block associated with Held state
RestartingCode1,2 CodeblockAttribut Default IN/OUT - Code block control variable for code
es block associated with Restarting state
StoppingCode1,2 CodeblockAttribut Default IN/OUT - Code block control variable for code
es block associated with Stopping state
StoppedCode1,2 CodeblockAttribut Default IN/OUT - Code block control variable for code
es block associated with Stopped state
AbortingCode1,2 CodeblockAttribut Default IN/OUT - Code block control variable for code
es block associated with Aborting state
AbortedCode1,2 CodeblockAttribut Default IN/OUT - Code block control variable for code
es block associated with Aborted state
IdleCode1,2 CodeblockAttribut Default IN/OUT - Code block control variable for code
es block associated with Idle state
OutOfServiceCode1,2 CodeblockAttribut Default IN/OUT - Code block control variable for code
es block associated with Disabled state
AcquireAppl3 Bool False IN (OUT) - Acquire from application.

152 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Templates

Table 27. UnitCore Parameters (Continued)

Initial
Name Data Type Description
Value
BatchIDAppl3 Bool False IN (OUT) - BatchID for acquire from
application.
ReleaseAppl3 Bool False IN (OUT) - Unacquire from application.
DisableAppl3 Bool False IN (OUT) - Order for disabling of the shared
unit from application.
EnableAppl3 Bool False IN (OUT) - Order for enabling of the unit from
application.
StartAppl3 Bool False IN (OUT) - Start order from application.
AbortAppl3 Bool False IN (OUT) - Abort order from application
StopAppl3 Bool False IN (OUT) - Stop order from application
3
HoldAppl Bool False IN (OUT) - Hold order from application
PauseAppl3 Bool False IN (OUT) - Pause order from application
ResumeAppl3 Bool False IN (OUT) - Resume order from application.
RestartAppl3 Bool False IN (OUT) - Restart order from application.
ResetAppl3 Bool False IN (OUT) - Reset order from application.
InhibitStartAppl3,4 Bool False IN - Interlock from application for disabling of
Start command.
InhibitPauseAppl3,4 Bool False IN - Interlock from application for disabling of
Pause exception.
InhibitHoldAppl3,4 Bool False IN - Interlock from application for disabling of
Hold exception.
InhibitStopAppl3,4 Bool False IN - Interlock from application for disabling of
Stop exception.
InhibitResumeAppl3,4 Bool False IN - Interlock from application for disabling of
Resume command.

3BUA000146-600 A 153
Templates Section 4 Equipment Configuration (Batch Advanced Templates)

Table 27. UnitCore Parameters (Continued)

Initial
Name Data Type Description
Value
InhibitRestartAppl3,4 Bool False IN - Interlock from application for disabling of
Restart command.
InhibitResetAppl3,4 Bool False IN - Interlock from application for disabling of
Reset command.
InhibitAbortAppl3,4 Bool False IN - Interlock from application for disabling of
Abort exception.
InhibitReleaseAppl3,4 Bool False IN - Interlock from application for disabling of
Release command.
InhibitAcquireAppl3,4 Bool False IN - Interlock from application for disabling of
Acquire command.
InhibitDisableAppl3,4 Bool False IN - Interlock from application for disabling of
Disable command.
InhibitEnableAppl3,4 Bool False IN - Interlock from application for enabling of
Disable command.
InhibitStartNOv3,4,5 Bool False IN - Interlock from application for disabling of
Start command.
InhibitPauseNOv3,4,5 Bool False IN - Interlock from application for disabling of
Pause exception.
InhibitHoldNOv3,4,5 Bool False IN - Interlock from application for disabling of
Hold exception.
InhibitStopNOv3,4,5 Bool False IN - Interlock from application for disabling of
Stop exception.
InhibitAbortNOv3,4,5 Bool False IN - Interlock from application for disabling of
Abort exception.
InhibitResumeNOv3,4, Bool False IN - Interlock from application for disabling of
5 Resume command.

154 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Templates

Table 27. UnitCore Parameters (Continued)

Initial
Name Data Type Description
Value
InhibitRestartNOv3,4,5 Bool False IN - Interlock from application for disabling of
Restart command.
InhibitResetNOv3,4,5 Bool False IN - Interlock from application for disabling of
Reset command.
InhibitDisableNOv3,4,5 Bool False IN - Interlock from application for disabling of
Disable command.
InhibitEnableNOv3,4,5 Bool False IN - Interlock from application for enabling of
Disable command.
InhibitAcquireNOv3,4, Bool False IN - Interlock from application for disabling the
5
Acquire command.
InhibitReleaseNOv3,4, Bool False IN - Interlock from application for disabling the
5 Release command.
BatchConnection BatchConnection Default IN/OUT - Connection to phases.
BatchData BatchDataExcept IN (OUT) - Status of phase parameters and
ion attributes.
Exception BatchException Default IN (OUT) - Exception from code/application.
ExceptionSeverityHSI Dint 100 IN - Severity for exceptions from faceplate.
ExceptionSeverityBM Dint 50 IN - Severity for exceptions from batch
manager.
Status EquipmentModul Default OUT - Status.
eBatchStatus
AESeverity Dint 500 IN - Severity of logged events from 1 (low) to
1000 (high).
AEClass Dint 1 IN - Class logged events belongs (to from 1 to
9999).

3BUA000146-600 A 155
Templates Section 4 Equipment Configuration (Batch Advanced Templates)

Table 27. UnitCore Parameters (Continued)

Initial
Name Data Type Description
Value
LEGInhibitControl Dint 0 0 - Always inhibit the deploying (Go
command) and rejecting (Revert command)
of online changes made using the Load-
Evaluate-Go functionality.
1 - Inhibit the Go and Revert commands
except when the state of the unit and all of the
associated phases is Idle.
All batch components that inhibit the Go and
Revert commands will be listed in the
Evaluation report.
NOTE:
1. To delete an ISA-88 code block:
a. Open unit or phase type to edit in Control Builder.
b. Delete code block.
c. Save type.
d. Open Core module to edit connections.
e. Delete parameter name of code block that was deleted.
f. Save Core module connections.
2. To add an ISA-88 code block:
a. Open unit or phase type to edit in Control Builder.
b. Add code block (only structured text and SFC type).
c. Save type.
d. Open Core module to edit connections.
e. Add code block (exact code block tab label) to Core module.
f. Save Core module connections.
3. These must be connected (from the shared equipment type) before being used.
4. Inhibiting this command or exception from the application actually inhibits this command or exception no matter
where it is sent from.
5. Use caution when implementing these parameters because they cannot be overridden from the faceplate.

Throw ProduceITBatchLib.ThrowBatchException. The ThrowBatchException


function block is used to create and send exceptions to the core modules from the
application code. The function block evaluates the status of the current exception
and only if the new exception has higher priority the new exception is it sent to the
core. Table 28 lists the parameters used by this function block.

156 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Templates

Table 28. ThrowBatchException Parameters (Input and Output)

Initial
Name Data Type Attribute Direction Description
Value
Req Bool In False Requests one create
operation on positive edge
Exception BatchException In_Out To be connected to the
exception parameter of the
core module
TargetState Dint Retain In 0 The state that is the target
of the exception:
Idle = 0
Running = 1
Pause = 2
Hold = 3
Stop = 4
Abort = 5
Scope1 Dint Retain In 0 Scope of the exception:
Local = 0
Unit/shared equipment
module = 1
ExceptionID String (10 Retain In ID of exception
characters max)
ExceptionSeverity Dint Retain In 0 The severity within
TargetState
Description String (40 Retain In Description of the exception
characters max)
Status Dint Retain Out Result of last created and
sent exception
Error Bool Retain Out True if exception wasn't
created and sent
NOTE: 1. All ThrowBatchExceptions (from shared equipment) are treated as having unit/shared equipment scope
regardless of the Scope parameter value

3BUA000146-600 A 157
Templates Section 4 Equipment Configuration (Batch Advanced Templates)

Priority components are evaluated in the order: TargetState (listed highest to lowest
- abort = 5, stop = 4, hold = 3, pause = 2), Severity, Scope (unit/shared equipment-
scope being higher than phase-scope). Lower "priority" (the evaluated value)
TargetState values than the current exception will be disregarded. No exception will
be created and sent if any of the parameters are out of range. If an exception is not
created and sent, the reason can be interpreted from the Status parameter using the
following error codes.
1 Exception successfully thrown
-38 Parameter value is outside allowed limits
-5630 An exception with higher target state is already thrown
-5631 An exception with higher severity is already thrown
-5632 An exception with Unit scope and equal severity is already thrown
A unique scenario can sometimes occur when a unit tries to throw a batch exception.
If a unit meets the condition to throw a batch exception, an evaluation is made to
determine if the unit can transition to the target state specified in the batch
exception. If the unit can transition to the target state, it does so and the exception is
sent to the phases for evaluation. The exception will not be thrown if the phase
cannot transition to the target state specified. If the unit cannot transition to the
target state, the transition does not take place and the exception is not sent to the
phases for evaluation. In this case, the exception is effectively lost.
Another unique scenario can sometimes occur when a phase throws a unit scope
batch exception. The exception will be executed first at the phase and then at the
unit.
Example (Unit/Shared Equipment Scope)
IF MonitorUnitError THEN (* Always attempting to throw when exception
condition is true *)
Throw(Req := false,
Exception := Exception);
Throw(Req := true,
Exception := Exception,
TargetState := ThrowTargetState,
Scope := 1,
ExceptionID := MonitorErrorID,

158 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Templates

ExceptionSeverity := 50,
Description := MonitorGErrorMessage);
END_IF;
Example (Process Condition, One Shot)
(* Monitor for ProcessError Only attempts throw when ProcessError condition
changes 0 to 1 *)
Throw(Req := ProcessError,
Exception := Exception,
TargetState := ThrowTargetState,
Scope := 1,
ExceptionID := MonitorErrorID,
ExceptionSeverity := 50,
Description := MonitorGErrorMessage);

TerminateState ProduceITBatchLib.TerminateState. This command is


automatically added to all states ending in 'ing'. This command terminates the code
block immediately and the next state defined by the core module will be started. Do
not delete the line of code! The state will never complete. It may be necessary to
place the terminate code within some other code to prevent leaving the state
prematurely.

Clear ProduceITBatchLib.ClearBatchException. The ClearBatchException


function block is used to clear any existing batch exception conditions generated by
the ThrowBatchException function block and operator-initiated state changes.
Table 29 lists the parameters used by this function block.

Table 29. ClearBatchException Parameters

Initial
Name Data Type Description
Value
Exception BatchException N/A IN/OUT - Connect this to the Exception parameter of the
core module

3BUA000146-600 A 159
High and Low Limit Behavior Section 4 Equipment Configuration (Batch Advanced Templates)

Example
(* Programatically clears the Exception when ClearError is True *)
If ClearError then
Clear(Exception := Exception);
ClearError := false;
end_if;

High and Low Limit Behavior


Phases, units, and shared equipment behave differently with respect to high and low
limits.

Phase
The parameters are added to a phase control module type by:
1. Selecting the Batch Phase aspect of the phase control module type.
2. Selecting the parameters sheet.
3. Using the insert a new phase parameter button to configure all the phase
parameters for the phase.
These parameters are set to the values configured in the equipment phase when this
phase is started. These parameters cause the creation of phase parameters and
variables which can be used in the logic editor window. Phase parameters and
variables are of the BatchReal, BatchDint, and BatchString data types.
Table 30 lists the internal variables used by the BatchReal and BatchDint data types.

Table 30. Internal Variables (BatchReal and BatchDint)

Name Description
InValue Value sent from batch procedure
Value Value of data type
HighValue Upper outer limit
LimitedHighValue Upper inner limit

160 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) High and Low Limit Behavior

Table 30. Internal Variables (BatchReal and BatchDint)

Name Description
LimitedLowValue Lower inner limit
LowValue Lower outer limit
Status Status of the data type:
1 = OK
2 = Waiting for initial value
-38 = InValue outside of limits

Table 31 lists the internal variables used by the BatchString data type.

Table 31. Internal Variables (BatchString)

Name Description
InValue Value sent from batch procedure
Value Value of data type
Status Status of the data type:
1 = OK
2 = Waiting for initial value

During normal operation, the batch procedure sends values to the InValue variable
of the data type that is used by the parameters added to the phase. For BatchReal
and BatchDint data types, this value is evaluated against the inner
(LimitedHighValue and LimitedLowValue variables) limits. If the value is within
the inner limits, the Value variable is sent equal to the InValue Variable and the
Status variable is set to 1. If the value is outside of the inner limits, the Value
variable retains its last value and the Status variable is set to -38.
The inner limits are set equal to the outer limits each time the phase is reset. The
inner limits can be changed through an application or OPC write command from
any source (a batch procedure for example). When trying to set an inner limit to a
value that is outside of the outer limits, the inner limit will be set to the outer limit
value.

3BUA000146-600 A 161
High and Low Limit Behavior Section 4 Equipment Configuration (Batch Advanced Templates)

BatchString data types have no inner or outer limits. The string value sent to the
InValue variable is truncated (if necessary) at 140 characters by default. The Value
variable is automatically set equal to the InValue variable and the Status variable is
set to 1.
Unit control module types contain formal instances of phase control module types
which contain phase parameters. When an instance of the unit control module type
is created (in the Control Structure), the phase parameter values in the phase control
module that is a part of the created unit control module are identical to those in the
phase control module type formal instance within the unit control module type.
These parameter values can be edited on the Phase sheet of the BatchEquip aspect
of the unit control module instance. The first time that parts of an application are
downloaded to a controller, a cold restart of the controller is performed. This
ensures that the controller and the Batch Management aspects contain the same
values.
Editing phase parameters (in the Batch Management aspects) after the control
modules have been downloaded causes Batch Management to consider these edited
values as the parameter limits for recipe phases. Since these values are not actually
in the controller, the controller must be updated before Batch Management tries to
utilize the edited values in runtime recipes. There are three ways of accomplishing
this:
• Download the control modules to the controller and cold restart the controller.
• Use Control Builder to online edit the parameter values in the controller to
match the Batch Management aspect values.
• Create a graphic that contains an OPC write command that changes the
parameter values and set the controller values equal to the Batch Management
aspect values.
Inner limit values (LimitedHighValue and LimitedLowValue) should be set to the
same values as the outer limits (HighValue and LowValue).

Unit and Shared Equipment


Attributes are added to a unit or shared equipment control module type by:
1. Selecting the Batch Equipment aspect of the unit or shared equipment control
module type.

162 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) High and Low Limit Behavior

2. Selecting the Equipment Attributes sheet.


3. Using the insert a new attribute button to configure all the unit or shared
equipment attributes for the unit or shared equipment.
These attributes are set when this unit or shared equipment is downloaded to the
controller. These attributes cause the creation of unit or shared equipment attributes
and variables which can be used in the logic editor window. Unit or shared
equipment attributes and variables are of the BatchReal, BatchDint, and BatchString
data types.
Table 32 lists the internal variables used by the BatchReal and BatchDint data types.

Table 32. Internal Variables (BatchReal and BatchDint)

Name Description
InValue Value sent from batch procedure
Value Value of data type
HighValue Upper outer limit
LimitedHighValue Upper inner limit
LimitedLowValue Lower inner limit
LowValue Lower outer limit
Status Status of the data type:
1 = OK
-38 = InValue outside of limits

Table 33 lists the internal variables used by the BatchString data type.

Table 33. Internal Variables (BatchString)

Name Description
InValue Value sent from batch procedure

3BUA000146-600 A 163
Batch Object Communication Section 4 Equipment Configuration (Batch Advanced Templates)

Table 33. Internal Variables (BatchString) (Continued)

Name Description
Value Value of data type
Status Status of the data type:
1 = OK

During normal operation, the batch procedure sends values to the InValue variable
of the data type that is used by the attributes added to the unit or shared equipment.
For BatchReal and BatchDint data types, this value is evaluated against the inner
(LimitedHighValue and LimitedLowValue variables) limits. If the value is within
the inner limits, the Value variable is sent equal to the InValue Variable and the
Status variable is set to 1. If the value is outside of the inner limits, the Value
variable retains its last value and the Status variable is set to -38.
The inner limits are set equal to the outer limits each time the unit or shared
equipment is reset. The inner limits can be changed through an application or OPC
write command from any source (a batch procedure for example). When trying to
set an inner limit to a value that is outside of the outer limits, the inner limit will be
set to the outer limit value.
BatchString data types have no inner or outer limits. The string value sent to the
InValue variable is truncated (if necessary) at 140 characters by default. The Value
variable is automatically set equal to the InValue variable and the Status variable is
set to 1.

Batch Object Communication


It is sometimes necessary to communicate between batch control objects. For
example, a charge phase in one tank needs to synchronize with a drain phase of
another tank. If the two phase control modules are in the same controller, this
synchronization can be done using parameters to transfer data. However, this is not
flexible if there are a number of possible communication partners and if these
partners are distributed in several controllers.
The batch libraries (BatchAdvTemplatesLib and ProduceITBatchLib) support this
type of communication based on a connection-oriented client-server model using
MMS communication. The communication part of the library consists of three

164 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Batch Object Communication

control module types and some supporting data types. These modules have
parameters of AnyType type and it is up to the application engineer to specify what
data should be sent from a client to a server and vice versa.
The BatchCommClient control module is a client that connects to a server on
command. Once a connection is established, orders are sent on command. The client
pings the server with a specified time period.
The BatchCommServer control module is a server module that serves client connect
calls and orders. The server module might have one or several extensions of
BatchCommServerExt type. Each extension can handle one client at a time and the
total number of extensions (plus one for the main server) decides the number of
clients that can be connected to one server at a time. The server and the server
extensions handle the client orders and send a reply on command. It is also possible
to define periodic data that is sent from the server to the client at each ping. This
might be used when the client needs to monitor some dynamic server data (a
temperature for example).
It is possible to control the servers from an application code block and to check
connection status. Capacity of a piece of shared equipment can be handled with
calculation code blocks in the application.
The client/server modules are not used in any of the core modules. They are to be
used in the application part of a phase module, unit module, or equipment module.
An example is:
• The client requests a connection to the server. The client specifies the name of
the server, name of the server system, and (optionally) a requested capacity
(real number, default 0.0).
• The server receives the connection request and sends a reply to the client. The
client is granted access if the server or any of its extensions are available and
the requested capacity is available.
• The client receives the reply and indicates the result of the connection
command to the application. The client can now send commands (orders) to the
server. The client also pings the server with a specified period.
• The server sends the periodic data to the client in response to each ping.

3BUA000146-600 A 165
Batch Object Communication Section 4 Equipment Configuration (Batch Advanced Templates)

• The client monitors the ping replies and waits for a send order command from
the application. If a send order command is given, an MMS write with the
specified data is done.
• The server notices that there is a new order. The new order is kept in the server
until the server receives a get data command from the application.
• The server waits for a send reply command from the application. The server
can't receive a new order until the reply has been sent. Send reply commands
sent to the client are rejected until the reply has been received.
• When the reply is received by the client, the client waits for a get data
command. When this command is given, the reply data is copied to the
application and the client is ready to send a new order.
• The client or server sends a disconnect message on command. The other part of
the connection replies to the disconnect and the client and server are available
for another communication session.
Customer control logic should be configured so that if a connect operation fails, it
will be retried up to two more times. One second should separate the connect
operations

BatchCommClient
This control module implements the client part of client-server batch
communication. Add this control module to all control modules that are to get
information from server or server extension control modules. A corresponding
BatchCommServer (or BatchCommServerExt) control module needs to be added to
the control module sourcing the information. Table 34 lists the parameters used by
this control module.
Refer to Batch Object Communication on page 164 for more information.

BatchCommServer
This control module (together with the BatchCommServerExt control module)
implements the server part of client-server batch communication. Add this control
module to all control modules that are the source of information for a client control
module. Multiple BatchCommServerExt control modules can be associated with a

166 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Batch Object Communication

Table 34. BatchCommClient Parameters

Initial
Name Data Type Description
Value
ClientName String (30 IN - Name of the client, must be literal text string
characters max) that is unique within the controller and contained
within single quotation marks.
Execute BatchCommClie Default IN - Command parameter
ntExecute
ClientOrder1 AnyType Default IN - Order from client to server
ServerConnected Bool False OUT - Connection established and server is
reserved by the client
ConnectFailed Bool False OUT - Attempt to connect and reserve the
resource
ServerReply1 AnyType Default OUT - A reply from server to client
NewReplyReceived Bool Default OUT - New reply from server is available
ServerPeriodicData AnyType Default OUT - Data from the PeriodicData parameter
1
sent from the server
PingPeriod Dint 10000 IN - Period (in msec) for client to send order to
server. This period is established when the
connection to the server is established and
remains fixed for the duration of the connection.
PingStatus Dint Default OUT - Status of the ping connection. No answer
in 3*PingPeriod generates an error.
Status Dint Default OUT - Command status of client module.
Standard and MMS codes and the following code
are used:
-5640 Data from not connected server has been
received

3BUA000146-600 A 167
Batch Object Communication Section 4 Equipment Configuration (Batch Advanced Templates)

Table 34. BatchCommClient Parameters

Initial
Name Data Type Description
Value
Confirmation Dint Default OUT - Confirmation of different commands:
- n = Command not confirmed
1= Confirmed Connect command
2 = Confirmed Send command
3 = Confirmed Get Reply command
4 = Confirmed Disconnect command
Error Bool Default OUT - Command error
NewPeriodicDataRe Bool False OUT - New copy of the PeriodicData parameter
ceived sent from server and copied to the
ServerPeriodicData parameter. User application
must reset this parameter to False as it is not
done automatically. The server sends the
PeriodicData parameter to the client in response
to receiving the ClientPeriodicData parameter.
ClientPeriodicData2 AnyType Default IN - Ping data sent from client to associated
server periodically (or by ForcePing)
ForcePing Bool False IN - Initiate a new ping cycle (reset the start of
the ping period).
The application sets this parameter to True.
NOTES:
1. The data type used by this parameter must have a BatchCommHeader data structure as the first element of the data
type.
2. This parameter does not have a default connection. Importing older batch configurations into Batch Management 5.0
systems causes an Unconnected Parameter error for each instance of BatchCommClient. Set the initial value to a
dummy variable of the type Any Type.

BatchCommServer control module. Table 35 lists the parameters used by this


control module.
The BatchCommServer control module performs two major tasks. Firstly it handles
connect calls from clients and directs the client to a free resource (extension).
Secondly, this control module acts as a resource if all extension modules are being
used. This means that there is no need of any server extensions if the server can only

168 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Batch Object Communication

Table 35. BatchCommServer Parameters

Initial
Name Data Type Description
Value
ServerName String (30 IN - Name of the server, must be literal text string
characters max) that is unique within the controller and contained
within single quotation marks.
Execute BatchCommSer Default IN - Execute commands
verExecute
AvailableCapacity Real Default In - Available capacity in the resource
GrantedCapacity Real Default OUT - The capacity granted by this server
InhibitConnection Bool Default IN - Interlock for connection
ClientName String (32 Default IN - Name of the connected client
characters max)
NewOrderReceived Bool Default OUT - New order from client is available
1
ClientOrder AnyType Default OUT - Client order
ReplyData1 AnyType Default IN - Reply data to client
PeriodicData1 AnyType Default IN - Periodic data sent to the client
ClientConnected Bool Default OUT - True when client connection is active
PingStatus Dint Default OUT - Status of the ping connection. No answer
in 3*PingPeriod generates an error.
Status Dint Default OUT - Command status of client module.
Standard and MMS codes and the following code
are used:
-5640 Data from not connected server has been
received
Confirmation Dint Default OUT - Confirmation of different commands:
- n = Command not confirmed
1= Confirmed Get Order command
2 = Confirmed Reply command
3 = Confirmed Disconnect command

3BUA000146-600 A 169
Batch Object Communication Section 4 Equipment Configuration (Batch Advanced Templates)

Table 35. BatchCommServer Parameters (Continued)

Initial
Name Data Type Description
Value
Error Bool Default OUT - Command error
NewPeriodicDataRe Bool False OUT - New copy of the ClientPeriodicData
ceived parameter sent from client and copied to the
PeriodicDataFromClient parameter. User
application must reset this parameter to False as
it is not done automatically. The server sends the
PeriodicData parameter to the client in response
to receiving the ClientPeriodicData parameter.
PeriodicDataFromCl AnyType Default OUT - Data from the ClientPeriodicData
ient parameter sent from the client
ForcePeriodicDataT Bool False IN - Force a one-time, one-way sending of
oClient PeriodicData to the client.
NOTE: 1. The data type used by this parameter must have a BatchCommHeader data structure as the first element of
the data type.

service one client at a time. Refer to Batch Object Communication on page 164 for
more information.

BatchCommServerExt
This control module (together with the BatchCommServer control module)
implements the server part of client-server batch communication. Add this control
module to control modules already containing the BatchCommServer control
module that are a source of information to a BatchCommClient control module.
Table 36 lists the parameters used by this control module.
The server extension control module must be connected to a BatchCommServer
control module. The BatchCommServer takes care of all connect calls from clients
and arranges a connection between an extension (if there are any not being used)
and the client. Refer to Batch Object Communication on page 164 for more
information.

170 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) Batch Object Communication

Table 36. BatchCommServerExt Parameters

Initial
Name Data Type Description
Value
Execute BatchCommSer Default IN - Execute commands
verExecute
InhibitConnection Bool Default IN - Interlock for connection
ClientName String (32 Default IN - Name of the connected client
characters max)
NewOrderReceived Bool Default OUT - New order from client is available
ClientOrder1 AnyType Default OUT - Client order
ReplyData1 AnyType Default IN - Reply data to client
PeriodicData1 AnyType Default IN - Periodic data sent to the client
ClientConnected Bool Default OUT - True when client connection is active
PingPeriod Dint Default OUT - Status of the ping communication. No
answer in 3*PingPeriod generates an error.
Status Dint Default OUT - Command status of client module.
Standard and MMS codes and the following code
are used:
-5640 Data from not connected server has been
received
Confirmation Dint Default OUT - Confirmation of different commands:
- n = Command not confirmed
1 = Confirmed Get Order command
2 = Confirmed Reply command
3 = Confirmed Disconnect command
Error Bool Default OUT - Command error
NextExtension BatchCommSer Default OUT - Command error
verConnection
PrevExtension BatchCommSer OUT - Connection to previous server extension
verConnection or server

3BUA000146-600 A 171
AC 800M/C Memory Usage Section 4 Equipment Configuration (Batch Advanced Templates)

Table 36. BatchCommServerExt Parameters (Continued)

Initial
Name Data Type Description
Value
NewPeriodicDataRe Bool False OUT - New copy of the ClientPeriodicData
ceived parameter sent from client and copied to the
PeriodicDataFromClient parameter. User
application must reset this parameter to False as
it is not done automatically. The server sends the
PeriodicData parameter to the client in response
to receiving the ClientPeriodicData parameter.
PeriodicDataFromCl AnyType Default OUT - Data from the ClientPeriodicData
ient parameter sent from the client
ForcePeriodicDataT Bool False IN - Force a one-time, one-way sending of
oClient PeriodicData to the client.
NOTE: 1. The data type used by this parameter must have a BatchCommHeader data structure as the first element of
the data type.

AC 800M/C Memory Usage


Table 37 lists the memory used by BatchAdvTemplatesLib control modules in the
AC 800M/C controller.

Table 37. Memory Usage

Memory For
Memory For Type
Module Instance
(Kbytes)1
(Kbytes)1
Unit2 73 7.5

Unit attribute string3 0.7

Unit attribute float3 0.5

Unit attribute integer3 0.5

SEM with BatchCommServer module2 78 12

172 3BUA000146-600 A
Section 4 Equipment Configuration (Batch Advanced Templates) AC 800M/C Memory Usage

Table 37. Memory Usage (Continued)

Memory For
Memory For Type
Module Instance
(Kbytes)1
(Kbytes)1
SEM attribute string3 0.7

SEM attribute float3 0.5

SEM attribute integer3 0.5

SEM BatchCommServerExt module 80 8.5

SEM BatchCommClient 77 10.5

Phase2 54 7.5

Phase parameter string3 0.7

Phase parameter float3 0.5

Phase parameter integer3 0.5

AE named value item numeric 0.1

AE named value item string 0.17


NOTES:
1. Memory for type will be allocated by the first existing instance in the controller and will be
reused by all subsequent instances within the controller.
2. These estimates are based on modules as delivered in BatchAdvTemplatesLib templates not
including user defined logic.
3. The estimates for attribute and parameter modules assume that all ranges and descriptions
are configured to the maximum size.

3BUA000146-600 A 173
AC 800M/C Memory Usage Section 4 Equipment Configuration (Batch Advanced Templates)

174 3BUA000146-600 A
Section 5 Equipment Configuration (EPT
Control Modules)

Introduction
This section describes the configuration of Batch Management equipment using
EPT (equipment procedure template) control modules.

Overview
Equipment configuration consists of:
• Creating equipment phase logic (control logic that defines how a task is
performed by a piece of equipment) in controllers.
• Defining phases for equipment configuration.
• Defining plant equipment (and associated attributes).
• Assigning to equipment all the phases that it can execute.
Creation of equipment phase logic is performed using a controller specific
application. Batch Management is used to define plant equipment, equipment
attributes, phases, phase parameters, and to assign phases to equipment.
EPT error information is propagated from the EPT control module to the Batch
Manager by the Seq.StringInfo (string) OPC atom. This value is used in the alarm
and event messages and displayed in the Errors field in the block status dialog.
The Batch Manager does not use the Seq.Error (boolean), Seq.Status (dint), and
Seq.OtherInfo (string) OPC atoms.

3BUA000146-600 A 175
Equipment Phase Logic Section 5 Equipment Configuration (EPT Control Modules)

Equipment Phase Logic


Control logic in the controller that defines how a task is performed by a piece of
equipment is called equipment phase logic. This logic utilizes certain parameters to
accomplish the task. These parameters are set to the values configured into the
recipe phase when the phase is executed.
Equipment phase logic is developed, tested, and downloaded from a controller
specific application. This application also puts equipment phase data into the
appropriate 800xA structure. The Control Structure is used by AC 800M/C
controllers.

Phases
Phases are created so that procedure developers need only specify a phase name and
set the parameters for phases that they need to execute. They do not need to know
the details of how the phase works or how it can work differently on the different
pieces of equipment it is assigned to work on.
To configure the phases used by procedure developers:
1. Create the required phases under a phases object in the Procedure Structure.
The name used to create the recipe phase does not need to be the name to be used
by procedure developers. The phase alias (configured in the equipment phase) is
the name used by the procedure developers.
2. Select a phase.

176 3BUA000146-600 A
Section 5 Equipment Configuration (EPT Control Modules) Phases

3. On the parameters sheet, use the insert a new phase parameter button to add
and configure all the phase parameters for this phase. Refer to Figure 35.
Table 38 describes the parameter fields.

Figure 35. Phase Parameter Configuration

Table 38. Phase Parameter Fields

Field Description
Name Defines the name of the parameter.
Description Detailed description of the parameter.
Type The three types are text, float, integer, and OPC data point. Text types are either
unconstrained or constrained. Unconstrained means that any text can be entered
into the Value field. Constrained means that data entered in the Constraints field
will determine what value can be entered for this parameter. It is used when it is
necessary to limit the potential values available. OPC data point is a reference to
an OPC item. When used to set a property within a piece of batch equipment, the
OPC data point is unit relative.
Default value Defines the default value.
Low Low limit parameter. Mandatory entry when using float and integer types.
High High limit parameter. Mandatory entry when using float and integer types.
Eng. Units Defines the measurement units (lbs, secs, etc.).

3BUA000146-600 A 177
Phases Section 5 Equipment Configuration (EPT Control Modules)

Table 38. Phase Parameter Fields (Continued)

Field Description
Access level Defines the default runtime access level for the parameter used during batch run
time.
Constraints Displays the constraint list for text type parameters.

4. Click the Save button.


5. Repeat Step 2 through Step 4 for each procedure phase.
The order in which the parameters are displayed on the Parameter sheet can be
changed by selecting the parameters to be moved and dragging them to the desired
location within the list. While dragging, a red line indicates the location to which the
parameters will be moved.
Phase parameter data can be copied (from an Excel spreadsheet, another phase, etc.)
to the recipe phase parameters sheet. If no parameters currently exist in the phase or
none of the existing parameters are to be overwritten and the copied parameters
names do not currently exist on the phase parameters sheet, the copied data is added
onto the phase parameters sheet. If parameters in the phase are to be overwritten,
three conditions could result.
One condition is that the copied parameter data does not include parameter names or
all included parameter names do not match any of the parameter names currently on
the phase parameters sheet. In this case, the phase parameters sheet data is
overwritten with the copied data.
The second condition is that the row order (based on name) of the copied parameter
data is identical to the row order of the data to be overwritten on the phase
parameters sheet. In this case, the phase parameters sheet data is overwritten with
the copied data.
The third condition is that at least one of the phase parameter names in the copied
data currently exists on the phase parameters sheet in a row other than the one to
which it is being copied. In this case, a window displays a warning stating that phase

178 3BUA000146-600 A
Section 5 Equipment Configuration (EPT Control Modules) Batch Equipment

parameter names (on the phase parameters sheet) will be renamed (not moved) if the
paste operation is allowed to continue.
Renaming a phase parameter may require that the OPC data point for that
parameter (if specified in the equipment phase) be modified.
In most instances, the recommended response to this prompt is to:
1. Click No to abort the paste operation.
2. Move the rows on the phase parameters sheet into the order found in the copied
data.
3. Recopy the phase parameter data to the phase parameters sheet.
If the renaming of phase parameters is desired, click Yes and evaluate the equipment
phase parameters to ensure the OPC data points are still correct.
The Equipment sheet will show all the equipment that this phase applies to. Refer to
Figure 36. Only after the phases are assigned to the equipment will this sheet
display information.

Figure 36. Procedure Phase - Associated Equipment

Batch Equipment
Equipment that is used to run batch procedures (equipment that gets acquired,
reserved, or selected) must be batch enabled. This is accomplished by adding a
batch equipment aspect to the equipment object. It is recommended that batch
equipment be configured in the functional structure.

3BUA000146-600 A 179
Batch Equipment Section 5 Equipment Configuration (EPT Control Modules)

To batch enable equipment:


1. Create an object representation of the actual equipment layout including all the
equipment that must be batch enabled.
2. Add a batch equipment aspect to the equipment object.
3. Select the created batch equipment aspect.
4. Configure the Controller Type property. Refer to Table 39 for more
information. Refer to Figure 37.

Figure 37. Batch Equipment Aspect Properties

5. If desired, enter equipment attribute data on the Equipment Attributes sheet.


Refer to Table 40 for information about these fields.
6. Click the save button.
7. Repeat Step 2 through Step 6 for all batch enabled equipment.
The order in which the attributes are displayed on the Equipment Attributes sheet
can be changed by selecting the attributes to be moved and dragging them to the
desired location within the list. While dragging, a red line indicates the location to
which the attributes will be moved.

180 3BUA000146-600 A
Section 5 Equipment Configuration (EPT Control Modules) Batch Equipment

Table 39. Equipment Properties

Property Description
Controller type Specifies the type of controller controlling the equipment. Available types
are:
AC 800M/C - AC 800M/C controller and EPT control modules are being
used.
AC 800M/C Advanced - AC 800M/C controller and batch advanced
templates control modules are being used. Refer to Section 4, Equipment
Configuration (Batch Advanced Templates) for more information about
using this controller type.
DCI - DCI controller is being used.
Harmony - Harmony controller is being used.
MOD300 - MOD 300 controller is being used.
None (Pseudo) - The equipment is not enabled to run phases. This type is
used to represent a resource that is to be acquired by the batch manager
but does not run phases.
OPC (Function Phase Driver) - A custom phase driver will connect the
phase to the OPC data.
Function phase driver Specifies the custom function phase driver used to connect to the OPC
data. Controller type must be set to OPC (Function Phase Driver). Refer to
Appendix O, Function Phase Driver for more information.
Shared Specifies if the equipment can be acquired by multiple batches at the
same time. Controller type must be set to None (Pseudo).
Maximum users Specifies the maximum number of batches that can simultaneously
acquire the equipment. The controller type must be set to None (Pseudo)
and the shared property must be enabled.
Unit Active Specifies if the equipment is activated for use by Batch Management. If
this option is disabled, the equipment will not be available nor will Batch
Management try to connect to it. The equipment will also not be included
in the Equipment Overview window. For more information on Batch Unit
Activation, refer to the section Batch Unit Activation on page 183.

3BUA000146-600 A 181
Batch Equipment Section 5 Equipment Configuration (EPT Control Modules)

Table 40. Equipment Attribute Fields

Field Description
Name Defines the name of the attribute (30 characters maximum).
Description Detailed description of the attribute.
Type The four types are text, float, and integer. Text types are either unconstrained or
constrained. Unconstrained means that any text can be entered into the Value
field. Constrained means that data entered in the Constraints field will determine
what value can be entered for this attribute. It is used when it is necessary to limit
the potential values available.
Default value Defines the default value. If constraints are going to be used, configure them first
and then use the pull-down menu in this field to select the appropriate default
value.
Low Low limit attribute. Mandatory entry when using float and integer types.
High High limit attribute. Mandatory entry when using float and integer types.
Eng. Units Defines the measurement units (lbs, secs, etc.).
Access level Defines the runtime access level for the attribute. Other access levels are used to
configure the lowest access level an operator can have and be permitted to change
the attributes at run time.
The Batch manager has the highest access level. Therefore, a recipe can write to
any equipment attribute that has an access level other than No Access (using
unitattput/unitattputs commands).
A recipe can also write the values to the attribute with the Access Level of “No
Access” for the following attribute types/fields:
• OPC properties (OPC Datapoint, OPC Float, OPC Integer and OPC Text)
• In Controller
A recipe cannot write the values to No Access Local attributes (Float, Integer and
Text).
Constraints Displays the constraint list for text type attribute.

182 3BUA000146-600 A
Section 5 Equipment Configuration (EPT Control Modules) Batch Unit Activation

Batch Unit Activation


A Batch Unit Activation aspect (Figure 38) is available in the Library Structure
under Batch Management/Configuration. Restart the Batch Management Server
after changing the setting of this option.
In some cases (following an online upgrade for example), having large quantities of
unused equipment active can cause Batch Management to consume all CPU
resources for an extended time and seem to stop working. Batch Management is still
working but to minimize the wait time, use the Batch Unit Activation aspect to
deactivate all unused active equipments.
This option is used to deactivate equipment that is defined in the system but will not
be loaded into a controller or needed for Batch Management execution in the near
future. This option is primarily used for long term deactivation of equipment during
testing and commissioning scenarios.
In a Production Environment, Batch Management equipment can be temporarily
disabled in the Equipment Information window available from the Equipment
Overview window.

3BUA000146-600 A 183
Equipment Phases Section 5 Equipment Configuration (EPT Control Modules)

Figure 38. Batch Unit Activation Aspect

Equipment Phases
Batch enabled equipment that will execute equipment phase logic must have the
equipment phase assigned to it. All the equipment phases that can be executed on a
piece of equipment must be assigned to that equipment.
To assign equipment phases to equipment:
1. Select the Batch Equipment aspect of the equipment object.
2. Click the insert a new equipment phase button.
3. Select the recipe phase that can execute this equipment phase in the Phase to
Insert dialog box and click OK.

184 3BUA000146-600 A
Section 5 Equipment Configuration (EPT Control Modules) Equipment Phases

4. Enter the phase alias name (the name used by procedure developers) in the
Phase Alias field. Refer to Figure 39. The recipe phase name is the default
phase alias name.

Figure 39. Batch Equipment Aspect Configuration

5. Select the name of the equipment phase in the Control Module Path for EPT
field using the Select Control Module window. Refer to Figure 40.

Figure 40. Select Control Module Window

3BUA000146-600 A 185
Equipment Phases Section 5 Equipment Configuration (EPT Control Modules)

6. If the equipment phase contains more than one parameter, select the data
structure that contains the equipment phase parameters that correspond to the
recipe parameters from the list provided (based on the control module path) in
the Recipe Parameter Structure field. If the equipment phase contains one
parameter or less, leave this field blank and proceed to Step 7.
7. If necessary (the equipment phase parameters are not the same name as the
recipe parameters or there is one parameter for the phase), select the OPC data
points that will provide the correct value for the recipe parameters listed in the
OPC Datapoint fields using the Select OPC Datapoint window (Figure 41).

Figure 41. Select OPC Datapoint Window

8. Advanced users can customize the properties of an equipment phase by


clicking >> and editing the value (path to the OPC data point) of the properties.
The properties of an equipment phase do not normally need to customized.

9. Repeat Step 2 through Step 8 for every equipment phase that can be executed
on this equipment.
10. Repeat Step 1 through Step 9 for every piece of batch enabled equipment that
will execute phases.
To test the OPC connections specified for the parameters and properties of the
phase, click T. The OPC connections are verified and each parameter and property
is color coded to indicate status. Green indicates the OPC connection was found and
red indicates the connection was not found. Blue indicates an undetermined status.
Click C to clear the color coding and reset the test functionality.

186 3BUA000146-600 A
Section 5 Equipment Configuration (EPT Control Modules) Equipment Groups

In the controller code, set the Seq.StringInfo field to an empty string on both the Idle
and Restarting code tabs. Also configure the code (on the Controller tab) to check
the alarm condition. When the alarm condition no longer exists, set Seq.Error to
false and Seq.StringInfo to an empty string.

Equipment Groups
Equipment groups are a convenient way to organize equipment. These groups make
it easier to create the member lists associated with equipment list type parameters.
Refer to Equipment List Type Parameters on page 229 for more information.
New equipment groups objects are added to the appropriate object within the
Equipment Structure in the usual manner. New equipment group objects are added
to the appropriate equipment groups object in the usual manner.
To configure an equipment group object:
1. Select the Equipment Group aspect of the equipment group object.
2. Use the buttons to move batch enabled equipment from the Available
Equipment area to the Equipment In Group area and apply the changes. Refer

3BUA000146-600 A 187
Equipment Groups Section 5 Equipment Configuration (EPT Control Modules)

to Figure 42.

Figure 42. Equipment Group Window

188 3BUA000146-600 A
Section 6 Procedures

Introduction
Up to this point, batch configuration items that have been discussed include the
planning stage, process segmentation, and equipment configuration. Attention can
now be focused on the procedure configuration stage of batch configuration. This
section will demonstrate the configuration of sample batch procedures.
The functions and features described in this section are only available while in the
800xA system production environment.
A batch is the product produced by a single execution of a procedure. A batch
process is a process that is controlled in a step-wise fashion, in which procedure
parameters (e.g., quantity of ingredients) and order of addition are precisely
controlled. Unlike continuous processes, which normally operate at (or close to) a
steady state, batch processes are normally transient, undergoing a series of changes
of state during the creation of the product.
A recipe defines the procedures and formulas used to run a batch process.
Information contained in a recipe includes header information, standard operating
procedures (SOPs), equipment information, procedures and formulae.
Procedures are presented on graphic displays called procedure function charts
(PFCs) which contain blocks representing subprocedures, phases, and batch
manager actions. While a batch is executing, the PFC that represents it can be
displayed and it indicates batch status through the changes in block color and
windows that display:
• Subprocedure PFCs.
• Error messages.
• Parameter configuration.
• Equipment phase faceplates.
• Equipment phase logic.

3BUA000146-600 A 189
PFC Types Section 6 Procedures

The main concept of procedure design on the batch management subsystem is to


create procedures out of reusable components. This is based on object oriented
graphical procedure configuration. Each procedure function chart can also be used
on another procedure function chart in a manner similar to the method used for the
configuration of graphic displays.
To configure a procedure using the batch management subsystem, the user draws a
flow chart of the process, using an object oriented approach. This flowchart is called
a PFC. An example of a PFC is found in Figure 43.

TC02131B

Figure 43. Typical Procedure Function Chart

PFCs contain blocks representing procedures, phases, operations, and batch


manager actions.

PFC Types
Each procedure function chart must be classified as one of the predefined procedure
types. Assigning the PFC to a type defines the rule set that will be allowed for the
configuration of the chart. Most of the procedure function chart types fit into a
hierarchical order. The four types, from simple to complex, are recipe procedure,
unit procedure, operation and exception procedure.

190 3BUA000146-600 A
Section 6 Procedures Recipe Procedure

Enforcement of this hierarchy can be enabled or disabled. If strictly enforced, all


layers of the hierarchy must be used with each PFC only including procedure
components of the layer immediately below. If the hierarchy is not strictly enforced,
unnecessary layers of the hierarchy can be skipped, and the PFC can use procedure
components from any layer that is of equal or lesser complexity. Select Library
Structure\Batch Management\Configuration\Default Procedure Configuration and
enable ISA-88 Option to strictly enforce this hierarchy. The ISA-88 option enforces
the following:
• Recipe procedures contain unit procedures and BMAs.
• Unit procedures contain operations and BMAs for a given piece of equipment.
• Operations contain phases and BMAs for a given piece of equipment.
Another type of procedure, which exists outside this hierarchical order, is the
exception procedure. An exception procedure is a set of procedure components
organized to monitor for abnormal conditions and, if such conditions occur, respond
by executing pre-configured exception logic. This level is similar to a software
subroutine. Exception procedures can be configured for use in any of the other
procedure types.

Recipe Procedure
Top level of a procedure. A master recipe is the master copy of a recipe procedure
on the system. Master recipes are never altered by operator changes to procedure
parameters. Instead, a copy of the recipe procedure is made at run time. This copy is
known as the control recipe. Any alterations made to the procedure by the operator
(parameter changes for example) are made to the control recipe, not the master
recipe. The recipe procedure can contain unit procedures, operations, phases, batch
manager actions, and exception procedures.
It is recommended to avoid recipes which are recursive (calling back and forth
from one recipe to the other), as this may cause adverse side effects.

Unit Procedure
Set of operations or phases that execute on a piece of equipment. A unit procedure
can contain operations, phases, and batch manager actions.

3BUA000146-600 A 191
Operation Section 6 Procedures

Operation
Phase or sequence of phase executions within a piece of equipment. Can contain
phases and batch manager actions.

Exception Procedure
This is a special type of subprocedure configured to monitor for one or more
abnormal conditions. The exception procedure can be used in parallel with any of
the other procedure types.

Layered Procedure
Prior to beginning actual procedure configuration using the Batch Management
system, the ingredients to be used, and the time and event sequencing required to
achieve the desired product have been determined. Reusable procedure components
to perform phase operations such as adding raw materials, heating the reactor,
mixing ingredients, etc. have been created. The procedure is then built by first
configuring any necessary administrative information in the procedure header,
configuring a textual representation of the procedure in the standard operating
procedure (SOP), and placing blocks on a PFC in the Procedure Configuration
window. Refer to Procedure Configuration Window on page 204.
The concept of reusable procedure elements is an important aspect of Batch
Management flexible batch processing. Procedures contain phases that can be
reused within one procedure, as well as being used by any number of procedures.
Procedures also can contain nested subprocedures or layers. When procedures
become too complex to fit clearly on a single PFC, the process can be broken down
into subprocedures and configured on several PFCs that are layered. In this case
there is a top level procedure that contains one or more procedure blocks, which in
turn represent lower level subprocedures such as unit procedures, operations, or
exception procedures.
This hierarchical grouping of a complex procedure not only makes configuration
easier by reusing tested subprocedures, but also makes it easier for the operator to
understand. The operator can monitor the progress of a batch process through a
series of PFCs, instead of being confronted with one PFC overly packed with
information.

192 3BUA000146-600 A
Section 6 Procedures Layered Procedure

An example is provided in Figure 44 and Figure 45. These figures contain the PFCs
for a procedure named SoupRecipe and two subprocedures, SoupAddIngred and
SoupProcIngred.

Figure 44. Procedure Function Chart for SoupRecipe

SoupRecipe is the top level procedure for making a batch of soup. Two rectangular
procedure blocks on the PFC are labeled Add Ingredients and Process Ingredients.
The procedure Add Ingredients represents a lower level operation named
SoupAddIngred, which is invoked when the add ingredients operation is reached in
the top level procedure. Refer to Branch [start] on page 216.

3BUA000146-600 A 193
Procedure Handling Section 6 Procedures

When SoupAddIngred is executed, the necessary hardware equipment is reserved or


acquired, the ingredients are added and ground, and the equipment that was reserved
or acquired only for the duration of this subprocedure are unreserved or released.
When SoupAddIngred is completed, procedure execution moves to the next item in
the top level SoupRecipe. When the Process Ingredients procedure in SoupRecipe is
reached, the SoupProcIngred (Figure 45) operation is called. When SoupProcIngred
has completed, execution returns to the top level procedure, SoupRecipe, and then
runs to completion.

Figure 45. Procedure Function Chart for SoupProcIngred

Procedure Handling
Procedures are created, copied, moved, pasted, and deleted in usual workplace
manner. The comparing of procedures and procedure approval are also discussed in
the following topics. The procedure structure should be used to contain recipe

194 3BUA000146-600 A
Section 6 Procedures Version Control

procedures, unit procedures, operations, exception procedures, recipe phases, and


functions (Figure 46).

Version Control
Procedures can exist in several possible lifecycle states represented by the following
aspects:
• Approved Procedure.
• Development Procedure.
• Version Procedure.
These aspects are placed on the procedure object. Procedures normally start with the
Development Procedure aspect. This aspect can be edited, and saved without
interfering with the online operation of the plant.
When a new version of a procedure is approved, the previous approved version
aspect is labeled Procedure Version x.x. A user configurable number of previous
versions of the procedure are stored on the system. Previous versions of procedures
can be edited or approved like any other procedure. A Development Procedure
aspect is automatically created and this aspect is edited or approved.
Version control is performed for all procedures. The version number is constructed
using a MajorNumber.MinorNumber scheme. For example, in the version number
3.5, 3 is the major version number and 5 is the minor version number.
When a batch is scheduled, an approved procedure must be selected to control the
batch. The approved version of the procedure and all the lower level procedure
components that are referenced by it are captured and formed into one control
recipe. This is done to insure consistency of lower levels from the time a batch is
initiated until it is completed. This means that a new version of a procedure can be
approved, or the current version deleted, without disturbing any batches that may be
executing the current version.

3BUA000146-600 A 195
Create Section 6 Procedures

Figure 46. Example Procedure Structure

Create
To create a new procedure:
• Add a procedure object to the appropriate procedures object in the Procedure
Structure.
- or -
• Use the File > New option in the PFC Editor window.

196 3BUA000146-600 A
Section 6 Procedures Edit

Edit
The procedures are configured using a graphical interface. Editing an approved
procedure or version procedure copies the selected procedure to the development
procedure.
To edit a Development Procedure aspect, right click the Development Procedure
aspect or the procedure object and select Edit Procedure or Edit Development
Procedure. It is also possible to select File > Open in the PFC Editor window to
edit a procedure.
To edit an Approved Procedure or Version Procedure aspect:
1. Right click the Approved Procedure or Version Procedure aspect of the
procedure and select Edit Procedure.
2. If a Development Procedure aspect currently exists, click Yes when prompted
that it will be overwritten.
While editing a procedure, the data get stored automatically. User can recover the
data, even if the system crashes while editing a procedure.
If the specific procedure is opened after the system crash, it gives an option to the
user to reload the last unsaved data.
The PFC Editor window will then be displayed. This window and the graphical
tools it contains (used to build PFCs) are discussed in Procedure Configuration
Window on page 204.
The PFC Editor window is also a tool that can be accessed by operators who need to
edit the control recipe for an active batch. Use of the PFC Editor window in this
manner is discussed in Control Recipes on page 202 and in the System 800xA Batch
Management Operation (3BUA000145*).

Approve
Only one version of a procedure is considered approved and can be executed. To
approve a version:
1. Right click the Development Procedure aspect, Version Procedure aspect, or
procedure object and select Approve Procedure or Approve Development
Procedure.
2. Select a version number and reason for the approval.

3BUA000146-600 A 197
Cut, Copy, Delete, and Paste Section 6 Procedures

3. If desired, enter approval comments for this version.


4. If authentication signatures are required for the approval of procedures, enter
the appropriate user IDs and passwords.
5. Click OK.
The Development Procedure aspect will be deleted and the Approved Procedure
aspect will be created.

Cut, Copy, Delete, and Paste


Use the standard right click or Windows method to cut, copy, delete, or paste a
procedure at the procedure aspect level only.
Direct manipulation of the components that make up a procedure object can
corrupt that procedure.

Compare
To compare procedures for differences:
1. Right click any procedure aspect (Approved Procedure, Development
Procedure, or Version Procedure) of any procedure and select Difference
Report.
2. Select one of the procedure aspects being compared (any procedure, any
version) in the Compare field in the Select Procedures To Difference window.
3. Select the second procedure aspect being compared in the To field and click
Compare.

198 3BUA000146-600 A
Section 6 Procedures Cross-References

View the differences between the procedure aspects in the DifferenceReport


window (Figure 47).

Figure 47. DifferenceReport Window

Cross-References
Every procedure aspect contains a procedure Xrefs view that is displayed by
selecting the Procedure Xrefs view. This view lists all the procedures that reference
this procedure (the Reference By tab) and all the procedures referenced by this
procedure (the Referenced tab).

Version History
To view the version history of any procedure aspect (Approved Procedure,
Development Procedure, or Version Procedure), right click the desired procedure
aspect and select Version History.

3BUA000146-600 A 199
Version History Section 6 Procedures

The name, version, state, type, and history of the procedure aspect are displayed in
the view history window (Figure 49).

Figure 48. Version History Context Menu Command

Figure 49. View History Window

200 3BUA000146-600 A
Section 6 Procedures Procedure Configuration

Procedure Configuration
Refer to:
• Batch Cells.
• Control Recipes.
• Procedure Configuration Window.
• Block Palette.

Batch Cells
Several functions of the batch management subsystem require the user to select a
procedure component. For example, a recipe procedure must be selected before it
can be scheduled to be run as a batch.
Batch cell selection provides the ability to limit the selected procedure to specific
cells. If no cells are assigned during procedure configuration, all are available and
the procedure can potentially run in any cell if the operator has permission there.
When an operator schedules the procedure, the Batch Management software will
review the:
• List of cells available to the procedure.
• List of cells available to the operator’s login account.
The procedure will default to a default batch cell (configured in the default
procedure configuration aspect) when it is scheduled if the operator has permission
there. If the operator does not have permission in the default cell, the procedure will
default to the first cell to which the operator’s login account provides access. This
selection can be configured by the user. Refer to Security on page 56.
If cells were assigned to a procedure during configuration, the operator must have
access to at least one of the cells in order to schedule it. The cell in which the
procedure is to run is specified by the user during scheduling of the batch.
To change the cells to which a procedure can execute within:
1. Select the Procedure Configuration aspect of the procedure.

3BUA000146-600 A 201
Control Recipes Section 6 Procedures

2. Use the single arrow (move selected cells) or double arrow (move all available
cells) buttons to configure the list of selected cells. Refer to Figure 50.

Figure 50. Batch Cell Selection Window

3. Click Apply.

Control Recipes
Although this section is intended primarily for the configurer of procedures at the
master recipe level, it will also be of value to the operator who is required to make
changes to a control recipe.
Editing a control recipe requires an appropriate access level.

To edit the PFC of an executing batch:


1. Display the PFC to be edited in an operator window.
2. Right click and select Runtime Edit.
The window shown in Figure 51 will be displayed. Refer to Procedure
Configuration Window on page 204 and the System 800xA Batch Management
Operation (3BUA000145*) for more information.
When editing a control recipe, the procedure editor works as described in Procedure
Configuration Window on page 204. However, not all procedure editing functions
will be available. Refer to Table 41

202 3BUA000146-600 A
Section 6 Procedures Control Recipes

For a thorough discussion of how editing a control recipe can affect the executing
batch, refer to the System 800xA Batch Management Operation (3BUA000145*).
Also included is information on continuing the execution of the procedure and
cancelling the runtime edit.

3BUA000146-600 A 203
Procedure Configuration Window Section 6 Procedures

Procedure Configuration Window


The procedure database is configured using PFC Editor (Figure 51).
The PFC Editor window contains various tools, components, and menu commands
to create the procedure function charts (PFC).
Each procedure function chart represents a procedure component (recipe procedure,
unit procedure, exception procedure, or operation).

Figure 51. Procedure Configuration Window

204 3BUA000146-600 A
Section 6 Procedures Procedure Configuration Window

Table 41. Control Recipe Editing Functions

Available Editing Functions Unavailable Editing Functions


Add and delete recipe objects Edit currently active block unless it is in the final
state (stopped, aborted, complete, or idle)
Modify object definitions Edit recipe procedure parameters1
Change order of execution Edit standard operating procedure parameters 2
Designate valid restart points
Save recipe
NOTES:
1. In order to edit recipe procedure parameters, ascend to the next higher level and change the
parameters by selecting parameters from the procedure block status display and modify the
parameters there.
2. This has no effect on the user’s ability to add comments to the SOP.

Procedure building should normally occur from the bottom up. That means that it is
expected that the operation and unit procedure levels are built first as subprocedures.
These are then used as library procedures to the higher levels of the procedure. This
is important to the procedure and phase parameter passing scheme by which
parameters that are defined at one level are then assigned values at the next higher
level. Refer to Passing Parameter Values to a Nested Subprocedure on page 94.
Each procedure function chart is configured as a sequence of operations represented
by objects. To build a PFC:
1. Drag the operation from the block palette.
2. Position the operation in the appropriate location in the working view.
3. Link the operations together using the connector tool.
4. Configuring each phase, procedure, batch manager action and transition object
placed in the working view to specify the details of the operation:
a. Select the operation.
a. Select Edit > Block Properties.

3BUA000146-600 A 205
Procedure Configuration Window Section 6 Procedures

Block configuration information can also be accessed by the following:


1. Right-click the block and select Properties from the context menu.
2. Double-click the required block.
3. Click the block with the center mouse button (if present in the mouse).
b. Configure the object as necessary.
5. Save the PFC.
Saving a procedure that was created or last edited in a previous release of Batch
Management will save it as a Batch Management procedure in the new editor.
This saved procedure will not be opened in the previous versions of Batch
Management.
When the save operation has completed successfully, the Procedure OK message
is displayed. If errors are found, a message showing the number of errors
encountered will be displayed. For further information about the errors, select Tools
> Check Procedure.
The PFC Editor has various menu items, which are listed below.
The detailed descriptions are given to the menu items which are different form the
Standard Windows menu items.

File Menu
File menu contains the following Standard Windows options:
• Save (Ctrl+S).
Saves the created procedure.
• Exit.
Closes the PFC Editor. If the existing procedure is unsaved, then it prompts the
user to a dialog window to save or close the editor with out saving it.

206 3BUA000146-600 A
Section 6 Procedures Procedure Configuration Window

Edit Menu
Edit menu provides the options such as:
• Undo (Ctrl+Z).
Cancel the latest performed actions. If a procedure is saved after alteration,
then the actions can not be undone.
• Redo (Ctrl+Y).
Redo the undone actions.
• Cut (Ctrl+X).
Cut the selected object(s).
• Copy (Ctrl+C).
Copy the selected object(s).
• Paste (Ctrl+V).
Paste the copied object(s).
• Delete.
Delete the selected object(s).
• Select All (Ctrl+A).
Selects all the objects placed in the PFC Editor.
Standard Windows multi-select functionality is also available. SHIFT + click the
required objects one by one to select multiple objects. The selected objects are
outlined in green color dotted lines.

• Select by ID.
This edit menu option is used to select the blocks by their block identifiers.
This option opens the Select by Block ID dialog window. The user has to
select the required Block ID from the drop-down list.
• Block Properties.
This menu option opens the respective property window of the selected block.
For BMA blocks, it opens the Block Configuration dialog window. User has
to select the required action type from the available drop-down list and click
Next to open the respective property dialog window.

3BUA000146-600 A 207
Procedure Configuration Window Section 6 Procedures

View Menu
The View menu in the PFC Editor window contains the following options:
• Toolbar
This menu option has the following sub-menu options, which can be enabled or
disabled to view the respective toolbar items:
– Standard.
Standard toolbar contains various icons as shown in Figure 52.
– View.
View toolbar contains various icons as shown in Figure 52.
– Tools.
Tools toolbar contains various icons as shown in Figure 52.
– Layout.
Layout toolbar contains various icons as shown in Figure 52.

Figure 52. PFC Editor - View menu Toolbar Items

• Zoom to Fit (=).


This option enables the procedure to automatically zoom to fit within the
window, when ever the procedure is edited (e.g.: deleting / adding a block or
redo / undo changes etc.).
• Zoom In (+).
Magnifies the objects placed in the PFC Editor.
• Zoom Out (-).
It works opposite to Zoom In.

208 3BUA000146-600 A
Section 6 Procedures Procedure Configuration Window

• Gridlines.
This option is used to show or hide the gridlines in the PFC Editor window.
• Block identifiers.
This option displays or hides the unique internal ID numbers assigned by the
system during procedure configuration to blocks in the procedure function
chart. When this item is selected, the ID number is displayed on the block in
place of the label of the block. This ID is also used in the procedure errors
window to identify the node or block in the procedure that is in error.
The ID numbers are based on the order in which blocks are placed on the
procedure, and may not be in the same sequence as the execution of the PFC.
There may also be gaps in the numbering sequence. If a block is deleted prior
to the completion of the procedure, the ID number of the block will not be used
in the PFC.
• Block Palette.
This option displays or hides the palette of procedure components on the left
side of the PFC Editor window.
Drag and Drop Multiple Objects
Select the Multiple Block Drop check box to add multiple blocks of the same type
of object without a drag and drop of the same block each time from the Block
Palette.
The user can also enable the Multiple Block Drop option by selecting on
the Tools toolbar.
To add multiple blocks:
1. Select a block from the Block Palette.
2. Drag and drop the block to the drawing area.
3. Click or double-click to place each block. The mouse cursor changes to “+”
while adding each block.
Press the ESC key or right-click on the drawing area to disable the Multiple
Block Drop option.
Each time the user should enable this option to use this feature.

3BUA000146-600 A 209
Procedure Configuration Window Section 6 Procedures

Tools Menu
The Tools menu in the PFC Editor window contains the following options:
• Edit SOP.
This option is used to configure the standard operating procedure (SOP),
SOP is a text representation of the procedure, which provides a written
explanation of the process to the operator. For more information refer to
Procedure SOP on page 219.
• Check procedure.
This option checks the procedure and provides detailed information about the
errors exist in the procedure.
• Procedure Parameter (Ctrl+P).
This option opens the Procedure Parameters window to configure the
parameters. Refer to Configuration of Procedure Parameters on page 224 for
more information.
• Procedure Counts.
This option obtains the number of phase parameters used by each object in the
PFC. Refer to Counting Phase Parameters on page 256 for more information.
• Procedure Header (Ctrl+H).
This option opens the Batch Procedure Header Configuration window to
configure the administrative information of the specific procedure. Refer to
Procedure Header on page 218 for more information.
• Attach Note.
This option opens the Procedure Notes Configuration window. In this
window, user can enter additional relevant information to the procedure. Use
the Import button to include text from a previously configured file.
• Change Block Type.
This option opens the Block Configuration dialog window. User can select the
required action type from the drop-down list and click Next to open the
respective configuration window.

210 3BUA000146-600 A
Section 6 Procedures Procedure Configuration Window

• Batch Search Utility.


This option opens the Batch Search Utility window, it provides the ability to
search expressions in Batch Procedures for a function name or a keyword.
Users can specify the types of procedures and elements to include in the search.
Refer Appendix , Batch Utilities for more information.
• Drawing Tools.
This menu option has the following sub-menu options to perform various
drawing related activities.
– Standard tool.
Used to pick an object placed in the PFC Editor.
– Connector tool.
Used to connect two objects.
– Zoom In tool.
Magnifies the objects placed in the PFC Editor.
– Line tool.
Used to draw a static line.
– Text Tool.
Used to insert comments (text content) in the PFC Editor.
– Rectangle tool.
Used to draw static rectangle shape.
– Ellipse tool.
Used to draw static ellipse shape.
• Options.
This option opens PFC Editor Options window.

3BUA000146-600 A 211
Procedure Configuration Window Section 6 Procedures

Figure 53. PFC Editor Options

PFC Editor Options window has Background and Options tab.


Background tab has the settings to configure grid spacing, enabling the grid on
or off, and setting color options for the editor grid and background.
The Options tab is used to enable various editing options as shown in figure 46.
It also has the settings to configure maximum undo steps and the memory
allocation.

Layout Menu
The Layout menu in the PFC Editor window contains the following options:
• Auto connect
Select this option to automatically connect the further inserted procedure
objects to the existing procedure objects.
• Auto-align
This option automatically realigns the existing blocks to accommodate the
newly inserted block.

212 3BUA000146-600 A
Section 6 Procedures Procedure Configuration Window

Auto-align and Auto connect options are inter-linked. Disabling Auto connect
option automatically disables Auto-align option also.
• Align to grid
This option aligns the center of the selected objects to the nearest grid
intersection.
• Align
This option properly aligns all the randomly placed connected procedure
objects.
• Order
This menu option has the following sub-menu options to position the
overlapped objects front or back.
– Bring to front.
Brings the selected object to the front of all the overlapped objects.
– Send to back.
Sends the selected object to the back of all the overlapped objects.
– Bring forward.
Brings the selected object to one layer front.
– Send backward.
Sends the selected object to one layer back.
• Help
The help option is enabled and it offers the online help for the users. Figure 54
shows the Help option in the PFC Editor.

3BUA000146-600 A 213
Procedure Configuration Window Section 6 Procedures

Figure 54. Help Option

214 3BUA000146-600 A
Section 6 Procedures Block Palette

Context Menu
User can access some of the menu items through the context menu as shown in
Figure 55. This menu can be accessed by right-click on the objects placed in the
editor window of the PFC Editor.

Figure 55. PFC Editor Context Menu

Cut, Copy, and Delete options are disabled for Start and End blocks.

Block Palette
The block palette on the left side of the PFC Editor window provides the
components used in the configuration of the procedure function charts. The palette
allows the use of procedure function chart notation for graphically diagramming a
sequence of operations to form a procedure. The palette contains 13 objects that
represent the different types of procedure objects designed for use on a PFC. These
objects are dragged to the appropriate position on the procedure.
Each procedure can have the maximum of:
- 500 objects (objects include Phase, Procedure and Batch Manager Action block
types, Branch Start and End, Parallel Branch Start and End, and Transition).
- 50 legs (Branches).
- 50 legs (Parallel Start).
- 20 Start / End Blocks (for exception procedures).

3BUA000146-600 A 215
Block Palette Section 6 Procedures

A brief description of each object on the palette is provided in the following


subsections.

Phase
The Phase block (Figure 51) is used to place phase objects, which were defined in
the equipment aspects, onto the PFC. The named phase will be executed in the
requested equipment.

Procedure
The Procedure object (Figure 51) allows the configuration of a procedure in the
PFC. Procedures include a unit procedure or operation.

Batch manager action


The Batch manager action object (Figure 51) is used to configure a batch manager
action object in the PFC.

Branch [start]
The Branch [start] object (Figure 51) is used to define the beginning of a logical
branch in the processing. Conditions, configured in transition objects (refer to
Transition), are located after the branch start and are evaluated from left to right.
The first condition encountered that evaluates to true will be used. Only one leg of
the branch will be executed. Branch (start) and branch (end) objects must always be
used in balanced pairs.
It is recommended to ensure that the right-most branch always evaluates to true
by not including a transition in that branch.

Branch [end]
The Branch [end] object (Figure 51) is typically used to define the end of the logical
branch processing. It can also be used to create a loop condition, as illustrated in the
central portion of the SoupProcIngred PFC (Figure 45), where prompts and actions
related to tanks are configured.

216 3BUA000146-600 A
Section 6 Procedures Block Palette

Parallel branch [start]


The Parallel branch [start] object (Figure 51) is used to define the beginning of
parallel processing. Parallel processing means that all of the paths in the parallel tree
will be executed simultaneously. Parallel branch (start) and parallel branch (end)
objects must always be used in balanced pairs. Transition objects (refer to Transition
on page 217) can be used to synchronize the processing of the threads between the
parallel branch (start) and parallel branch (end) objects.

Parallel branch [end]


The Parallel branch [end] object (Figure 51) is used to define the end of parallel
processing. Procedure processing does not progress beyond this point until all
parallel threads have completed.
By default each branch start and parallel branch start require a branch end and
parallel branch end. If there is a branch mismatch, then the recipe cannot be
approved until the mismatch is corrected or the Procedure Configuration Error
On PFC Branch Mismatch is disabled.
When there is a branch mismatch in a procedure, the Auto Connect or Auto Align
functionality will not work as expected. Refer Error On PFC Branch Mismatch
on page 370.

Transition
The transition object (Figure 51) defines a logical expression. The expression can be
simple or complex. Execution will not continue down the path until the condition is
true. Typically, a transition object is used in one or more of the procedure threads
following a branch start. If no condition is true, each expression is evaluated again
every second, until one becomes true. These threads are evaluated from left to right.
A transition object must always follow the start object in an exception procedure.
Batch expressions are described in Appendix A, Configuring Batch Variables and
Expressions. Exception handling and exception procedures are discussed in
Exception Handling on page 277.

3BUA000146-600 A 217
Procedure Header Section 6 Procedures

Procedure Header
A procedure header can be configured for all procedure types. Procedure headers
provide administrative information about individual procedures. The runtime
version of the procedure header also includes the version time and date of the
modification and the name of the author of the procedure. It is possible to configure
items in the procedure header, as described in the following subsections.
Procedure header configuration is accessed through Tools > Procedure Header.
The Batch Procedure Header Configuration window (Figure 56) will be displayed.

Figure 56. Batch Procedure Header Configuration Window

Header Configuration Window


The Batch Procedure Header Configuration window contains two fields into which
information can be entered.

Description
Enter a text description of the procedure which will be used by the system as a short
description field in various online displays.

218 3BUA000146-600 A
Section 6 Procedures Procedure SOP

Procedure Header Text


This field is a free format text area into which any desired text can be typed or
imported. Use the import header text toolbar button to specify the text file
containing the text to be imported.

Procedure SOP
The standard operating procedure is a text representation of the procedure, which
provides the operator with a written explanation of the process. The operator can
request to view the SOP online as the batch is in process. Refer to the System 800xA
Batch Management Operation (3BUA000145*) for details.
An SOP is composed of sections of text. During configuration of a procedure, the
configurer can add batch manager action (BMA) blocks to the PFC that are assigned
to the action type set SOP section. Such BMA blocks allow SOP section names to
be specified at various places in the procedure. When the batch is executing, and the
operator requests to view the SOP, the appropriate SOP will be displayed in a
window, with text beginning at the SOP section appropriate for the currently
executing portion of the procedure.
If no batch manager action to position the SOP pointer has been executed, the
SOP display is positioned at the beginning of the SOP text file.
During configuration of batch manager actions (BMAs) assigned to the set SOP
section option, it is the combination of the key word SECTION (or Section) and the
section names (embedded in both the set SOP section BMAs and the file that
composes the body of the SOP) that make this a context-sensitive online operator
aid.
Start each SOP section by using the key word SECTION at the beginning of the
line, followed by white space (spaces, tabs), then the section name, to the end of the
line. For example:
SECTION SectionName
SectionName can be any text string desired. It will act as the distinct name of the
section. All the text located between the section name and the next SECTION key
word (or the end of the file, if there is no subsequent SECTION key word) belongs
to that section.

3BUA000146-600 A 219
Configuration Section 6 Procedures

The contents of the entire first line of an SOP section (i.e., everything which follows
the key word SECTION) should be identical to the section information configured
for the corresponding set SOP section batch manager action. It is the responsibility
of the configurer to insure coordination of the PFC and the SOP sections.
When a set SOP section BMA is configured, the user enters the section name to
which that BMA will correspond through a text entry box during the
configuration process. The key word SECTION is automatically added by the
system. When the Edit SOP option on the Tools menu is used to create the
corresponding SOP section as described here, the user must enter both the
SECTION key words and the section names in the SOP.

Configuration
To begin SOP configuration:
1. Click Tools > Edit SOP from the menu bar. The Standard Operating Procedure
window (Figure 57) will be displayed with the name of the procedure under
configuration appearing in the Procedure field.
2. Enter the desired SOP text, including key words in the appropriate places, in
the text entry area.
The SOP can contain dynamic text, so expressions can be used to generate text
and/or key words. The SOP is evaluated only once (at batch start) to determine
dynamic text data. For example, the following are valid section names:

SECTION 1
Section `variable_name`

220 3BUA000146-600 A
Section 6 Procedures Find a Text String in SOP Text

Figure 57. Standard Operating Procedure Window

Find a Text String in SOP Text


To find a text string in SOP text:
1. Click the search toolbar button.
2. Enter the text string and select the appropriate direction. Up means previous
text and down means following text.
3. Enable or disable the Match Case option and click Find Next.

Replace a Text String in SOP Text


To find and replace SOP text:
1. Click the search and replace toolbar button.
2. Enter the text to be replaced and the replacement text.
3. Enable or disable the Match Case option and click the appropriate button (Find
Next, Replace, or Replace All).

3BUA000146-600 A 221
SOP Section Index Section 6 Procedures

SOP Section Index


This column lists all the sections defined in the SOP. Select a section on the list and
the cursor will be moved to the line containing the selected section definition. The
section index is automatically updated as sections are defined.

Import SOP Text


The text within a .txt file can be imported into the SOP using the import SOP text
toolbar button.

Procedure Parameters
In Section 3, Parameter, Variable, and Expression Overview, a parameter was
defined as a named value.
There are two types of parameters used in the Batch Management system:
• Phase Parameters, which are associated with the equipment phase logic
configured in the controller. Phase parameter values are downloaded to the
controller at run time, based on the procedure.
• Procedure Parameters, which are associated with the use of control logic in a
specific procedure or within a procedure for process management.
Section 3, Parameter, Variable, and Expression Overview provides a detailed
discussion of the nature of both phase and procedure parameters, and the potential
relationship between them. The configuration of phase parameters is discussed in
Section 4, Equipment Configuration (Batch Advanced Templates) and Section 5,
Equipment Configuration (EPT Control Modules).
Procedure parameters are associated with a specific procedure. A procedure
parameter value is specified during configuration. At run time, this can be changed
to a batch specific value, such as a constant, variable or expression. (Section 3,
Parameter, Variable, and Expression Overview and Appendix A, Configuring Batch
Variables and Expressions provide information on batch expressions.) The value of
a procedure parameter can, in turn, be used to specify the value of a phase parameter
for this procedure. Procedure parameters are extremely valuable in many
environments.

222 3BUA000146-600 A
Section 6 Procedures Expressions and Variables

A procedure can be configured in such a way that an operator with the appropriate
clearance will easily be able to enter a custom value for procedure parameters at the
time a batch is scheduled to be run.
Procedure parameters are also useful for procedure management operations. Not
only can a procedure parameter be used to represent a value such as a quantity of a
material or the temperature of a reactor, one could be used in a procedure object to
represent an operand in a conditional operation. To provide a simple example,
suppose each time a batch was run the operator needed to decide, based on a visual
inspection of a tank, whether or not the tank cleaning phase of the procedure should
be executed. A procedure parameter called Clean could be defined to have the
system test for the value of clean by including an object in the procedure called a
transition object. If the value assigned to Clean by the operator at run time was Yes,
the cleaning phase of the procedure would be included in the process when the
execution of the batch reached the transition object. If the operator entered No, the
tank would not be cleaned for that batch. The configuration of procedure parameters
is discussed in the following subsections.

Expressions and Variables


To provide maximum flexibility, the value represented by a procedure parameter on
a lower level procedure can be specified using an expression when the procedure is
used by a higher level procedure. An expression can also be used to specify the
procedure specific or batch specific value of a phase parameter. The phase
parameter default must be a constant. Details concerning the structure, operators,
and syntax of batch expressions are provided in Appendix A, Configuring Batch
Variables and Expressions.
Expressions include arithmetic and trigonometric functions, comparison operations,
string and file functions, and functions to put and get global database data, as well as
batch database data. Operators are also available to store data as a named variable,
and to retrieve the data using the variable name. It is not necessary to declare these
variables. The variable is created by simply using an expression that will put the
data into the same variable. The value is put into a storage space on Batch
Management from where it can be retrieved. A window is also available for editing

3BUA000146-600 A 223
Configuration of Procedure Parameters Section 6 Procedures

variables when the PFC of a batch is on display. For further information, refer to the
System 800xA Batch Management Operation (3BUA000145*).
These variables are not the same as equipment phase variables in the controller.

There are three sets of get and put commands for batch variables, each set with a
different scope:

varput, varget, varputs, vargets


The varput command is used to create a variable and store a numeric value where it
is accessible to a varget command within the same PFC. The varputs and vargets
commands are used for strings.

bvarput, bvarget, bvarputs, bvargets


The bvarput command is used to create a variable and store the numeric value where
it is accessible to a bvarget command in any PFC within a single batch. The bvarputs
and bvargets commands are used for strings.
The bvarput and bvarget commands are extremely useful for making a value
available to all layers of a procedure.

gvarput, gvarget, gvarputs, gvargets


The gvarput command is used to create a variable and store the numeric value where
it is accessible to a gvarget command in any PFC in any batch on the system. The
gvarputs and gvargets commands are used for strings.

Configuration of Procedure Parameters


Configuration of procedure parameters is accessed through Tools > Procedure
Parameters from the menu bar on the PFC Editor window. The Procedure

224 3BUA000146-600 A
Section 6 Procedures Configuration of Procedure Parameters

parameters window (Figure 58) will be displayed.

Figure 58. Procedure Parameters Window

A list that displays the Parameter, Type, Public/Private, Description, Default Value,
etc. for all parameters that have been configured for the procedure is presented.

3BUA000146-600 A 225
Adding a Parameter Section 6 Procedures

Adding a Parameter
To add a new procedure parameter, click the append parameter toolbar button and
provide the required data. The Procedure Parameter window (Figure 59) will be as
displayed.

Figure 59. Adding a Parameter

The parameter name can be an alphanumeric string of up to 10 characters.


Underscores can be used but spaces cannot.
Available types include:
• Float - a floating point value.
• Integer - an integer value.
• String - a text string.
• List - a list of value options.
• Equipment list - a list of possible equipment which can be managed (acquired,
selected, etc.).
• Duration - a time value specified in the format DDD:HH:MM:SS where DDD
represent days, HH represent hours, MM represent minutes, and SS represents
seconds.
The contents of this window will vary slightly, depending on the type which was
specified for the procedure parameter.
The parameter name and parameter type are always displayed at the top of the
Procedure parameters window. Items that can be configured for all procedure
parameter types include:

226 3BUA000146-600 A
Section 6 Procedures Adding a Parameter

• Public/private option.
• Description.
• Access level.
The Public/Private option determines how the parameter will be assigned a value
when the procedure executes.
If Public is enabled, the parameter can be assigned a batch specific value by the
operator when the procedure is scheduled to be run as a batch, or when the
procedure is configured on a higher level procedure. For example, a public
parameter named SoupAmt can be configured in the batch procedure named
SoupRecipe. When SoupRecipe is scheduled as a batch, the operator can assign a
value to SoupAmt. If the operator does not supply a value for SoupAmt, then the
Default Value defined through the Parameter Configuration window during the
configuration of SoupRecipe will be used.
If Public is disabled (private parameter), the value of the parameter will always be
the default value configured through the Procedure Parameters window (i.e., the
parameter gets its value locally from within its own configuration unless overridden
from within the procedure). For example, private parameters in a procedure can be
changed by certain batch manager actions configured within the same procedure. A
private parameter will not be displayed to the operator at run time or during
configuration when the procedure block is configured to include the subprocedure
that the private parameter exists on. The values of private Batch parameters can be
read and set using batch web service function calls.
The column labeled Access Level is used to assign an access level to the parameter.
Because parameters can be changed while a procedure is running, assignment of
access levels provides security by allowing only sufficiently privileged users to
make such changes. The currently selected access level appears in the combo box.
The default access level is Inherited, which permits the changing of parameters (no
security check is performed). To configure a new access level, select the desired
level in the field. Refer to Security on page 56 for a discussion of enabling and
disabling the ability to change parameters at run time.
In addition to the Not Configured option, available access levels include operator
level one through supervisor level three. Another choice, No Access, prevents all
users from accessing the parameter. Refer to Security on page 56 for further
details.

3BUA000146-600 A 227
Adding a Parameter Section 6 Procedures

Float Type Parameters


The float type parameter is used to specify a numeric procedure parameter. Numeric
procedure parameters can have an allowable range for the parameter value specified.
In the example provided in Figure 58, a floating point parameter has been
configured to represent the percentage of meat that will be used for a batch of soup.
• High range - Value to be used as the upper range for the parameter value. (A
batch of soup can be as much as 35% meat.)
• Low range - Value to be used as the lower range for the parameter value. (A
batch of soup can be meatless (0% meat).)
• Engineering unit - Type of engineering units represented by the value (e.g.,
percent, deg F, gallons, etc.).
• Default value - Value to be used as the default value for the parameter. In the
example configuration, a batch of soup made with Chicken Soup will contain
15% meat, by default.

Integer Type Parameter


The integer type parameter is used to specify an integer procedure parameter.
Integer procedure parameters have an allowable range for parameter value specified.
For a parameter of type integer, configure the following characteristics through
associated text entry boxes.
• High range - Value to be used as the upper range for the parameter value.
• Low range - Value to be used as the low range for the parameter value.
• Engineering unit - Type of engineering units represented by the value (e.g.
binary count, state, etc.).
• Default value - Value to be used as the default value for the parameter.

String Type Parameters


The String type parameter is used to specify a procedure parameter that is an ASCII
string (Figure 58).

228 3BUA000146-600 A
Section 6 Procedures Adding a Parameter

For a parameter of type string, the user can configure the characteristic labeled
Default Value. Enter the string to be used as the default value for the parameter in
the Default Value field.
In the case of the example parameter SoupName, no default name has been
configured. This is because the name of the soup will vary with the ingredients, and
a batch manager action block called Build Soup Name has been configured on the
top level procedure to assemble a name for the soup based on the kind and
percentages of the meat and vegetable ingredients.

List Type Parameters


The List parameter type is used to create a list of items that will be used during
procedure configuration to provide the user with a set of specific possible choices
(e.g., a choice of ingredients, grades of a product, or cooking temperatures). In the
example shown in Figure 58, a list of meats has been created. This list will allow the
operator to choose the type of meat to be used when a batch of soup is created.
For a parameter of type List, the following configuration items are available:
Constraints - Enter a list item in the Constraint column. To enter more than one
item, use separate lines for each.
Default Value - If desired, select a default value from the list provided (generated
from items entered in the Constraint column). If no default is selected, the first item
in the list is selected as the default value.

Equipment List Type Parameters


An Equipment List is a special parameter to a procedure. This procedure parameter
type is used to specify the runtime equipment for a phase or BMA object that
requires an equipment definition (e.g., acquire equipment, reserve equipment, or
select equipment BMA). Like list type parameters, a list of available equipment
must be entered into the Constraints column by clicking the icon in the Constraints
field.
The top portion of the Parameter Configuration window for an equipment list type
parameter (Figure 60) contains the usual Parameter name item described earlier in
this section. The right list box is empty until equipment and groups are added to it.

3BUA000146-600 A 229
Adding a Parameter Section 6 Procedures

The Available Equipment and Available Groups tabs contain lists of equipment and
groups created through group configuration in the Equipment Structure.

Figure 60. Configure Equipment List Window

To add a piece of equipment or group to the equipment list constraints, select the
equipment or group and click >. To select multiple equipment or groups for
inclusion in the Constraint column, press and hold SHIFT while selecting each item
to be included.
If desired, select a default value from the list provided (generated from items
entered in the Constraint column). If no default is selected, the first item in the list is
selected as the default value.
Specifying the equipment list type parameter in an acquire equipment BMA will
result in only the value (equipment) being used. Specifying the equipment list
type parameter in a select equipment BMA will result in the cost factor being
used to determine which equipment to select.
To remove an entry from the Constraints column, select the item to be deleted and
click <.
Default Value - If desired, select a default value from the list provided (generated
from items entered in the Constraint column). If no default is selected, the first
item in the list is selected as the default value.

230 3BUA000146-600 A
Section 6 Procedures Changing a Procedure Parameter

Changing a Procedure Parameter


To change a parameter, edit the appropriate fields in the Procedure Parameters
window.

Copying a Procedure Parameter


Once a parameter has been configured, it can be copied to a new name and then
have changes made to it. This means that if a number of similar parameters are
required, the additional ones need not be configured from scratch, saving time and
effort.
To copy a parameter:
1. Right click the desired row and select Copy.
2. Create a new parameter.
3. Right click in the Parameter column of the new parameter and select Paste.

Deleting a Procedure Parameter


To delete a parameter, right click the row number of the parameter and select Delete
Row.

Checks - Defining Parameter Relationships


The Checks button is a tool that allows a relationship to be defined between
parameters. For example, it may be that the sum of percentages of several
ingredients must always equal 100 percent. In the following example, the
percentages of meat, spices, vegetables and water are checked to verify that they add
up to 100. The Checks button can also be used where sophisticated checks (beyond
the capability of a simple range check) are needed for a single parameter.

3BUA000146-600 A 231
Checks - Defining Parameter Relationships Section 6 Procedures

Click Checks to display the Expression Editor window (Figure 61).

Figure 61. Expression Editor Window

Initially the Expression Editor window is empty. To enter an expression:


1. Click the append expression toolbar button.
2. Enter an expression in the Expressions column. The expression is numbered
automatically. The number indicates the position of the expression in the list.
Checks are performed in the order in which they appear in the Expression Editor
window. This is important because in addition to calculating values, the check can
also update variables. To change the order of the expressions:
1. Click in the expression number column of the expression being moved.
2. Click and drag the expression until the red line indicates the desired location.
Expressions defined on the Expression Editor window can include control system
phase module atoms and global database atoms.
To delete an expression, right click the number of the expression and select Delete
Expression.
To delete multiple adjacent expressions:

232 3BUA000146-600 A
Section 6 Procedures Configuring the PFC

1. Select the number of the first expression and drag the cursor to highlight all the
expressions to be deleted.
2. Right click one of the highlighted expressions and select Delete Expression.
If the conditions stipulated through the Expression Editor window are not met when
the Checks button is used or batch is scheduled, the batch manager will report that
the check has been violated.

Configuring the PFC


So far, the following aspects of procedure configuration have been discussed:
• Administrative information (the procedure header).
• Text representation of the procedure (the SOP).
• Definition of named values for the procedure parameters (procedure
parameters).
The next step is to create a procedure function chart in the working view of the PFC
Editor window (Figure 51). The procedure function chart (PFC) is a graphical
representation of the procedure. It is very similar to a sequential function chart,
representing the process as a series of steps or transitions. When a new procedure is
created, a window requests the selection of a procedure type. Available types
include recipe procedure, unit procedure, operation and exception procedure. Refer
to Table 42 for more information about procedure types.

Table 42. Procedure Types

Type Description
Recipe procedure Used for the top level procedure. When the ISA-88 Option is selected, it
cannot be used as a subprocedure.
Unit procedure Set of operations or phases that execute on a piece of equipment.
Operation Phase or sequence of phase executions within a piece of equipment.
Exception procedure Can be used in parallel with any of the other types.

Unit procedures, operations, and exception procedures can be used as


subprocedures.

3BUA000146-600 A 233
Procedure Objects Section 6 Procedures

Because a procedure for a very complex process would not fit clearly on a single
chart, the solution is to break the process down into smaller portions or
subprocedures, which have a beginning and an end, and can stand alone to perform a
part of the process. This technique takes advantage of the flexibility of the batch
management subsystem, in which subprocedures of limited functionality can be
configured to serve as reusable components in higher level procedures. Using this
hierarchical structure, a procedure block on the top level PFC is used to call a lower
level subprocedure, much in the manner that a computer program calls a subroutine.
Subprocedures, in turn, can contain procedure blocks to call other subprocedures,
allowing the user to nest subprocedures one within another. The number of levels or
layers used in procedure configuration is left to the configurer. Refer to Section 2,
Description and Operation for general information on configuration strategies.
By creating simple subprocedures that perform a simple action a modular approach
is developed to configure procedures and in the process build up a library of
reusable subprocedures.
While design of the batch process is best accomplished in a top down manner (that
is, seeing the process and breaking it down into smaller, more manageable
component parts), the actual configuration of the procedures and subprocedures is
best accomplished by working from the bottom up. If subprocedures are configured
first, they are then available to be referenced from procedures on higher level
procedures parameters. Procedure parameters configured in the subprocedure are
then available for passing values from higher level procedures. Refer to Configuring
Phase Blocks on page 251.
The procedure function chart is a convenient, object oriented method of creating
graphical representations of procedures and subprocedures. Using the block palette,
procedures and subprocedures are created by placing objects representing phases,
procedures and batch manager actions in the PFC Editor window and joining them
together using the connector tool. Refer to Procedure Configuration Window on
page 204.

Procedure Objects
Refer to Block Palette on page 215 for information about the procedure objects that
can be placed on the PFC.

234 3BUA000146-600 A
Section 6 Procedures Assigning Procedure Boundaries - Start and End Objects

Assigning Procedure Boundaries - Start and End Objects


There must be one start object and one end object per PFC. This means there can be
only one procedure on a PFC, and an individual procedure must be complete on a
single PFC. That is, it must begin with a start object and terminate with an end
object. If the procedure is too complex to fit on a single PFC, then smaller, stand
alone subprocedures must be created, which are referenced or called using
procedure blocks on higher level procedures. Each subprocedure must also contain a
single start object and a single end object. All procedures contain start and end
objects by default.

Balancing Procedure Elements and Actions


A number of objects and actions must be balanced by complementary objects and
actions when used in a PFC. This is readily apparent where objects are provided in
pairs: start and end objects must both appear on a PFC. A parallel branch (end) must
eventually follow a parallel branch (start) and a branch (start) must be followed by a
branch (end). To create a loop condition on the PFC, the branch (end) and branch
(start) are reversed, as shown in Figure 45 in the tank selection loop.
Less obvious are batch manager actions that must be used in balanced pairs in a
procedure. All BMA objects use the same object on the PFC. However, their
functions vary widely. Use Edit > Block Properties to assign a type to a BMA
object and a label that will appear on the object. BMA objects that should be used in
pairs include:
• Select equipment/deselect equipment.
• Acquire equipment/release equipment.
• Reserve equipment/unreserve equipment.
• Sequence start/sequence end.
It may be useful to place the complementary portion of a pair to the PFC
immediately after the initial object is added. This will prevent it from being omitted,
and it can be moved into its correct position and configured at a later time.

Assigning Restart Points


Restart points allow the restarting of a control (runtime) procedure that is already
active, including restart of procedure blocks that have already completed. Restart
points can be designated during procedure configuration when BMA, phase,

3BUA000146-600 A 235
Allocating and Deallocating Batch Equipment Section 6 Procedures

procedure and transition blocks are configured. The assignment is made by enabling
Procedure Restart Point option in the configuration window of the object.
Restart points can also be configured for the start, parallel start and branch start
objects. Click one of these objects and select Edit > Block Properties. The
Procedure Restart Point window will open, which contains a single option. When
this option is enabled the selected object is designated as a restart point. Restart
points cannot be assigned to a BMA, phase, procedure block or transition block that
is within a sequence (between sequence start and sequence end BMAs) or parallel
operation (that is, if it is between parallel start and parallel end objects). This
includes BMA, phase, or procedure blocks which are contained in the normal thread
of a procedure where it runs in parallel with an exception procedure. In this case, the
exrestart() function can be used to restart procedure blocks that lie within the
bounds monitored by the exception procedure. Refer to Runtime Characteristics of
the Exception Procedure on page 283.
If a restart point is assigned to a block that is located within a sequence or parallel
operation, it will be detected and removed when Check Procedure is used. An error
is reported when Save is used.
For information on how to use Pick restart point in an operator window to restart a
BMA, phase, procedure or transition block on a control procedure, refer to the
System 800xA Batch Management Operation (3BUA000145*).

Allocating and Deallocating Batch Equipment


Complementary batch manager actions are provided for allocation and deallocation
of equipment. These include:
• Acquire equipment BMA and release equipment BMA.
• Reserve equipment BMA and unreserve equipment BMA.
• Select equipment BMA and deselect equipment BMA.
The acquire equipment BMA is typically used in low level procedures (that is,
procedures categorized as operations or unit procedures) that execute phases, to
ensure exclusive access to a piece of equipment or shared equipment module
(SEM). At any given time, only one thread of one batch can acquire a particular
piece of equipment or SEM.
Equipment must be reserved or acquired before a phase is run in that equipment.
This ensures that only one thread of one batch is running phases on a particular

236 3BUA000146-600 A
Section 6 Procedures Allocating and Deallocating Batch Equipment

piece of equipment at one time. For example, once batch B has acquired the
equipment U, any other BMA block that attempts to acquire equipment U will wait
(that is, it will not complete) until batch B has released equipment U. This is true
even for a BMA performed in a parallel thread of batch B itself.
A procedure that acquires a piece of equipment should always release the equipment
when it has finished with it. That is, acquire equipment BMAs and release
equipment BMAs should always be used in complementary pairs.
The reserve equipment BMA is typically used in a higher level procedure (i.e., a
procedure categorized as a batch procedure) to reserve a piece of equipment when
exclusive access to the equipment is required during execution of multiple
subprocedures, each of which can independently acquire and release the equipment.
However, it is not necessary for the subprocedures to acquire the equipment.
Reserving the equipment by the higher level procedure ensures its availability for all
nested subprocedures. For example, once batch B has reserved the equipment U, no
other batch will be permitted to acquire, select, or reserve equipment U until batch B
unreserves U. It is not necessary for batch B to also acquire equipment U before
running phases in equipment U. Reserving the equipment is enough.
A piece of equipment cannot be reserved by a batch if the equipment has been
acquired, selected, or reserved by any other batch. However, if batch B has already
reserved or acquired equipment U, batch B can reserve equipment U again before
releasing it. This allows the reserve equipment BMA to be used in a nested fashion
in multiple level procedures.
A procedure that reserves a piece of equipment should always unreserve the
equipment. That is, reserve equipment BMAs and unreserve equipment BMAs
should always be used in complementary pairs.
Once a batch has selected a particular piece of equipment, the batch must still
acquire the equipment before running phases in it. A piece of equipment cannot be
selected by a batch if the equipment has been acquired, reserved, or selected by any
other batch.
A procedure that selects a piece of equipment should always deselect the equipment.
That is, select equipment and deselect equipment BMAs should always be used in
complementary pairs. When using multiple select BMAs that utilize the same
equipment list type parameter, verify that a deselect BMA has been executed (make

3BUA000146-600 A 237
Configuring PFC Block Labels Section 6 Procedures

the equipment available) before executing another select BMA that utilizes the same
equipment list type parameter.

Configuring PFC Block Labels


Each PFC block has a label associated with it. This label can static text, dynamic
text, OR parameter values (phase and procedure blocks only). Static text is limited
to 15 characters on one line. Dynamic text is limited to three rows of 15 characters.
Additionally, phase and procedure blocks can display the name, value, and
engineering unit of up to three parameters or the alias name and up to two
parameters.

Static Text Labels


The first 15 characters entered into the Block Label field will be the displayed in the
middle of the block. Single and double quotation marks are not permitted in static
text labels

Dynamic Text Labels


Enter the dynamic string type expression, enclosed in enclosed in back-quote
characters, into the Block Label field.
The over use of dynamic labels can affect the system performance, in both the Batch
Server and the Batch clients. Users should limit the use of labels to 10% of blocks
configured in a recipe. Complex expressions for dynamic block labels will further
reduce the Batch performance and should be taken into account when configuring.
The expression is recomputed periodically and the PFC label is updated
accordingly. Expressions can use (in addition to any standard Batch Management
function):
• Procedure parameters (in the format ‘parameter_name’).
• Block parameters (in the format ‘parameter_name’).
• Built-in constants:
__current: 1 when the block is active, 0 when not.
__display: 0 – label is computed in context of PFC editor.
1 - label is computed in context of PFC runtime display.
2 - label is computed in context of batch overview.

238 3BUA000146-600 A
Section 6 Procedures Configuring PFC Block Labels

__name: name of the current PFC block (phase alias name or procedure
name).
For the PFC display the resulting label is truncated to 3 lines * 15 characters. For the
batch overview new lines (use \n notation to insert new line into character constant)
are replaced with spaces.
There are many different ways to use this flexible functionality. However, the
following procedure for making dynamic phase labels is probably the simplest:
1. Create the following function using function wizard (gpl – get phase label):
func gpl() {
if (__display == 0) {
return __name + "\\n(Dynamic)"
}
if (__current == 0) {
return __name
}
if (narg() > 0) {
un = $1
} else {
un = __unit
}
if (un == "") {
return __name
}
return evals(attgets(un, "lbl_" + __name))
}
This function will display the phase name with indication that this is a dynamic
label during configuration. At run time, if the block is not active, it will display the
phase name. If the block is active, it will retrieve and evaluate a specified equipment
attribute (lbl_Heat for phase name Heat). This function can be called with zero or
one parameter. If no parameters are specified, built-in constant __unit is used as a
equipment name.
2. Configure label equipment attributes to contain desired expressions:
For example (attribute lbl_Heat on equipment F1):
`__name`:`__unit`\nFTemp:`Temp`\nCTemp:`get(attgets
(__unit, "tagTemperature"))`

3BUA000146-600 A 239
Configuring PFC Block Labels Section 6 Procedures

This will result in the following display at run time when the block is active:
Heat: F1
FTemp: 120
CTemp: 85
The label displays phase name, equipment name, final (FTemp) and current
(CTemp) temperatures.
3. During the PFC label configuration, specify the dynamic label like this:
`gpl()`
Make sure that the label equipment attribute is defined for all possible equipment
this phase can be executed on.

Parameter Value Labels


Ensure the Block Label field is blank and adhere to the following procedure
configure a procedure or phase block label to display the name, value, and
engineering units of up to three parameters or the alias name and up to two
parameters.
The parameter name (procedure block labels) and value (both procedure and
phase block labels) are only displayed at runtime.
To display the name, value, and engineering units of up to three parameters:
1. Configure how precisely the first parameter value will be displayed by
selecting the number of digits to the right of the decimal to display in the #
Digit After Decimal field. 0, 1, and 2 are the available options with 1 being the
default selection.
2. Select the Add to Label column field for the first parameter to show up in the
block label. The Label Position field for the parameter displays a 1 for the first
block label row from the top. During phase block label configuration,
Parameters that do not contain an expression cannot be selected because they
have no runtime value.
3. Edit the characters in the Display Name column if necessary. These characters
are displayed as the parameter name and are (by default) the first five
characters of the parameter name.
4. Repeat Step 1 and Step 3 for up to two more parameters (if desired).

240 3BUA000146-600 A
Section 6 Procedures Configuring PFC Block Labels

5. Click OK.
To display the alias name and the name, value, and engineering units of up to two
parameters:
1. Enable the Add to Label option. This places the first 15 characters of the alias
name in the top line of the label.
2. Configure how precisely the first parameter value will be displayed by
selecting the number of digits to the right of the decimal to display in the #
Digit After Decimal field. 0, 1 and 2 are the available options with 1 being the
default selection.
3. Select the Add to Label column field for the first parameter to show up in the
block label. The Label Position field for the parameter displays a 2 for the
second block label row from the top. The alias name is always in block label
row one. During phase block label configuration, parameters that do not
contain an expression cannot be selected because they have no runtime value.
4. Edit the characters in the Display Name column if necessary. These characters
are displayed as the parameter name and are (by default) the first five
characters of the parameter name.
5. Repeat Step 2 and Step 4 for one more parameter (if desired).
6. Click OK.
The format of the displayed parameter information (15 characters total) is:
Characters 1 through 5 - The name found in the Display Name column (empty
spaces are added if the name is less than five characters in length).
Character 6 - The colon character (:).
Characters 7 through 12 - The runtime value of the parameter or ### (if the whole
number value is longer than available digits). If the complete parameter value is too
long, the digits to the right of the decimal and the decimal itself will be dropped, one
at a time (starting form the right), in order to make the parameter value short enough
to be displayed.
Characters 13 through 15 - The first three digits of the engineering units text. If the
engineering units text is less than three characters in length, the unused characters
are made available to the parameter value. Table 43 shows a few examples of

3BUA000146-600 A 241
Acquiring Equipment for Immediate Use Section 6 Procedures

displayed parameter values.

Table 43. Displayed Parameter Value Examples

Runtime Engineering Units Digits Available to Displayed


Parameter Value Text Parameter Value Parameter Value
12345.12 Gal 6 12345
12345.12 Lt 7 12345.1
1234567.1 9 1234567.1
1234567.1 Gal 6 ###

Acquiring Equipment for Immediate Use


The acquire equipment batch manager action is used to acquire one or more pieces
of equipment for immediate use by a single thread of a procedure during execution
of a batch process. A piece of equipment that has been acquired is available for use
by the specific thread of the procedure in which the acquire equipment BMA was
performed, and no other thread in the procedure can use the equipment.
Batch Management checks the equipment inhibit states BEFORE trying to acquire
it. If batch determines that it cannot acquire the equipment, errors detailing the
reasons why (Start Inhibit for example) are displayed. It is best to ensure the inhibit
states are set correctly before trying to acquire the equipment.
To configure an acquire equipment BMA:
1. Select the BMA object and select Edit > Block Parameters. The Block
Configuration window is displayed.
2. Select Acquire Equipment in the Action Type field and click Next. If no
configuration has yet been performed for the object, the action type will be

242 3BUA000146-600 A
Section 6 Procedures Acquiring Equipment for Immediate Use

Unspecified. The Acquire Equipment window (Figure 62) will appear.

Figure 62. Acquire Equipment BMA Window

3. Enter a name for the block in the Block Label field.


4. If desired, enter an expression in the Equipment Expression field that evaluates
to the name of available equipment and move the expression to the Selected
Equipment area. The function wizard (F(x) button) can be used to create the
expression.
5. If desired, move equipment list parameters configured for the procedure to the
Selected Equipment area.
The example shown in Figure 62 illustrates the configuration for the Acquire
Ingred. Equipment BMA in the SoupAddIngred PFC.
The items that can be configured for this batch manager action include a label that
will be displayed in the center of the BMA block on the PFC, and a list of
equipment that specifies which pieces of equipment are to be acquired by this BMA.
It is possible to enter the names of equipment list procedure parameters such as
MeatUnit, VegeUnit, etc., which were configured through the Procedure
Parameters menu item. Refer to Equipment List Type Parameters on page 229. In
the case of the SoupAddIngred PFC, a number of pieces of equipment are acquired
simultaneously by an acquire equipment BMA, making all immediately available to

3BUA000146-600 A 243
Releasing Equipment Section 6 Procedures

that procedure thread so that a number of different ingredients can be added at the
same time.
Each acquire equipment BMA should be paired with a release equipment BMA to
free the equipment for use by other procedure threads when the current thread has
no further need for it. Refer to Releasing Equipment on page 244.

Releasing Equipment
The release equipment batch manager action is used to free one or more pieces of
equipment that were previously acquired by a procedure thread using an acquire
equipment BMA. Once equipment has been released, it is available for use by other
threads within the batch or, if the equipment was not reserved by the batch, to other
batches.
The release equipment BMA is configured in the same manner as an acquire
equipment BMA. Refer to Acquiring Equipment for Immediate Use on page 242.

Reserving Equipment
The reserve equipment batch manager action is used to reserve equipment for future
use during execution of a batch process. Equipment that is reserved cannot be used
by another procedure. Once a high level procedure has reserved a piece of
equipment for a batch, there is no need for subprocedures used in running the batch
to also acquire the equipment. The equipment is reserved for the exclusive use of
that batch until the batch has been completed.
When the procedure is running, the equipment will be marked as reserved in the
equipment overview. The equipment overview is a display available to the operator
that shows the equipment configured in the equipment aspects. Refer to the System
800xA Batch Management Operation (3BUA000145*) for a description of the
equipment.
The reserve equipment BMA is configured in the same manner as an acquire
equipment BMA. Refer to Acquiring Equipment for Immediate Use on page 242.
When the reserve equipment BMA is used in a top level PFC, the equipment that is
reserved must also be reserved in each subprocedure in order for the subprocedure
to be run independently. (If the subprocedure will not be run independently, this is
not required.)

244 3BUA000146-600 A
Section 6 Procedures Unreserving Equipment

Each reserve equipment BMA should be paired with an unreserve equipment BMA
to free the equipment when the procedure has no further need for it.

Unreserving Equipment
The unreserve equipment batch manager action is used to free equipment reserved
earlier in the procedure by a reserve equipment BMA and return it to the available
pool of equipment, once the batch has finished with it.
The unreserve equipment BMA is configured in the same manner as an acquire
equipment BMA. Refer to Acquiring Equipment for Immediate Use on page 242.

Selecting Equipment
The select equipment batch manager action is used to select equipment for use
during execution of the batch when a number of similar pieces of hardware
equipment is available. Selection is based on a cost factor and an equipment list
parameter supplied during configuration. The equipment list parameter is actually
an equipment list type procedure parameter configured using Tools > Procedure
Parameters. Refer to Equipment List Type Parameters on page 229. Selected
equipment must be acquired before it is used and then released before the
corresponding deselect BMA is executed. When using multiple select BMAs that
utilize the same equipment list type parameter, verify that a deselect has been
executed (make the equipment available) before executing another select BMA that
utilizes the same equipment list type parameter.
The select equipment BMA is configured in the same manner as an acquire
equipment BMA except for few fields. Refer to Acquiring Equipment for
Immediate Use on page 242. The example (Figure 63) shows the configuration for

3BUA000146-600 A 245
Selecting Equipment Section 6 Procedures

the BMA object labeled Select Cooker found on the SoupRecipe PFC (Figure 44).

Figure 63. Select Equipment Window

Cost Factor
A value or an expression to be used in determining which equipment to choose is
entered here. Refer to Appendix A, Configuring Batch Variables and Expressions
for details on batch expressions and variables. The default cost factor is one, a
numeric constant. A cost factor of one means that any available equipment in the list
represented by the equipment parameter can be selected. Do not expect selection of
a particular equipment based on status of other equipment, list position, etc.

Equipment Expression/Selected Equipment


Enter an expression that evaluates to an equipment parameter or select a defined
equipment list procedure parameter and move it to the Selected Equipment area.
Equipment list parameter configuration is discussed in Equipment List Type
Parameters on page 229. In the example, the equipment parameter selcooker was
selected. The member list for selcooker contains the equipment C1, C2 and C3.
In the example in Figure 63, the following expression was used:
attget(__unit,"Size") - num(SoupAmt)
Two underscore characters precede the word unit in the _unit built-in variable
name.

246 3BUA000146-600 A
Section 6 Procedures Deselecting Equipment

This expression is evaluated against all the equipment in the list represented by the
equipment parameter, with the built-in variable __unit assuming the value of each
piece of equipment in the list represented by the equipment parameter selcooker. For
example, the equipment C1, C2 and C3 were configured in the equipment aspects.
As each equipment is evaluated, the Size attribute for the current equipment is
obtained by the attget function. The equipment that produces the smallest positive
value will be selected.
The num function forces the value on which it acts [SoupAmt] to be interpreted
as a numeric value rather than as an ASCII string.
The variable __unit can also be used with the deselect equipment batch manager
action.
A corresponding deselect equipment BMA should also be configured on the PFC to
free the equipment when the procedure has no further need for it. Refer to
Deselecting Equipment on page 247.

Deselecting Equipment
The deselect equipment batch manager action is used to deselect the equipment that
was chosen through the select equipment BMA that precedes it. Use the same
equipment parameter configured in the select equipment BMA when configuring
the corresponding deselect equipment BMA.
The deselect equipment BMA is configured in the same manner as a select
equipment BMA except for the Cost Factor field which is not present. Refer to
Selecting Equipment on page 245.

Configuring PFC Function Blocks


Refer to:
• Configuring Procedure Blocks.
• Configuring Phase Blocks.
• Counting Phase Parameters.
• Simultaneous Processing.
• Defining Multiple Procedure Paths.
• Configuring Transition Blocks.

3BUA000146-600 A 247
Configuring Procedure Blocks Section 6 Procedures

Configuring Procedure Blocks


As discussed at the beginning of this section, complex processes can be broken
down into smaller portions or subprocedures that have a beginning and an end and
can stand alone to perform part of a process. Unit procedures, operations, and
exception procedures can be used as subprocedures.
On a PFC, the procedure block is used to represent a lower level procedure. To
configure a procedure block object:
1. Select the object and select Edit > Block Properties. The Procedure Operation
Assignment window (Figure 64) will be displayed.

Figure 64. Procedure Operation Assignment Window

2. Enter a name for the block in the Block Label field. If no label is entered, the
name of the procedure that is selected will be used by default and will appear
on the procedure block on the PFC.
If no configuration has yet been performed for the object, the procedure will be
Unspecified. No parameters will be displayed in the area at the bottom of the
window.
Class Value: Users can define the value directly or they can use the function
wizard to write an expression that returns the class value from the range of 1-

248 3BUA000146-600 A
Section 6 Procedures Configuring Procedure Blocks

9999. This value is configured in a Procedure Block and has same class value
when a recipe is called by the Procedure Block.
If the Sub-procedure Block class value is defined, then related value is assigned
to the instance of the recipe Blocks.
3. Click the Procedure field browse button and select the procedure in the Select
Procedure window (Figure 65). If the ISA-88 option is enabled, only certain
types of procedures can be nested under each procedure.

Figure 65. Select Procedure Window

When a procedure has been selected, the Procedure Operation Assignment window
will be revised to reflect that selection, and will be expanded if necessary to include
any procedure parameters that have been configured for the selected procedure
which the procedure block will represent. For example, Figure 64 illustrates the
Procedure Operation Assignment window for the procedure block that represents a

3BUA000146-600 A 249
Configuring Procedure Blocks Section 6 Procedures

sub-procedure as shown in Figure 66.

Figure 66. Procedure Operation Assignment - Showing the Parameters

4. Configure the editable parameter fields as necessary.


All the fields that define the procedure are displayed for each parameter. Any of
these fields can be edited for the parameters of the lower level procedure from the
higher level procedure. Entries that can be made here include names of parameters
configured for the higher level procedure currently being configured, expressions
and constants.
In Figure 66, a parameter called _SoupAmt was configured for the subprocedure
SoupProcIngred. The name of the parameter (SoupAmt, with no leading underscore
character) configured for the higher level procedure (SoupRecipe) has been entered
in the text entry box. This means that when the procedure is executed, the value
entered for the parameter SoupAmt will be passed down to the subprocedure
SoupProcIngred. This is important because when values are entered manually by the
operator at run time through the Parameters button on the Batch Schedule window,

250 3BUA000146-600 A
Section 6 Procedures Configuring Phase Blocks

only the parameters for the top level procedure SoupRecipe will be displayed and
available to accept input.
Parameters in the different procedures could be given identical names. In this
case the names have been configured with a slight difference (_SoupAmt and
SoupAmt) to avoid confusion.
Procedure parameter values can be passed from higher level procedures to lower
level procedures. To do this, corresponding parameters must be configured in both
the higher level procedure and the subprocedure. When a procedure block is placed
on a PFC, procedure parameters configured in the subprocedure named in the
procedure block can be exported to the higher level procedure currently under
configuration. This removes the need to manually add the parameter to the current
procedure through Tools > Procedure Parameters.
To export subprocedure parameters to the current procedure:
1. Click the row containing the parameter to be exported.
2. Click the export toolbar button.
3. Enter the name to be used for the parameter in the current procedure and click
OK. The contents of the parameter window field will be updated to reflect the
name used to export the parameter.
To verify that the export operation was successful, select Tools > Procedure
Parameters. An entry for the exported parameter will appear in resulting Procedure
parameters window. An example of this window and discussion of procedure
parameter configuration can be found in Configuration of Procedure Parameters on
page 224.

Configuring Phase Blocks


Phase blocks (also referred to as phase objects) are placed on a PFC to represent
phases that were defined in the equipment aspects. Refer to Section 4, Equipment
Configuration (Batch Advanced Templates). When the phase block is reached on
the PFC, it will be executed in the equipment specified for it in the Phase Operation
Assignment window. This information is specified during configuration of the phase
object. If the phase object is within a sequence however, the equipment and module
index will be determined by the configuration of the sequence start object. These
items will be automatically filled in and appear as labels.

3BUA000146-600 A 251
Configuring Phase Blocks Section 6 Procedures

A phase object is configured in the same manner as that of a BMA object:


1. Select the phase object and choose Edit > Block Properties. The Phase
Operation Assignment window (Figure 67) will be displayed.

Figure 67. Phase Operation Assignment Window

Figure 67 is an example of a Phase Operation Assignment window. When opening


the window for a phase object newly added to the PFC, the Block Label, Module
Index, Phase, and Parameter area of the window will not be filled in.
2. Enter the label to be displayed on the phase object in the PFC. If none is
specified, the phase alias name will be used.
Text entered in the Block Label field will appear in the phase object on the PFC.
While there is no limit on the ability to enter text, the phase object was designed to
contain a maximum of three lines containing 15 characters each. If more characters
and/or lines are entered, the text will be centered on the phase object and will spill
out to the right of the phase object. It is best to keep the label simple and enter

252 3BUA000146-600 A
Section 6 Procedures Configuring Phase Blocks

additional relevant information through Tools > Attach Note (Figure 68).

Figure 68. Procedure Notes Configuration Window

The main portion of this window is a text entry area. To include text from a
previously configured file in the procedure notes, click Import. The select a text file
to import window will be displayed.
What is filled in for the equipment depends on whether or not equipment list
procedure parameters have already been defined for the procedure, and, if so, how
many. If no equipment list procedure parameter has already been defined for the
procedure, then the equipment will be shown as Unspecified. If a single equipment
list procedure parameter has been configured, then the name of that procedure
parameter will be filled in and a P will follow in parentheses to indicate that the
name is a parameter rather than an equipment name. If more than one equipment list
type procedure parameter exists for the procedure, the system will not make an
assumption about which to use. The equipment will be Unspecified.
3. If the equipment is Unspecified or the assignment needs to be changed, click
the browse button and configure the assigned equipment in the Phase

3BUA000146-600 A 253
Configuring Phase Blocks Section 6 Procedures

Equipment Selection window (example shown in Figure 69).

Figure 69. Phase Equipment Selection Window

The Phase Equipment Selection window contains the Equipment List Parameters
and Equipment Units tabs. The Equipment List Parameters tab is selected by
default and all of the procedure parameters of the Equipment List Parameters and
their associated list of configured items are shown.
To configure the phase to always execute on the same equipment, select the
Equipments tab and select the name of the desired equipment. If the equipment on
which the phase executes should be configurable at run time, or should be
determined by the batch manager during batch execution, select the Equipment List
Parameters tab.
If a Equipment List parameter was selected, the indicator P will appear to the right
of the equipment name. If a specific piece of equipment was selected, no indicator
will appear.
If the assigned equipment or equipment parameter has been deleted, the red
message Not Found will appear to the right of the equipment name. If the
equipment parameter exists but contains no equipment, the message Empty will
appear to the right of the equipment name.
4. Enter the proper number, expression, or function in the Module Index field.

254 3BUA000146-600 A
Section 6 Procedures Configuring Phase Blocks

The default module index is mindex(). Processing more than one phase on a piece of
equipment simultaneously will require a unique entry in the Module Index field for
each phase. An expression can be entered or the mindex function can be used to
locate the first unused module index for the specified equipment at run time.
5. Select the desired phase alias in the Phase Alias field.
This field contains a list of all the phase alias names for the phases associated with
the selected equipment during configuration of the equipment aspects. If a
equipment list procedure parameter has been selected, the list will show only those
phases common to all members of the list. The selected phase name will be
displayed in the Phase Alias field on the Phase Operation Assignment window.
When a phase alias name is selected or changed, the lower portion of the Phase
Operation Assignment window will be automatically revised to reflect the change.
If phase parameters were configured for the selected phase name, the bottom portion
of the Phase Operation Assignment window will be updated to list the phase
parameters and include text entry capability to change them. If the selected phase
alias represents more than one equipment phase, then the parameter list shown will
be a union of all parameters for all equipment phases represented by the phase alias.
Refer to Section 2, Description and Operation for more information about phase
parameters and their relationship to procedure parameters.
Phase parameters (configured in the equipment aspects) for phases that appear in the
lower portion of the Phase Operation Assignment window can be exported to the
procedure currently under configuration, bypassing the need to manually configure
corresponding parameters through Tools > Procedure Parameters. The method for
exporting phase parameters is similar to that used for exporting procedure
parameters from lower level procedures named in a procedure block to higher level
procedures. Refer to Configuring Procedure Blocks on page 248.
If desired, enter an expression in the Expression field. The function wizard (F(x)
button) can be used to create the expression. The Destination field of Out and In/Out
parameters can be used to specify a recipe or batch variable. All configured
expressions must evaluate to a text string representing a valid variable name.
Variable names that starts with an / will be interpreted as batch level variables. All
other variables names will be treated as recipe level variables. The output parameter
value (if set) will be written to this variable on phase completion. This functionality
allows phase output parameter values to be used as input values for subsequent

3BUA000146-600 A 255
Counting Phase Parameters Section 6 Procedures

calculations or as phase input parameters. Use batch functions varget or bvarget to


access the value of these variables.
All Out and In/Out parameter values set by the phase are sent to PDL for use in
production data reports, regardless of the specified destination.
Configure the access level an operator can have and be permitted to respond to
messages in the batch message window in the Access Level field.
6. If no prologue or epilogue expression has been configured, use the Add
Prologue and Add Epilogue buttons to enter an expression that is executed
before (prologue) the phase is run or after (epilogue) the phase reaches a final
state (complete, stopped, or aborted). Any expression that can be used in a
compute BMA can be used as a prologue or epilogue expression. The actions
and results of the expressions will be associated with the phase instead of the
procedure. If a prologue or epilogue expression has already been configured,
use the Edit Prologue or Edit Epilogue buttons to edit them.

Counting Phase Parameters


Select Tools > Parameter Counts to provided a quick method of obtaining the
number of phase parameters used by each object in a PFC. The Parameter Counts
window (Figure 70) will be displayed.

Figure 70. Parameter Counts Window

Information displayed in the count phase params window includes the following
items for each phase or sequence in the procedure:
• A unique internal operation ID number (OP ID), assigned by the system to
each block on the PFC.
• The phase block label.
• A type indicator (P = phase, S = Sequence start).

256 3BUA000146-600 A
Section 6 Procedures Configuring Sequences

• The parameter count.

Configuring Sequences
The sequence start batch manager action is used to download to a controller the
information about a group of phase objects in the procedure and the equipment
definitions in the equipment database and the assignments between them. The
grouping (sequence) of phases is marked by the sequence start and corresponding
sequence end batch manager action.
The equipment phase logic is always stored in the controller.

Not all controller systems support sequences of phases.

The batch manager determines what phase are used for and therefore what needs to
be downloaded into the controller. Phases within sequences run to completion
without intervention from the batch manager.
The sequence end batch manager action is used to mark the end of a sequence so
that the batch manager knows what information to download to the controller. There
are no values that must be supplied.

Simultaneous Processing
The parallel branch (start) object is used to define the beginning of simultaneous
processing. Simultaneous processing means that all of the paths that originate at the
parallel branch (start) object will be executed. A corresponding parallel branch
(end) object is used to define the end of parallel processing. Procedure processing
does not progress beyond the parallel branch (end) until all parallel threads
connected to it have completed. Parallel branch (start) and parallel branch (end)
objects must always be used in complementary pairs.
A good example of the use of parallel branch (start) and parallel branch (end) is
found in the SoupAddIngred procedure (Figure 45), where five phase objects
(labeled Add Meat, Add Veg, Add Spices, Add Water and Run Grinder) have been
configured to execute simultaneously on separate paths.

3BUA000146-600 A 257
Defining Multiple Procedure Paths Section 6 Procedures

Defining Multiple Procedure Paths


The branch (start) object is used to define the beginning of a logical branch in the
processing. Multiple threads containing conditions are located after the branch
(start). Conditions are evaluated from left to right. The first condition encountered
that evaluates to true will be used. Only one path following the branch (start) will be
executed. The branch (end) object is typically used to define the end of the logical
branch processing.
While the branch (start) and branch (end) objects are typically used for logical
branch processing, they can also be used to create a loop condition, as illustrated in
the central portion of the SoupProcIngred PFC (Figure 45), where prompts and
actions related to tank selection are configured.

Looping Structure Configuration


There are application requirements that may dictate the use of a looping structure
within a procedure. The branch start and branch end symbols can be used to create a
looping structure within a procedure. An example is illustrated in the
SoupProcIngred example PFC (Figure 45).
Recipe procedure authors should take care when configuring a looping structure to
ensure that the resulting runtime behavior does not result in a continuous execution
condition of the loop. A continuous execution condition may occur if the looping
structure of the procedure consists of procedure blocks that are exclusively
processed by the batch manager (without a quiescent state) and/or combined with a
transition condition that consistently evaluates to true resulting in the continuous
execution of the looping procedure leg.
A typical example of a procedure block with exclusive batch manager processing
(without a quiescent state) is the Batch Manager Action Compute block. All of the
processing of the Compute block takes place solely within the batch manager. This
is in contrast to a Phase block or a Batch Manager Action Message block which has
processing outside of the batch manager and contains a quiescent state (for example,
the phase block will command a controller phase to the running state and monitor
for a state change condition).
A running procedure that encounters a continuous loop execution condition may
result in a delay or stalling of the procedure which may resume processing upon
termination of the looping procedure. It is also possible that a continuous loop

258 3BUA000146-600 A
Section 6 Procedures Configuring Transition Blocks

execution condition may result in a delay or stalling of all active procedures on the
batch manager. In extreme cases it is possible to effectively terminate the processing
of all current batch procedures. Therefore it is important that the recipe procedure
author exercise caution when configuring looping structures within a procedure. It is
recommended that the resulting recipe procedure structure should not result in the
execution of more than 20 consecutive procedure blocks with exclusive batch
manager processing.

Configuring Transition Blocks


A transition object defines a logical expression. The expression can be simple or it
can be very complex (Figure 71). Typically, a transition object is used in one or
more of the procedure threads following a branch start, as illustrated at the end of
the SoupProcIngred procedure example (Figure 45). Execution will not continue
down the path until the condition is true. These threads are evaluated from left to
right. If no condition is true, each expression is evaluated again every second, until
one becomes true. Batch expressions are described in Appendix A, Configuring
Batch Variables and Expressions.

Figure 71. Transition Configuration Window

Displaying User Graphics


It is possible to allow an operator, at runtime, to display a user-configured graphic
by right clicking a phase object and selecting User Display. Clicking User Display
at the bottom of phase block status windows also displays the user-configured
graphic. To configure the displaying of the graphic:
1. Select the desired phase object in the Plant Explorer.
2. Right click the phase object aspect of the associated with the user-configured
graphic and select Details.

3BUA000146-600 A 259
Other Batch Management Actions Section 6 Procedures

3. Click Add in the Aspect Keys area on the Aspect Info tab.
4. Select the Batch Phase User Graphic Key and click OK.
5. Click OK or Apply.
Only one Batch Phase User Graphic Key should exist within the phase object.

Other Batch Management Actions


Refer to:
• Providing and Requesting Information Within a Procedure.
• Collecting Data From a PFC.
• Printing a Report From a PFC.
• Assigning Values and Evaluating Expressions From a PFC.
• Issuing Operating System Commands from a PFC.
• Correlating the PFC and the SOP.
• Connecting Objects on a PFC.

Providing and Requesting Information Within a Procedure


The message batch manager action is used to display messages to the operator or to
get input from the operator. HTML formatting is used. Input can be in the form of a
text message, a selection from a list or a response to a yes/no question through a
drop-down list. The message block is composed of any combination of these types
in any order. It is also possible to set the colors of the different parts of the message.
The operator must OK all messages for the procedure to progress.
The message BMA is configured in the same manner as an acquire equipment BMA
with the exception of the Configure Advanced Message option. Enable this option
to configure the message using HTML directly.
The maximum allowed limit to configure a message is 32K. This can be
configured either using HTML or using the built-in message configuration tools.
If a message exceeds 32K, then the preview window displays it as truncated.
The message preview is explained in Previewing the Message Presentation
Window on page 265.

260 3BUA000146-600 A
Section 6 Procedures Providing and Requesting Information Within a Procedure

Refer to HTML Configuration Method on page 266 for more detailed information.
The Batch Message Configuration window will include configuration items
available for this type of batch manager action (Figure 72).

Figure 72. Batch Message Configuration Window

The label for the message BMA is configured in the usual manner by entering a text
string in the Block Label field. The next configuration item is labeled Title and is
used to enter text that will be displayed at the top of the message in a font larger than
that of the rest of the message text (displayed by clicking the preview message
toolbar button). The Batch Message window is ultimately the window seen by the
operator when a message BMA block is clicked in an executing PFC display.

Message BMA Color Configuration


Use the change text color and change background color toolbar buttons to configure
the background and text colors to be used when the message text (title and
individual message prompt, label, and default text) is displayed. Click in the
appropriate field and click the appropriate toolbar button to change colors. Use the
reset colors to default settings toolbar button to reset the background and text colors
(prompt and label text for example) to the default settings. Color configuration is
performed in a standard Windows color selection window for both of these items.

3BUA000146-600 A 261
Providing and Requesting Information Within a Procedure Section 6 Procedures

The default foreground and background colors can be changed by selecting the
foreground and background color squares and choosing the desired color in a
standard Windows color selection window.

Message BMA Response Access Level Configuration


To configure the access level an operator can have and be permitted to respond to
messages in the batch message window, select the desired access level in the Access
Level field.

Message BMA Optional Verification


Enabling the Verify User option will require the password of the logged in user to be
entered after a message has been answered.
Enabling the Second Approval Level option will require a second user’s name and
password to be entered after a message has been answered. The lowest access level
of the second user can be configured by selecting the desired access level in the 2nd
Approval Level field.

Message Configuration
The bottom portion of the Batch Message Configuration window (Figure 72)
contains a list of each message, if any, that has been configured to appear in the
message presentation window that is under configuration. Information in this list
includes:
• Index number.
• Type.
• Prompt.
• Label.
• Default.
• List.
• Validation.
• Variable.
All applicable message fields are directly editable. To configure a new message,
click the append sub-message toolbar button.

262 3BUA000146-600 A
Section 6 Procedures Providing and Requesting Information Within a Procedure

The type assigned to a message determines the message format, and whether or not
the message requires an operator response. Click in the Type field and select the
desired type.
Available type options include:
• Text.
• List.
• Yes/no.
• No input.
• Separator.
The text, list and yes/no message types are all used when input from the operator is
desired. The no input message type is used when information is to be presented to
the operator, but no input from the operator is required. The separator message type
does not produce a message, but is used to aid in organizing the message
presentation window by producing lines used to divide the message presentation
window into portions.
Use the text message type to configure a message that will provide the operator with
the opportunity to enter text. When the text message type is selected, the List field
will not be available. All other options will be available.
The three configurable items that will be seen by the operator are Prompt, Label and
Default. These items will be displayed in the message presentation window seen by
the operator, with the Prompt displayed above a text entry box containing the
Default and a label to the left of that box. Use the Prompt field to provide
information and/or instructions pertaining to what is to be entered in the text entry
box. Use the Label field to provide a brief identifier for the text entry box. The entry
configured in the Default field will appear, by default, in the text entry box when the
message is displayed to the operator. If the operator does not enter any input, the
value entered for Default will be used in place of input.
Two other items that can be configured for the Text message type are Validation and
Variable. Validation is used to require the operator to make an entry in response to
this message. The required response might be simple, such as the entry of some free
form text or a specific value, or it might be more complex, such as an entry of a
number within a certain range. Validation can be configured using a specific value,
or an expression. Refer to Appendix A, Configuring Batch Variables and
Expressions for a discussion of expressions.

3BUA000146-600 A 263
Providing and Requesting Information Within a Procedure Section 6 Procedures

Validation uses the system variable __input (which begins with a double
underscore) as the data input. __input is a string value. Direct comparison between
the operator input and a predefined string can be made using the following format:
__input == "Tank1"
- or -
__input == "15"
If the operator is expected to enter a numeric value and a range check on the value is
required, the num function must be used. For example:
num(__input) >= 10 && num(__input) <=25
Use the Variables field to define the name of a local variable in which the entry
made by the operation will be stored. Once defined and the block has executed, this
variable can be viewed by right clicking in the runtime PFC display, selecting Batch
Variables from the pop-up menu, and selecting the Variables tab. This variable can
also be used in batch expressions. However, this variable can not be used in
expressions defined in the Validation field in this window. Use only variables
defined elsewhere in validation expressions.
Use the List message type to configure a message which will provide the operator
with the opportunity to select an item from a list. When the List message type is
selected, the Validation field will be unavailable. All other fields will be available.
The three configurable items which will be seen by the operator are Prompt, Label
and Default.
Use the List field to configure a list of items from which the operator will be able to
make a selection.
Use the Variables field to define the name of a local variable in which the entry
made by the operation will be stored. Once defined and the block has executed, this
variable can be viewed by right clicking in the runtime PFC display, selecting Batch
Variables from the pop-up menu, and selecting the Variables tab. This variable can
also be used in batch expressions.
Use the Yes/No message type to configure a message which will provide the
operator with the opportunity to select either Yes or No from a drop-down list.
When the Yes/No message type is selected, the Validation field will not be available.
All other fields will be available.

264 3BUA000146-600 A
Section 6 Procedures Providing and Requesting Information Within a Procedure

Configure the prompt and label as described in this section. The default option is
presented for configuration as a drop-down list. Select Yes and No from the list. The
one selected will be used as the default in the message presentation window.
Use the Variables field to define the name of a local variable in which the entry
made by the operation will be stored. Once defined and the block has executed, this
variable can be viewed by right clicking in the runtime PFC display, selecting Batch
Variables from the pop-up menu, and selecting the Variables tab. This variable can
also be used in batch expressions.
Use the No Input message type to configure a message which will provide the
operator with a read only message. When this message type is selected, only the
Prompt option can be configured. All other options will not be available. To
configure a message of this type, select the Prompt field and enter information.
The message type labeled Separator is used to create lines on the message
presentation window. Use this item when multiple messages will be displayed in the
message presentation window to organize the display. To configure a separator,
select the Separator option in the Type field. An entry for the separator will appear
in the batch message configuration window, showing the location of the separator.

Deleting Configured Messages


Messages and separators can be deleted from the configuration using the delete sub-
message toolbar button. Select the message to be deleted and click the delete sub-
message toolbar button. Clicking in the index column will select the entire message.

Previewing the Message Presentation Window


Once messages have been configured, use the Preview Message toolbar button to
preview the messages displayed in the dimensions and format that will be seen by
the operator. If necessary, the window dimensions can be changed. The message
exceeds 32K limit is displayed as truncated.

Reordering Messages in the Message Presentation Window


Each message in the list in the Batch Message Configuration window has been
automatically assigned an index number during configuration. This index number
corresponds with the position of the item in the Batch Message window.

3BUA000146-600 A 265
Providing and Requesting Information Within a Procedure Section 6 Procedures

After the message presentation window has been previewed, it can be reorganized
by clicking the desired index number and dragging the message to the desired
location (indicated by a red line).

Creating Reusable Message Templates


Once a set of messages has been formatted, the configuration can be saved as a
template, which can be reused. To save the current configuration as a template:
1. Click the create/load/save message templates toolbar button. The Message
Templates window will contain a list of all the templates (if any) that have been
configured on the system.
2. Click the save message template toolbar button. A window will be displayed
which contains a field labeled Template Name.
3. Enter the name of the message template and click OK.
Once a template has been stored, it can be loaded by selecting the template and
clicking the load message template toolbar button. The selected configuration will
be loaded into the Batch Message Configuration window.

Copying Messages
It may be useful to configure similar messages with slight differences by using the
copy feature. In the list of the Batch Message Configuration window:
1. Create a new message.
2. Select the message to be used as the source.
3. Use standard Windows copy and paste commands to place the text in the new
message.

HTML Configuration Method


It is possible to configure a message BMA using HTML methods directly. Enable
the Configure Advanced Message option to proceed directly to the HTML Message
window.

266 3BUA000146-600 A
Section 6 Procedures Collecting Data From a PFC

Message BMAs configured using the default method (Batch Message Configuration
window) can be converted to HTML. However, once a message is converted it
cannot be returned to the original format.
To convert a message to HTML:
1. Select the HTML toolbar button in the Batch Message Configuration window.
2. Click OK after being warned that the HTML conversion process cannot be
undone. Return to the original message configuration method is not possible.
3. Edit the Block Label field and HTML message as required in the HTML
Message window. HTML messages can also be configured in Note Pad by
clicking Edit with Note Pad.
4. Use the preview toolbar button to verify the message is correctly configured.

Collecting Data From a PFC


Use the data collection batch manager action to collect data from the control system
database while running a batch. A logical name must be specified that identifies the
batch database point that will store collected information, an OPC item (the point
from which data will be collected), and the data collection rate (once, start, or stop).
The data collection BMA will create a history association in a production data log
(PDL) on the Information Management server node if Information Management is
part of the system. A numeric log must be configured (using the Information
Management History Services function) to hold the collected numeric data. The
history association allows the PDL to be used to retrieve specific batch data without
having to know the actual time the batch was executed. The data collection BMA is
configured in the same manner as an acquire equipment BMA. Refer to the Batch

3BUA000146-600 A 267
Collecting Data From a PFC Section 6 Procedures

Data Collection window (Figure 73).

Figure 73. Batch Data Collection Window

To create a data collection:


1. Click the append data collection toolbar button.
2. Enter or select the appropriate information in the Logical name, OPC Item, and
Data Collection fields and click OK.
To delete a data collection, select it and click the delete data collection toolbar
button.

Logical Name
This field specifies the name of the data point in the batch database that is to store
the collected information. Enter PDLMSGLOG as the logical name when PDL
message log information is to be collected. This name must be unique within the
procedure. The batch expression language can be used to dynamically generate a
unique logical name. Ensure that the logical name is unique for a recipe which loops
through a data collection (multiple groups of data from the PDL) process.

OPC Item
This field specifies the OPC data point name found in the control system database
from which data is collected (when a collection rate of Once is being used) or the
name and path of the OPC object containing the data point (when Start and Stop
collection rates are used). Use the browse button to enter PDLMSGLOG as the OPC
item when PDL message log information is to be collected. The first 800xA System

268 3BUA000146-600 A
Section 6 Procedures Printing a Report From a PFC

log for the OPC object is used unless a specific log is specified using the format:
OPC_data_point_name, log_name.
Both the logical name and the OPC item must be enclosed within double
quotation marks.
Refer to the appropriate Information Management instruction for more information
about the Information Manager Browser and how to obtain the name and path of an
OPC object.

Data Collection Rate


This field is used to define the collection rate. Collection rate options are:
• Once.
• Start.
• Stop.
The default collection rate option is Start. When defining the collection rate as Start,
the first data collection BMA will make the history association and the
corresponding BMA set to Stop (recommended) will remove the history association.
If the collection rate of Once is used, the Stop default is not required. Data that is
collected using the Once option is stored as tag key data. Data collected as a result
of the Start collection rate is stored as periodic data. The data collection BMA
removes the history association when the procedure ends. Data collected using the
Once collection rate is stored in the tag key data section of the batch history data.
To stop data collection at a point prior to the end of a procedure, insert another data
collection BMA at that point. Set the data collection rate of the application OPC
item (for this BMA) to stop. OPC items whose data collection rate is set to once
should not be changed.

Printing a Report From a PFC


The print report BMA is used to generate a batch report from within a procedure.
The name of the report template must also be supplied.
The printing of Information Manager reports is not supported by this function.
Refer to Scheduling Jobs From a PFC on page 270.

3BUA000146-600 A 269
Scheduling Jobs From a PFC Section 6 Procedures

The print report BMA is configured in the same manner as an acquire equipment
BMA. Refer to Figure 74.

Figure 74. Print Report Window

Enter the name of the batch report to be printed, enclosed within double quotation
marks, in the Report field. The template for the batch report, including the report
name, is configured using the Batch Reports feature. Refer to Appendix H, Log
Configuration. The function wizard can be used to create an expression that
evaluates to a report name.

Scheduling Jobs From a PFC


The schedule job batch manager action is used to execute predefined jobs (reports,
computations, etc.) found in the Schedule Structure.
The Use 800xA Historian option (on the History Options tab of the
Miscellaneous Batch Configuration information) must be enabled for schedule
job BMAs to function correctly.
Jobs are defined using the 800xA system software. The scheduling of Information
Manager reports is a common usage of this batch manager action. The schedule job

270 3BUA000146-600 A
Section 6 Procedures Scheduling Jobs From a PFC

BMA is configured in the same manner as an acquired equipment BMA. Refer to


Figure 75.

Figure 75. Schedule Job Window

A listing of the predefined jobs is shown in the left area. Select the job to be
scheduled and move it to the Scheduled Jobs area.
Choose the time the job will be scheduled by selecting Immediately or At Batch End
in the Schedule At column. Jobs scheduled Immediately are scheduled when the
schedule job BMA is executed. All jobs of the same schedule time listed in the
Schedule Job window will be scheduled in the order presented.

3BUA000146-600 A 271
Assigning Values and Evaluating Expressions From a PFC Section 6 Procedures

Assigning Values and Evaluating Expressions From a PFC


The compute batch manager action is used to assign values to variables and evaluate
expressions. The compute BMA is configured in the same manner as an acquire
equipment BMA. Refer to Figure 76.

Figure 76. Compute Block Window

Click the append expression toolbar button to add a blank expression. Enter the
desired expression in the Expressions field. Expressions can be reordered by
clicking the expression number and dragging the expression to the desired location
(indicated by a red line). Standard Windows editing key sequences (Ctrl-Home,
Ctrl-End, Shift-Home, etc) can be used to edit expressions.
The state of compute BMA blocks goes to idle with error if the defined
calculation fails.
The compute batch manager action can also be used to dynamically invoke a
procedure using the rcpexec procedure. This allows the compute BMA to perform a
function similar to that of a procedure block, by calling a subprocedure. A
subprocedure invoked using rcpexec will have the same batch ID as the parent

272 3BUA000146-600 A
Section 6 Procedures Issuing Operating System Commands from a PFC

procedure. The rcpexec procedure also permits parameter passing to the


subprocedure.
A compute BMA containing the rcpexec function is not for use within a looping
structure configured into a procedure. In a looping structure, the rcpexec function
will call the procedure correctly the first time through the looping structure but
subsequent executions of the compute BMA will not call the procedure. The
method for calling procedures from within a loop is to use a command BMA
containing the batch_sbatch command to call procedures. Refer to batch_sbatch
on page 351 for more information.

Issuing Operating System Commands from a PFC


The command batch manager action is used to issue an operating system level
command automatically, from the procedure. The results of the command will be
returned in several variables: status, output and errors. The command text and the
names of the three variables where the results are to be stored must be supplied.

3BUA000146-600 A 273
Issuing Operating System Commands from a PFC Section 6 Procedures

The command BMA is configured in the same manner as an acquire equipment


BMA. Refer to Figure 77.

Figure 77. Command Window

Command
Enter the operating system command that will be executed when this BMA is
reached during execution of the procedure. The command should be enclosed in
double quotes. For example, to create a five second delay, enter “sleep 5” in the
Command text entry box. Other possibilities include scheduling a batch, changing a
batch, or changing equipment status. Refer to Appendix J, Batch Command
Interface.

Status, Output, and Error


Use these fields to create variables that will contain output generated as the result of
executing the operating system command. Any error messages generated will be
stored in the variable named in the Error field. If the command is used to generate
output, it will be stored in the variable defined in the Output field. For example, if

274 3BUA000146-600 A
Section 6 Procedures Issuing Operating System Commands from a PFC

the command directory is specified, a directory name would be stored in the Output
variable. A status code generated on completion of command execution will be
stored in the variable named in the Status field. This status code is generated by the
operating system, not the Batch Management system. Consult the operating system
manuals for information on interpreting this code. The variable names configured in
the Status, Output and Error fields must be enclosed in double quotation marks (" ").
These variables can be viewed using Batch Variables which is accessed by right
clicking in the runtime procedure window. These variables can be used in batch
expressions.
If the operating system command will generate more than one line of output, it
makes sense to include instructions in the operating system command to redirect
the output to a file.
Example:
dir \\FandP\\calc\\src > temp.fil
In this example, the dir command will list all the files in the directory
\FandP\calc\src, and provide information about each file. The > symbol
redirects the output to a file called temp.fil.
When executing operating system commands, refer to the help for the Windows
operating system to verify the command syntax is correct. One of the issues to
keep in mind is the use of the backslash (\) character in directory names. Batch
Management treats backslash as a special character, which cannot be used by
itself. Therefore, each backslash character used in a command should be doubled.
For example, to obtain the directory listing for c:\winnt\systems32, use:
Windows 32-bit version, c:\\Windows\\System32
Windows 64-bit version, c:\\Windows\\SysWOW64
Command BMA should not be used to invoke interactive programs like
notepad.exe or winword.exe. Attempts to do so may result in a “phantom”
version of the program being initiated.
It is important to understand that the operating system search paths seen at a
given time by the currently logged on user are not necessarily the same as the
ones seen by the batch manager. All command BMAs are executed by the
operating system and not by the currently logged in user.

3BUA000146-600 A 275
Correlating the PFC and the SOP Section 6 Procedures

Correlating the PFC and the SOP


The standard operating procedure or SOP is a textual representation of the
procedure, which provides the operator with a written explanation of the process.
The operator can request to view the SOP online as the batch is in process. Refer to
the System 800xA Batch Management Operation (3BUA000145*) for details.
An SOP is composed of sections of text. During configuration of a procedure, the
configurer can add batch manager action (BMA) blocks to the PFC that are assigned
to the batch manager action type set SOP section. These BMA blocks allow SOP
section names to be specified at various places in the procedure. When the batch is
executing, and the operator requests to view the SOP, the appropriate SOP will be
displayed in a window, with text beginning at the SOP section appropriate for the
currently executing portion of the procedure.
If no batch manager action to position the SOP pointer has been executed, the
SOP display is positioned at the beginning of the SOP text file.
Each SOP section is started by using the key word SECTION at the beginning of the
line, followed by white space (spaces, tabs), followed by the section name, to the
end of the line. For example:
SECTION SectionName
SectionName can be any text string that the user desires. It will act as the distinct
name of the section. All the text located between the section name and the next
SECTION key word (or the end of the file, if there is no subsequent SECTION key
word) belongs to that section.
When configuring batch manager actions (BMAs) assigned to the set SOP section
option, it is the combination of the key word SECTION and the section names
embedded in both the set SOP section BMAs and the file that composes the body of
the SOP that make it a context sensitive online operator aid.
The contents of the entire first line of an SOP section (i.e., everything that follows
the key word SECTION) should be identical to the section information configured
for the corresponding set SOP section batch manager action. It is the responsibility
of the configurer to insure coordination of the PFC and the SOP sections.

276 3BUA000146-600 A
Section 6 Procedures Connecting Objects on a PFC

The set SOP section BMA is configured in the same manner as an acquire
equipment BMA. Refer to Figure 78.

Figure 78. Set SOP Section Window

Enter the section name found in the procedure’s SOP which corresponds to the
current point of batch execution in the PFC in the Section area. This is the section of
the SOP that will be displayed when the PFC has executed to this point and the
operator requests to view the SOP.
The section name is a text string, and should be enclosed within double quotes
when entered in the text entry box.

Connecting Objects on a PFC


Once phase, procedure, BMA, parallel start, parallel end, branch start, branch end
and transition objects have been placed on a PFC, they can be linked together using
the connector tool. A connector object resembles an arrow. Connections define the
sequence of operations in the PFC.
Select Tools > Drawing Tools > Connector Tool, position the pointer just inside
the first object to be connected, and click it (Connector tool from the Standard tool
bar also can be used). The connector will be positioned at the midpoint of the
selected side of the object. Drag the pointer to the next object in the sequence of
operations, position the pointer just inside the objects border, and click the left
mouse button. Repeat this procedure until all objects are connected.
To change the direction of a connector, drag the pointer to the location where the
change of direction is to occur, click the left mouse button to anchor the connector
to the PFC, then continue to drag the pointer in the new direction.

3BUA000146-600 A 277
Exception Handling Section 6 Procedures

Exception Handling
Equipment related exceptions are those that can compromise the integrity of the
equipment (e.g., process temperature that exceeds the design temperature of the
equipment, or process pressure that exceeds the design pressure of the equipment).
Each of these exceptions can cause the equipment to fail mechanically and pose a
hazard to the personnel around the equipment. Equipment related exceptions should
be handled at the controller level.
Product related exceptions are those that are product specific. These exceptions do
not exceed the processing capability of the equipment and pose no safety hazard to
the personnel around the equipment, but cause the production of non-specification
product. The response to a product related exception may be dependent both on the
product being produced and the point in the execution of the product recipe when
the exception occurs.
In short, during procedure execution abnormal product related conditions can occur
which can have an undesirable effect on the batch product. The Batch Management
software enables the configurer to integrate exception procedures (procedures that
monitor for and respond to product related exceptions) into the normal procedures.
The ability to monitor for and respond to abnormal conditions during procedure
execution can also be written and included as part of the security logic in the
equipment phase logic, if supported by the controller. In order for the equipment
phase logic to be reusable in various procedures requires the security logic to be
specific for the equipment phase rather than procedure.
Exception procedures provide the ability to write exception logic at the procedure
level, but are not a replacement for lower level logic that is protecting against
dangerous situations (e.g., equipment related exceptions).
Explanation: The controller processes data in real-time, and modules in the control
system can be scanned frequently at short intervals (e.g., 0.1 second intervals).
Exception procedures are processed in Batch Management which are multitasking
(rather than real-time) modules. Also, exception procedures monitor for abnormal
procedure-related conditions using transition blocks. The scan rate for a transition
block has a minimum of five seconds. (The interval can be longer, depending on
system load.)

278 3BUA000146-600 A
Section 6 Procedures Configuring an Exception Procedure

Exception procedures provide the same service, with enhancements. Exception


procedures are configured at the procedure level and presented in the same type of
graphical user interface as a PFC. It is possible to:
• Monitor and respond to abnormal conditions from the procedure function chart
using the same type of graphical user interface as that used for the procedure.
• Identify and monitor for procedure specific potential abnormal conditions, and
configure (in PFC format) procedures to follow in the event of such abnormal
conditions. This means the exception logic is designed as part of the procedure
for a specific product, not as generic security logic that has to be designed to
cover a wide variety of different products.
• Monitor for abnormal conditions independently from phase and procedure
blocks.
• Monitor for abnormal conditions across multiple blocks in a procedure.
• Monitor during the intervals between procedure blocks as well as during the
execution of procedure blocks when an exception procedure is configured to
span multiple blocks in a procedure.
• Monitor for multiple conditions. Monitoring for different conditions can be for
different durations.
• Configure exception response logic in procedure format using the same tools
and building blocks as used during regular procedure configuration.

Configuring an Exception Procedure


There are two aspects to configuration of exception procedures:
• Configuration of the procedure that includes an exception procedure.
• Configuration of the exception procedure itself.
Configuration of each of these items has its own requirements.
An exception procedure can be used in any type of procedure in the hierarchy of
procedure function charts, which includes operations, unit procedures, exception
procedures and recipe procedures. For the purposes of simplicity, this subsection
will describe the use of an exception procedure on the batch procedure level. The
techniques described can be applied at any level.

3BUA000146-600 A 279
Usage Guidelines Section 6 Procedures

Usage Guidelines
Figure 79 shows the required structure for using exception procedure.

Figure 79. Required Exception Procedure Usage

Main Logic
The main logic can be a single block, procedure, or combination of both. Procedures
in the main logic can contain exception procedures however an exception procedure
cannot be part of the main logic or be in the same branch as the main logic.

Exception Procedures
Multiple exception procedures (in parallel branches) can be used as long as they are
attached directly to the outermost parallel start and end objects. Each exception
procedure can even have multiple exception procedure paths.

Add an Exception Procedure to a Procedure


An exception procedure is a form of subprocedure. It is referenced from a procedure
block on another procedure. It is configured to run in parallel with operations on the
higher level procedure. A parallel start object and a parallel end object are required
immediately before and immediately after an exception procedure block. The
normal thread of the higher level procedure can include as many blocks as desired
between the parallel start and parallel end objects. The exception procedure will
provide monitoring during execution of and between all the items configured in the
normal procedure thread between the parallel branches.
The exception procedure is configured to monitor for one or more conditions. If and
when a condition is met, exception logic in the exception procedure is executed.
After the exception logic has finished executing, the software returns to the
beginning of the monitoring procedure, and monitoring for that condition continues.

280 3BUA000146-600 A
Section 6 Procedures Add an Exception Procedure to a Procedure

Monitoring (and execution of exception logic, if necessary) continues until


processing of all items in the normal procedure thread between the parallel start and
parallel end objects has completed.
Configuring a higher level procedure to include an exception procedure requires
planning. Before beginning the actual configuration:
• Determine the conditions for which to monitor.
• Determine which operations in the higher level procedure should be monitored
for which conditions.
The conditions to monitor can be customized, taking into account the product,
ingredients and hardware complement. Some examples of conditions to monitor for
are temperature, pressure, viscosity, valve position, and level. Conditions are
defined in transition blocks in the exception procedure. Refer to Configure an
Exception Procedure on page 281.
The duration of monitoring is determined by the placement of the parallel branches
in the batch procedure. Figure 80 illustrates an example of a batch procedure which
includes an exception procedure block. In this example, the exception procedure is
used for the duration of two add operations and a transfer phase.

3BUA000146-600 A 281
Configure an Exception Procedure Section 6 Procedures

Figure 80. Recipe Procedure with an Exception Procedure Block

Configure an Exception Procedure


In an exception procedure, a transition object must follow the start object. The
transition object, which represents a logical expression, is configured to monitor for
some condition to become true. If the condition becomes true, then the exception
logic associated with that condition is executed. After the exception logic has
finished executing, the exception procedure does not complete and exit. Instead, it

282 3BUA000146-600 A
Section 6 Procedures Configure an Exception Procedure

checks to see if the normal thread of procedure processing has finished. If it has not,
the exception procedure loops back to the transition block at the beginning, and
monitoring is resumed for the assigned condition. Monitoring (and repeated
execution of exception logic, if necessary) continues until processing of all items in
the normal procedure thread between the parallel start and parallel end objects has
completed.
Exception procedures are configured using the standard procedure editor. An
exception procedure contains a start object, a transition object, exception logic, and
an end object. When the exception procedure type has been specified, the start and
end objects are shaped differently than the oval version used in other procedure
types. An exception procedure can be identified immediately by these angular start
and end objects, as shown in Figure 81.

The transition object is used to monitor a condition. If the condition becomes true,
the procedure object representing the exception procedure on the higher level
procedure will display in green. The exception logic associated with that condition
is executed. There is then a return to the beginning of the exception logic, and it will
continue to monitor the condition until all the elements in the batch procedure
contained between the parallel start and parallel end objects have completed.
Figure 81 provides an example of an exception procedure that monitors for high
temperature, takes corrective action, and provides further instructions on how to
proceed.

3BUA000146-600 A 283
Runtime Characteristics of the Exception Procedure Section 6 Procedures

Figure 81. Exception Procedure Example (Monitors for High Temperature)

Runtime Characteristics of the Exception Procedure


If no abnormal conditions are encountered while the exception procedure is active,
and the exception logic is never executed, then all blocks in the exception procedure
(except the transition block following the start object) will indicate idle even when
the exception procedure has completed. The transition block following the start
object becomes green when the exception procedure begins monitoring for
abnormal conditions.

284 3BUA000146-600 A
Section 6 Procedures Runtime Characteristics of the Exception Procedure

When abnormal conditions are encountered and the exception procedure is run, the
normal thread of the procedure continues to execute as well, unless steps in the
exception procedure are taken to stop it.
Special functions are available for use with the exception logic. ISA-88 command
functions that affect the execution of the normal procedure blocks monitored by the
exception procedure include ex_stop(), ex_hold, ex_restart(), ex_abort(),
ex_pause(), and ex_resume(). Functions that monitor the state of the normal
procedure blocks include ex_isfinal(), ex_isheld() and ex_ispaused(). Functions that
affect the execution of the procedure include exkill() and exrestart().
ISA-88 command functions (ex_stop(), ex_hold(), ex_restart(), ex_abort(),
ex_pause() and ex_resume()) are configured in compute type batch manager action
blocks. Refer to Assigning Values and Evaluating Expressions From a PFC on page
271. These functions issue the ISA-88 command (stop, hold, restart, abort, pause,
and resume) to all active blocks in the main procedure path. Typical use would be to
stop (ex_stop()) a phase when an abnormal condition is detected. When the
condition is resolved the phase can be restarted using ex_restart().
The monitoring functions ex_isfinal(), ex_isheld(), and ex_ispaused() are used to
test if all active blocks in the main path satisfy the test condition:
• All are in a final state (ex_isfinal()).
• All are held (ex_isheld()).
• All are paused (ex_ispaused()).
Typical use would be in a transition following the compute specifying the ISA-88
command function in order to wait for the command to complete.
The procedure functions exkill() and exrestart() change the execution of the
procedure. Before using either of these functions, all active blocks in the main
procedure path must be in a final state. Final states are:
• Stopped.
• Aborted.
• Complete.
• Idle.
Use the ISA-88 command functions ex_stop() or ex_abort() to put active blocks in
the final state.
The exkill() function is configured in a compute block. This function deactivates all
blocks in the main procedure path. When the exception procedure completes taking

3BUA000146-600 A 285
Exception Logic Considerations Section 6 Procedures

the appropriate action to resolve the abnormal condition, the procedure will
continue at the parallel branch after the exception procedure, thus, skipping any
remaining blocks in the normal procedure path.
The exrestart() function is configured in a compute block. When the exception
procedure completes taking action to resolve the abnormal condition, this function
deactivates all blocks in the main procedure path (performs an exkill()) and then
causes execution to resume at the parallel branch at the beginning of the exception
procedure. This will rerun the blocks in the normal procedure path.

Exception Logic Considerations


When configuring an exception procedure, care must be taken to avoid creating
exception logic that could result in a loop condition. Ideally, the exception
procedure should contain logic to clear the exception condition.
If the exception condition is not cleared during the time the exception procedure is
executing, the exception procedure will execute repeatedly, as it returns to the
transition block, detects that the condition is true, and repeats again. Loop
conditions can occur if the exception procedure:
• Does not contain logic to clear the exception condition.
• Is very short, and does not allow sufficient time for the exception condition to
be cleared. For example, if the exception procedure contains only a message
BMA, the exception procedure will resume monitoring for the exception
condition as soon as the message is acknowledged. If clearing the exception
requires operator action, the action must be performed before the message is
acknowledged to avoid running the exception procedure again.
• Contains a poorly placed exrestart function that restarts the normal thread of
the procedure while the exception condition still exists.
For example, assume an exception procedure is monitoring for a reactor temperature
higher than 100° F. If the temperature exceeds 100° F, the exception logic is
executed. The following techniques illustrate some possible configuration methods
to avoid creating loop conditions:
• Contain logic to cool the reactor, and contain logic to complete only when the
exception condition is no longer true.

286 3BUA000146-600 A
Section 6 Procedures Monitoring for Multiple Conditions

• Contain a message alerting the operator to the exception condition, allowing


manual response to the condition. The exception procedure could contain
further logic to complete only when the exception condition is no longer true,
or the operator could acknowledge the message when the exception condition
is cleared.
• Include an exkill function to terminate execution of the normal procedure
thread, initiate exception condition handling, monitor the exception condition,
then include an exrestart function to restart the normal thread of the procedure
after the exception condition is cleared.
A unique scenario can sometimes occur when a unit or shared equipment module
tries to throw a batch exception. If a unit or shared equipment module meets the
condition to throw a batch exception, an evaluation is made to determine if the unit
or shared equipment module can transition to the target state specified in the batch
exception. If the unit or shared equipment module can transition to the target state, it
does so and the exception is sent to the phases for evaluation. The exception will not
be thrown if the phase cannot transition to the target state specified. If the unit or
shared equipment module cannot transition to the target state, the transition does not
take place and the exception is not sent to the phases for evaluation. In this case, the
exception is effectively lost.

Monitoring for Multiple Conditions


More than one condition can be monitored in an exception procedure. For example,
the user may wish to monitor for high temperature, viscosity, and mode all at the
same time. Monitoring for all three conditions can be performed in the same
exception procedure. Because the transition block which monitors for the abnormal
condition must be located immediately after the start object, and different actions
are needed to respond to each different condition, a separate set of exception logic
for each condition must be configured.
Figure 82 illustrates an exception procedure that monitors for three conditions: high
temperature, viscosity, and pause mode.

3BUA000146-600 A 287
Monitoring for Multiple Conditions Section 6 Procedures

Figure 82. Exception Procedure Example (Monitors for Multiple Conditions)

Alternatively, separate exception procedures can be configured and included on the


higher level procedure between the same set of parallel branches. Different

288 3BUA000146-600 A
Section 6 Procedures Monitoring for Multiple Conditions

conditions can be monitored for different durations by using multiple sets of parallel
branches. Figure 83 illustrates an example of a higher level procedure that monitors
for high viscosity during two add operations, and monitors for high temperature
during the same two add operations as well as during a transfer phase.

Figure 83. Exception Procedure Example (Multiple Conditions and Durations)

3BUA000146-600 A 289
Batch Data Collection Section 6 Procedures

Batch Data Collection


There are three collections of data maintained by the batch management subsystem.
Two of these, the equipment aspects and the recipe database, have already been
discussed. The third is the batch database, which is used to store the data collected
regarding individual batches. Information regarding a particular batch is accessed by
batch ID.
Information is placed in the batch database in a number of ways:
• Automatically recorded by the batch system.
• Specified to be gathered by the procedure (e.g., the data collection BMA).
• Input by the user.
The batch database contains two sections (records) per batch. Each of these sections
is designed to contain different kinds of data. These two sections are the:
• Batch event history.
• Tag key collected data.
The batch event history is a time-based record of all events that occurred during the
execution of the batch. This part of the batch database is automatically collected by
the system and can not be changed. This can include batch events, phase starts and
ends, and operator changes from Batch Management.
Tag key collected data is data that is collected once. This section of the batch
database contains one value per tag key. Reserved tag key data items are
automatically filled in by the batch management subsystem. These include:
• _ _BatchElapsedTime.
• _ _BatchStartTime.
• _ _BatchEndTime.
• _ _BatchState.
• _ _BatchScheduledStatus.
• _ _Campaign.
• _ _Lot.
• _ _RecipeName.
• _ _RecipeVersion.
• _ _RecipesUsed.
Tag key collected data can also be collected based on procedure and BMA
configuration.

290 3BUA000146-600 A
Section 7 Automatic Batch ID Generation

Introduction
The batch ID generation functionality is used to automatically create a batch ID
based on a configured formula or pattern. This section describes the configuration of
the Auto Generate Batch ID aspect. This Aspect is automatically added to Recipe,
Unit, and Operation procedure objects when they are created. This aspect can also
be manually added to Exception procedure type. The Auto Generate Batch ID
window (Figure 84) is displayed when this aspect is selected.

3BUA000146-600 A 291
Create Pattern Section 7 Automatic Batch ID Generation

Figure 84. Auto Generate Batch ID Window

Create Pattern
The previously configured pattern or the default pattern is displayed in the Auto
Generate Batch ID window. This pattern is composed of other patterns and text
(located within double quotation marks). Any number of patterns and text strings
can be used to configure the batch ID but they must be separated by periods.
To create or edt a batch ID pattern:
1. Delete all unwanted patterns (if necessary).
2. Add patterns (if necessary):
a. Place the cursor at the location where the pattern is to be added or inserted.
b. Click the list patterns toolbar button or right click at the cursor location.

292 3BUA000146-600 A
Section 7 Automatic Batch ID Generation Configure Sequence Number

c. Double click the pattern to be added in the List Default Patterns window.
d. Use periods to separate the added pattern from the other patterns. Entering
a period automatically displays the List Default Patterns window.
e. Repeat Step a through Step d for the remaining patterns to be added.
f. Click the save aspect changes toolbar button.
3. Add text (if necessary):
a. Place the cursor at the location where the text is to be added or inserted.
b. Enter the appropriate text.
c. Place double quotation marks at both ends of the text string.
d. Use periods to separate the added text from the other patterns and text.
e. Repeat Step a through Step d for the remaining text to be added.
Default patterns placed inside double quotation marks are treated as text. For
example, “_SequenceNumber” will be seen as _SequenceNumber.
f. Click the save aspect changes toolbar button.

Configure Sequence Number


The SequenceNumber pattern automatically increments each time the Auto Gen
button (on the Schedule tab of the Batch Schedule window) is clicked during batch
scheduling. This number can be related to the procedure or to the batch cell in which
the procedure can be executed.
To establish which item SequenceNumber is related to:
1. Click the options toolbar button.
2. Enable Per Procedure (SequenceNumber is related to this procedure) or Per
Batch Cell (SequenceNumber is related to the batch cell in which this
procedure will execute) and click OK.
3. If Per Procedure was enabled, batch ID configuration is complete. If Per Batch
Cell was enabled, proceed to the next step.
4. Click the add batch cell toolbar button.

3BUA000146-600 A 293
Find Text Section 7 Automatic Batch ID Generation

5. Verify that all the batch cells in which this procedure is to be executed are listed
in the Select Batch Cell window. If necessary, add the desired batch cells:
a. Select the batch cell to which SequenceNumber is to be related and click
OK.
b. Repeat Step a as necessary.
At schedule time (with the Auto option enabled), it is possible to click Incr. Seq. to
increment the sequence number or manually change the sequence number on the
Sequence tab.

Find Text
The search button can be used to find text strings within the pattern. To find a text
string:
1. Click the search toolbar button.
2. Enter the text string in the Find What field on the Find window.
3. Enable Match Whole Word Only or Match Case.
4. Click Find Next.

Replace Patterns and Text


The replace button can be used to find a text string and replace it with another text
string. To find and replace a text string:
1. Click the replace toolbar button.
2. Enter the text string to be replaced in the Find What field on the Replace
window.
3. Enter the text string to be inserted in the Replace With field.
4. Enable Match Whole Word Only or Match Case.
5. Click Find Next.
6. If the text string is found, click Replace (replace only this occurrence of the
text string) or Replace All (replace all occurrences of the text).

294 3BUA000146-600 A
Section 7 Automatic Batch ID Generation Save or Cancel Aspect Changes

7. If Replace was clicked, Repeats Step 5 and Step 6 until all the desired text
strings have been replaced.

Save or Cancel Aspect Changes


Click the save aspect changes toolbar button to save all changes made to the Auto
Generate Batch ID aspect.

Print Patterns
Click the print toolbar button to print out the current pattern.

3BUA000146-600 A 295
Print Patterns Section 7 Automatic Batch ID Generation

296 3BUA000146-600 A
Appendix A Configuring Batch Variables and
Expressions

Introduction
Expressions can be used in place of constant numeric or text values in many
configurable items encountered during batch configuration. These include, but are
not limited to, the following items:
• Compute batch manager action object.
• Select equipment Batch Manager action object.
• Transition object.
• Procedure parameter configuration.
Batch expressions use a C language-type syntax, incorporating operators,
parentheses, functions, values, variables and constants.
Batch expressions are limited to 512 characters per expression up to a limit of
15000 characters.
String constants are limited to 1023 characters even with the use of continuation
lines (backslashes).

Batch Expression Structure


Operators are symbols used in expressions to represent arithmetic, logical, or
relational operations. An expression consists of operators and operands, or values.
The operand can be a constant or a computed value.
Numbers used as operands are assumed to be floating point values, and can include
digits, a decimal point, e or E (for exponentiation), and a signed exponent in the
following format:
<digits>.<digits>E<signed exponent>

3BUA000146-600 A 297
Operators Appendix A Configuring Batch Variables and Expressions

A numeric value must include at least one digit or a decimal point (a decimal point
alone evaluates to zero). Use the unary negation operator (-, described in Operators
on page 298) immediately preceding the first digit to express a negative number.
Variable names start with a letter, optionally followed by a string of letters, numbers
and underscores (_) and are limited to a maximum of 31 characters. Variable names
longer than 31 characters will be truncated. Statements are terminated by new lines
(returns).
A backslash (\) is used to continue an expression on the next line.

Operators
Operators available for use in batch expressions are found in Table 44. Because
expressions often include multiple operators and operands, a set of rules exists to
determine which operators get performed first, which get performed second, third
and so on. This order is known as precedence. Some operators, such as multiply and
divide have equal precedence. If operators of equal precedence are used in an
expression, they are performed according to the order in which they appear (from
left to right) in the expression. Table 44 lists operators in order of decreasing
precedence.

Table 44. Batch Operators in Decreasing Precedence

Symbol Operation Description


^ Exponentiation Value to the left of the operator is raised to the power of the value to the
right.
! Logical not Evaluates the expression on the right and is true if that expression is
false, and vice versa.
- Unary minus Indicates or changes the algebraic sign of a value. This is a unary
operator that takes just one operand.
* Multiplication Multiplies the values on either side of it, yielding the product.
/ Division Value to the left of the operator is divided by the value to the right.

298 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Operators

Table 44. Batch Operators in Decreasing Precedence (Continued)

Symbol Operation Description


+ Addition Causes the two numeric operands on either side of it to be added
together, yielding the sum of the two values.
+ Concatenation Produces one string by joining (or concatenating) two character strings
(that is, where the operands on either side of the concatenation
operator are strings).
- Subtraction Value to the right of the operator is subtracted from the value to the left.
> Greater than Evaluates two expressions and is true if the one on the left is greater
than the one on the right.
>= Greater than or Evaluates two expressions and is true if the one on the left is greater
equal to than or equal to the one on the right.
< Less than Evaluates two expressions and is true if the one on the left is less than
the one on the right.
<= Less than or Evaluates two expressions, and is true if the one on the left is less than
equal to or equal to the one on the right.
== Equal Evaluates two expressions, and is true if the one on the left is equal to
the one on the right.
!= Not equal Evaluates two expressions, and is true if they are not equal.
&& Logical and Evaluates two expressions, and is true if and only if both are true.
|| Logical or Evaluates two expressions and is true if either one or both are true.
= Assignment Causes the value of the expression on the right to be assigned to the
variable to the left of the assignment operator.

Precedence is an important concept to remember, as its effects on the evaluation of


an expression can be confusing to the novice. For example, consider the following
expression:
2+3*4

3BUA000146-600 A 299
Punctuation Appendix A Configuring Batch Variables and Expressions

The resulting value of this expression is 14, not 20. Because the multiplication
operator has a higher precedence than the addition operator, the multiplication
portion of the expression (3 * 4) is performed first. If the expression were written:
(2 + 3) * 4
the value of the expression would be 20, because expressions contained within
parentheses are evaluated first.

Punctuation
Table 45 describes punctuation in batch expressions.

Table 45. Punctuation in Batch Expressions

Operator Notes
New line Terminates an expression.
\ Line continuation character. Used when a single statement is divided into multiple lines.
, Comma. Argument separator used in conjunction with built-in functions.
{} Braces. Used to define a statement group.
() Parentheses. Used to override precedence and control the order of evaluation.

IF/ELSE Syntax
IF and ELSE are keywords used in expressions. The syntax is:
if (expression) {statement 1}
if (expression) {statement 1} else {statement 2}
if (expression){statement1} \
else {statement2}
Parentheses and braces are a part of the syntax but brackets are not. Brackets
enclose optional parameters.
If the expression is true, statement 1 is executed. If the expression is false, statement
2 is executed. The ELSE statement is optional and therefore does not need to be

300 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Constants

included. If there is no ELSE statement and the expression is false, program


execution continues at the statement after statement 1.
Expressions must be properly parenthesized to ensure that pairs of conditions are
correctly evaluated. In the following example, a, b, and c are used to show valid
and invalid use of parentheses.
Examples:
• if (a or b and c) - This is an invalid usage of parentheses.
• if (a or (b and c)) - This is a valid usage of parentheses.
• if ((a or b) and c) - This is a valid usage of parentheses.

Constants
Several constants have been predefined for use in batch expressions. The constant
names are reserved and cannot be used as variable names. These names and their
values are listed in Table 46.

Table 46. Defined Constants

Constant Value
PI 3.14159265358979323846
E 2.71828182845904523536
GAMMA 0.57721566490153286060
DEG 57.29577951308232087680 (degrees per radian)
PHI 1.61803398874989484820

Text Entry Format


Each text entry box in a batch management system configuration window will
accept one of the following types of entry:
• An expression.
• Dynamic text.
• Static text.

3BUA000146-600 A 301
Rules for Evaluating Expressions Appendix A Configuring Batch Variables and Expressions

The type of input expected by the text entry box corresponds with the type of input a
user would normally enter for that type of item. For example, text entry boxes for
parameters evaluate input as expressions, while text entry boxes for block labels
automatically evaluate input as static text.
When the text entry box is expecting an expression (e.g., a parameter value
assignment), anything entered will be evaluated as an expression unless it is
enclosed within double quotes (" "), in which case it will be treated as text. (It is not
necessary to enclose numeric constants within double quotes.) This is the most
common type of text entry box, used for the entry of parameters in the recipe
database.
There is a string constant limitation of 1023 characters. Exceeding this limit will
result in a configuration error message "String too long..". To avoid this error, the
'+' character should be used to concatenate shorter strings together.
For example, the expression:
"Item1\nItem2\nItem3" + ..." would be replaced with
"Item1" + "\nItem2" + "\nItem3" + ...".
A number of configuration items (e.g., batch report text sections, SOP, attach notes
and many of the message BMA configuration items) expect input in the form of
dynamic text. Dynamic text is processed as text except where it is enclosed within
backquotes (` `), in which case the portion within the backquotes will be treated as
an expression. Most of the items which can be configured for the message batch
manager action treat input as dynamic text.
In all other cases, static text is expected. Static text is always processed as text. If
present, backquotes are ignored and double quotes are discarded.

Rules for Evaluating Expressions


The rules presented in this section are used when an expression is evaluated. A list
of the rules is presented in text format. This list is followed by a table containing
examples of expressions and results which correspond to the rules in the list. These
items are followed by several examples of greater complexity. For most procedures,
this level of complexity would not be required.

302 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Rule 1

Rule 1
A constant equates to its numeric value.

Rule 2
Procedure parameters are filled in (replaced) with their current value.

Rule 3
Built-in functions are executed and the return value is then used in the expression.
The return value type (numeric or string) is dependent upon which function is being
executed.

Rule 4
When evaluating expressions, precedence determines the order of operations.
Parentheses are used to override precedence order. Refer to Operators on page 298.

Rule 5
Data enclosed within double quotes (" ") is treated as a text string.

Rule 6
In the cases where a built-in function requires the name of a control system
tag.atom, a tag key name, or a procedure variable (global, batch, and local), the
input must be an expression which evaluates to the desired name.

Rule 7
The expression must evaluate to the correct data type (float or string) for the value
which is being assigned. Refer to Table 47.

Table 47. Data Types

Parameter Expression
Float Float
String String

3BUA000146-600 A 303
Rule 8 Appendix A Configuring Batch Variables and Expressions

Table 47. Data Types

Parameter Expression
List String
Equipment list String

Procedure variables are defined to be either floats or strings according to their initial
configuration (batch procedure variable editor) or assignment (varput functions).

Rule 8
Private functions can be defined to simplify the entry of complex expressions
containing if/else clauses. These functions are only known to the single procedure
block that contains them.

Rule 9
Expressions are valid when entering procedure parameter values under the batch
scheduler.

Rule 10
Expressions are not used in equipment aspect configuration. Errors will be reported
for these conditions:
• Part of the expression cannot be evaluated (e.g., nonquoted data is not
recognized as an operator, a constant, a function name, punctuation, keyword,
or a procedure parameter name).
• The expression does not evaluate to the correct data type for the value which is
being assigned.
The rules listed above apply to the evaluation of expressions. In cases where a
text entry window is expecting to receive dynamic text, data which is to be
interpreted as an expression should be enclosed within backquotes (` `). Dynamic
text is discussed in Text Entry Format on page 301.
Batch expression structure, punctuation, syntax, and operators are described in
Batch Expression Structure on page 297. Built-in functions are described in
Built-In Functions on page 307.

304 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Rule 10

Table 48. Examples of Rules for Evaluating Expressions

Rule Expression Result


1 2.5 2.5
2 total * amount1 * 0.01 The percentage of amount1 is computed by multiplying the
value of total by the value of amount1 by 0.01
3 sqrt(16) 4
4 2+3*4 14
5 "abc" + "def" Text string abcdef
6 bdbput("TotalVol",vol1 + The values of vol1, vol2, and vol3 are added, and the result is
vol2 + vol3) saved as tag key data under the TotalVol
7 "FT1" Equipment list assignment
100 Float assignment
8 func SetUnits() { Use the function SetUnits

if (selgrinder == "G1") {
varputs("MeatUnit","I1")
varputs("VegeUnit","I3")
varputs("SpiceUnit","I5")
varputs("WaterUnit","W1")
}
if (selgrinder == "G2") {
varputs("MeatUnit","I2")
varputs("VegeUnit","I4")
varputs("SpiceUnit","I6")
varputs("WaterUnit","W2")
}
return 0
}
9 ran() A random number is assigned to the procedure parameter that
is being entered.

3BUA000146-600 A 305
Examples Appendix A Configuring Batch Variables and Expressions

Examples
The following examples are for illustrative purposes only. For most procedures, this
level of complexity would not be required.
• This example (entered within a procedure compute block) defines a function
named update which updates the volume associated with the global procedure
variables HT1_Vol, HT2_Vol, HT3_Vol, and HT4_Vol.
func update() {
tank = vargets("seltank")
soup = _SoupName
if (tank == "HT1") {
gvarputs ("HT1_Soup", soup)
oldvol = gvarget ("HT1_Vol")
gvarput ("HT1_Vol", (oldvol + num (_SoupAmt)))
}
if (tank == "HT2") {
gvarputs ("HT2_Soup", soup)
oldvol = gvarget ("HT2_Vol")
gvarput ("HT2_Vol", (oldvol + num (_SoupAmt)))
}
if (tank == "HT3") {
gvarputs ("HT3_Soup", soup)
oldvol = gvarget ("HT3_Vol")
gvarput ("HT3_Vol", (oldvol + num (_SoupAmt)))
}
if (tank == "HT4") {
gvarputs ("HT4_Soup", soup)
oldvol = gvarget ("HT4_Vol")
gvarput ("HT4_Vol", (oldvol + num (_SoupAmt)))
}
return 1
}
update()
• This example uses the values for the procedure parameters MeatPct, VegePct,
SpicesPct, and WaterPct to compose the soup name.
bvarputs("SoupNamePart1", str(MeatPct) + " % " + Meat +
" ")
bvarputs("SoupNamePart2", str(VegePct) + " % " +
Vegetables + " ")

306 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Built-In Functions

bvarputs("SoupNamePart3", str(SpicesPct) + " % Spices ")


bvarputs("SoupNamePart4", str(WaterPct) + " % Water")
bvarputs("SoupNameFull", bvargets("SoupNamePart1") \
+ bvargets("SoupNamePart2") + \
bvargets("SoupNamePart3") + \
bvargets("SoupNamePart4"))

Built-In Functions
Refer to:
• Batch.
• DBA.
• General.
• Variables.

Batch
Batch functions are used to get data from and put data into variables (Table 49). The
scope of the function used determines whether this action occurs locally (within one
instance of one procedure function chart), within a single batch (which can consist
of multiple PFCs), or globally (in any PFC in any batch).
It is not necessary to declare these variables. Simply using an expression putting the
variable creates it. The value is put into a storage space on Batch Management from
which it can be retrieved using the get function. The value put may be a constant or
an expression.

Table 49. Batch Functions

Name Syntax Description Scope


actionget actionget(action_alias, Get value from IForm Any active or complete
value_name) (extension action) IForm in the batch
actiongets actiongets(action_alias, Get string value from IForm Any active or complete
value_name) (extension action) IForm in the batch

3BUA000146-600 A 307
Batch Appendix A Configuring Batch Variables and Expressions

Table 49. Batch Functions (Continued)

Name Syntax Description Scope


attget attget(equipment_name, Get default value of equipment Any PFC in any batch
attribute_name) attribute from the equipment
aspects.
attgets attgets(equipment_name, Get default value of equipment Any PFC in any batch
attribute_name) attribute string from the
equipment aspects.
blockstate blockstate() Get current state of block. Phase Block
bmode bmode() Get current mode of the batch. Any PFC in one batch
bstate bstate() Get current state of the batch. Any PFC in one batch
bvarget bvarget(variable_name[, Get the numeric value of the Any PFC in one batch
initialized_value]) existing batch variable. If the
variable does not exist it will
be created and the value will
be initialized to the initialized
value.
bvargets bvargets(variable_name[, Get the string value of the Any PFC in one batch
initialized_value]) existing batch variable. If the
variable does not exist it will
be created and the value will
be initialized to the initialized
value.
bvarput bvarput(variable_name, Put value to batch variable. Any PFC in one batch
value)
bvarputs bvarputs(variable_name, Put value to batch string Any PFC in one batch
value) variable.
datacol1 datacol(logical_name, Data collection. Same as data Any PFC in one batch
OPC_item, rate) collection BMA.
error error(error_string) Put block into error with error Any PFC in one batch
message.

308 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Batch

Table 49. Batch Functions (Continued)

Name Syntax Description Scope


evals evals(" `expr` ") Evaluates the embedded Any PFC in any
expressions and returns a expression
string.
event2 event(message[, Generate an 800xA event. Any PFC in any batch
"Message"|"Error"|"System"
])
ex_abort ex_abort() Issue ABORT command. Exception procedure
ex_hold ex_hold() Issue HOLD command. Exception procedure
ex_isfinal ex_isfinal() Check if all blocks are in final Exception procedure
state.
ex_isheld ex_isheld() Check if all blocks are in Exception procedure
HELD state.
ex_ispaused ex_ispaused() Check if all blocks are in Exception procedure
PAUSED state.
ex_pause ex_pause() Issue PAUSE command. Exception procedure
ex_restart ex_restart() Issue RESTART command. Exception procedure
ex_resume ex_resume() Issue RESUME command. Exception procedure
ex_stop ex_stop() Issue STOP command. Exception procedure
exkill exkill() Terminate the thread(s) Exception procedure
parallel to this exception
procedure.
exrestart exrestart() Restart the exception section. Exception procedure
getbid getbid( ) Returns the batch ID of the Any PFC in one batch
current batch.
geterror geterrorstring(status_string) Get error string from XML Any PFC in any batch
string status string.

3BUA000146-600 A 309
Batch Appendix A Configuring Batch Variables and Expressions

Table 49. Batch Functions (Continued)

Name Syntax Description Scope


getopid getopid() Returns ID of the current Block
compute or transition block.
getquality getquality(status_string) Get OPC quality from XML Any PFC in any batch
status string. Associated with
unitattget, unitattput,
unitattputs, getex, and putex.
getstatus getstatus(status_string) Get status value of function Any PFC in any batch
from XML status string.
Associated with unitattget,
unitattput, unitattputs, getex,
and putex.
getvalue getvalue(status_string) Get OPC value from XML Any PFC in any batch
status string. Associated with
unitattget, unitattput,
unitattputs, getex, and putex.
getvalue getvaluestring(status_ Get OPC string value from Any PFC in any batch
string string) XML status string. Associated
with unitattget, unitattput,
unitattputs, getex, and putex.
gvardel gvardel(variable_name) Delete global variable. Any batch
gvarget gvarget(variable_name) Get value of global variable. Any PFC in any batch
gvargets gvargets(variable_name) Get value of global string Any PFC in any batch
variable.
gvarput gvarput(variable_name) Assign value to the global Any PFC in any batch
variable.
gvarputs gvarputs(variable_name) Assign value of global string Any PFC in any batch
variable.
is_int is_int(string[,low[,high]]) Check if string represents a Any PFC in any batch
integer number.

310 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Batch

Table 49. Batch Functions (Continued)

Name Syntax Description Scope


is_num is_num(string[,low[,high]]) Check if string represents a Any PFC in any batch
number
manget Reserved for future use.
mangets Reserved for future use.
mindex mindex() Locate the first unused Phase block
module index for a specified
equipment at run time.
parget3,4 parget(parameter_name[, Get value of parameter. Any PFC in any batch
default_value])
pargets3,4 pargets(parameter_name[, Get the value of string Any PFC in any batch
default_value]) parameter.
pargetlist3,4 pargetlist(parameter_name[ Get all values of a list or unit Any PFC in any batch
, default_value]) list parameter.
phaseparget phaseparget(equipment_na Get the OPC Datapoint path Any PFC in any batch
me, phase_alias, that is assigned to the
parameter_name) parameter_name parameter
of the phase_alias phase in
the equipment_name batch
equipment.
rcpexec5 rcpexec(pfc_name,[procedu Execute a procedure. Acts on one PFC,
re_parameter_name, which can be
procedure_parameter_ configured to call
value, ...]) other PFC
rwattget rwattget(equipment_name, Get readable / writable Any PFC in any batch
attribute_name) equipment attribute from the
batch runtime database.
rwattgets rwattgets(equipment_name, Get readable / writable Any PFC in any batch
attribute_name equipment string attribute
from the batch runtime
database.

3BUA000146-600 A 311
Batch Appendix A Configuring Batch Variables and Expressions

Table 49. Batch Functions (Continued)

Name Syntax Description Scope


rwattput rwattput(equipment_name, Assign a value to the readable Any PFC in any batch
attribute_name, value) / writable equipment attribute
from the batch runtime
database.
rwattputs rwattputs(equipment_name, Assign a value to the Any PFC in any batch
attribute_name, value) readable/writable string
equipment attribute from the
batch runtime database.
SetAEClass8 SetAEClass(classvalue) Input classvalue should be in Any PFC in any batch
the range of 1 to 9999, value
out of this range displays an
error.
unitattget6 unitattget(equipment_name Get equipment attribute from Any PFC in any batch
, attribute_name[, Batch runtime database (text,
any_argument]) integer, or float variables) or
OPC item configured for
attribute (OPC datapoint
attribute). If any_argument
used, evaluate returned XML
status string to determine
success or failure of function.
Supersedes rwattget and
rwattgets.
unitattput6 unitattput(equipment_name Put equipment attribute to Any PFC in any batch
, attribute_name, value[, batch runtime database
any_argument]) (integer or float variables) or
OPC item configured for
attribute (OPC datapoint
attribute). If any_argument
used, evaluate returned XML
status string to determine
success or failure of function.
Supersedes rwattput.

312 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Batch

Table 49. Batch Functions (Continued)

Name Syntax Description Scope


unitattputs6 unitattputs(equipment_nam Put equipment attribute string Any PFC in any batch
e, attribute_name, value[, to batch runtime database
any_argument]) (text variable) or OPC item
configured for attribute (OPC
datapoint attribute). If
any_argument used, then
evaluate the returned XML
status string to determine
success or failure of function.
Supersedes rwattputs.
varget varget(variable_name[, Get the numeric value of the One PFC
initialized_value]) existing local variable. If the
variable does not exist it will
be created and the value will
be initialized to the initialized
value.
vargets7 vargets(variable_name[, Get the string value of the One PFC
initialized_value]) existing local variable. If the
variable does not exist it will
be created and the value will
be initialized to the initialized
value.
varput varput(variable_name, Assigns value to the numeric One PFC
value) local variable.

3BUA000146-600 A 313
Batch Appendix A Configuring Batch Variables and Expressions

Table 49. Batch Functions (Continued)

Name Syntax Description Scope


varputs7 varputs(variable_name, Assigns value to the string One PFC
value) local variable.
NOTES:
1. Do not attempt 20 or more data collections successively (in a recipe procedure) using one or more compute BMA
blocks. Batch Management windows may stop functioning. Introducing a time delay between groups of data
collections is one way to prevent this problem.
2. If the event type is not supplied, the event type defaults to Message. Using the System event type will ensure that it
is not removed from the event list until acknowledged.
3. default_value represents a user specified value that will be returned if the function is unsuccessful. It is important
that the value be set to a float (for parget function) or string (for pargets and pargetlist functions) value that is easily
recognized and will not be confused with valid returned values.
4. Specifying "../parameter_name" will return the values defined in the parent procedure of this procedure. Specifying
"../../parameter_name" will return the values defined in the grandparent procedure of this procedure. This
convention can be used to access all the way up to the top level recipe procedure. Specifying "/parameter_name"
will return the values defined at the top level recipe procedure.
5. All arguments used in the rcpexec function must evaluate to a text string and be enclosed in quotation marks. For
example: rcpexec(“RcpExec1”, “Num1”, “2”, “Str1”, “\”xyz\””)
6. The functions unitattget, unitattput, and unitattputs return the following XML string:
<ScriptResult>
(Status>StatusValueHere</Status>
<Quality></Quality>
<Value></Value>
<ErrorString>ErrorStringHere</ErrorString>
</ScriptResult>
Use the geterrorstring, getquality, getstatus, getvalue, and getvaluestring functions to extract information from the
XML string.
7. The value sent or returned by these functions can be up to 15000 characters in length but values stored in PDL are
truncated to 255 characters.
8. From the point where the expression of a recipe is defined, all the alarms and events generated contain the class
value. If there is no class value defined in the child recipe, then it takes the parent class value by default. It is
recommended to define the expression in a procedure block to ensure all the blocks in the procedure contain the
class value.

Because the default values of equipment attributes cannot be changed from a


procedure, the attget function has no corresponding put function.

Use unitattget/unitattgets/unitattput/unitattputs calls, especially when using In


Controller or OPC Datapoint unit attributes instead of
rwattget/rwattgets/rwattput/rwattputs calls.

314 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions DBA

DBA
The DBA functions that are built into the batch management system provide access
to the control system global database. DBA functions that can be used in batch
expressions are described in Table 50.
The expression (expr) that is part of the syntax for the bdbput function can be a
parameter name.
Example:
• bdbput("FeedTank",UnitFT), where UnitFT is a parameter that represents a
value in the equipment or recipe database. "FeedTank" is enclosed within
double quotation marks, so that it will be treated as text, as described in Text
Entry Format on page 301.

Table 50. DBA Functions in Batch Expressions

Function Syntax Description


bdbget bdbget(tagkeyname) Get the data collected for the tag key.
bdbgets1 bdbgets(tagkeyname) Get the string data collected for the tag key.
bdbput2 bdbput(tagkeyname, expr) Assign data to the tag key.
get3,4,5 get(OPC_item[, Get current data for the specified OPC item
error_value])
getex getex(OPC_item) Get current data for the specified OPC path. The
returned XML status string is evaluated to
determine success or failure of the function.
gets3,4 gets(OPC_item[, Get current value for the specified string OPC
error_value]) item.
put3,5,6 put(OPC_item, value[, Assign the value to the specified OPC item.
error_value])
putex putex(OPC_item, value) Assign current data for the specified OPC item.
The returned XML status string is evaluated to
determine success or failure of the function.

3BUA000146-600 A 315
DBA Appendix A Configuring Batch Variables and Expressions

Table 50. DBA Functions in Batch Expressions (Continued)

Function Syntax Description


putm putm(OPC_items, values, OPC_items – OPC item ids separated by ‘\n’ or
[,delimiter, statusString]) the specified delimiter. Put the current values for
the specified OPC items.
values – values separated by ‘\n’ or the specified
delimiter.
delimiter – optional and if specified overrides the
default ‘\n’ delimiter.
statusString – optional and if given (‘c’), then
returns the status (0 for failed and 1 for success)
of each OPC item separated by the delimiter.

316 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Use of _bUnitAttributeHelpers Functions

Table 50. DBA Functions in Batch Expressions (Continued)

Function Syntax Description


subscribe7 subscribe(OPC_items Subscribes the specified OPC Items to reduce
[,delimiter]) the time taken for OPC read [through get(), gets()
and getex() methods].
NOTES:
1. The value sent or returned by these functions can be up to 15000 characters in length but values stored in PDL
are truncated to 255 characters.
2. When using phases other than batch advanced phases, use tagkeyname.in and tagkeyname.out when
configuring two values to be called up (through Information Management) when tagkeyname is specified. To
configure the recording of a pair of data values (for example, variable, parameter, etc.) before and after an action
of some type:
a. Use bdbput (data_name.in, data_value) as the precompute expression of a phase or as the
expression in a compute BMA block.
b. Use bdbput (data_name.out, data_value) as the postcompute expression of the same phase
referred
to in Step a or as the expression in a compute BMA block on the same PFC as the compute BMA block
referred to in Step a.
This pair of data values can be printed by specifying just the name of the data. Refer to the appropriate
Information Management instruction for more information.
When using batch advanced phases, refer to Output Parameters on page 97 for more information about saving
and printing initial and final values of a phase parameter.
3. Error_value represents a user specified value that will be returned if the function is unsuccessful. It is important
that error_value be set to a float (for get and put functions) or string (for gets function) value that is easily
recognized and will not be confused with valid return values.
4. For get functions, Boolean OPC datapoints return a -1 for the true condition. Programmers should test this
function against the false condition (zero) because of this nonintuitive true condition value.
5. Timer values must be expressed (for put function) and interpreted (for get function) as milliseconds.
6. A successful put function returns a 0 for Boolean and float OPC datapoints.
7. The call to subscribe () alone does not do the OPC read. It should be followed by one of the get methods for the
subscribed OPC item. The subsequent get call should be performed within five minutes of the subscribe call i.e.
the time difference between a subscribe call and the subsequent get call should not be more than 5 minutes.
This feature is in place so that the cache is properly recycled for the latest (or most frequently used) data.

Use of _bUnitAttributeHelpers Functions


The putm function that is used to improve Batch Script performance cannot be used
directly for unit attribute writes (e.g. unitattput, unitattputs). However, there is a set
of system supplied helper functions that can be used to group multiple attribute
writes into one call to improve their performance.

3BUA000146-600 A 317
Use of _bUnitAttributeHelpers Functions Appendix A Configuring Batch Variables and Expressions

These functions are in the _bUnitAttibuteHelpers functions hive. The description of


each of the functions is as follows:
• _bUattAddWriteIC (Unit, Attribute, Value)
Unit - unit GUID or name
Attribute - attribute name (must be an In Controller unit attribute)
Value - value to write
String - (optional) the attribute's write specification will be appended to
this string; this parameter should be omitted for the first attribute of the list
of values.
Returns the write specification of an In Controller unit attribute. This
specification can then be used in the _bUattDoWrite function to write
this attribute's value.
• _bUattAddWriteOPC (Unit, Attribute, Value)
Unit - unit GUID or name.
Attribute - attribute name (must be an OPC Datapoint, OPC Text, OPC
Float, or OPC Integer unit attribute).
Value - value to write.
String - (optional) the attribute's write specification will be appended to
this string; this parameter should be skipped for the first attribute of the list
of values.
Returns the write specification of an OPC Datapoint, OPC Text, OPC
Float, or OPC Integer unit attribute. This specification can then be used in
the _bUattDoWrite function to write this attribute's value.
• _bUattDoWrite(WriteSpec)
WriteSpec - composite write specification containing multiple attribute
write specifications.
Performs the OPC write of the attribute specifications in the WriteSpec.
Returns the result of the underlying call to putm.
• _bUattDelim, _bUattDelim2, _bUattGetOpcIdWrite

318 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Use of _bUnitAttributeHelpers Functions

These functions are internally used functions that are not intended to be
called directly.
Examples: The optimum way to perform multiple unit attribute writes is to
group them into a single expression. If this can be done then a script local
variable can be used to hold the write specification as shown in the
following example:
strVals = _bUattAddWriteIC(Unit, "AttrTextInController", "High")
strVals = _bUattAddWriteIC(Unit, "AttrIntInController", "75", strVals)
strVals = _bUattAddWriteIC(Unit, "AttrFloatInController", "70.0",
strVals)
strVals = _bUattAddWriteOPC(Unit, "AttrOPCFloat", "60.0", strVals)
strVals = _bUattAddWriteOPC(Unit, "AttrOPCInt", "65", strVals)
_bUattDoWrite(strVals)
If the writes cannot be grouped into a single expression then a batch
variable can be used to hold the write specification as shown in the
following example:
varputs("varVals", _bUattAddWriteIC(Unit, "AttrTextInController",
"Low"))
varputs("varVals", _bUattAddWriteIC(Unit, "AttrIntInController", "15",
vargets("varVals")))
varputs("varVals", _bUattAddWriteIC(Unit, "AttrFloatInController",
"10.0", vargets("varVals")))
varputs("varVals", _bUattAddWriteOPC(Unit, "AttrOPCFloat", "5.0",
vargets("varVals")))
varputs("varVals", _bUattAddWriteOPC(Unit, "AttrOPCInt",
"1",vargets("varVals")))
_bUattDoWrite(vargets("varVals"))

3BUA000146-600 A 319
General Appendix A Configuring Batch Variables and Expressions

Steps to improve performance of Batch Script code using multiple OPC


read/write functions:
If the script code reads multiple OPC values:
– Before the section of code reading multiple OPC values, insert the
subscribe() call, listing all OPC points to be accessed later. This will pre-
load OPC values into the cache and create subscriptions for at least next
five minutes. The fewer subscribe calls are performed, the larger the
performance improvement. For example, a function phase driver can
subscribe to all points before any action is performed (assuming that OPC
IDs are known), even though they will be used in multiple scans.
If the script code writes multiple OPC values:
– Collect all OPC writes into as few putm() calls as possible. All writes in
one putm() call will be executed as a single OPC write. This usually
means that a function phase driver will still require several putm() calls to
keep necessary sequencing (e.g. write parameters, write Start command
later).
Information regarding assignment of DBA functions is saved on a per-batch
basis.

General
In addition to the specialized functions discussed, a number of functions that
accomplish more general activities are also provided. These general functions are
listed in Table 51.

Table 51. General Functions

Name Syntax Description


Trigonometric Functions
acos acos(expr) Returns the arc cosine value. The returned value is in radians.
asin asin(expr) Returns the arc sine value. The returned value is in radians.
atan atan(expr) Returns the arc tangent value. The returned value is in
radians.

320 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions General

Table 51. General Functions (Continued)

Name Syntax Description


cos cos(expr) Returns the cosine value.
cosh cosh(expr) Returns the hyperbolic cosine value.
sin sin(expr) Returns the sine value.
sinh sinh(expr) Returns the hyperbolic sine value.
tan tan(expr) Returns the tangent value.
tanh tanh(expr) Returns the hyperbolic tangent value.
Math Functions
abs abs(expr) Returns an absolute value
ceil ceil(expr) Rounds up the value
cond1 cond(expr, true_return, Conditional test. Returns true_return if the expr value is true,
false return) else false_return value)
exp exp(expr) Returns the exponential value of the expression.
floor floor(expr) Rounds down the value
int int(expr) Returns the integer value
log log(expr) Returns the natural logarithm value.
log10 log10(expr) Returns the logarithm value of base 10.
ran ran() Returns a random number
sqrt sqrt(expr) Returns a square root of the expression
String Functions
fgets fgets(fnum) Get string from a stream
fputs fputs(str,fnum) Writes a string to the stream
num num(str) Convert string to numeric value
parse parse(str, separator, n) Return nth token of str

3BUA000146-600 A 321
General Appendix A Configuring Batch Variables and Expressions

Table 51. General Functions (Continued)

Name Syntax Description


str str(nbr) Convert number to string
str(nbr, d) Converts number to string with specified number of decimal
points.
str(nbr, d, max) Converts number to string with specified number of decimal
points and with specified number of final characters.
strex strex(str,p1,len) Return substring of str starting at p1 for len characters
strlen strlen(str) Return length of string
File Functions
fclose fclose(fnum) Closes a previously opened file.
fopen fopen(fname, type) Opens a file and returns the file number.
getpid getpid( ) Get the process ID.
unlink unlink(fname) Deletes the file.
Time Functions
str2time str2time(timeString) Converts the timeString to floating point number representing
number of seconds since 1 Jan 1970.
time time() Get current time expressed as integer representing number of
seconds since 1 January 1970
time2str time2str(intTime) Converts integer representing number of seconds since 1 Jan
1970 to string time as HH:MM:SS MM/DD/YYYY (based on
date format set in Regional Settings).
times times() Get current time as string in the form of HH:MM:SS
MM/DD/YY (based on date format set in Regional Options
dialog box)
Miscellaneous Functions
arg arg(exp) Returns nth argument of the current function.

322 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Variables

Table 51. General Functions (Continued)

Name Syntax Description


narg narg() Return number of arguments.
NOTE:
1. The cond command performs both the true_return and the false_return arguments before a decision is made.
Therefore, it is recommended that cond not be used with write operations. Use the IF keyword instead of the cond
command for write operations. Refer to IF/ELSE Syntax on page 300 for information about use of IF.

Variables
Table 52 lists the built-in variables used by various batch functions.

Table 52. Variables

Name Associated With ... Description


_ _current PFC block labels 0 = block inactive
1 = block active
_ _display PFC block labels 0 = Label computed in context of PFC editor
1 = Label computed in context of runtime display
2 = Label computed in context of batch overview
_ _name PFC block labels Name of current PFC block (phase alias or procedure
name)
_ _unit Select and deselect BMA Name of a piece of equipment

Batch Management Function Wizard


A function wizard is a tool that provides easy access to functions and the syntax
required for their use. By default, the Batch Management function wizard includes
the set of standard Batch Management functions provided with the Batch
Management software in the System Functions object located in the Procedure
Structure.
In addition to the standard functions provided as a part of the Batch Management
software, the user can create custom functions. Configuration of custom functions is
described later in this appendix.

3BUA000146-600 A 323
Batch Management Function Wizard Appendix A Configuring Batch Variables and Expressions

Standard and custom functions are used in batch expressions during procedure
configuration. Procedure configuration is discussed in Section 6, Procedures. All
functions, both standard and user-created, can also be accessed for use when editing
a control recipe at run time. Runtime editing of control recipes is described in the
System 800xA Batch Management Operation (3BUA000145*).
The Batch Management function wizard is accessed by clicking FW or f(x).
This button appears on procedure configuration windows where batch expressions
can be configured. Many such windows are used during configuration of batch
manager action blocks, including the compute, acquire equipment, select
equipment, sequence start, release equipment, reserve equipment, unreserve
equipment, set sop section, command and print report BMAs. The Function Wizard
window (Figure 85) will be displayed when the button is clicked. The function
selected in the Functions area determines the contents of the remaining fields
(Prototype, Description, Scope and Example).

324 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Batch Management Function Wizard

Figure 85. Functional Wizard Window

The Prototype, Short Description, and Long Description fields are filled
automatically after a function is selected. The Prototype field displays the syntax for
using the selected function. The description fields contain text that describes what
the function does. The Constant option will be enabled if the selected function is a
batch constant value. The function wizard editor is divided in to three areas:

3BUA000146-600 A 325
Expression Editing Area Appendix A Configuring Batch Variables and Expressions

1. Expression Editing Area


2. Data selection Area
3. Help Area

Expression Editing Area


The expression editing area is used to create and edit Batch expressions. The
expression editor has an auto completion option and is invoked when a user starts
entering one or several characters in the editing area. The list is filtered to
accommodate only the entries consistent with the inserted characters. When a user
types “b”, it lists all the functions stating with b and the user can select one function
and proceed creating the expression as per the syntax.
Press <ESC> to continue typing expressions without auto complete menu.
Batch expressions syntax are color coded for functions, operators, values,
parentheses variables and constants with different color.
The expression editor parse the expressions to check the correctness of the
expression. When the user writes the expression, it is automatically parsed for
errors. The errors expression is underlined and the error is displayed as a tool tip.
The expressions parsing happens for one line, the user need to clear the errors in
order to parse other errors in an expression.
If a user clicks OK button without resolving the expression error, then an error
message will be displayed with details of the error information.

Data Selection Area


The data selection area allows the user to browse for functions, equipment, OPC
properties and parameters which are added to the expression.
The following are the different methods to insert a selection from the data selection
area into the expression editing area:
– Select an item and click the Arrow button corresponding to selection
– Double -click on the selected item

326 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Help Area

Functions
Lists all the Batch functions both standard and custom function available in the
system in a tree view. This helps the users to select the functions for writing
expressions.
A filter option is provided for functions to list all functions or standard functions or
custom functions. All the functions are listed by default.

Equipments
List all the Batch equipments available in the system.

OPC Properties
List all the OPC property items. When a user selects a particular control module, the
associated OPC properties are loaded for configuring the expressions.

Parameters
This field is enabled only when function wizard is invoked from the blocks in a
PFC. This lists all the parameters with parameter name and data type defined in that
specific PFC.

Search
In the display data area, the search field is provided to search data related functions,
equipments and parameters based on the selected tab. Users need to type the name
and then click Search.

Help Area
The help area displays the examples syntax, descriptions and examples of
expressions for the relevant functions selected. When a user selects a particular
function on the display area, the corresponding help information is populated in the
help area.
Help option invokes the user documentation for the function wizard.

3BUA000146-600 A 327
Custom Functions Appendix A Configuring Batch Variables and Expressions

Custom Functions
A set of standard Batch Management functions is provided with the Batch
Management software in the System Functions object located in the Procedure
Structure. These standard functions are documented in Built-In Functions on page
307. In addition to the standard functions, custom functions can be created.
Furthermore, a function can be tested before it is ever used in the execution of an
actual batch.

Add
To create a custom functions group:
1. Select the Procedure Structure in the plant explorer workplace.
2. Add a Functions object to the object (or the background to select the root) that
will contain the custom functions group.
To add/create a function:
1. Add a Function object to the function group that will contain the function.
2. Select the Name aspect of the function.
3. Enter a description of the function in the Description field and click Apply.
This description is used as the short description of the function in the function
wizard.

Configure
To configure a newly created custom function:
1. Select the function object. A window displaying the blank configuration of the
newly created function aspect (Figure 86) will be opened.

328 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Save and Cancel

Figure 86. New Function Aspect Window

2. Configure the function itself in the text entry portion of the window. It can be
typed directly into this portion of the display. Use the following format when
configuring the function.
func function_name() {
body_of_function
}
3. If desired, click FW or f(x) to include other functions or expressions containing
expressions within the function being configured. Refer to Using Functions
within Functions on page 330 for more information.
4. If desired, click the parameters on/off toolbar button to configure parameters
and test variables. Refer to Parameters and Test Variables on page 330 for more
information.
5. Click the test function toolbar button to test the function.

Save and Cancel


To save the function, click the save toolbar button.

3BUA000146-600 A 329
Using Functions within Functions Appendix A Configuring Batch Variables and Expressions

Using Functions within Functions


A function can be configured using other functions, both the standard Batch
Management functions and user-configured custom functions. To include another
function or expression:
1. Click FW and place the cursor in the function wizard editor where the function
is to be added.
2. Select the function to be added in the Function Wizard window.
When configuring a function, if no parameter value is supplied for a given
parameter, then the appropriate parameter name will be supplied as the parameter
value. This string can later be manually edited in the body of the function.

Parameters and Test Variables


To define parameters and test variables:
1. Click the parameters on/off toolbar button.
2. Select the parameters (or Test Variables) tab (Figure 85).

Figure 85. Parameter and Text Variables Tabs

3. Click the insert parameter (or insert test variable) toolbar button.
4. Enter the appropriate information in the Name, Description, and Test Value
columns (for parameters) or the Name, Type, Value Type, and Value columns
(for test variables).
5. Click the save aspect toolbar button.

330 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Parameters and Test Variables

To delete a parameter, click the item on the parameters tab and press the Delete key.
The entry for the selected parameter will be removed from the Parameters tab.
When a parameter is added to the parameters tab, it is automatically given the next
available parameter number. This number consists of a dollar sign followed by a
number. The number reflects the position of the parameter in the order of items in
the parameters tab. For example, the first parameter would be $1, the second would
be $2, and so on. If a parameter is deleted, this number will change to reflect the
new order. That is, if the parameter represented by $1 is deleted, the second
parameter will then move up and it will then be represented by $1.
Use these symbolic names in the body of the function, rather than the parameter
names.
Assume a function named newfunc is created, and three parameters have been
defined for this function: param1, param2, and param3 which are automatically
given the symbolic names $1, $2, and $3. An expression to add these parameters
and return the sum would be written:
func newfunc() {
a = $1 + $2 + $3
return(a)
}
The Test Value column on the Parameters tab is used to specify a value to be used by
parameters during testing of the function.
Test variables can also be defined for a function. These test variables are meant to
simulate variables that would normally exist during the execution of the procedure
and are used when test a function. The Type column allows the following variable
types to be specified.
• Global - used in any PFC in any batch.
• Batch - used in any PFC in a single batch.
• Local - used within one instance of one PFC.
• DBA - used with DBA functions in batch expressions.
Refer to Built-In Functions on page 307 for information on these types of batch
variables and their use in batch expressions.
Specify the appropriate type of value in the Value Type column (that is, whether the
variable will contain a Number (the default) or a character String).

3BUA000146-600 A 331
Test a Custom Function Appendix A Configuring Batch Variables and Expressions

Finally, enter the Value to be used in the variable. To delete a test variable, select the
item and press the Delete key.

Test a Custom Function


Once the body of a function has been written, it can be tested before it is used during
the execution of an actual batch using test function.
For example, the function configured in Figure 85 is designed to create a name for a
soup, based on the ingredients. It includes the parameters named percent1 and
percent2, and test variables named ingred1 and ingred2.

Figure 85. Sample Function with Parameters and Test Variables

Click the test function button and the Test Results window (Figure 86) will be
displayed. This window provides the value returned for the function, as well as
information on the test variables that were modified as a result of running the test.

332 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Edit

Modified parameter test values and errors encountered during execution of the test
are also reported in the Test Results window.

Figure 86. Test Results Window

Edit
To edit a custom function, select the function object and edit the desired
information.

Delete
Custom functions are deleted in the same manner as all other aspects.

Views
Functions (both system and custom) can be viewed in two different formats. The
main view (default) displays the coding, parameters, and test values of the function.
The XML view displays the raw XML code stored in the function. To select a view:
1. Select the view pull-down menu icon (on the right side of the pin icon).
2. Select the desired view on the pull-down menu.

Search and Replace


Text within a custom function can be found and replaced with other text using the
search and replace function. To replace text:
1. Click the search and replace button.
2. Enter the text to be replaced in the Find What field of the replace window.

3BUA000146-600 A 333
Lock and Unlock Appendix A Configuring Batch Variables and Expressions

3. Enter the text to be inserted in the Replace With field.


4. Enable any desired replace options (Match Whole Word Only or Match Case).
5. Click Find Next.
6. Click Replace (replaces selected occurrence) or Replace All (replaces all
occurrences).

Lock and Unlock


Viewing or editing of the code associated with a custom function can be prevented
(in both main and xml views) using the lock feature.
The function locking feature is visible only if the user has enabled the XML view.
To enable the XML view, set the registry key
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ABB\Produce
IT\6.0\Settings\ ENABLE_XMLVIEW_FUNCASP to True (see Figure 87).
If this registry key does not exist in the registry or is set to False, the function
locking feature will not be visible (see Figure 88).

Figure 87. Batch Function with the Function Locking Feature Enabled

334 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Lock and Unlock

Figure 88. Batch Function without the Function Locking Feature

Locking the Batch Function. Execute the following steps:


1. Click to lock the Batch Function.
The Password dialog is displayed (see Figure 89).
is enabled only if the function is saved and there are no further changes to be
done to the function.

Figure 89. Password Specification

2. Enter a password for accessing the Batch Function.

3BUA000146-600 A 335
Lock and Unlock Appendix A Configuring Batch Variables and Expressions

Enter the same password once again for confirmation in Verify New
Password.
Password history will not be maintained for a function. The user should provide a
new password to lock the function again.
The user can also repeat the passwords if required, to retain the previously set
password for the function.

3. Click OK to set the password for the Batch Function.


4. The view of the Batch Function is cleared after locking the function (see
Figure 89).
The user can view the function only after specifying the password. Refer
Unlocking the Batch Function for more information.
Once the password is set, it cannot be retrieved and the function will not be
visible to the user.

Figure 90. Preview Area of the Batch Function after setting the Password

336 3BUA000146-600 A
Appendix A Configuring Batch Variables and Expressions Lock and Unlock

Unlocking the Batch Function. Execute the following steps:


1. Click to unlock the Batch Function. The Enter Password dialog is
displayed.
If the user has unlocked the Batch Function, the function will remain unlocked
for future use.
The user should lock the function again if required.

Figure 91. Password for Unlock

2. Enter the password and click OK.


The content of the Batch Function will be visible to the user and will be
enabled (see Figure 92).

Figure 92. Batch Function after the Unlock

3BUA000146-600 A 337
Lock and Unlock Appendix A Configuring Batch Variables and Expressions

338 3BUA000146-600 A
Appendix H Log Configuration

Introduction
This section describes how to configure spreadsheet logs.

Spreadsheet Logs
Spreadsheet logs are used to obtain data from, change, and put data into the
database. Spreadsheet log configuration is performed using Microsoft® Excel. A
simple spreadsheet log (example: Batch_Report.xlsx) is provided.
A number of special functions can be used to include batch information in a
spreadsheet log. These special functions can be added to an Excel spreadsheet by
selecting Tools > Add-Ins... > Batch_Fpexcel from the Excel menu bar.
If Batch_Fpexcel add-in is unavailable, then browse to
C:\Program Files (x86)\ABB Industrial IT\Produce
IT\Batch\Bin\Batch_Fpexcel.xla.
These functions are described in this section:
• fpbget.
• fpbgetd.
• fpbtget.
• fpubid.
Functions are entered in the spreadsheet as formulas during configuration of the
spreadsheet.
In order to make new spreadsheet logs available through batch dialogs, they need
to be saved in the directory C:\ProgramData\ABB\Produce IT\lib\exlogs.

3BUA000146-600 A 339
fpbget( ) Function Appendix H Log Configuration

fpbget( ) Function
This function is used in the spreadsheet as a formula. This function gets tag key data
for the tag name and batch ID (bid) specified. Data is obtained from the batch
database. The function fpbget() returns the value in ASCII format. Table 44
describes how to use this function.

Table 44. fpbget() Function

Format char fpbget(bid, tag)


Inputs bid The batch ID for the batch database from which the data is to be obtained.
tag The tag name for which the value will be obtained from the batch database.
Outputs None.
Returns The value specified by the combination of batch ID and tag name, or an error
message.

Example:
• fpbget("Chl012B", "DACL")
This example gets tag key data for the tag name DACL from the data stored for
the batch with the batch ID of Chl012B.

fpbgetd( ) Function
This function is used in the spreadsheet as a formula. This function gets tag key data
for the tag name and batch ID (bid) specified. Data is obtained from the batch
database. The function fpbgetd() returns the value as a double precision data type.
Table 45 describes how to use this function.

Table 45. fpbgetd() Function

Format double fpbgetd(bid, tag)


Inputs bid The batch ID for the batch database from which the data is to be obtained.
tag The tag name for which the value will be obtained from the batch database.

340 3BUA000146-600 A
Appendix H Log Configuration fpbtget( ) Function

Table 45. fpbgetd() Function (Continued)

Outputs None.
Returns The value specified by the combination of batch ID and tag name, or an error
message.

Example:
• fpbgetd("Chl012B", "DACL")
This example gets tag key data for the tag name DACL from the data stored for
the batch with the batch ID of Chl012B.

fpbtget( ) Function
This function is used in the spreadsheet as a formula. This function gets the
collection time/date of the tag key data for the tag name and batch ID (bid)
specified. Data is obtained from the batch database. The function fpbtget() returns
the value in Lotus® time format. Table 46 describes how to use this function.

Table 46. fpbtget() Function

Format char fpbtget(bid, tag)


Inputs bid The batch ID for the batch database from which the data is to be obtained.
tag The tag name for which the value will be obtained from the batch database.
Outputs None.
Returns The collection time/date associated with the value specified by the combination of
batch ID and tag name, or an error message.

Example:
• fpbtget("Chl012B", "DACL")
This example gets collection time/date associated with the tag key data for the
tag name DACL from the data stored for the batch with the batch ID of
Chl012B.

3BUA000146-600 A 341
fpubid( ) Function Appendix H Log Configuration

fpubid( ) Function
This function returns the alphanumeric string used as the batch ID name for the
batch selected by the user from the list on the batch historian window. Table 47
describes how to use this function.

Table 47. fpubid() Function

Format char fpubid


Inputs None.
Outputs None.
Returns The batch ID.

Example:
• fpubid
This example returns the selected batch ID.

342 3BUA000146-600 A
Appendix I Configuring a Graphic

Introduction
Graphics can be configured to have buttons that will display PFCs, messages, and
batch status. Among the configuration items available are standard button aspects.
These aspects have been supplied by ABB (found in Library Structure\Batch
Management\Graphic Elements) and contain preconfigured dynamic attributes.
Batch equipment OPC information can also be accessed on properly configured
graphic displays. Refer to the System 800xA Configuration (3BDS011222*) for
detailed information about creating graphics.

View a PFC
One dynamic button aspect, BatchPFC (a small rectangle containing a P), can be
placed on graphic displays. When this button is clicked, a window will display the
PFC for the batch (if any) which has acquired, reserved or selected that equipment.
If no batch has acquired, reserved or selected the equipment, a window containing a
message to that effect will appear. The button face color is changed to the active
color when the equipment is acquired, reserved, or selected.

View Messages
Another dynamic button aspect, BatchMessage (a small rectangle containing an M),
can also be placed on graphic displays. When this button is clicked, a window will
display the list of pending messages for the batch (if any), which has acquired,
reserved or selected that equipment. If no batch has acquired, reserved, or selected
the equipment or if there are no messages pending, a window containing a message
to that effect will appear. The button fill color is changed to the active color when
the equipment is acquired, reserved or selected and there are pending messages.

3BUA000146-600 A 343
View Batch Status Appendix I Configuring a Graphic

View Batch Status


Another dynamic button aspect, BatchStatus (a small rectangle containing an S) can
also by placed on graphic displays. When this button is clicked, the Batch
Information window will be displayed for the batch (if any) which has acquired,
reserved, or selected the equipment.
If no batch has acquired, reserved, or selected the equipment, a window containing a
message to that effect will appear. The button face color is changed to the active
color when the equipment is acquired, reserved, or selected.

To make the plant operations run smooth, users are provided with an option to
access the Batch status information through graphic elements. Additional Batch
status information would be provided by exposing the Batch information from the
Batch manager through Batch Unit OPC properties.
The additional OPC properties exposed are:
Batch.BStatus (Status): Provides the unit property Schedule Status. This is the
current schedule status of the recipe on a unit. i.e. Active, Complete, Terminated,
etc.
Batch.BMode (Mode): Provides the unit property Mode of the Batch recipe
procedure. This is the mode of operation. i.e. Automatic, Semi-automatic, and
Manual.
Batch.BPriority (Priority): Provides the unit property Priority of the Batch recipe
procedure. This will indicate the numeric value priority of the schedule recipe
procedure. Lower value being highest priority.
Batch.BState (State): Provides the unit property State. This is the state of the
recipe procedure with reference to the unit. i.e. Running, Paused, Held, etc.
Batch.BPriorityNLS: Provides NLS supported property Priority.
Batch BStatusNLS: Provides NLS supported unit property Status.
Batch.BModeNLS (Mode): Provides NLS supported property Mode.
Batch.BStateNLS: Provides NLS support property State.

344 3BUA000146-600 A
Appendix I Configuring a Graphic Batch Equipment Information

Batch Equipment Information


Batch equipment OPC information can be accessed and displayed on graphic
displays using standard graphic display configuration procedures.

3BUA000146-600 A 345
Batch Equipment Information Appendix I Configuring a Graphic

346 3BUA000146-600 A
Appendix J Batch Command Interface

Introduction
The batch interface commands are used to make batch scheduling and equipment
changes through the expressions within the batch manager. Available batch
commands are listed in Table 48.
These commands are not recommended to use through external application
programs. The Batch Web Services Interface is the recommended method for
external applications. Refer to Appendix P, Batch Web Services Interface for
more information.
Before executing any of the commands given in Table 48, open the Batch
Overview at least once to ensure the established connection between client and
server.

Table 48. Batch Interface Commands

Online
Command Instruction Description
Section
batch_cbatch 1 Change scheduled batch
batch_chgunit 1 Change equipment status
batch_sbatch 1 Schedule batch

batch_cbatch
This command changes the mode, priority, start time, estimated execution time,
schedule status, how to handle parameters, and how to set parameters. Table 49
describes how to use this command.

3BUA000146-600 A 347
batch_cbatch Appendix J Batch Command Interface

Table 49. batch_cbatch Command

Format batch_cbatch -b BID -m Mode -p Priority -t StartTime -e EstTime -s/-u


-w -r/-d param=value...
Inputs -b BID ID to identify the batch to change.
1
-m Mode Operating mode to set the batch to: automatic, semiautomatic,
and manual.
-p Priority1 Priority to assign the batch: 1-16.
-t StartTime1 Time to start execution of the batch. This can be changed any time
after the batch is created, but before it has started execution. Start
time is not checked until the batch status goes to scheduled:
hh:mm:ss <day>-<month>-<year>
Example: 04:47:00 27-SEP-99 or 04:47:00 27-09-99.
-e EstTime1 Estimated execution time:
hh:mm:ss.
-s1 or -u1 Schedule or unschedule the batch. An unscheduled batch can be
scheduled by specifying the -s flag. A scheduled batch can be
changed to unscheduled by specifying the -u flag. If the batch is
activated these flags will be silently ignored.
-w1 Specifies that the batch_cbatch command should wait until the
batch completes execution before exiting.
-d1 or -r1 Delete, replace or update parameters. These flags specify what to
do with the parameter values supplied on the command line. If no
flag is supplied, update is assumed. In update mode the specified
parameter values are used, and unspecified parameters are not
affected. If replace (-r) is specified, all existing parameter values
are removed (regardless of how they were originally configured),
and the specified values are used. All unspecified parameter
values will revert to their default values. Specifying -r with no
parameter values is equivalent to deleting all parameters. If (-d) is
specified, all specified parameters are removed and will revert to
their default values. In this case, the value specification on the
command line is ignored. Any parameter that is not specified will
not be affected.

348 3BUA000146-600 A
Appendix J Batch Command Interface batch_cbatch

Table 49. batch_cbatch Command (Continued)

Inputs param=value1 Values for the top level batch parameters. Param is replaced with
(cont) the name supplied when defining parameters during Procedure
Configuration. The value is a string representation. Since
parameters are all strings proper shell escapes must be used to
pass them on the command line to batch_cbatch. Refer to the -d
and -r flags for details on how specified values relate to existing
values.
Examples:
ProductName=\"ValueWithoutSpaces\"(at command prompt)
“ProductName=\\\”ValueWithoutSpaces\\\””(in Command BMA)
“ProductName=\”Value With Spaces\””(at command prompt)
“\”ProductName=\\\”Value With Spaces\\\”\””(in Command BMA)
Outputs Error messages to standard error.
Returns Exit status 0 for no error, <0 for error.
Function batch_cbatch parses the command line for all options. A BID must be supplied and an
associated batch must exist. Only specified values will be acted on, all others will be
left at their current values. Multiple parameter values can be supplied. How the
specified and existing parameters are processed is determined by the flags -d and -r.
Once batch_cbatch has parsed all values, it modifies the batch and notifies the batch
manager. If the -w flag was specified, the batch_cbatch waits for notification from the
batch manager to indicate that the batch has completed before exiting.
Errors Usage error.
detected Batch system not active.
No BID/BID does not exist.
Parameter error.
NOTE:
1. Optional parameter.

Two examples are:


• batch_cbatch -b prod1_062199 -p 1 -r
This would change the existing batch named prod1_062199. It would set its
priority to 1. The -r flag indicates all existing parameters should be set to
default values.

3BUA000146-600 A 349
batch_chgunit Appendix J Batch Command Interface

• batch_cbatch -b prod2_062199 -s
This would cause the batch prod2_062199 to be scheduled. If its start time has
passed, execution will begin immediately. Otherwise, execution will occur at
the time specified.

batch_chgunit
This command changes the status (enable, disable, or discard) of a piece of
equipment. Table 50 describes how to use this command.

Table 50. batch_chgunit Command

Format batch_chgunit -e/-d/-r Unit...


Inputs -e Unit1 Name of an existing equipment to enable.
1
-d Unit Name of an existing equipment to disable.
-r Unit1 Name of an existing equipment to discard (disable and remove batch
queue).
Outputs Error messages to standard error.
Returns Exit status 0 for no error, <0 for error.
Function batch_chgunit changes the operator status of the specified equipment. The
parameters to batch_chgunit consist of commands (-e -d -r) and the name of an
existing equipment. There is no limit to the number of commands passed to
batch_chgunit. Each command is passed and processed in order. So, it is valid to have
multiple commands on the same equipment. The exit status indicates the success or
failure of the command. There is no output on successful completion. Error messages
will be printed for failures. Once a failure is encountered, subsequent commands are
not executed.
Errors Usage error.
detected Batch system not active.
Equipment does not exist.
Command not valid on current status.
NOTE:
1. Optional parameter.

350 3BUA000146-600 A
Appendix J Batch Command Interface batch_sbatch

Three examples are:


• batch_chgunit -r FT01
This would discard equipment FT01. Discarding will disable the equipment
and remove all items from its batch queue.
• batch_chgunit -d FT01 -e FT01
This would disable, then enable equipment FT01, effectively restarting it.
• batch_chgunit -e FT01 -e FT02 -e FT03 -d Unit01
This would enable the equipment FT01, FT02 and FT03 and disable equipment
Unit01.

batch_sbatch
This command sets all the necessary parameters to schedule the execution of a
batch. Table 51 describes how to use this command.

Table 51. batch_sbatch Command

Format batch_sbatch -b BID -r Procedure -l Lot -n Campaign -c Comment -m Mode -p Priority


-t StartTime -e EstTime -s/-u -w param=value...

3BUA000146-600 A 351
batch_sbatch Appendix J Batch Command Interface

Table 51. batch_sbatch Command (Continued)

Inputs -b BID Unique ID to assign to the new batch.


-r Procedure1 Existing approved procedure to serve as top level of the batch.
-l Lot1 Lot name to be assigned to the batch.
-n Campaign1 Campaign name to be assigned to the batch.
1
-c Comment Comment string that will show up in the batch overview and status
popup (if specified).
-m Mode1 Operating mode to start the batch in: automatic (default),
semiautomatic, and manual.
-p Priority1 Priority to assign the batch: 1-16. Default value is 8.
-a Batch cell Batch cell to be assigned to the batch.
1
-t StartTime Time to start execution of the batch. This can be changed any time
after the batch is created, but before it has started execution. Start
time is not checked until the batch status goes to scheduled. Default
value is Immediate:
hh:mm:ss <day>-<month>-<year>
Example: 04:47:00 27-SEP-99 or 04:47:00 27-09-99.

352 3BUA000146-600 A
Appendix J Batch Command Interface batch_sbatch

Table 51. batch_sbatch Command (Continued)

Inputs -e EstTime1 Estimated execution time. Default value is Dynamic:


(cont) hh:mm:ss.
-s1 or -u1 Schedule or unschedule initial status. Allows the batch to be created
but not scheduled. It can be scheduled later. Default value is -s.
-w1 Specifies that the batch_sbatch command should wait until the batch
completes execution before exiting.
param=value1 Values for the top level batch parameters. Param is replaced with the
name supplied when defining parameters during Procedure
Configuration. The value is a string representation. Since parameters
are all strings, proper shell escapes must be used to pass them on the
command line to batch_sbatch.
Examples:
ProductName=\"ValueWithoutSpaces\"(at command prompt)
“ProductName=\\\”ValueWithoutSpaces\\\””(in Command BMA)
“ProductName=\”Value With Spaces\””(at command prompt)
“\”ProductName=\\\”Value With Spaces\\\”\””(in Command BMA)
Outputs Error messages to standard error.
Returns Exit status 0 for no error, <0 for error.
Function batch_sbatch parses the command line for all options. A BID and procedure must be
supplied. All other values can be defaulted. Multiple parameter values can be supplied.
Once batch_sbatch has parsed all values, it creates the batch and notifies the batch
manager. If the –u option was specified the batch will remain in the unscheduled
status. If the –w flag was specified the batch_sbatch waits for notification from the
batch manager to indicate that the batch has completed before exiting.
Errors Usage error.
detected Batch system not active.
No BID/No unique BID.
No procedure/Procedure does not exist.
Parameter error.
NOTE:
1. Optional parameter.

3BUA000146-600 A 353
batch_sbatch Appendix J Batch Command Interface

Two examples are:


• batch_sbatch –b prod1_062199 –r prod1_BR –t "10:00 27-SEP-99"
BatLabel=\"Product 1\"
This will start a new batch named prod1_062199. Its top level procedure will
be prod1_BR. The new batch status will be Scheduled and it will be scheduled
to begin execution at 10 am on 27 September 1999. The procedure prod1_BR
must have a parameter named BatLabel defined with Product 1 being a valid
value. Once the new batch is created, batch_sbatch will exit with the
appropriate status.
• batch_sbatch -b prod2_062199 -r prod2_BR -u
This will create a new batch named prod2_062199. Its top level procedure will
be prod2_BR. The new batch status will be unscheduled. In order to execute
the batch it must be set to Scheduled through the batch_sbatch command or the
standard operator interface.

354 3BUA000146-600 A
Appendix K Batch Utilities

Introduction
This section describes batch utilities such as:
• Miscellaneous batch configuration - configures the batch settings, history
options, equipment settings, and event settings.
• Default procedure configuration - configures the minimum number of required
revision comments, number of backup revisions kept, default cell, ISA-88
option status, and PFC color configuration.
• Backup and Restore - 800xA System Import and Export functionality is used to
backup batch objects such as procedures and equipment etc. The backup files
are stored in .afw format.
• Report configuration - configures reports to be generated based on the recipe
database configuration.
• Batch toolbar - enables a toolbar containing three buttons that open the Batch
Overview, Batch History Overview, and Equipment Overview windows.
• Batch Phase and Unit Maintenance - provides a means of manually adding new
graphics extension aspects to closed and approved libraries.

Miscellaneous Batch Configuration


Miscellaneous batch configuration information is contained in the Library
Structure\Batch Management\Configuration\Miscellaneous Configuration aspect.
Select this aspect to display the Batch Settings, History Options, Event Settings,
Equipment Settings, Select Batch Colors, and Manage Batch IDs tabs.

3BUA000146-600 A 355
Batch Settings Appendix K Batch Utilities

Batch Settings
This tab (Figure 93) provides the ability to configure retention limits and unit event
associations. The number of completed and terminated batches listed on the Batch
Overview window can be configured using the Number and Retention Time
parameters.

Figure 93. Batch Settings Tab

Enter a value in Number Retained field. This is the number of entries for completed
batch runs that are retained on the Batch Overview window.
Select the desired retention time from the list of available retention time intervals in
the Retention Time field.
If both a retention time and a number of batches are configured, both apply,
although the one that is reached first will take effect. For example, assume that a
retention time of eight hours and a limit of 10 batches are specified. If 20 batches
are completed within the time of eight hours, the last 10 will be retained. (The
batches are stored on a first-in, first-out basis, with the first one being discarded
when the 11 one completes, and so on.) Alternately, if only three batches
complete within eight hours, each of the three will be removed eight hours after
its respective completion time.
Enabling the Objects and Descendents option causes batch information (batch ID,
campaign ID, lot ID, and procedure path) to be appended to alarms and events

356 3BUA000146-600 A
Appendix K Batch Utilities History Options

generated by equipment and any of its descendent objects if the equipment is


acquired by a batch. The Objects and Descendents in Structure option allows the
appending of batch information to be limited to the equipment in just one 800xA
structure.

History Options
This tab (Figure 94) provides the ability to set the default settings for the type and
level of detail of data to be retained for a batch. Allowing unnecessary data to be
discarded means that less disk space will be necessary to store the data.

Figure 94. History Options Tab

Check boxes associated with the following event types allow the retention or
discarding of information for:
• Operator changes (from Batch Management).
• All other Batch Management events (such as procedure starts and stops).
When the option is enabled, data for that item will be retained. Otherwise, the data
will be discarded.
For batch manager actions and phases, select one of the following levels for
retaining data:
• None.
• Basic (start time, end time).
• Full (includes parameter values plus start and end times).

3BUA000146-600 A 357
Event Settings Appendix K Batch Utilities

Enable the Use 800xA Historian option (disabled by default) to cause Batch
Management to save several files to the batch_install_directory\EH_Transfer
directory for each completed batch. These files contain information about the
completed batch and are used by the 800xA historian and then deleted.
Do not enable the Use 800xA Historian if an 800xA historian is not being used.
The files saved to the \EH_Transfer directory will not be deleted, eventually fill
up the disk drive, and cause Batch Management to stop functioning.
To select the desired level of data, enable the appropriate option. The default history
option settings can be changed for any individual batch by using the History
Options tab of the Batch Schedule window. Refer to the System 800xA Batch
Management Operation (3BUA000145*).
If Information Management is included in the system, the information selected on
the History Options tab will be stored in a production data log (PDL) and message
log on the Information Management server. The message log must be configured
using the Information Management Services application. Refer to the appropriate
Information Management instruction for more information. Information
Management DataDirect and any SQL-based data access application are two ways
to read the PDL and message log.
Information Management allows the viewing of process events and operator
actions from sources external to Batch Management as well as attributes of an
event (such as second authenticator of an operator change).
Exception procedure end times are not displayed in the Search Results pane of
the PDL Browser. The end time is reported as an end procedure event that can be
viewed using the Messages tab of the PDL Browser pane.
Scheduled jobs (reports) will be delayed until Information Management requests the
data from PDL if the Use 800xA Historian option is enabled. This ensures that PDL
has received all batch data. If this option is disabled, scheduled jobs are immediately
scheduled which means that reports trying to get data from PDL may only receive
partial data or none at all because it is not yet available.

Event Settings
Batch Management system events (batch server failovers and security violations),
messages and breakpoints reached, errors, and simple events (standard batch events
as determined by settings described in History Options on page 357) can be routed

358 3BUA000146-600 A
Appendix K Batch Utilities Event Settings

to the 800xA System event page. System events, messages, breakpoints reached and
errors are 800xA condition events and can trigger an alarm. Refer to Figure 95.

Figure 95. Event Settings Tab

Use the Event Settings tab to:


• Enable (or disable) the routing of batch events to the 800xA System.
• Set the 800xA event severity to a value of one through 1000 with 1000 being
the highest severity.
The Auto-Ack option provides the ability to automatically clear the 800xA event
when a:
• Batch Management message is answered.
• Breakpoint is continued.
• Error is cleared (or the block with the error is continued).

3BUA000146-600 A 359
Equipment Settings Appendix K Batch Utilities

Equipment Settings
This tab (Figure 96) provides the ability to configure the behaviors of the Batch
Equipment and Batch Phase Editors and synchronization options.

Figure 96. Equipment Settings Tab

There are three options that apply to the equipment and phase editor:
• Enabling the Blank Attribute (or Parameter) Default Value Allowed options
allows the default values to be left blank. This option is disabled by default.
• Enabling the Propagate Attribute (or Parameter) Range Changes option allows
default and range value changes (in the case of Advanced Equipment and Phase
types) to be propagated to instances of the types. This option is disabled by
default.
• Enabling the Prompt User to Propagate Changes option causes the operator to
be prompted to allow the propagation of default and range value changes to
instances of the types.

360 3BUA000146-600 A
Appendix K Batch Utilities Equipment Settings

There are two options under retain settings:


• No Retain High and Low Limits
When this option is checked (at default state), the inner and outer ranges
(LimitedLowValue, LimitedHighValue, LowValue, HighValue) on new Phase
Parameters and In Controller unit attributes are set to No Retain. When not
checked, they are set to Retain (warm). This setting applies to all newly created
Phase Parameters and unit attributes. The default state of this setting is checked (No
Retain) which is a change in behavior from previous versions. To restore the old
behavior, uncheck the option.
For Level 1 Phase Parameters, if the Phase type already resides in a unit type,
then the retainment is set when the Phase Parameter is added. Else, it is set when
the Phase type is added to the unit type. Level N Phase Parameters are not
affected by this setting because the variable is created and managed by the user,
and not Batch. Phase Parameters and unit attributes of type Text are not affected
because they do not have limits.

3BUA000146-600 A 361
Synchronize Appendix K Batch Utilities

Figure 97. Retain Settings

• Cold Retain Equipment Attribute Values: When this option is checked, the
InValue & Value elements of new InController unit attributes are set to Cold
Retain. When not checked (at default state), they are set to Retain (warm).
This setting applies to all newly created unit attributes. The default state of this
setting is unchecked (Retain) which is the same behavior as previous versions.

Synchronize
There are six options that pertain to synchronization:
– Enabling the Unit Attributes option causes OPC data point unit
attributes to be resolved to the appropriate object GUID that gets used at
run time.
– Enabling the Level N Out and In/Out Parameters option to
synchronize level N output and input/output parameters added after
instances of the phase have been created. The ParName.Direcrtory-

362 3BUA000146-600 A
Appendix K Batch Utilities Synchronize

Init_Value of the level N output and input/output parameters will be set to


2.
– Enabling the Phase Reference option causes all unsaved PHASEX tags
to be saved to the similarly named pieces of Harmony equipment at one
time. This functionality is the same as saving each piece of Harmony
equipment individually. The XML view of the Batch Equipment aspect of
the Harmony equipment objects will list the PHASEX tags.
– High and Low Retainment (Units) option sets the current inner and
outer ranges for unit attributes as per the No Retain High and Low Limits
setting in Retain Settings. Whenever this option is checked, the
corresponding Phases option should also be checked.
– Equipment Value Attribute Retainment option partially sets the current
unit attributes as per the Cold Retain Equipment Attribute Values setting
in Retain Settings. The data type of the _b variable in the unit is changed
to properly align with the setting. However, the Control Module type of
the unit attribute control module is not changed. That must be done
manually by using the context menu Replace Type in Control Builder M
on each of the unit attributes (under Unit Control Module Types).
– High and Low Retainment (Phases) option sets the current inner and
outer ranges for Phase Parameters as per the No Retain High and Low
Limits setting in Retain Settings. Whenever this option is checked, the
corresponding Units option should also be checked.
Click Synchronize after the synchronization options have been set.

3BUA000146-600 A 363
Select Batch Colors Appendix K Batch Utilities

Select Batch Colors


This tab (Figure 98) provides the ability to configure the block state (colors and
blink rate) to be used in phase, procedure and BMA blocks on the procedure
function charts (PFCs).

Figure 98. Select Batch Colors Tab

364 3BUA000146-600 A
Appendix K Batch Utilities Select Batch Colors

This tab contains a set of buttons under the heading Block State. The legend on the
face of each button indicates the state it represents, and it is displayed using the
combination of colors and blink rate configured for a PFC block (phase, procedure
or BMA) in the designated state. Possible states include:
• Idle.
• Running.
• Complete.
• Pausing.
• Paused.
• Holding.
• Held.
• Restarting.
• Stopping.
• Stopped.
• Aborting.
• Aborted.
• Connecting.
• And special states of error and attention.

Text, Block, and Blink Color Attributes


Color attributes that can be configured for each block state include text, block, and
blink color. The text color attribute determines the color of any text displayed on the
PFC block. The block color attribute determines the primary color used to display
the block itself on the PFC. The blink color attribute is used to define a secondary
color that will alternate with the primary color when a block is in the selected state
and a blink rate has been configured for that state.
A separate button for each of these items (Text, Block, and Blink) is provided for
each block state. Colors are configured by clicking the button and selecting a color
in the Select Batch Color window.
Default colors for the text color, block color and blink color attributes are shown in
Figure 98.

Blink Rate Attribute


The blink attribute is a feature that is useful when a block on a PFC enters a
transient state such as pausing, holding, etc. When this attribute is enabled, the

3BUA000146-600 A 365
Select Batch Colors Appendix K Batch Utilities

entire block on the PFC will alternate between the block color and the blink color,
producing the blink effect. The blink attribute can be enabled and the blink rate (fast
or slow) configured for any or all block states.
Three blink rate options for each block state are located at the right end of each row.
Enable the appropriate blink rate option (None, Slow, or Fast). The default blink rate
for each block state is as shown in Figure 98.
Changes made through the Select Batch Colors tab will take effect only after OK
has been clicked to complete the operation and the operator workplace has been
closed and reopened.

Color Discrepancies
Recipes configured in Produce IT Batch systems may have used colors that have
changed in Batch Management systems. Because of this, importing Produce IT
Batch recipes can result in recipes containing items (lines, blocks, text, etc.) that are
difficult to see or read. Recipes that are going to be imported should first be
reviewed to ensure they are readable in Batch Management systems. Figure 99 lists
the colors that have changed.

366 3BUA000146-600 A
Appendix K Batch Utilities Select Batch Colors

Figure 99. Produce IT Batch to Batch Management Color Changes

3BUA000146-600 A 367
Manage Batch IDs Appendix K Batch Utilities

Manage Batch IDs


This tab (Figure 100) provides the ability to reuse the batch IDs of imported
batches. A list of all the batch IDs that Batch Management knows about is displayed
on this tab. Batch IDs followed by an asterisk cannot be deleted.

Figure 100. Manage Batch IDs Tab

To delete an imported batch ID, select the appropriate batch ID and click Delete.

Default Faceplate Selection


To select the faceplate (MainFaceplate or MainFaceplateAlt) that is displayed by
default, the users Default Precedence List should be updated as follows:
1. Select the Library Structure\Preferences & Customizations\Aspect Precedence
List\Default Precedence List, Aspect Precedence List aspect.
2. Click Add and select Aspect Key in the Class field.
3. Select the Batch Equipment Faceplate PG2 that is to be displayed (by default)
and click OK.
4. Use the arrow buttons to move the newly created key to the top of the list.
5. Repeat Step 2 through Step 4 for the Batch Phase Faceplate PG2 that is to be
displayed (by default).

Default Procedure Configuration


Default procedure configuration information is contained in the Library
Structure\Batch Management\Configure\Default Procedure Configuration aspect.
Select this aspect to display the number of backup revisions of procedure kept,

368 3BUA000146-600 A
Appendix K Batch Utilities Backup Procedure Versions Retained

default cell, ISA-88 option status, and PFC color configuration. Refer to Figure 101.

Figure 101. Default Procedure Configuration Window

Backup Procedure Versions Retained


Each time a procedure is approved, the previously approved version is saved as a
backup version. Enter the number of backup version files to be retained in Backup
Procedure Versions Retained.
Changing this number will not automatically reduce the number of backup
version files on the system. For example, if the configuration of this item is
changed from 10 to 2, and 10 backup versions of the procedure already exist, all
10 will be retained until the next time the procedure is approved. Then the
number of backup versions on the system will be reduced from 10 to 2.

Default Batch Cell


When an operator schedules a batch using a procedure for which no batch cells were
specified during configuration, all cells are available to the procedure. When an
operator schedules the procedure, the Batch Management software will review the
list of cells available to the procedure and the login account of the operator.

3BUA000146-600 A 369
Strict ISA-88 Option Appendix K Batch Utilities

The procedure will default to the default batch cell when it is scheduled if the
operator has access to that default cell. If the operator does not have access, the
procedure will instead default to the first cell to which the operator's login account
configuration provides access. The name of the default cell is displayed in Batch
Cell in the Batch Schedule window.
Use the pull-down menu to select the default destination cell for batch messages
from the list of available cells. The default cell is named default cell.

Strict ISA-88 Option


The ISA-88 procedure hierarchy contains the following levels:
1. Recipe procedure.
2. Unit procedure.
3. Operation.
4. Exception procedure (not part of ISA-88 hierarchy but can be used in parallel
with any of the other types).
If this hierarchy is strictly enforced during the creation of procedure function charts,
the user will be required to use the batch procedure, unit procedure and operation
layers of the hierarchy with each procedure function chart, only including procedure
components of the layer immediately below. Exception procedures do not constitute
an additional layer in the ISA-88 hierarchy. Instead, they can be used in parallel
with any of the other procedure types.
To enforce this hierarchy, enable ISA-88 Option.
If the hierarchy is not enforced, unnecessary layers of the hierarchy can be skipped,
and the procedure function chart can use procedure components from any layer of
equal or lesser complexity.

Error On PFC Branch Mismatch


Enabling this check box prevents the user from approving a procedure with open
ended parallel branches.

370 3BUA000146-600 A
Appendix K Batch Utilities Back Up and Restore

The Auto Connect and Auto Align functionalities do not work as expected when
there is a branch mismatch in a procedure.
The branch mismatch in a procedure can occur while editing the existing
procedure or while performing the Align operation.
Editing the Procedure:
If the Auto Connect option is selected in a procedure that has branch mismatch,
then the status bar displays Alignment of the blocks may not be done properly
because of mismatch branches message.
If the Auto Connect option is cleared, then the status bar displays the default
message Ready.
Performing the Align operation:
Branch mismatch can occur in the following four scenarios:
- More branch Starts than branch Ends
- More branch Ends than branch Starts
- More parallel branch Starts than parallel branch Ends
- More parallel branch Ends than parallel branch Starts
Relevant error message is displayed for each scenario.

Back Up and Restore


800xA import and export functions are used to back up and restore batch
information.

800xA Import and Export


Batch objects can be imported and exported using the import and export functions
provided by the 800xA System. When exporting batch objects, it is good practice to

3BUA000146-600 A 371
Report Configuration Appendix K Batch Utilities

include all batch objects (procedures, equipment, etc.) in one.afw file. Verify the
batch server is running before using the import and export functions.
Importing Batch Unit objects created in 800xA systems prior to System Version
3.1 Service Pack 1 will generate warnings that the Batch Equipment Rule
Initialization aspect category is missing. Ignore this warning because this aspect
is no longer used in System Version 3.1 Service Pack 1 and newer systems.

Report Configuration
The print procedure aspect creates reports on the development procedure, approved
procedure, and procedure version x.x aspects of the exception, recipe, unit, and
operation procedures. This aspect is one of the default aspects of all exception,
recipe, unit, and operation procedures. However, this aspect can be added to any
other object as desired.
The initial contents of the Print Procedure window (Figure 102) are dependent on
how it opened. If the Print Procedure window was opened by selecting a print
procedure aspect, the Batch Procedure Selection area will be blank. If the Print
Procedure window was opened from an exception, recipe, unit, or operation
procedure, all the development procedure, approved procedure, and procedure
version x.x aspects will be listed. If the Print Procedure window was opened from a

372 3BUA000146-600 A
Appendix K Batch Utilities Configure a Report

development procedure, approved procedure, and procedure version x.x aspect, only
that aspect will be listed.

Figure 102. Print Procedure Window

Configure a Report
To configure a report:
1. Open the Print Report window by:
Right clicking an exception, recipe, unit, or operation that contains a print
procedure aspect and selecting Print
- or -
Right clicking a development procedure, approved procedure, or procedure
version x.x aspect and selecting Print
- or -
Selecting the print procedure aspect.
2. Select the contents of the report by enabling the desired options in the Report
Options and Procedure Sections area of the window.

3BUA000146-600 A 373
Report Output Appendix K Batch Utilities

3. Edit the Batch Procedure Selection area to contain a list of the procedure
aspects from which this report will gather information using the Delete and
Add (Figure 103) buttons.

Figure 103. Example Add Procedure Aspect To Print Window

4. If desired, click Save to save the report content option settings.

Report Output
Click Print to generate a hard copy of the report. Click View to preview the report
in the Print Preview window (Figure 104).
The printer must be properly configured before a batch configuration report can
be viewed.

374 3BUA000146-600 A
Appendix K Batch Utilities Batch Toolbar

Figure 104. Print Preview of the Report

Batch Toolbar
Batch Management provides a Toolbar that contains buttons for the Batch
Overview, Batch History Overview, and Equipment Overview dialog boxes.
By default, an Aspect of each of these resides in Library Structure/Batch
Management/Overviews. However, this structure may not be accessible by some of
the users who need access to these windows. Enabling this toolbar in the appropriate
workplace could eliminate this problem.
To enable the batch toolbar:
1. Select Workplace Structure\Web System Workplace, System
Workplace\workplace_name Workplace, Plant Workplace\Application Bar
where workplace_name is the name of the workplace receiving the toolbar.
2. Enable the Batch Toolbar option and click Apply on the Tool Collections tab.

3BUA000146-600 A 375
Batch Phase and Unit Maintenance Tool Appendix K Batch Utilities

Batch Phase and Unit Maintenance Tool


Systems using previous versions of Batch Management that did not utilize the
Process Graphics functionality will be upgraded with new control module type
aspects. Adding the ABB Batch Management Graphics Extension system extension
adds new Aspects to the following Batch Management supplied control module
types. These new aspects are also added to user-created control module types
(copied from the provided libraries) provided they are accessible (not in a locked or
released library):
• Batch Phase Control Module Type. New aspects added are:
– Display Element Tag (Category type Graphic Element PG2).
– Phase Status Display Element (Category type Graphic Element PG2).
– MainFaceplate (Category type Faceplate PG2).
– MainFaceplateAlt (Category type Faceplate PG2).
– Parameters (Category type Faceplate Element PG2).
• Batch Unit Control Module Type. New aspects added are:
– Unit Status Display Element (Category type Graphic Element PG2).
– MainFaceplate (Category type Faceplate PG2).
– MainFaceplateAlt (Category type Faceplate PG2).
– Attributes (Category type Faceplate Element PG2).
• Shared Batch Equipment Module Control Module Type. New aspects added
are:
– SEM Status Display Element (Category type Graphic Element PG2).
– MainFaceplate (Category type Faceplate PG2).
– MainFaceplateAlt (Category type Faceplate PG2).
– Attributes (Category type Faceplate Element PG2).
If the aspects are not added because the library is Closed or Released or an error
occurred during the loading of the extension, these aspects can be added manually

376 3BUA000146-600 A
Appendix K Batch Utilities Batch Phase and Unit Maintenance Tool

using the Batch Phase and Unit Maintenance tool (Figure 105).

Figure 105. Batch Phase and Unit Maintenance Tool

To manually update the batch phase, batch unit, and shared batch equipment module
types to include new aspects created for this release:
1. Verify the library (containing these control module types) or control module
type being updated is not in a state of Closed or Released (locked).
2. Navigate to ABB Start Menu-> ABB Industrial IT 800xA-> Production
Management -> ABB Batch Phase and Unit Maintenance.
3. Select the library or control module type being updated in the Batch Phase and
Unit Maintenance window and click Add PG2 Aspects.
Messages detailing the progress of the update process are listed in the right pane of
the window and in the PhaseAndUnitMaintenanceLog accessed by clicking View
Log.

3BUA000146-600 A 377
Batch Search Utility Appendix K Batch Utilities

Batch Search Utility


The Batch Search Utility provides the ability to search expressions in Batch
Procedures for a function name or a keyword.
Users can specify the types of procedures and elements to include in the search. The
elements contain the expression language codes.
The tool can be accessed through:
• ABB Start Menu->Production Management->ABB Batch Search Utility
• PFC Editor ->Tools -> ABB Batch Search Utility
Figure 106 shows the snapshot of Batch Search Utility. It contains two tabs:
• Setup tab
• Expressions tab

Figure 106. Batch Search Utility - Setup Tab

378 3BUA000146-600 A
Appendix K Batch Utilities Batch Search Utility

Setup Tab
The Batch database stores Procedure GUIDs and not the names of the Procedures.
In order to provide the Procedure names to the user, the utility must maintain a
GUID to the recipe name table.
When the utility is launched, it scans the Aspect directory for all the Batch
Procedures to determine whether the translation table needs to be updated.
If the translation table needs an update, then the utility will be on the Setup tab. On
the same tab, users can click on the Refresh Recipe Names button to update the
recipe names as shown in Figure 106.
Once the utility is up and running, users can manage the changes to the recipe
names. This is performed when a a Procedure Object is added or a new
Development Procedure Aspect is created.
If the recipe names are not updated, then the search functions will not include the
newly added items.

3BUA000146-600 A 379
Batch Search Utility Appendix K Batch Utilities

Expressions Tab
In this tab the search criteria is set and the search is performed. The search results
are displayed on the lower half of the window as shown in Figure 107.

Figure 107. Batch Search Utility - Expressions Tab

There are three options to search:


• Match case: This option is checked when a case sensitive search is performed.
Since Batch Expressions are always case sensitive, this option should normally
be checked.
• Match whole word: This option is checked when users want to search Whole
words only. For example: searching for Init with the Match whole word
option checked would find Init operation, but not Initialize.
• Use Regular expressions: This option is checked to utilize to search using
regular expressions. Table 52 shows a few examples of most commonly used
special characters.

380 3BUA000146-600 A
Appendix K Batch Utilities Batch Search Utility

Table 52. Examples of Special Characters Used in a Regular Expression

Character(s) Meaning Example(s)


. matches any character “a...” finds arke within harken but
nothing within park.
* matches the expression to the left of the "OD*X" finds ODDX and ODX and OX.
asterisk zero or more times. "a[bcd]*g" finds abbg, abg, ag
Note: If “a*” is used by itself, it acts like and abcg.
“^a+” "a.*g" finds abbg, abg, abcg,
aeg and ag.

+ matches the expression to the left of the "OD+X" finds ODDX and ODX but not OX.
plus sign one or more times "a[bcd]+g" finds abbg, abg, and
abcg but not ag nor aeg.
"a.+g" finds abbg, abg, abcg, and
aeg but not ag.
? matches the expression to the left of the "OD?X" finds ODX and OX but not ODDX.
question mark zero or one time "a[bcd]?g" finds abg, acg, and
Note: If “a?” is used by itself, it acts like ag but not abcg.
“^a+”.
[] matches any of the enclosed characters "a[bcd]g" finds abg and acg but not
aag nor abcg.
- matches any of a range of characters "a[b-z]g" finds abg and awg but not
when used within brackets aag nor ag.
^ (caret) matches the expression when it is at the "^ape" finds ape within apes but not
beginning of a string or (when within grapes.
following an open bracket) excludes the "Just[^5-9]" finds Just4 or JustA
remaining characters within the brackets but not Just8.

3BUA000146-600 A 381
Batch Search Utility Appendix K Batch Utilities

Table 52. Examples of Special Characters Used in a Regular Expression

Character(s) Meaning Example(s)


$ matches the expression when it is at the "ick$" finds ick within sick but not
end of a string within sickness.
\ matches the specific character to the "\$" finds $ within #$%**&^.
right of the backslash. This is required "\xx\+" finds xxx+ within
when searching for the following special #%**xxx+&.
characters:

\ the backslash
^ the caret
$ the dollar
{ } the open and close curly bracket
[ ] the open and close square bracket
( ) the open and close parenthesis
. the dot
* the asterisk
+ the plus
? the question mark
| the vertical pipe
< > the smaller and greater signs
- the minus
& the ampersand

The Batch Search Utility allows the users to limit the search based on the Element,
Procedure and Aspect types, like:
Element types:
• Compute Blocks
• Transitions
• Operation Parameters (the expressions for the parameters on Procedure blocks)

382 3BUA000146-600 A
Appendix K Batch Utilities Batch Search Utility

• Messages (the expressions in the Type, Prompt and Label fields of BMA
Message blocks)
• Labels (labels for all blocks)
• Phase Parameters (the expressions for the parameters on Phase blocks)
Procedure types:
• Recipe Procedures
• Unit Procedures
• Operations
• Exception Procedures
Aspect types:
• Approved
• Development
• Version (includes all the versions)

Each Element type and Procedure type that is checked may result in some
overhead while searching. Un-check the items that are not required. This can
result in obtaining quick search results.

3BUA000146-600 A 383
Batch Search Utility Appendix K Batch Utilities

384 3BUA000146-600 A
Appendix L External Historians

Introduction
Batch Management allows data to be stored in external historians.

800xA System
Batch data is sent to the 800xA system. The 800xA system can be used to view
batch data. Refer to the appropriate 800xA system instruction for more information
about the capabilities of the 800xA system.
The number of events saved by the 800xA system is limited and it does not
support archiving or reporting of event data.

Information Management
Batch data can also be sent to and stored in a production data log (PDL) and
message log on the Information Management server. Information Management can
be used for batch to batch analysis, batch reports and batch trending. Refer to the
appropriate Information Management instruction for more information. Batch
report capabilities include:
• Database views for retrieving batch data (refer to Table 53).
• Excel functions for accessing batch data (refer to Table 53).
• Sample Excel report templates using Excel functions.
• Sample Crystal Reports® template using database views.

3BUA000146-600 A 385
Information Management Appendix L External Historians

Table 53. Database Views and Excel Functions

View Name Function Name Description


Batch_AuditEvents ABBGetBatchAuditEvents Return all batch audit events for a
batch (events generated by
operator actions associated with a
batch)
Batch_BatchMgrEvents ABBGetBatchBatchMgrEvents Return all batch manager events for
a batch (events generated by batch
manager)
Batch_CommentEvents ABBGetBatchCommentEvents Return batch audit comment events
(comments entered using block
status dialog) for a batch
Batch_Equipment ABBGetBatchEquipment Return equipment transactions for a
batch
Batch_Events ABBGetBatchEvents Returns all batch audit, batch
manager and batch process events
for a batch
Batch_Header ABBGetBatchHeader Return batch header (basic batch
information)
Batch_Procedures ABBGetBatchProcedures Return list of procedures executed
by a batch
Batch_ProcessEvents ABBGetBatchProcessEvents Return all events generated by
sources external to the batch server
and associated with a batch (does
not include batch audit events)
Batch_SystemEvents ABBGetBatchSystemEvents Return all system events (events
not associated with a batch) for the
time frame that a batch executed
Batch_Trends ABBGetBatchTrends Return continuous data recorded for
a batch

386 3BUA000146-600 A
Appendix L External Historians Batch Management and Custom Arguments

Table 53. Database Views and Excel Functions (Continued)

View Name Function Name Description


Batch_Variables ABBGetBatchVariables Return variables recorded for a
batch
Batch_Vars_MatchedPair ABBGetMatchedPair Return match pairs of variables
recorded for a batch

Rapidly generated Batch Management events sent to the 800xA system are
sometimes given the same timestamp. These events with the same timestamp are
sometimes reported in the wrong sequence in Information Management reports
due to differences in time resolution between Batch Management and
Information Management. The out-of-sequence events are easily found upon
examination of the Information Management reports.

Batch Management and Custom Arguments


Batch Management generates four arguments that must be passed into every batch
report along with any other user-configured arguments. These arguments are
automatically passed to the report when the schedule job BMA is used.
These arguments are:
• CampaignID.
• BatchID.
• LotID.
• ProcedurePath.
These arguments need to be passed to Crystal Reports and Excel reports. Define the
arguments through the Action aspect of the Job Description object (Report
Parameters section) in the following manner:
RptCampaignID = <CampaignID>
RptBatchID = <BatchID>
RptLotID = <LotID>
RptProcedurePath = <ProcedurePath>

3BUA000146-600 A 387
Batch Management and Custom Arguments Appendix L External Historians

where the left-hand side of the assignment represents the report parameter (Excel
cell name for example) as it was defined by the author of the report and the right-
hand side represents the value of the corresponding job argument.

388 3BUA000146-600 A
Appendix M AC 800M/C Controller
(Batch Advanced Templates)

Introduction
The AC 800M/C controller is part of an IndustrialIT control system that
communicates with the Batch Management system through a driver application.
Figure 108 shows a graphical representation of this relationship.

Figure 108. AC 800M/C Controller Connectivity

3BUA000146-600 A 389
Example Controller Configuration Appendix M AC 800M/C Controller (Batch Advanced Templates)

An example controller configuration (using batch advanced template control


modules) follows.

Example Controller Configuration


The AC 800M/C Advanced driver functions as an interface to the Example phases.
This module is contained in the batch library (BatchAdvTemplatesLib) located in
the control builder. The driver communicates with the OPC server part of a
connectivity sever.
A single piece of equipment (ExampleTestEquip) containing three phases, each
containing three parameters, is used in this example. Refer to the following logic.
Batch Equipment ExampleTestEquip
Batch Phases Agitate (float Param1, int Param2,
bool Paramn)
Batch Phases Charge (float Param1, int Param2,
bool Paramn)
Batch Phases Drain (float Param1, int Param2,
bool Paramn)

Custom Library
A custom library that will contain customized control module types should be
created. To create a custom library and application:
1. Create a control network named Example_Network.
2. Create a control project named Example_Project.
3. Create a new library named Custom_Library.
4. Create a new application named Example_Batch_Application.

390 3BUA000146-600 A
Appendix M AC 800M/C Controller (Batch Advanced Templates) Equipment Phases

Equipment Phases
Create three equipment phase types (AttempAt_Drain1, SampleTest_Charge1, and
ExampleTestEquip_Agitate1) containing the parameters listed in Table 54.

Table 54. Phase Parameters

Name Type
Paramn Integer
Param1 Float
Param2 Integer

Equipment
A batch unit type (ExampleTestEquip) must be created. To create and configure a
unit control module:
1. Create a unit type called ExampleTestEquip.
2. Add phase types to the unit type.
3. Create an instance of the ExampleTestEquip unit type and name it
ExampleTestEquip1.

Example Control System Configuration


This topic presents, in outline form, the steps required to configure an AC 800M/C-
based control system for use with Batch Management.
A comprehensive example process, shown in Figure 109, serves as the basis for the
outline that follows:

3BUA000146-600 A 391
Example Control System Configuration Appendix M AC 800M/C Controller (Batch Advanced

1. Use the general process and instrumentation drawings to show how to select
the boundaries of the units and shared equipment.

Figure 109. Batch Operation Equipment Example

2. Use the detailed process and instrumentation drawings to create an I/O list of
OPC datapoints. Add an exit valve for each vessel to the solvent recovery
system. This is needed to empty vessels that are left in an unknown state by
manual operations performed on the equipment and prevent contamination of
batches.

392 3BUA000146-600 A
Appendix M AC 800M/C Controller (Batch Advanced Templates) Example Control System

3. Partition the units and shared equipment between AC 800M/C controllers to


reduce the risk of downtime. Partitioning should reduce the possibility of
downtime due to configuration changes or equipment failure. Example: If any
of these controllers (with the exception of common equipment) were to go
offline, batches of product could still be produced:
– Application1 - Controller 1: Common equipment (raw material shared
equipment).
– Application2 - Controller 2: Feed tank 1, reactor 1 and catch tanks 1 and 2.
– Application3 - Controller 3: Feed tank 2 and reactor 2, catch tanks 3 and 4.
4. Write function logic using Control Builder M.
– Configure the logic with tie-backs to utilize simulation.
– Configure the equipment control including interlock logic.
– Configure the function blocks used to store and display batch data.
5. Test and troubleshoot function block logic manually. (This allows better
confidence if phase logic fails to execute as expected when a phase logic error
exists).
6. Define equipment for the units and shared equipment modules that will be used
for Batch Management and 800xA event coordination.
7. Create process graphics on equipment types. Each graphic is capable of
manually controlling the process equipment of the unit.
– Overview.
– Each unit (feed header, FT1, FT2, R1, R2, CT1, CT2, CT3, CT4).
8. Create equipment for the units and shared equipment modules using Control
Builder M (and the custom library or BatchAdvTemplatesLib library).
– Using Control Builder M, add to the project created in Step 4.
– Create the application library.
– Create the following object types (containing the following units):
Raw_mtrl {Raw material feeder}-RM
Feed_tnk {Feed tank}-FT1, FT2.
React {Reactor}-R1, R2.
Ctch_tnk {Catch tank}- CT1, CT2, CT3, CT4.

3BUA000146-600 A 393
Example Control System Configuration Appendix M AC 800M/C Controller (Batch Advanced

9. Raw material feeder header can only add one raw material at a time.
10. Using Control Builder M, open the project created in Step 4 in offline mode.
11. Open the Object Type Structure in the 800xA plant explorer workplace.
12. Feed tanks. Phases.
– Initialize. No parameters. Check the feed tank is empty at the start. If the
tank is not empty, automatically empty the tank to solvent recovery.
– Add raw material. This phase uses devices in the raw material feed header
to transfer material into the tank. The recipe must acquire the header
before running this phase.
– parameters: Raw materials numbers (float).
– Target quantity (float).
– Mix.Parameters: Mix Time (float, sec).
– Abort. Discharge to solvent recovery.
13. Mix feeder headers are exclusive use shared equipment and can only empty one
feed tank into one reactor at a time.
– Equipment module running. Opens requested valves. Closes valves when
source feed tank is empty.
14. Reactors. Phases:
– Initialize. No parameters. Check the reactor tank is empty at the start. If
the tank is not empty, automatically empty the tank to solvent recovery
(complete before allowing material to transfer in).
– Charge. This phase uses devices in the specified mix feeder header to
transfer material from the specified feed tank to the reactor. The recipe
must acquire the header before running this phase.parameters: Feed tank
(float).
– Mix. parameters: MixTime. Turns mixer on, waits MixTime, and turns
mixer off.
– Heat and rest.parameters: TemperatureSP (float);
Duration (float, sec); High pressure trip (float).

394 3BUA000146-600 A
Appendix M AC 800M/C Controller (Batch Advanced Templates) Example Control System

– Abort. Close all mix feeder valves. Discharge to solvent recovery.


15. Product feeder is an exclusive use shared equipment and can only empty into
one catch tank at a time.
– Equipment module running. Opens target destination valve and registered
source valve until the reactor is empty. Sets XferComplete parameter for
requesting phase.
16. Catch tanks. Phases.
– Initialize. No parameters. Check if the feed tank is empty at the start. If the
tank is not empty, automatically empty the tank to solvent recovery (This
is useful for demo, but would not be in a product recipe since the catch
tank can hold multiple batches of product.)
– Charge. This phase uses devices in the product feeder header to transfer
material from the specified reactor to the catch tank. The recipe must
acquire the header before running the phase.parameters: Reactor (float).
– Discharge material. No parameters.
– Mix.parameters: Mix Time (float, sec).
– Abort. Discharge to solvent recovery.
17. Using Control Builder M, download applications to the AC 800M/C controller.
18. Test and troubleshoot individual phases using the Control Builder M faceplates
to execute phases. Use Control Builder M to troubleshoot phase logic.
19. All phases in the entire system are in the library regardless of the unit. If phases
have the same name and parameters for different units, the user has the option
of adding the phase to the unit, adding the phase to the unit and giving the
phase a new alias by specifying a new name when the phase is added to the unit
type in the library, or just using a special naming convention for the phases.
20. Define the unit attributes if any. Unit attributes are accessible from Batch
Management and can be used to qualify equipment selection for a particular
batch (based on capacity or other unit characteristics).
21. Using Batch Management, create procedure function charts (PFCs).
– Since in the example the process flow is linear, the procedural elements
could represent unit procedures on the batch recipe.

3BUA000146-600 A 395
Control System Process Appendix M AC 800M/C Controller (Batch Advanced Templates)

– Each equipment ID used in the batch should be assigned its own unit
procedure.
– Dynamic unit selection (flexible batch processing) is desirable. Check the
unit for acquired status. Acquire the first available unit.
– Check available capacity of catch tanks before transferring material in the
PFC. Do not use the initialize catch tank phase in the catch tank unit
procedure when performing this check in the PFC.
Collect tag key data.
Amount of each raw material used.
Amount in feed tank (transferred to reactor).
Amount in reactor (transferred to catch tank).
Final catch tank level (after transfer from reactor).
– Collect process data for the temperature profile of the reactor during the
heat and rest phase.
Numeric logs must be configured in the Information Management for the
temperature tag before running the first batch.
22. Run the demo by scheduling a Batch that uses the Batch recipe created
previously.
23. Create a Batch report template on an Excel spreadsheet in the 800xA system
that includes a graph of the temperature profile. If the Information
Management is being used, create a batch report to collect the information or
use the example batch report template provided with Information Management.

Control System Process


This topic provides information about the advanced control modules required for
automating the units in a flexible batch process controlled in an Industrial IT AC
800M/C control system. The following tables and illustrations show these items:
• Boundaries for each unit and shared equipment module.
• Description of the resources within each unit or shared equipment module.
• Object name for each shared equipment or unit module.
Before beginning to assign unit and shared equipment names and defining the
advanced control module blocks, make certain the following planning tasks are

396 3BUA000146-600 A
Appendix M AC 800M/C Controller (Batch Advanced Templates) Segmenting the Process

completed using the example in Segmenting the Process on page 397 as a guideline.
• Divide the process resources into units and shared equipment.
• Each unit or shared equipment must be configured in the same AC 800M/C
controller.
• Select a meaningful equipment name for each unit and shared equipment.
module.

Segmenting the Process


Segmenting the process uses a simple process diagram as a model to illustrate
segmenting the flexible batch process. Figure 110 contains a description of the
symbols used in Figure 109 through Figure 122.

Figure 110. Legend

The diagram, Figure 109, adds the object name and OPC datapoints to each process
device. The following topics contain illustrations and configuration tables for each
unit and shared equipment type.

3BUA000146-600 A 397
Raw Material Feeder ConfigurationAppendix M AC 800M/C Controller (Batch Advanced Templates)

Raw Material Feeder Configuration

Figure 111. Raw Material Feeder

Table 55. Raw Material Feeder (Shared Equipment Module Type)

Description Object Name Tag type/Block Type Assignment


Equipment RM Equipment None
Flow indicator RM_FI01 Analog RM
Flow controller RM_FIC01 Station RM
Flow totalizer RM_TOT01 Analog RM
Motor control valve RM_MCV01 Multistate drive driver RM
Motor control valve RM_MCV02 Multistate drive driver RM
Motor control valve RM_MCV03 Multistate drive driver RM
Motor control valve RM_MCV04 Multistate drive driver RM
motor control valve RM_MCV05 Multistate drive driver RM
Motor control valve FT1_MCV01 Multistate drive driver RM
Motor control valve FT2_MCV01 Multistate drive driver RM
Equipment phase AddRawMaterial Batch advanced control module RM

398 3BUA000146-600 A
Appendix M AC 800M/C Controller (Batch Advanced Templates) Feed Tank 1 Configuration

Feed Tank 1 Configuration

Figure 112. Feed Tank 1

Table 56. Feed Tank 1 (Unit Type)

Description Object Name Tag type/Block Type Assignment


Unit FT1 Equipment None
Level indicator FT1_LI01 Analog FT1
Agitator FT1_A01 Remote motor control block FT1
Equipment phase Initialize Batch advanced control module FT1
Equipment phase AddRawMaterial Batch advanced control module FT1
Equipment phase Mix Batch advanced control module FT1
Equipment phase Abort Batch advanced control module FT1

3BUA000146-600 A 399
Feed Tank 2 Configuration Appendix M AC 800M/C Controller (Batch Advanced Templates)

Feed Tank 2 Configuration

Figure 113. Feed Tank 2

Table 57. Feed Tank 2 (Unit Type)

Description Object Name Tag type/Block Type Assignment


Unit FT2 Equipment None
Level indicator FT2_LI01 Analog FT2
Agitator FT2_A01 Remote motor control block FT2
Equipment phase Initialize Batch advanced control module FT2
Equipment phase AddRawMaterial Batch advanced control module FT2
Equipment phase Mix Batch advanced control module FT2
Equipment phase Abort Batch advanced control module FT2

400 3BUA000146-600 A
Appendix M AC 800M/C Controller (Batch Advanced Templates) Reactor 1 Configuration

Reactor 1 Configuration

Figure 114. Reactor 1

Table 58. Reactor 1 (Unit Type)

Description Object Name Tag type/Block Type Assignment


Unit R1 Equipment None
Level indicator R1_LI01 Analog R1
Pressure indicator R1_PI01 Analog R1
Temperature controller R1_TIC01 Station R1
Agitator R1_A01 Remote motor control block R1
Equipment phase Initialize Batch advanced control module R1
Equipment phase Charge Batch advanced control module R1
Equipment phase Mix Batch advanced control module R1
Equipment phase Heat and rest Batch advanced control module R1
Equipment phase Abort Batch advanced control module R1

3BUA000146-600 A 401
Reactor 2 Configuration Appendix M AC 800M/C Controller (Batch Advanced Templates)

Reactor 2 Configuration

Figure 115. Reactor 2

Table 59. Reactor 2 (Unit Type)

Description Object Name Tag type/Block Type Assignment


Unit R2 Equipment None
Level indicator R2_LI01 Analog R2
Pressure indicator R2_PI01 Analog R2
Temperature controller R2_TIC01 Station R2
Agitator R2_A01 Remote motor control block R2
Equipment phase Initialize Batch advanced control module R2
Equipment phase Charge Batch advanced control module R2
Equipment phase Mix Batch advanced control module R2
Equipment phase Heat and rest Batch advanced control module R2
Equipment phase Abort Batch advanced control module R2

402 3BUA000146-600 A
Appendix M AC 800M/C Controller (Batch Advanced Templates) Mix Feeder 1 Configuration

Mix Feeder 1 Configuration

Figure 116. Mix Feeder 1

Table 60. Mix Feeder 1 (Shared Equipment Module Type)

Description Object Name Tag type/Block Type Assignment


Equipment MX1 Equipment None
Flow controller FT1_FIC01 Station MX1
Flow totalizer FT1_TOT01 Analog MX1
Motor control valve FT1_MCV02 Multistate device driver MX1
Motor control valve R1_MCV01 Multistate device driver MX1
Motor control valve R2_MCV01 Multistate device driver MX1
Pump FT1_PM1 Remote motor control block MX1

3BUA000146-600 A 403
Mix Feeder 2 Configuration Appendix M AC 800M/C Controller (Batch Advanced Templates)

Mix Feeder 2 Configuration

Figure 117. Mix Feeder 2

Table 61. Mix Feeder 2 (Shared Equipment Module Type)

Description Object Name Tag type/Block Type Assignment


Equipment MX2 Equipment None
Flow controller FT2_FIC01 Station MX2
Flow totalizer FT2_TOT01 Analog MX2
Motor control valve FT2_MCV02 Multistate device driver MX2
Motor control valve R1_MCV02 Multistate device driver MX2
Motor control valve R2_MCV02 Multistate device driver MX2
Pump FT2_PM1 Remote motor control block MX2

404 3BUA000146-600 A
Appendix M AC 800M/C Controller (Batch Advanced Templates) Product Feeder Configuration

Product Feeder Configuration

Figure 118. Product Feeder

Table 62. Product Feeder (Shared Equipment Module Type)

Description Object Name Tag type/Block Type Assignment


Equipment PF Equipment None
Flow controller R1_FIC01 Station PF
Flow totalizer R1_TOT01 Analog PF
Motor control valve R1_MCV03 Multistate device driver PF
Pump R1_PM1 Remote motor control block PF
Flow controller R2_FIC01 Station PF
Flow totalizer R2_TOT01 Analog PF
Motor control valve R1_MCV03 Multistate device driver PF

3BUA000146-600 A 405
Catch Tank 1 Configuration Appendix M AC 800M/C Controller (Batch Advanced Templates)

Catch Tank 1 Configuration

Figure 119. Catch Tank 1

Table 63. Catch Tank 1 (Unit Type)

Description Object Name Tag type/Block Type Assignment


Unit CT1 Equipment None
Level indicator CT1_LI01 Analog CT1
Agitator CT1_A01 Remote motor control block CT1
Equipment phase Initialize Batch advanced control module CT1
Equipment phase Charge Batch advanced control module CT1
Equipment phase Discharge Batch advanced control module CT1
Equipment phase Mix Batch advanced control module CT1
Equipment phase Abort Batch advanced control module CT1

406 3BUA000146-600 A
Appendix M AC 800M/C Controller (Batch Advanced Templates) Catch Tank 2 Configuration

Catch Tank 2 Configuration

Figure 120. Catch Tank 2

Table 64. Catch Tank 2 (Unit Type)

Description Object Name Tag type/Block Type Assignment


Unit CT2 Equipment None
Level indicator CT2_LI01 Analog CT2
Agitator CT2_A01 Remote motor control block CT2
Equipment phase Initialize Batch advanced control module CT2
Equipment phase Charge Batch advanced control module CT2
Equipment phase Discharge Batch advanced control module CT2
Equipment phase Mix Batch advanced control module CT2
Equipment phase Abort Batch advanced control module CT2

3BUA000146-600 A 407
Catch Tank 3 Configuration Appendix M AC 800M/C Controller (Batch Advanced Templates)

Catch Tank 3 Configuration

Figure 121. Catch Tank 3

Table 65. Catch Tank 3 (Unit Type)

Description Object Name Tag type/Block Type Assignment


Unit CT3 Equipment None
Level indicator CT3_LI01 Analog CT3
Agitator CT3_A01 Remote motor control block CT3
Equipment phase Initialize Batch advanced control module CT3
Equipment phase Charge Batch advanced control module CT3
Equipment phase Discharge Batch advanced control module CT3
Equipment phase Mix Batch advanced control module CT3
Equipment phase Abort Batch advanced control module CT3

408 3BUA000146-600 A
Appendix M AC 800M/C Controller (Batch Advanced Templates) Catch Tank 4 Configuration

Catch Tank 4 Configuration

Figure 122. Catch Tank 4

Table 66. Catch Tank 3 (Unit Type)

Description Object Name Tag type/Block Type Assignment


Unit CT4 Equipment None
Level indicator CT4_LI01 Analog CT4
Agitator CT4_A01 Remote motor control block CT4
Equipment phase Initialize Batch advanced control module CT4
Equipment phase Charge Batch advanced control module CT4
Equipment phase Discharge Batch advanced control module CT4
Equipment phase Mix Batch advanced control module CT4
Equipment phase Abort Batch advanced control module CT4

3BUA000146-600 A 409
Synchronization of Equipment Attribute Changes Appendix M AC 800M/C Controller (Batch

Synchronization of Equipment Attribute Changes


Batch Management has been updated to utilize the standard System 800xA
Consistency Check Tool to correct the synchronization problems related to
equipment attribute changes.
The following procedure is to update the changes made to the equipment attributes
of an equipment type (Batch Equipment Aspect in the Object Type Structure) in the
corresponding control module instance in the Control Builder.
1. Click Launch Consistency Check Tool.
2. Specify the necessary information and click Check.
3. Resolve any repairable errors (Yes in the repairable column) by right-clicking
the error and selecting Repair Aspect.
4. Read the tooltip on non-repairable errors and perform the consistency check on
the specified Object. If the Object is an instance, perform the consistency check
on the application or control project containing the instance.
5. Repeat Step 3 and Step 4 until no consistency errors are returned.
Refer to the System 800xA System Configuration Instruction (3BDS011222R*) for
detailed information about consistency checking.

410 3BUA000146-600 A
Appendix N AC 800M/C Controller
(EPT Control Modules)

Introduction
The AC 800M/C controller is part of an Industrial IT control system that
communicates with the Batch Management system through a driver application.
Figure 123 shows a graphical representation of this relationship.

Figure 123. AC 800M/C Controller Connectivity

3BUA000146-600 A 411
Example Controller Configuration Appendix N AC 800M/C Controller (EPT Control Modules)

The AC 800M/C controller is configured in the same manner. An example controller


configuration (using EPT control modules) follows.

Example Controller Configuration


The Example driver functions as an interface to the Example phases. This module is
contained in the batch library (BatchLib) located in the control builder. The driver
communicates with the OPC server part of a connectivity or aspect directory sever.
A single piece of equipment (ExampleTestEquip) containing three phases, each
containing three parameters, is used in this example. Refer to the following logic.
Batch Equipment ExampleTestEquip
Batch Phases Agitate (float lRecpar1, int Recpar2,
bool Recparn)
Batch Phases Charge (float lRecpar1, int Recpar2,
bool Recparn)
Batch Phases Drain (float lRecpar1, int Recpar2,
bool Recparn)

Equipment Phases
Three equipment phases (AttempAt_Drain, SampleTest_Charge, and
ExampleTestEquip_Agitate) must be created.

AttemptAt_Drain
To configure the AttempAt_Drain equipment phase:
1. Using Control Builder M, create an equipment phase (AttemptAt_Drain) that
uses the following parameters:
– RecParn (integer).
– RecPar1 (float).
– RecPar2 (integer).
2. Using the mirror function of Control Builder M to copy the phase into the
800xA Control Structure.

412 3BUA000146-600 A
Appendix N AC 800M/C Controller (EPT Control Modules) Recipe Phases

SampleTest_Charge
To configure the SampleTest_Charge equipment phase:
1. Using Control Builder M, create an equipment phase (SampleTest_Charge)
that uses the following parameters:
– RecParn (integer).
– RecPar1 (float).
– RecPar2 (integer).
2. Using the mirror function of Control Builder M to copy the phase into the
Process Portal control structure.

ExampleTestEquip_Agitate
To configure the ExampleTestEquip_Agitate equipment phase:
1. Using Control Builder M, create an equipment phase
(ExampleTestEquip_Agitate) that uses the following parameters:
– RecParn (integer).
– RecPar1 (float).
– RecPar2 (integer).
2. Using the mirror function of Control Builder M to copy the phase into the
800xA Control Structure.
User configured error condition text should be written to the Seq.Stringinfo
equipment phase property. Text entered in other error datapoints (Error, Status,
etc.) is not read by Batch Management.

Recipe Phases
Three recipe phases (Agitate, Change, and Drain) must be created.

Agitate
To create and configure the Agitate recipe phase:
1. Create a new recipe phase and name it Agitate.
2. Click the insert a new phase parameter button.

3BUA000146-600 A 413
Recipe Phases Appendix N AC 800M/C Controller (EPT Control Modules)

3. Create three parameters using the data in Table 67. Refer to Section 5,
Equipment Configuration (EPT Control Modules) for more information.

Table 67. Agitate Phase Parameters

Parameter Type
RecPar1 Float
RecPar2 Integer
RecPar3 Integer

4. Click the save button.

Charge
To create and configure the Charge recipe phase:
1. Create a new recipe phase and name it Charge.
2. Click the insert a new phase parameter button.
3. Create three parameters using the data in Table 68. Refer to Section 5,
Equipment Configuration (EPT Control Modules) for more information.

Table 68. Charge Phase Parameters

Parameter Type
RecPar1 Float
RecPar2 Integer
RecParn Integer

4. Click the save button.

Drain
To create and configure the Drain recipe phase:
1. Create a new recipe phase and name it Drain.

414 3BUA000146-600 A
Appendix N AC 800M/C Controller (EPT Control Modules) Equipment

2. Click the insert a new phase parameter button.


3. Create three parameters using the data in Table 69. Refer to Section 5,
Equipment Configuration (EPT Control Modules) for more information.

Table 69. Drain Phase Parameters

Parameter Type
RecPar1 Float
RecPar2 Integer
RecParn Integer

4. Click the save button.

Equipment
A piece of batch equipment (ExampleTestEquip) must be created. To create and
configure the ExampleTestEquip batch equipment:
1. Create a new batch equipment object and name it ExampleTestEquip.
2. Add a batch equipment aspect to the object.
3. Select AC 800M/C in the Controller Type field.
4. Click the insert a new equipment phase button.
5. Select the Agitate recipe phase in the Phase to Insert dialog box.
6. Click OK.
7. Select ExampleTestEquip_Agitate in the Control Module Path for EPT field.
8. Select the data structure that contains the RecPar1, RecPar2, and RecPar3
equipment phase variable names in the Recipe Parameter Structure field.
9. Click the insert a new equipment phase button.
10. Select the Charge recipe phase in the Phase to Insert dialog box.
11. Click OK.
12. Select SampleTest_Charge in the Control Module Path for EPT field.

3BUA000146-600 A 415
Example Control System Configuration Appendix N AC 800M/C Controller (EPT Control Modules)

13. Select the data structure that contains the RecPar1, RecPar2, and RecParn
equipment phase variable names in the Recipe Parameter Structure field.
14. Click the insert a new equipment phase button.
15. Select the Drain recipe phase in the Phase to Insert dialog box.
16. Click OK.
17. Select AttemptAt_Drain in the Control Module Path for EPT field.
18. Select the data structure that contains the RecPar1, RecPar2, and RecParn
equipment phase variable names in the Recipe Parameter Structure field.
19. Click the save button.

Example Control System Configuration


This topic presents, in outline form, the steps required to configure an AC 800M/C-
based control system for use with Batch Management.
A comprehensive example process, shown in Figure 124, serves as the basis for the
outline that follows:

416 3BUA000146-600 A
Appendix N AC 800M/C Controller (EPT Control Modules) Example Control System Configuration

1. Use the general process and instrumentation drawings to show how to select
the boundaries of the units and SEMs.

Figure 124. Batch Operation Equipment Example

2. Use the detailed process and instrumentation drawings to create an I/O list of
OPC datapoints. Add an exit valve for each vessel to the solvent recovery
system. This is needed to empty vessels that are left in an unknown state by
manual operations performed on the equipment and prevent contamination of
batches.

3BUA000146-600 A 417
Example Control System Configuration Appendix N AC 800M/C Controller (EPT Control Modules)

3. Partition the units and SEM between AC 800M/C controllers to reduce the risk
of downtime. Partitioning should reduce the possibility of downtime due to
configuration changes or equipment failure. Example: If any of these
controllers (with the exception of common equipment) were to go offline,
batches of product could still be produced:
– Application1 - Controller 1: Common equipment (raw material SEM).
– Application2 - Controller 2: Feed tank 1, reactor 1 and catch tanks 1 and 2.
– Application3 - Controller 3: Feed tank 2 and reactor 2, catch tanks 3 and 4.
4. Write function logic using Control Builder M.
– Configure the logic with tie-backs to utilize simulation.
– Configure the equipment control including interlock logic.
– Configure the function blocks used to store and display batch data.
5. Define equipment for the units and SEMs that will be used for Batch
Management and 800xA event coordination.
6. Create process graphics. Each graphic is capable of manually controlling the
process equipment of the unit.
– Overview.
– Each unit (feed header, FT1, FT2, R1, R2, CT1, CT2, CT3, CT4).
7. Download logic to the appropriate AC 800M/C controller.
8. Test and troubleshoot function block logic manually. (This allows better
confidence if phase logic fails to execute as expected when a phase logic error
exists).
9. Write equipment phase programs for the units and SEM using Control Builder
M (and the Batch library).
– Using Control Builder M, add to the project created in Step 4.
– Create the application library.
– Create the following object types (containing the following units):
Raw_mtrl {Raw material feeder}-RM
Feed_tnk {Feed tank}-FT1, FT2.
React {Reactor}-R1, R2.
Ctch_tnk {Catch tank}- CT1, CT2, CT3, CT4.

418 3BUA000146-600 A
Appendix N AC 800M/C Controller (EPT Control Modules) Example Control System Configuration

10. Raw material feeder header can only add one raw material at a time.
Phase types must be created in the 800xA system before creating them in Control
Builder in order to use the 800xA faceplate for the EquipProcedure template
(found in the batch library).
11. Using Control Builder M, open the project created in Step 4 in offline mode.
12. Open the Object Type Structure in the 800xA plant explorer workplace.
13. For each phase type, copy the EquipProcedure Template object to the project
library and rename the object to the desired phase type name (for example,
Mix).
14. Feed tanks. Phases.
– Initialize. No parameters. Check the feed tank is empty at the start. If the
tank is not empty, automatically empty the tank to solvent recovery.
– Add raw material. This phase uses devices in the raw material feed header
to transfer material into the tank. The recipe must acquire the header
before running this phase.parameters: Raw materials numbers (float).
Target quantity (float).
– Mix. Parameters: Mix Time (float, sec).
– Abort. Discharge to solvent recovery.
15. Mix feeder headers are exclusive use SEMs and can only empty one feed tank
into one reactor at a time.
16. Reactors. Phases:
– Initialize. No parameters. Check the feed tank is empty at the start. If the
tank is not empty, automatically empty the tank to solvent recovery
(complete before allowing material to transfer in).
– Charge. This phase uses devices in the specified mix feeder header to
transfer material from the specified feed tank to the reactor. The recipe
must acquire the header before running this phase. parameters: Feed tank
(float).
– Mix_on. No parameters. Turns mixer on and completes.
– Mix_off. No parameters. Turns mixer off and completes.

3BUA000146-600 A 419
Example Control System Configuration Appendix N AC 800M/C Controller (EPT Control Modules)

– Heat and rest.parameters: TemperatureSP (float);


Duration (float, sec); High pressure trip (float).
– Abort. Close all mix feeder valves. Discharge to solvent recovery.
17. Product feeder is an exclusive use SEM and can only empty into one catch tank
at a time.
18. Catch tanks. Phases.
– Initialize. No parameters. Check if the feed tank is empty at the start. If the
tank is not empty, automatically empty the tank to solvent recovery (This
is useful for demo, but would not be in a product recipe since the catch
tank can hold multiple batches of product.)
– Charge. This phase uses devices in the product feeder header to transfer
material from the specified reactor to the catch tank. The recipe must
acquire the header before running the phase. parameters: Reactor (float).
– Discharge material. No parameters.
– Mix. Parameters: Mix Time (float, sec).
– Abort. Discharge to solvent recovery.
19. Using Control Builder M, download application to the AC 800M/C controller.
20. Test and troubleshoot individual phases using the Control Builder M faceplates
to execute phases. Use Control Builder M to troubleshoot phase logic.
21. Edit the Batch Management database.
– Create the phase aspect object.
22. All phases in the entire system are in the list regardless of the unit. If phases
have the same name and parameters for different units, the user has the option
of just entering one phase in Batch Management or using a special naming
convention for the phases.
– Since the phase initialize has the same name and the exact same parameter
names and types, the user can define only the phase name in the Batch
Management phase list, and Batch Management recipes will execute
properly.
23. Create the unit/equipment list.

420 3BUA000146-600 A
Appendix N AC 800M/C Controller (EPT Control Modules) Example Control System Configuration

– Define the phases from the Batch Management phase list that are available
to execute on the equipment.
– Define the unit attributes if any. Unit attributes are accessible from Batch
Management and can be used to qualify equipment selection for a
particular batch (based on capacity or other unit characteristics).
24. Using Batch Management, create procedure function charts (PFCs).
– Since in the example the process flow is linear, the procedural elements
could represent unit procedures on the batch recipe.
– Each equipment ID used in the batch should be assigned its own unit
procedure.
– Dynamic unit selection (flexible batch processing) is desirable. Check the
unit for acquired status. Acquire the first available unit.
– Check available capacity of catch tanks before transferring material in the
PFC. Do not use the initialize catch tank phase in the catch tank unit
procedure when performing this check in the PFC.
Collect tag key data.
Amount of each raw material used.
Amount in feed tank (transferred to reactor).
Amount in reactor (transferred to catch tank).
Final catch tank level (after transfer from reactor).
– Collect process data for the temperature profile of the reactor during the
heat and rest phase.
Numerous logs must be configured in the Information Management for the
temperature tag before running the first batch.
25. Run the demo by scheduling a batch that uses the batch recipe created
previously.
26. Create a batch report template on an Excel spreadsheet in the 800xA System
that includes a graph of the temperature profile. If the Information
Management is being used, create a batch report to collect the information.

3BUA000146-600 A 421
Control System Process Appendix N AC 800M/C Controller (EPT Control Modules)

Control System Process


This topic provides information about the EPT required for automating the units in a
flexible batch process controlled in an Industrial IT AC 800M/C control system.
The following tables and illustrations show these items:
• Boundaries for each unit and SEM.
• Description of the resources within each unit or SEM.
• EPT object name for each equipment module or unit.
Before beginning to assign unit and SEM names and defining the EPT blocks, make
certain the following planning tasks are completed using the example in Segmenting
the Process on page 422 as a guideline.
• Divide the process resources into units and SEMs.
• Each unit or SEM must be configured in the same AC 800M/C controller.
• Select a meaningful equipment name for each unit and SEM.

Segmenting the Process


Segmenting the process uses a simple process diagram as a model to illustrate
segmenting the flexible batch process. Figure 125 contains a description of the
symbols used in Figure 124 through Figure 137.

Figure 125. Legend

The diagram, Figure 124, adds the object name and OPC datapoints to each process
device. The following topics contain illustrations and configuration tables for each
unit and SEM.

422 3BUA000146-600 A
Appendix N AC 800M/C Controller (EPT Control Modules) Raw Material Feeder Configuration

Raw Material Feeder Configuration

Figure 126. Raw Material Feeder

Table 70. Raw Material Feeder (SEM)

Description Object Name Tag type/Block Type Assignment


Equipment RM Equipment None
Flow indicator RM_FI01 Analog RM
Flow controller RM_FIC01 Station RM
Flow totalizer RM_TOT01 Analog RM
Motor control valve RM_MCV01 Multistate drive driver RM
Motor control valve RM_MCV02 Multistate drive driver RM
Motor control valve RM_MCV03 Multistate drive driver RM
Motor control valve RM_MCV04 Multistate drive driver RM
motor control valve RM_MCV05 Multistate drive driver RM
Motor control valve FT1_MCV01 Multistate drive driver RM
Motor control valve FT2_MCV01 Multistate drive driver RM

3BUA000146-600 A 423
Feed Tank 1 Configuration Appendix N AC 800M/C Controller (EPT Control Modules)

Feed Tank 1 Configuration


Table 71. Feed Tank 1 (Unit)

Description Object Name Tag type/Block Type Assignment


Unit FT1 Equipment None
Level indicator FT1_LI01 Analog FT1
Agitator FT1_A01 Remote motor control block FT1
Equipment phase FT1_P1 EPT FT1

Figure 127. Feed Tank 1

424 3BUA000146-600 A
Appendix N AC 800M/C Controller (EPT Control Modules) Feed Tank 2 Configuration

Feed Tank 2 Configuration

Figure 128. Feed Tank 2

Table 72. Feed Tank 2 (Unit)

Description Object Name Tag type/Block Type Assignment


Unit FT2 Equipment None
Level indicator FT2_LI01 Analog FT2
Agitator FT2_A01 Remote motor control block FT2
Equipment phase FT2_P1 EPT FT2

3BUA000146-600 A 425
Reactor 1 Configuration Appendix N AC 800M/C Controller (EPT Control Modules)

Reactor 1 Configuration

Figure 129. Reactor 1 (Unit)

Table 73. Reactor 1 (Unit)

Description Object Name Tag type/Block Type Assignment


Unit R1 Equipment None
Level indicator R1_LI01 Analog R1
Pressure indicator R1_PI01 Analog R1
Temperature R1_TIC01 Station R1
controller
Agitator R1_A01 Remote motor control block R1
Equipment phase R1_P3 EPT R1

426 3BUA000146-600 A
Appendix N AC 800M/C Controller (EPT Control Modules) Reactor 2 Configuration

Reactor 2 Configuration

Figure 130. Reactor 2 (Unit)

Table 74. Reactor 2 (Unit)

Description Object Name Tag type/Block Type Assignment


Unit R2 Equipment None
Level indicator R2_LI01 Analog R2
Pressure indicator R2_PI01 Analog R2
Temperature R2_TIC01 Station R2
controller
Agitator R2_A01 Remote motor control block R2
Equipment phase R2_P1 EPT R2

3BUA000146-600 A 427
Mix Feeder 1 Configuration Appendix N AC 800M/C Controller (EPT Control Modules)

Mix Feeder 1 Configuration

Figure 131. Mix Feeder 1

Table 75. Mix Feeder 1 (SEM)

Description Object Name Tag type/Block Type Assignment


Equipment MX1 Equipment None
Flow controller FT1_FIC01 Station MX1
Flow totalizer FT1_TOT01 Analog MX1
Motor control valve FT1_MCV02 Multistate device driver MX1
Motor control valve R1_MCV01 Multistate device driver MX1
Motor control valve R2_MCV01 Multistate device driver MX1
Pump FT1_PM1 Remote motor control block MX1

428 3BUA000146-600 A
Appendix N AC 800M/C Controller (EPT Control Modules) Mix Feeder 2 Configuration

Mix Feeder 2 Configuration

Figure 132. Mix Feeder 2

Table 76. Mix Feeder 2 (SEM)

Description Object Name Tag type/Block Type Assignment


Equipment MX2 Equipment None
Flow controller FT2_FIC01 Station MX2
Flow totalizer FT2_TOT01 Analog MX2
Motor control valve FT2_MCV02 Multistate device driver MX2
Motor control valve R1_MCV02 Multistate device driver MX2
Motor control valve R2_MCV02 Multistate device driver MX2
Pump FT2_PM1 Remote motor control block MX2

3BUA000146-600 A 429
Product Feeder Configuration Appendix N AC 800M/C Controller (EPT Control Modules)

Product Feeder Configuration

Figure 133. Product Feeder

Table 77. Product Feeder (SEM)

Description Object Name Tag type/Block Type Assignment


Equipment PF Equipment None
Flow controller R1_FIC01 Station PF
Flow totalizer R1_TOT01 Analog PF
Motor control valve R1_MCV03 Multistate device driver PF
Pump R1_PM1 Remote motor control block PF
Flow controller R2_FIC01 Station PF
Flow totalizer R2_TOT01 Analog PF
Motor control valve R1_MCV03 Multistate device driver PF

430 3BUA000146-600 A
Appendix N AC 800M/C Controller (EPT Control Modules) Catch Tank 1 Configuration

Catch Tank 1 Configuration

Figure 134. Catch Tank 1

Table 78. Catch Tank 1 (Unit)

Description Object Name Tag type/Block Type Assignment


Unit CT1 Equipment None
Level indicator CT1_LI01 Analog CT1
Agitator CT1_A01 Remote motor control block CT1
Equipment phase CT1_P1 EPT CT1

3BUA000146-600 A 431
Catch Tank 2 Configuration Appendix N AC 800M/C Controller (EPT Control Modules)

Catch Tank 2 Configuration

Figure 135. Catch Tank 2

Table 79. Catch Tank 2 (Unit)

Description Object Name Tag type/Block Type Assignment


Unit CT2 Equipment None
Level indicator CT2_LI01 Analog CT2
Agitator CT2_A01 Remote motor control block CT2
Equipment phase CT2_P1 EPT CT2

432 3BUA000146-600 A
Appendix N AC 800M/C Controller (EPT Control Modules) Catch Tank 3 Configuration

Catch Tank 3 Configuration

Figure 136. Catch Tank 3

Table 80. Catch Tank 3 (SEM)

Description Object Name Tag type/Block Type Assignment


Unit CT3 Equipment None
Level indicator CT3_LI01 Analog CT3
Agitator CT3_A01 Remote motor control block CT3
Equipment phase CT3_P1 EPT CT3

3BUA000146-600 A 433
Catch Tank 4 Configuration Appendix N AC 800M/C Controller (EPT Control Modules)

Catch Tank 4 Configuration

Figure 137. Catch Tank 4

Table 81. Catch Tank 3 (SEM)

Description Object Name Tag type/Block Type Assignment


Unit CT4 Equipment None
Level indicator CT4_LI01 Analog CT4
Agitator CT4_A01 Remote motor control block CT4
Equipment phase CT4_P1 EPT CT4

434 3BUA000146-600 A
Appendix O Function Phase Driver

Introduction
Normally, standard driver files are used to map the phase name, commands, states,
and parameters between a recipe phase and an equipment phase in a controller
through an OPC server. It is also possible to create a custom driver called a function
phase driver. This driver can be configured to communicate directly with controllers
that do not have standard driver files in the Batch Management system. The function
phase driver can also be used to facilitate the adapting of non ISA-88 equipment
phases to Batch Management. Figure 138 shows a graphical representation of how a
function phase driver fits into a Batch Management system.
Read Appendix A, Configuring Batch Variables and Expressions before starting
to develop a function phase driver.

3BUA000146-600 A 435
General Procedure Appendix O Function Phase Driver

Figure 138. Third Party Controller Connectivity

General Procedure
The following procedure is an example of how this feature would be used.
1. Create or modify the equipment phase logic to use the required parameters.
2. Create an aspect object linked to OPC data points of the equipment phase in the
OPC server supplied by the controller. Refer to the OPC data source definition
aspect in the 800xA system.
3. Configure the function phase driver to map batch manager states, commands,
and parameters to object properties. Refer to Custom Functions on page 328
for more information.
4. Define the required recipe phases in Batch Management.
5. Define the required equipment. The controller type of the equipment must be
set to OPC (Function Phase Driver) and the name of the function phase driver

436 3BUA000146-600 A
Appendix O Function Phase Driver Configuration Data

must be entered in the Function Phase Driver field on the batch equipment
aspect.
6. Add equipment attributes as needed.
7. Link the equipment phase to the equipment on the batch equipment aspect.
8. Develop the procedure.
The function phase driver is called every second as long as the phase is active. It is
expected that this function will communicate with the controller using standard get
and put functions that manipulate object:properties of the equipment to download
parameters, start execution, and monitor the execution of the phases. Potential error
conditions such as data quality, state changes from the controller, etc. should be
considered when creating a function phase driver.

Configuration Data
Use the data presented in Table 82 to configure a function phase driver. Appendix A,
Configuring Batch Variables and Expressions also contains functions and variables
that can be used to configure a function phase driver.

Table 82. Function Phase Driver Parameters

Parameter Values Description


$1 Batch equipment name Equipment name associated with the procedure phase. The
batch manager passes this to the procedure phase at the
beginning of the function phase driver execution.
$2 Module index Value of module index expression configured for the phase
instance.

3BUA000146-600 A 437
Configuration Data Appendix O Function Phase Driver

Table 82. Function Phase Driver Parameters (Continued)

Parameter Values Description


$3 Phase alias name The batch manager passes this to the function phase driver
at the beginning of the phase execution and on command
$4 Phase name
changes ($1 through $5).
$5 Abort, Hold, Pause,
Reset, Restart,
Resume, Start, or Stop
$6 Batch ID
$7 Lot ID
$8 Campaign ID
$9 Equipment phase ID Object ID of the equipment phase control module.
$10 First parameter name The batch manager passes this to the procedure phase (at
the beginning of the function phase driver execution) in
$11 First parameter value
alphabetical order if the parameter $5 is set to Start.
$12 x parameter name
$13 x parameter value

For command calls (calls with five or more parameters), the function phase driver
will return an empty string (indicates command success) or an error string. For
status calls (calls with four parameters), the function phase driver will return a string
in one of the following formats:
State:actual_state
- or -
State:actual_state
\nError:error_stringr
The function must be written so that it returns one of the following states:
• Aborted.
• Aborting.
• Complete.
• Connecting.

438 3BUA000146-600 A
Appendix O Function Phase Driver Example

• Held.
• Holding.
• Idle.
• Paused.
• Pausing.
• Restarting.
• Running.
• Stopped.
• Stopping.

Example
func PLC Phase Driver1()
// $1 = Unit Name
// $2 = Unit Index
// $3 = Alias Phase Name
// $4 = Phase Name
// $5 = Command (optional): Start, Stop, Abort, etc.
// $6 = BID - Start Only
// $7 = Lot - Start Only
// $8 = Campaign - Start Only
// $9 = Spare - Start Only
// $10 = First parameter name - Start Only
// $11 = First parameter value - Start Only
// $12 = 2nd phase parameter name - Start Only
// $13 = 2nd phase parameter value - Start Only
// $n. = nth phase parameter name - Start Only
// $n+1 = nth phase parameter value - Start Only

// Use cases:
// 1. Start Command
// Args 1 - 9 + optional phase parameters (args 10 - n)
// Phase parameter 1 - Always the equipment phase path
// Returns : "" - Success case
// Error String - Failure case
// 2. All commands other than start
// Args 1 - 5
// Returns: "" - Succes case
// Error String - Failure case

3BUA000146-600 A 439
Example Appendix O Function Phase Driver

// 3. Periodic CallBack - Status call


// Args 1 - 4
// Returns : "State:actual_state" - Success case
// "State:actual_state\nErrorString" -
Failure case
// Where: actual_state is the state name of the phase
serr = "Invalid state for command"
base = $1+"P"+str($2)+" "+$3
EquipmnetPhasePath = bvargets("EquipPhasePath",
"EquipPhasePath"
// Get the current state via OPC
State = get("Root/Control Network/ABL/Applications/ABL/
Control Modules/MashTun1/PHSCook1/PHSCookInfo1:Status.
ProceduralState")

if (narg() <= 4) {
// Periodic callback case
if (State == 0) {
return("State:Idle")
} else if(State == 1) {
return("State:Running")
} else if(State == 2) {
return("State:Complete")
} else if(State == 3) {
return("State:Pausing")
} else if(State == 4) {
return("State:Paused")
} else if(State == 5) {
return("State:Holding")
} else if(State == 6) {
return("State:Held")
} else if(State == 7) {
return("State:Restarting")
} else if(State == 8) {
return("State:Running")
} else if(State == 9) {
return("State:Stopped")
} else if(State == 10) {
return("State:Aborting")
} else if(State == 11) {

440 3BUA000146-600 A
Appendix O Function Phase Driver Example

return("State:Aborted")
}
return("State:Unknown\nget(\"Root/Control Network/ABL/
Applications/ABL/Control Modules/MashTun1/PHSCook1/
PHSCookInfo1:Status.ProceduralState\"did not return
state")
}

// Returns: "" - Success case


// Error String - Failure case
command = arg(5)

if (command == "Start") {
// Start command issued

// Send the phase parameters via OPC


i = 10
while (i <= narg()) {
put("Root/Control Network/ABL/Applications/ABL/
Control Modules/MashTun1/PHSCook1.RecipePar."
+arg(i), arg(i+1))
i = i + 2
}
if (State != 0) {
// Issue Reset first
if (put("Root/Control Network/ABL/Applications/ABL/
Control Modules/MashTun1/PHSCook1/Core:Interaction.
Reset", 1) == 0){
Return "put(\"Root/Control Network/ABL/
Applications/ABL/Control Modules/MashTun1/
PHSCook1/Core:InteractionPar.Reset\") failed"
}
}
// Issuestart command via OPC
if (put("Root/Control Network/ABL/Applications/ABL/
Control Modules/MashTun1/PHSCook1/Core:Start", 1)){
return ""
} else {
return "put(\"Root/Control Network/ABL/
Applications/ABL/Control Modules/MashTun1/

3BUA000146-600 A 441
Example Appendix O Function Phase Driver

PHSCook1/Core:Start\") failed"
}
} else if (command == "Abort") {
// Abort command issued
if (put("Root/Control Network/ABL/Applications/ABL/
Control Modules/MashTun1/PHSCook1/Core:
InteractionPar.Abort", 1)){
return ""
} else {
return "put(\"Root/Control Network/ABL/
Applications/ABL/Control Modules/MashTun1/
PHSCook1/Core:InteractionPar.Abort\") failed"
}
} else if (command == "Hold") {
// Hold command issued
if (put("Root/Control Network/ABL/Applications/ABL/
Control Modules/MashTun1/PHSCook1/Core:
InteractionPar.Hold", 1)){
return ""
} else {
return "put(\"Root/Control Network/ABL/
Applications/ABL/Control Modules/MashTun1/
PHSCook1/Core:InteractionPar.Hold\") failed"
}
} else if (command == "Abort") {
// Abort command issued
if (put("Root/Control Network/ABL/Applications/ABL/
Control Modules/MashTun1/PHSCook1/Core:
InteractionPar.Abort", 1)){
return ""
} else {
return "put(\"Root/Control Network/ABL/
Applications/ABL/Control Modules/MashTun1/
PHSCook1/Core:InteractionPar.Abort\") failed"
}
} else if (command == "Pause") {
// Pause command issued
if (put("Root/Control Network/ABL/Applications/ABL/
Control Modules/MashTun1/PHSCook1/Core:
InteractionPar.Pause", 1)){

442 3BUA000146-600 A
Appendix O Function Phase Driver Example

return ""
} else {
return "put(\"Root/Control Network/ABL/
Applications/ABL/Control Modules/MashTun1/
PHSCook1/Core:InteractionPar.Pause\") failed"
}
} else if (command == "Reset") {
// Abort command issued
if (put("Root/Control Network/ABL/Applications/ABL/
Control Modules/MashTun1/PHSCook1/Core:
InteractionPar.Reset", 1)){
return ""
} else {
return "put(\"Root/Control Network/ABL/
Applications/ABL/Control Modules/MashTun1/
PHSCook1/Core:InteractionPar.Reset\") failed"
}
} else if (command == "Restart") {
// Abort command issued
if (put("Root/Control Network/ABL/Applications/ABL/
Control Modules/MashTun1/PHSCook1/Core:
InteractionPar.Restart", 1)){
return ""
} else {
return "put(\"Root/Control Network/ABL/
Applications/ABL/Control Modules/MashTun1/
PHSCook1/Core:InteractionPar.Restart\") failed"
}
} else if (command == "Resume") {
// Abort command issued
if (put("Root/Control Network/ABL/Applications/ABL/
Control Modules/MashTun1/PHSCook1/Core:
InteractionPar.Resume", 1)){
return ""
} else {
return "put(\"Root/Control Network/ABL/
Applications/ABL/Control Modules/MashTun1/
PHSCook1/Core:InteractionPar.Resume\") failed"
}
} else if (command == "Stop") {

3BUA000146-600 A 443
Example Appendix O Function Phase Driver

// Abort command issued


if (put("Root/Control Network/ABL/Applications/ABL/
Control Modules/MashTun1/PHSCook1/Core:
InteractionPar.Stop", 1)){
return ""
} else {
return "put(\"Root/Control Network/ABL/
Applications/ABL/Control Modules/MashTun1/
PHSCook1/Core:InteractionPar.Stop\") failed"
}
return ""
} else {
return "put(\"Root/Control Network/ABL/
Applications/ABL/Control Modules/MashTun1/
PHSCook1/Core:InteractionPar.Abort\") failed"
}
}
}

444 3BUA000146-600 A
Appendix P Batch Web Services Interface

Introduction
Batch Management provides the means for an external application to send
information to and receive information from the Batch Management system. Include
web references and the function calls described in this section in the external
application using standard Microsoft .NET programming practices. The web service
to use while making web references is machine_name/BatchWebServices/Batch
WebServices.asmx. The two types of function calls that can be used are read and
write. Read function calls acquire real-time data from the batch system. Write
function calls execute limited control over operations in the batch system.
Client applications are responsible for initiating all communications. The batch
system only responds to function calls received from the client application.
External programs that use Batch Web Services to access Batch Management
data are not able to get data unless the default Windows authentication (Kerberos)
is registered with the domain server or disabled on the batch servers. Refer to
Microsoft Technical Article 871179 (http://support.microsoft.com/kb/871179/)
for instructions an disabling (the easier option) or registering Kerberos
authentication.

Specifying Objects
For some Batch Web Service calls, it is necessary to specify an 800xA object entity
as an input parameter. Following three methods are used to specify this:
1. Using a GUID is the safest method because it is always unique. Enclose the
GUID within brackets and enclose that expression within double quotation
marks. An example of a correctly specified GUID input parameter is
"{B2E69738-FB60-4CCC-9518-5ED1C779C5B8}".

3BUA000146-600 A 445
Specifying Objects Appendix P Batch Web Services Interface

2. Object name is also valid as long as the name is unique for the object type of
the object being specified.
3. An object can also be specified using standard Process Portal path syntax. The
following two examples specify an exact path (beginning at the root level) to
the object. Including or excluding the leading backslash has no effect on the
functionality of these path references.
[DIRECT] [Procedure Structure] WebServicesProcedures/AllParmsProc
[DIRECT] [Procedure Structure] /WebServicesProcedures/AllParmsProc
The following two examples specify an exact path (beginning at the root
level) but in any structure. Including or excluding the leading backslash
has no effect on the functionality of these path references.
[DIRECT] WebServicesProcedures/AllParmsProc
[DIRECT] /WebServicesProcedures/AllParmsProc
The following two examples specify an object at or below the specified
path in the specified structure. A leading backslash indicates that the path
must begin at the root level.
[Procedure Structure] WebServicesProcedures/AllParmsProc
[Procedure Structure] /WebServicesProcedures/AllParmsProc
The following two examples specify an object at or below the specified
path in any structure. A leading backslash indicates that the path must
begin at the root level.
WebServicesProcedures/AllParmsProc
/WebServicesProcedures/AllParmsProc
Figure 139 shows the Batch Web Services object model.

446 3BUA000146-600 A
Appendix P Batch Web Services Interface Specifying Objects

Figure 139. Batch Web Services Object Model

3BUA000146-600 A 447
Read Function Calls Appendix P Batch Web Services Interface

Read Function Calls


The supported read function calls are:
• GetActiveBatches.
• GetBatchDetails.
• GetListOfActiveBatches.
• GetProcedureDetails.
• GetProcedures.
• GetTagKeyData.
• GetEquipmentDetails.
• GetEquipmentStatus.
• GetFormulaParameters.
• GetListOfAllBatches.
• GetAllBatches.

GetActiveBatches
GetActiveBatches (string str, out Batch[] activeBatches)

Input
str = Internally used string that should be set to an empty string ("").

Output
activeBatches = Array containing basic batch information from the batches.

Return
A result of OK indicates success while failure is indicated by an error message.

Description
This function call retrieves basic batch information of all batches listed in the Batch
Overview window.
An end time of 12/31/9999 11:59:59 PM (instead of a blank time) is returned
by this function if the batch has not yet completed for any reason.

448 3BUA000146-600 A
Appendix P Batch Web Services Interface GetBatchDetails

Example
string response;
Batch[] activeBatches = null;

BatchWebServices batchWebService = new BatchWebServices();

// set credentials for using IIS Integrated Windows


// Authentication
batchWebService.Credentials =
System.Net.CredentialCache.DefaultCredentials;

response = batchWebService.GetActiveBatches("", out


activeBatches);

if (response.Equals("OK"))
{
foreach (Batch batch in activeBatches)
{
// process batch object
}
}

GetBatchDetails
GetBatchDetails (string batchID, string str, out BatchDetails batchDetails)

Input
batchID = ID of the batch.
str = Internally used string that should be set to an empty string ("").

Output
batchDetails = Batch detail information.

Return
A result of OK indicates success while failure is indicated by an error message.

3BUA000146-600 A 449
GetListOfActiveBatches Appendix P Batch Web Services Interface

Description
This function call retrieves Batch details from any Batch in the Batch Overview and
Batch History Overview windows.
An end time of 12/31/9999 11:59:59 PM (instead of a blank time) is returned
by this function if the batch has not yet completed for any reason.

Example
string response;
BatchDetails batchDetails = null;

BatchWebServices batchWebService = new BatchWebServices();

// set credentials for using IIS Integrated Windows


// Authentication
batchWebService.Credentials =
System.Net.CredentialCache.DefaultCredentials;

response = batchWebService.GetBatchDetails("Brew001", "", out


batchDetails);

if (response.Equals("OK"))
{
// process batch details object
}

GetListOfActiveBatches
GetListOfActiveBatches (string str, out string[] activeBatchIDs)

Input
str = Internally used string that should be set to an empty string ("").

Output
activeBatchIDs = Array containing batch ID information.

450 3BUA000146-600 A
Appendix P Batch Web Services Interface GetProcedureDetails

Return
A result of OK indicates success while failure is indicated by an error message.

Description
This function call retrieves a list of the IDs of the batches listed in the Batch
Overview window.

Example
string response;
string batchIDsList = "";
string[] activeBatchIDs = null;

BatchWebServices batchWebService = new BatchWebServices();

// set credentials for using IIS Integrated Windows


// Authentication
batchWebService.Credentials =
System.Net.CredentialCache.DefaultCredentials;

response = batchWebService.GetListOfActiveBatches("", out


activeBatchIDs);

if (response.Equals("OK"))
{
foreach (string batchID in activeBatchIDs)
{
batchIDsList += batchID + Environment.NewLine;
}
}

GetProcedureDetails
GetProcedureDetails (string procedureSpecifier, string str, out ProcedureDetails
procedureDetails)

Input
procedureSpecifier = Name, GUID, or path of procedure.

3BUA000146-600 A 451
GetProcedures Appendix P Batch Web Services Interface

str = Internally used string that should be set to an empty string ("").

Output
procedureDetails = Procedure detail information.

Return
A result of OK indicates success while failure is indicated by an error message.

Description
This function call retrieves details of the specified approved procedure.

Example
string response;
ProcedureDetails procedureDetails = null;

BatchWebServices batchWebService = new BatchWebServices();

// set credentials for using IIS Integrated Windows


// Authentication
batchWebService.Credentials =
System.Net.CredentialCache.DefaultCredentials;

response = batchWebService.GetProcedureDetails("BrewRecipe",
"", out procedureDetails);

if (response.Equals("OK"))
{
// process procedure details object
}

GetProcedures
GetProcedures (string str, out Procedure[] procedures)

452 3BUA000146-600 A
Appendix P Batch Web Services Interface GetProcedures

Input
str = Internally used string that should be set to an empty string ("").

Output
procedures = Array containing procedure basic information.

Return
A result of OK indicates success while failure is indicated by an error message.

Description
This function call retrieves a list of basic information (name, ID, type, version, and
path) for all the approved procedures in the system.

Example
string response;
Procedure[] procedures = null;

BatchWebServices batchWebService = new BatchWebServices();

// set credentials for using IIS Integrated Windows


// Authentication
batchWebService.Credentials =
System.Net.CredentialCache.DefaultCredentials;

response = batchWebService.GetProcedures("", out procedures);

if (response.Equals("OK"))
{
foreach (Procedure procedure in procedures)
{
// process procedure object
}
}

3BUA000146-600 A 453
GetTagKeyData Appendix P Batch Web Services Interface

GetTagKeyData
GetTagKeyData (string tagKey, string batchID, string str, out TagKeyData[]
tagKeyData)

Input
tagKey = Name of the tag key item. All tag key data for the specified batch is
retrieved when tagKey is set to "" (empty string).
batchID = ID of the batch.
str = Internally used string that should be set to an empty string ("").

Output
tagKeyData = Array containing tag key data.

Return
A result of OK indicates success while failure is indicated by an error message.

Description
This function call retrieves tag key (batch) data.

Example
string response;
TagKeyData[] tagKeyData = null;

BatchWebServices batchWebService = new BatchWebServices();

// set credentials for using IIS Integrated Windows


// Authentication
batchWebService.Credentials =
System.Net.CredentialCache.DefaultCredentials;

// get end time of Brew001 batch


response = batchWebService.GetTagKeyData("__BatchEndTime",
"Brew001", "", out tagKeyData);

454 3BUA000146-600 A
Appendix P Batch Web Services Interface GetEquipmentDetails

if (response.Equals("OK"))
{
DateTime endTime = DateTime.Parse( ((TagKeyDataString)
tagKeyData[0]).value);
}

// get all tag key data for Brew001 batch


response = batchWebService.GetTagKeyData("", "Brew001", "",
out tagKeyData);

if (response.Equals("OK"))
{
foreach (TagKeyData tagKeyDataItem in tagKeyData)
{
// process tagKeyDataItem object
}
}

GetEquipmentDetails
GetEquipmentDetails (string equipmentSpecifier, string str, out EquipmentDetails[]
equipmentDetails)

Input
equipmentSpecifier = Name, GUID, or path of equipment. Details for all equipment
are retrieved when equipment is set to "" (empty string).
str = Internally used string that should be set to an empty string ("").

Output
equipmentDetails = Array containing details of the specified equipment.

Return
A result of OK indicates success while failure is indicated by an error message.

3BUA000146-600 A 455
GetEquipmentDetails Appendix P Batch Web Services Interface

Description
This function call retrieves details of the specified equipment. The equipment must
be a batch equipment object.

Example
string response;
EquipmentDetails[] equipmentDetails = null;

BatchWebServices batchWebService = new BatchWebServices();

// set credentials for using IIS Integrated Windows


// Authentication
batchWebService.Credentials =
System.Net.CredentialCache.DefaultCredentials;

// get equipment details for Kettle001


response = batchWebService.GetEquipmentDetails("[Control
Structure]Kettle001", "", out equipmentDetails);

if (response.Equals("OK"))
{
string attrName = equipmentDetails[0].attributes[0],name;
}

// get equipment details for all equipment


response = batchWebService.GetEquipmentDetails ("", "", out
equipmentDetails);

if (response.Equals("OK"))
{
foreach (EquipmentDetails equipmentDetailsItem in
equipmentDetails)
{
// process equipmentDetailsItem object
}
}

456 3BUA000146-600 A
Appendix P Batch Web Services Interface GetEquipmentStatus

GetEquipmentStatus
GetEquipmentStatus (string equipmentSpecifier, string str, out EquipmentStatus[]
equipmentStatus)

Input
equipmentSpecifier = Name, GUID, or path of equipment. Status for all equipment
are retrieved when equipment is set to "" (empty string).
str = Internally used string that should be set to an empty string ("").

Output
equipmentStatus = Array containing details of the specified equipment or all
equipment if no equipment is specified.

Return
A result of OK indicates success while failure is indicated by an error message.

Description
This function call retrieves status of the specified equipment. The equipment must
be a batch equipment object.

Example
string response;
EquipmentStatus[] equipmentStatus = null;

BatchWebServices batchWebService = new BatchWebServices();

// set credentials for using IIS Integrated Windows


// Authentication
batchWebService.Credentials =
System.Net.CredentialCache.DefaultCredentials;

// get equipment status for Kettle001


response = batchWebService.GetEquipmentStatus("[Control
Structure]Kettle001", "", out equipmentStatus);

3BUA000146-600 A 457
GetFormulaParameters Appendix P Batch Web Services Interface

if (response.Equals("OK"))
{
string equipStatus = equipmentStatus[0].status;
}

// get equipment status for all equipment


response = batchWebService.GetEquipmentStatus ("", "", out
equipmentStatus);

if (response.Equals("OK"))
{
foreach (EquipmentStatus equipmentStatusItem in
equipmentStatus)
{
// process equipmentStatusItem object
}
}

GetFormulaParameters
GetFormulaParameters (string spreadsheetIdentifier,string formulaSheet,string
formulaName, "", out Formula[] formulas).

Input
SpreadsheetIdentifier = {ObjectID}{AspectID}.
Note: spreadsheetIdentifier = Identification of the spreadsheet that contains the
formula(s). This can be the {object ID}{Aspect ID} of the File Viewer Aspect that
contains the spreadsheet or the file name of the SimpleParameterManagement Excel
file. While using the file name, the file must exist on any node that makes the
webservice call.
FormulaSheet = Name of the formula sheet.
FormulaName = Name of the formula (if null or empty then all formulas for
specified sheet will be retrieved).

458 3BUA000146-600 A
Appendix P Batch Web Services Interface GetFormulaParameters

Output
formulas = formula(s) (contain parameter names and values).

Return
A result of OK indicates success while failure is indicated by an error message.

Description
This function retrieves all the formula details.

Example
string response;
Formula[] formulas = null;
string ssIdentifier = "{B9F7FFC2-2775-4D9D-AD98-
613A33AF78B5}{CC47765E-8A47-4946-8A2D-785BAF7E5689}";

BatchWebServices batchWebService = new BatchWebServices();

// set credentials for using IIS Integrated Windows


Authentication
batchWebService.Credentials =
System.Net.CredentialCache.DefaultCredentials;

// get all formulas on SimpleBatchDemo sheet of Batch


Spreadsheet Scheduler Demo
response = batchWebService.GetFormulaParameters(ssIdentifier,
"SimpleBatchDemo", null, "", out formulas);

// process formulas
if (response == "OK")
{
foreach (Formula formula in formulas)
{
// process formula.formulaName

for (int i = 0; i < formula.parameterNames.GetLength(0); i++)


{

3BUA000146-600 A 459
GetListOfAllBatches Appendix P Batch Web Services Interface

// process formula.parameterNames[i] and


formula.parameterValues[i]
}
}
}

GetListOfAllBatches
GetListOfAllBatches (string str, out string[] BatchIDs)

Input
str = Internally used string that should be set to an empty string ("").

Output
activeBatchIDs = Array containing batch ID information.

Return
A result of OK indicates success while failure is indicated by an error message.
Description
This function call retrieves a list of the IDs in the Batch Overview and Batch History
Overview windows.

Example
string response;
string batchIDsList = "";
string[] BatchIDs = null;

batchWebService.Credentials =
System.Net.CredentialCache.DefaultCredentials;

response = batchWebService.GetListOfAllBatches("", out


BatchIDs);

if (response.Equals("OK"))

460 3BUA000146-600 A
Appendix P Batch Web Services Interface GetAllBatches

foreach (string batchID in BatchIDs)

batchIDsList += batchID + Environment.NewLine;

GetAllBatches
GetAllBatches (string str, out Batch[] Batches)

Input
str = Internally used string that should be set to an empty string ("").

Output
activeBatches = Array containing basic batch information from the batches.

Return
A result of OK indicates success while failure is indicated by an error message.

Description
This function call retrieves basic Batch information of all Batches in the Batch
Overview and Batch History Overview windows.
An end time of 12/31/9999 11:59:59 PM (instead of a blank time) is returned
by this function if the batch has not yet completed for any reason.
Example
string response;
Batch[] AllBatches = null;

BatchWebServices batchWebService = new BatchWebServices();

3BUA000146-600 A 461
Write Function Calls Appendix P Batch Web Services Interface

// set credentials for using IIS Integrated Windows


// Authentication

batchWebService.Credentials =
System.Net.CredentialCache.DefaultCredentials;
response = batchWebService.GetAllBatches("", out
Batches);

if (response.Equals("OK"))

foreach (Batch batch in Batches)

// process batch object

Write Function Calls


The supported write function calls that perform the requested operation in the batch
system are:
• ChangeBatch.
• ScheduleBatch.
• SetEquipmentAttribute.

ChangeBatch
ChangeBatch (string batchID, string scheduledStatus, DateTime startTime, int
priority, string mode, bool bPropagate, string state, bool bIgnoreParameterErrors,
string[] parameterNames, string[] parameterValues, string str)

Input
batchID = ID of the batch to change.

462 3BUA000146-600 A
Appendix P Batch Web Services Interface ChangeBatch

scheduledStatus = "Schedule", "Delete", "Terminate", or "" (no change).


startTime = Batch start time (DateTime.MinValue for no change). The time can be
specified as being a UTC time, in which case it will be converted to a local time on
the Server.
priority = 1 through 16 (0 for no change).
mode = "Automatic", "SemiAutomatic", "Manual", or "" (no change).
bPropagate = Propagate mode changes to all blocks in the recipe when set to true.
state = "Abort", "Hold", "Pause", "Restart", "Resume", "Stop" or "" (no change).
bIgnoreParameterErrors = Set to true to ignore any parameter errors (out of range
for example).
parameterNames = Names of the parameters to be set. Only the parameters specified
will be changed. If set to null, no parameters will be changed.
parameterValues = Values to set parameters to (parallels parameterNames array).
str = Internally used string that should be set to an empty string ("").

Output
None.

Return
A result of OK indicates success while failure is indicated by an error message.

Description
This function call can change the scheduled status, start time, priority, mode,
propagate mode status, state, and ignore parameter errors status of an active Batch.
Parameters of the batch can also be changed. A batch ID must be specified in this
command.

Example
string response;

BatchWebServices batchWebService = new BatchWebServices();

3BUA000146-600 A 463
ScheduleBatch Appendix P Batch Web Services Interface

// set credentials for using IIS Integrated Windows


// Authentication
batchWebService.Credentials =
System.Net.CredentialCache.DefaultCredentials;

string[] parameterNames = new string[1];


string[] parameterValues = new string[1];
parameterNames[0] = "Temperature";
parameterValues[0] = "90";

response = batchWebService.ChangeBatch (
"Brew300", // batch ID
"", // do not change schedule status
DateTime.MinValue,// do not change start time
7, // change priority
"Manual", // change mode
true, // propagate mode changes
"", // do not change state
false, // do not ignore parameter errors
parameterNames, // change just the Temperature parameter
parameterValues,// change just the Temperature parameter
""
);

if ( !response.Equals("OK") )
// process error

ScheduleBatch
ScheduleBatch (string procedure, ref string batchID, string lotID, string
campaignID, string comment, string scheduledStatus, DateTime startTime, string
estimatedTime, int priority, string mode, string batchCell, bool
bIgnoreParameterErrors, string[] parameterNames, string[] parameterValues, string
str)
Input

464 3BUA000146-600 A
Appendix P Batch Web Services Interface ScheduleBatch

procedure = Name, GUID, or path of procedure.


An error message "Cannot resolve object specifier to an ID. Error =
0x80070057" is displayed while scheduling a procedure that has the special
characters (. { [ / \) in the procedure name. To schedule a procedure successfully,
remove the above mentioned special characters in the procedure name.
batchID = ID of batch ("" is allowed and results in the Auto Generate Batch ID
aspect of the procedure being used to generate a batch ID).
lotID = ID of lot ("" is allowed).
campaignID = ID of campaign ("" is allowed).
comment = Comment text ("" is allowed).
scheduledStatus = "Not Scheduled" or "Scheduled".
startTime = Batch start time (set to DateTime.MinValue to use the current time on
the Batch Server). The time can be specified as being a UTC time, in which case it
will be converted to a local time on the Server.
estimatedTime = Estimated time needed to complete batch in the form
"DD hh:mm:ss" ("" is allowed and results in an estimated time of zero).
priority = 1 through 16.
mode = "Automatic", "SemiAutomatic", or "Manual".
batchCell = Name, GUID, or path of batch cell or "" for the default cell.
bIgnoreParameterErrors = Set to true to ignore any parameter errors (out of range
for example).
parameterNames = Names of the parameters to be set. Only the parameters specified
will be changed. Is set to null, no parameters will be changed.
parameterValues = Values to set parameters to (parallels parameterNames array).
str = Internally used string that should be set to an empty string ("").

Output
batchID = The supplied batch ID or automatically generated batch ID (if batchID is
an empty string).

3BUA000146-600 A 465
ScheduleBatch Appendix P Batch Web Services Interface

Return
A result of OK indicates success while failure is indicated by an error message.

Description
This function call can schedule the execution of a batch. Batch ID and procedure ID
are required in this command but any or all of the additional parameters may also be
used.

Example
string response;

BatchWebServices batchWebService = new BatchWebServices();

// set credentials for using IIS Integrated Windows


// Authentication
batchWebService.Credentials =
System.Net.CredentialCache.DefaultCredentials;

string[] parameterNames = new string[2];


string[] parameterValues = new string[2];
parameterNames[0] = "Volume";
parameterNames[1] = "Temperature";
parameterValues[0] = "65.5";
parameterValues[1] = "92";

response = batchWebService.ScheduleBatch (
"BrewRecipe",
"Brew300",
"ALotID",
"ACampaignID",
"AComment",
"Scheduled",
DateTime.Now,
"1 10:30:00",
6,
"Automatic",
"CellA",
false,

466 3BUA000146-600 A
Appendix P Batch Web Services Interface SetEquipmentAttribute

parameterNames,
parameterValues,
""
);

if ( !response.Equals("OK") )
// process error

SetEquipmentAttribute
SetEquipmentAttribute (string equipmentSpecifier, string attributeName, object
value, string str)

Input
equipmentSpecifier = Name, GUID, or path of equipment.
attributeName = Attribute name.
value = Value to which the attribute will be set.
str = Internally used string that should be set to an empty string ("").

Output
None.

Return
A result of OK indicates success while failure is indicated by an error message.

Description
This function call writes to a writable equipment attribute for a specific piece of
equipment.

Example
string response;

BatchWebServices batchWebService = new BatchWebServices();

3BUA000146-600 A 467
SetEquipmentAttribute Appendix P Batch Web Services Interface

// set credentials for using IIS Integrated Windows


// Authentication
BatchWebService.Credentials =
System.Net.CredentialCache.DefaultCredentials;

// set an integer attribute


response = batchWebService.SetEquipmentAttribute (
"Kettle100",
"Temperature",
(int) 67,
"");
if ( !response.Equals("OK") )
// process error
// set a float attribute
response = batchWebService.SetEquipmentAttribute (
"Kettle100",
"Volume",
(float) 75.5,
"");
if ( !response.Equals("OK") )
// process error
// set a text attribute
response = batchWebService.SetEquipmentAttribute (
"Kettle100",
"UnitLabel",
"TheKettle",
"");
if ( !response.Equals("OK") )
// process error
// set an OPC Datapoint attribute
response = batchWebService.SetEquipmentAttribute (
"Kettle100",
"OPCFloatAttr",
"77.77",
"");
if ( !response.Equals("OK") )
// process error

468 3BUA000146-600 A
Appendix Q MOD 300 Connectivity

Introduction
This appendix describes how to get the Batch Management system to control the
execution of Taylor Control Logic (TCL) sequences. Refer to the 800xA for MOD
300 Configuration (3BUR002417*) and 800xA for MOD 300 Operation
(3BUR002418*) instructions for complete information about the MOD 300 system.
Refer to the AdvaBuild TCL Builder (3BUR002117*), AdvaBuild Control Builder
(3BUR001978*), and Taylor Control Language (3BUR001980*) Users Guides for
more information about AdvaBuild. Batch Management requires the use of
AdvaBuild Versions 3.3 or later.
The following workflow must be followed in order for the execution of TCL
sequences to be controlled by a Batch Management procedure:
• Make the existing (and any new) TCL sequences compliant with ISA-88
specific controller states by using the ISA-88 Phase.tcl template and observing
all the guidelines it contains.
• Import the MOD control structure (except for MOD_PHASE objects) using the
MOD Importer tool.
• Import the MOD_PHASE objects using the MOD 300 TCL Phase Importer
tool.
• Add the MOD phases that will run on each MOD_UNIT and any required unit
attributes to each MOD_UNIT object.
• Add the appropriate parameters (the same parameters used in the TCL
sequence) to the MOD_PHASE objects.
• Enter the name of the file containing the TCL sequence in the SourceName
property of the General Properties aspect of each MOD_PHASE object.

3BUA000146-600 A 469
MOD_UNIT Object Appendix Q MOD 300 Connectivity

• Enter an alias ID number (1 through 9) in the AliasId property of the General


Properties aspect of the MOD_PHASE objects.
All MOD phases associated with the same MOD unit must have a unique
combination of source name and alias ID.

MOD_UNIT Object
The equipment that will execute the TCL sequence must be identified in the Control
Structure as MOD equipment using the MOD_UNIT object type. The procedure for
identifying this object is similar to that of identifying equipment that will execute a
batch phase. Upper case letters should be used in the MOD_UNIT object name
because the use of upper case letters is also recommended within Control Builder.
The object name within Control Builder must be identical to that used in the Control
Structure. Refer to Section 5, Equipment Configuration (EPT Control Modules) for
more information. Right click a unit in the Equipment Overview window and select
Faceplate to access the TCL Unit Detail window for that unit. Use the Unit
Message List aspect to access the Unit Message List window. Use the TCL Message
List aspect to access the TCL Message List window.

MOD_PHASE Object
The MOD_PHASE object is the MOD 300 interface to the Batch Management
system and is equivalent to a Batch Management equipment phase object. This
object controls operation of the TCL sequence specified by the SourceName
property of the General Properties aspect. All the MOD_PHASE objects associated
with one MOD_UNIT must have a unique combination of source name and alias ID.
The procedure for creating and configuring this object is similar to that of creating
and configuring a Batch Management equipment phase object. Upper case letters
should be used in the MOD_PHASE object name because the use of upper case
letters is also recommended within Control Builder. The object name within Control
Builder must be identical to that used in the Control Structure. Refer to Section 5,
Equipment Configuration (EPT Control Modules) for more information.
When configuring parameters in the TCL sequence, the total list of parameters
include the alias ID as the first parameter followed by the user parameters that
match the parameters defined in the equipment phase object.

470 3BUA000146-600 A
Appendix Q MOD 300 Connectivity ISA-88 Phase Template

Use the Faceplate button on the Block Status Overview window to access the TCL
Sequence Detail window. Use the MOD300 TCL Sequence Debug and MOD300
TCL SFC aspects to access the TCL Sequence Debug and TCL SFC windows.

ISA-88 Phase Template


This template contains embedded TCL logic that implements a translation of TCL
modes and states to ISA-88 phase states. This logic utilizes TCL abnormal routines
to implement ISA-88 states as well as TCL step routines for the ISA-88 Running
state. This template also contains guidelines for use and customization that must be
followed.
The ISA-88 Phase.tcl template is located in the following location:
– Windows 32-bit version, drive:\Program Files\ABB Industrial IT.
– Windows 64-bit version, drive:\Program Files(x86)\ABB Industrial IT.
The resulting MOD phase TCL sequences are compiled using TCL Builder just like
any other TCL sequence. The Batch Management system handles the dynamic
loading of TCL sequences into the MOD-300 controller.
Load the TCL sequences (whose alias ID is equal to one) into the MOD controller
before the MOD_PHASE is executed to improve MOD system performance. To
configure the sequences to be automatically loaded when the controller is energized
or restarted:
1. Create a unit array and set the values to zero.
2. Create a sequence for each MOD_UNIT that automatically loads all the
sequences needed by that MOD_UNIT.
3. Set the sequence to be the Auto Start TCL Task for the MOD_UNIT using the
Unit_Master template through Control Builder (during MOD_UNIT
configuration).
The use of a TCL Unit Array also allows multiple instances of the MOD_PHASE
TCL sequence to be running at the same time. The ALIASID parameter in the TCL
PROC statement is set to the value of the AliasId property of the MOD_PHASE
object. Additional user defined TCL PROC parameters are associated with the
phase parameters defined in the Batch Phase aspect of the MOD_PHASE object.

3BUA000146-600 A 471
ISA-88 Phase Template Appendix Q MOD 300 Connectivity

The ISA-88 states are implemented as follows:


• The ISA-88 Idle state represents a condition in which the TCL sequence has
not been loaded, is waiting to be loaded, or has been loaded but has not yet
finished executing the initialize TCL step. It may also represent an abnormal
TCL state/status identified as an error condition.
• The ISA-88 Running state is implemented as one or more TCL steps with a call
to the TCL subroutine named PAUSEPHASE at the end of each step to handle
ISA-88 Pause points.
• The ISA-88 Complete state is implemented as the TCL step routine named
COMPLETE. This routine must be the last TCL step routine in the TCL
sequence.
• The ISA-88 Aborting and Abort states are implemented within the TCL
abnormal subroutine named ABORTPHASE. Custom aborting logic may be
added.
• The ISA-88 Stopping and Stopped states are implemented within the TCL
abnormal subroutine named STOPPHASE. Custom stopping logic may be
added.
• The ISA-88 Pausing, Pause, and Resuming states are implemented within the
TCL abnormal subroutine named PAUSEPHASE. Custom pausing and
resuming logic may be added.
• The ISA-88 Holding, Hold, and Restarting states are implemented within the
TCL abnormal subroutine named HOLDPHASE. Custom holding and
restarting logic may be added.
Guidelines inside the template describe how to modify the TCL code in order to
perform the required actions. This template also implements mandatory TCL code
constructs that are necessary for proper operation within the Batch Management
system. For instance:
• The TCL subroutine CHANGESTATE is used in various locations to update a
value utilized in generating the ISA-88 state. The value is stored in a TCL unit
array and is indexed by the alias ID. Do not alter the location or values passed
to CHANGESTATE.

472 3BUA000146-600 A
Appendix Q MOD 300 Connectivity UserAbn Template

• TCL abnormal states 3, 9, 11, and 13 are reserved for use by the
ABORTPHASE, STOPPHASE, HOLDPHASE, and PAUSEPHASE
subroutines and must not be used for other abnormal subroutines.
• TCL abnormal states 1, 2, 4, and 10 are used by existing system abnormal
conditions and must not be used for other abnormal subroutines. The FAULT
subroutine is provided as a simple routine for handling system abnormal
conditions. It is intended that it be replaced with a more sophisticated routine
for handling these conditions. The replacement routine must terminate with a
TCL Abort, TCL Pause, or otherwise suspend execution of the phase so that the
operator can react to the problem in some manner. To comply with the ISA-88
standard, it may be necessary to configure aborting logic in the routines that
replace the FAULT subroutine. The FAULT subroutines handle MOD 300
specific system errors that can affect the execution of the application. The
appropriate ISA-88 response is to perform the equivalent Abort logic. Batch
Management treats all MOD 300 system abnormal conditions as an ABORT
with Error.

UserAbn Template
This template contains information about and examples of TCL abnormal routines
properly configured to work with ISA-88 states and MOD_PHASE objects. Use this
information when configuring TCL sequences to run under Batch Management
control. The UserAbn.tcl template is located in the following location:
– Windows 32-bit version, drive:\Program Files\ABB Industrial IT
MOD300BatchConnect\TclTemplate.
– Windows 64-bit version, drive:\Program Files(X86)\ABB Industrial IT
MOD300BatchConnect\TclTemplate.
The use of user defined abnormals in MOD_Phases is not recommended.
Applications that require user defined abnormal support should implement them
using traditional MOD_Sequence sequence logic that can then be called by the
MOD_Phase logic. If user defined abnormals must be implemented by
MOD_Phases, edit the phase logic to conform to the guidelines presented in the
UserAbn.tcl file.

3BUA000146-600 A 473
UserAbn Template Appendix Q MOD 300 Connectivity

474 3BUA000146-600 A
Appendix R Harmony Connectivity

Introduction
This appendix describes how to get the Batch Management system to control the
execution of Harmony PHASEX function blocks. Refer to the 800xA for Harmony
Configuration (3BUA000157*) and 800xA for Harmony Operation (3BUA000158*)
instructions for complete information about the Harmony system.
The following workflow must be followed in order for the execution of PHASEX
sequences to be controlled by a Batch Management procedure:
• Export the tag list from Composer into a .mdb formatted file.
• Use the Harmony Tag Importer Exporter tool (not the Import Export
Configuration Wizard) to import the .mdb file into the configuration server.
• Create the Harmony OPC Server Network object in the Control Structure under
the Root, Domain object.
• Use the Harmony Synchronizer aspect to import tags from the configuration
server to the Control Structure.
• Create Harmony equipment (INFI 90 Harmony Batch Unit) objects in the
Equipment Structure.
• Create Harmony phase (INFI 90 Harmony Batch Phase) objects in the
Procedure Structure.

Harmony Equipment Objects


In the Harmony system, equipment is represented by the first PHASEX function
block of a chain of PHASEX blocks. The number of PHASEX blocks in the chain is
the number of sequences that can be operated in parallel on a piece of equipment.
The value of S12 on the lead PHASEX block should be set to the value specified in
the BDM times the maximum number of phases to be run in any sequence for that

3BUA000146-600 A 475
Harmony Phase Objects Appendix R Harmony Connectivity

equipment. In the 800xA system, Harmony equipment is represented by INFI 90


Harmony Batch Unit objects in the Equipment Structure. The Batch Equipment
Aspect of this object allows configuration of the equipment attributes and phases for
the equipment.

Harmony Phase Objects


The phases defined in the BDM code must be represented by INFI 90 Harmony
Batch Phase objects in the Procedure Structure. The phases are added to the
equipment on which it will execute by adding the phases to the Batch Equipment
aspect of the INFI 90 Harmony Batch Unit object.
Harmony phases have a unique naming scheme that must be followed so that
distinct phase logic can be used in similar phases on different pieces of equipment.
This scheme consists of using the phase alias to select the common phases in the
recipe editor when the specific equipment is not to be determined until run time.
The phase name must always begin with the actual phase name that will be sent to
the PHASEX function block and must also match the phase name specified in the
B90 program. The phase name may also contain an @ character followed by the
equipment name. Only the characters to the left of the @ character are sent to the
controller as the phase name.

Example Configuration
The following topics present, in outline form, the steps required to configure a
Harmony control system for use with Batch Management.
A comprehensive example process, shown in Figure 140, serves as the basis for the
outline that follows:

476 3BUA000146-600 A
Appendix R Harmony Connectivity Example Configuration

1. Use the general process and instrumentation drawings to show how to select
the boundaries of the units and SEMs (these boundaries are used for selecting
controllers, I/O cards, and the scope of control for the B90 programs).

Figure 140. Batch Operation Equipment Example

2. Use the detailed process and instrumentation drawings to create an I/O list to
create a list of analog inputs, analog outputs, digital inputs and digital outputs.
Add an exit valve for each vessel to the solvent recovery system. This is needed

3BUA000146-600 A 477
Example Configuration Appendix R Harmony Connectivity

to empty vessels that are left in an unknown state by manual operations


performed on the equipment and prevent contamination of batches.
3. From the I/O list to determine the number and type of I/O cards needed in the
Harmony system per unit or SEM.
4. Partition the units and SEM between Harmony controllers to reduce the risk of
downtime. Partitioning should reduce the possibility of downtime due to
configuration changes or equipment failure. Example: If any of these
controllers (with the exception of common equipment) were to go offline,
batches of product could still be produced:
– Controller 1: Common equipment (raw material SEM).
– Controller 2: Feed tank 1, reactor 1 and catch tanks 1 and 2.
– Controller 3: Feed tank 2 and reactor 2, catch tanks 3 and 4.
5. Write function code logic using Composer™.
– Configure the logic with tie-backs to utilize simulation.
– Configure the equipment control including interlock logic.
– Configure the PHASEX blocks and blocks used to store and display batch
data.
6. Define equipment IDs for the units and SEMs that will be used for Batch
Management and Process Portal event coordination. (Configure at least three
linked PHASEX blocks for the feed tanks and reactors.)
7. Create Process Portal tag database including display control and alarm tags
corresponding to the function code logic for all the equipment. Include the
PHASEX blocks and batch specific display points (if any) in the Process Portal
tag database. In the tag database assign the appropriate equipment ID.
– PHASEX tags require the special naming convention of EquipmentID_P#
where # is a number from one to 32. One is a lead PHASEX and two to 32
are secondary PHASEX blocks. The equipment ID must match the
equipment IDs defined in Batch Management later in the development
cycle.
8. Create process graphics. Each graphic is capable of manually controlling the
process equipment of the unit.
– Overview.

478 3BUA000146-600 A
Appendix R Harmony Connectivity Example Configuration

– Each unit (feed header, FT1, FT2, R1, R2, CT1, CT2, CT3, CT4).
9. Download function code logic to the appropriate Harmony controller.
10. Load the tag database into Process Portal (or configure it manually on the
computer).
11. Load the process graphics on the Process Portal.
12. Test and troubleshoot function code logic manually. (This allows better
confidence if phase logic fails to execute as expected when a phase logic error
exists).
13. Write B90 programs for the units and SEM using the Batch Data Manager
(BDM). BDM is available as an option of the Composer configuration tools.
– Using BDM, create a project.
– Create the class library.
– Create the following classes (containing the following units):
Raw_mtrl {Raw material feeder}-RM
Feed_tnk {Feed tank}-FT1, FT2.
React {Reactor}-R1, R2.
Ctch_tnk {Catch tank}- CT1, CT2, CT3, CT4.
14. Raw material feeder header can only add one raw material at a time.
15. Feed tanks. Phases.
– Initialize. No Parameters. Check the feed tank is empty at the start. If the
tank is not empty, automatically empty the tank to solvent recovery.
– Add raw material. This phase uses devices in the raw material feed header
to transfer material into the tank. The recipe must acquire the header
before running this phase. Parameters: Raw materials numbers (float).
Target quantity (float).
– Mix.parameters: Mix Time (float, sec).
– Abort. Discharge to solvent recovery.
16. Mix feeder headers are exclusive use SEMs and can only empty one feed tank
into one reactor at a time.

3BUA000146-600 A 479
Example Configuration Appendix R Harmony Connectivity

17. Reactors. Phases:


– Initialize. No parameters. Check the feed tank is empty at the start. If the
tank is not empty, automatically empty the tank to solvent recovery
(complete before allowing material to transfer in).
– Charge. This phase uses devices in the specified mix feeder header to
transfer material from the specified feed tank to the reactor. The recipe
must acquire the header before running this phase.parameters: Feed tank
(float).
– Mix_on. No Parameters. Turns mixer on and completes.
– Mix_off. No Parameters. Turns mixer off and completes.
– Heat and rest.parameters: TemperatureSP (float);
Duration (float, sec); High pressure trip (float).
– Abort. Close all mix feeder valves. Discharge to solvent recovery.
18. Product feeder is an exclusive use SEM and can only empty into one catch tank
at a time.
19. Catch tanks. Phases.
– Initialize. No parameters. Check if the feed tank is empty at the start. If the
tank is not empty, automatically empty the tank to solvent recovery (This
is useful for demo, but would not be in a product recipe since the catch
tank can hold multiple batches of product.)
– Charge. This phase uses devices in the product feeder header to transfer
material from the specified reactor to the catch tank. The recipe must
acquire the header before running the phase.parameters: Reactor (float).
– Discharge material. No parameters.
– Mix.parameters: Mix Time (float, sec).
– Abort. Discharge to solvent recovery.
20. Write unit data files assigning the correct block numbers to the names given to
the equipment in the B90 files.
21. Rebuild all for each class (from within BDM) to compile all the B90 and unit
data files.

480 3BUA000146-600 A
Appendix R Harmony Connectivity Example Configuration

22. Using BDM, download B90 and UNT object files to the Harmony controller.
23. Test and troubleshoot individual phases using the Process Portal PHASEX
faceplates to execute phases. Use BDM or Process Portal batch debugger to
troubleshoot phase logic.
24. Edit the Batch Management equipment database.
– Create the phase list.
25. Use the tag importer to create PHASEX tags in the Control Structure. The
resulting object is:
Harmony Network, Harmony OPC Server Network
tag_name_Pn, INFI 90 Harmony PHASEX Read
tag_name_Pn, INFI 90 Harmony PHASEX Read
26. Create the required INFI 90 Harmony Batch Phase objects in the Procedure
Structure.
27. Create the required INFI 90 Harmony Batch Unit objects (in the Equipment
Structure) that use the same name as the lead PHASEX tag but without the _P#.
Saving the unit causes a map of the corresponding PHASEX tag names and
GUIDs to be saved in the XML information used at run time.
While running the Phases in sequence, the value of S12 on the lead PHASEX
block should be set to the value specified in the BDM times the maximum
number of Phases to be run in any sequence for that specific unit.
28. Add the appropriate Harmony batch phases to the Batch Equipment aspects of
the INFI 90 Harmony Batch Unit objects. Any INFI 90 Harmony Batch Phase
objects can be used and the same phase can even be used multiple times within
the same unit or across multiple units.
At least one phase must be added to each unit for it to be recognized by the Batch
Management system.
29. Using Batch Management, create procedure function charts (PFCs) to produce
batches of product.
– Design a series of procedure groups to make the batch recipe easier to
view.

3BUA000146-600 A 481
Harmony Control System Process Appendix R Harmony Connectivity

– Since in the example the process flow is linear, the procedural elements
could represent unit procedures on the batch recipe.
– Each equipment ID used in the batch should be assigned its own unit
procedure.
– Dynamic unit selection (flexible batch processing) is desirable. Check the
unit for acquired status. Acquire the first available unit.
– Check available capacity of catch tanks before transferring material in the
PFC. Do not use the initialize catch tank phase in the catch tank unit
procedure when performing this check in the PFC.
Collect tag key data.
Amount of each raw material used.
Amount in feed tank (transferred to reactor).
Amount in reactor (transferred to catch tank).
Final catch tank level (after transfer from reactor).
– Collect process data for the temperature profile of the reactor during the
heat and rest phase.
30. Run the demo by scheduling a Batch that uses the Batch recipe created
previously.
31. Create a reusable Batch report template on an Excel spreadsheet in Process
Portal that includes a graph of the temperature profile.

Harmony Control System Process


This topic provides information about the PHASEX (phase execution) required for
automating the units in a flexible batch process controlled in a Harmony control
system. The tables and illustrations show these items:
• Boundaries for each unit and SEM.
• Description of the resources within each unit or SEM.
• Tag name for the equipment module or unit.
• Tag name of each resource.
• PHASEX tag name for each equipment module or unit.
• Block type for each tag name.

482 3BUA000146-600 A
Appendix R Harmony Connectivity Segmenting the Process

Before beginning to assign unit and SEM resource tag names and defining the
PHASEX blocks, make certain the following planning tasks are completed using the
example in Segmenting the Process on page 483 as a guideline.
• Divide the process resources into units and SEMs.
• Each unit or SEM must be configured in the same Harmony controller.
• Select a meaningful equipment name for each unit and SEM.
• Gain an understanding of the PHASEX blocks required to control the flexible
batch process.

Segmenting the Process


Segmenting the process uses a simple process diagram as a model to illustrate
segmenting the flexible batch process. Figure 141 contains a description of the
symbols used in Figure 140 through Figure 153.

Figure 141. Legend

The diagram, Figure 140, adds the tag name and module name to each process
device. The following topics contain illustrations and configuration tables for each
unit and SEM.

3BUA000146-600 A 483
Raw Material Feeder Configuration Appendix R Harmony Connectivity

Raw Material Feeder Configuration

Figure 142. Raw Material Feeder

Table 83. Raw Material Feeder (SEM)

Description Tag Name Tag type/Block Type Assignment


Equipment_tag RM Symphony™ equipment tag None
Flow indicator RM_FI01 Harmony analog (FC30) RM
Flow controller RM_FIC01 Harmony station (FC80) RM
Flow totalizer RM_TOT01 Harmony analog (FC30) RM
Motor control valve RM_MCV01 Harmony multistate drive driver (FC129) RM
Motor control valve RM_MCV02 Harmony multistate drive driver (FC129) RM
Motor control valve RM_MCV03 Harmony multistate drive driver (FC129) RM
Motor control valve RM_MCV04 Harmony multistate drive driver (FC129) RM
motor control valve RM_MCV05 Harmony multistate drive driver (FC129) RM
Motor control valve FT1_MCV01 Harmony multistate drive driver (FC129) RM
Motor control valve FT2_MCV01 Harmony multistate drive driver (FC129) RM
Phase tag RM_P1 PHASEX (FC218) RM

484 3BUA000146-600 A
Appendix R Harmony Connectivity Feed Tank 1 Configuration

Feed Tank 1 Configuration

Figure 143. Feed Tank 1

Table 84. Feed Tank 1 (Unit)

Description Tag Name Tag type/Block Type Assignment


unit_tag FT1 Equipment None
Level indicator FT1_LI01 Harmony analog (FC30) FT1
Agitator FT1_A01 Harmony remote motor control block (FC136) FT1
Phase tag FT1_P1 PHASEX (FC218) FT1
Phase tag FT1_P2 PHASEX (FC218) FT1
Phase tag FT1_P3 PHASEX (FC218) FT1

3BUA000146-600 A 485
Feed Tank 2 Configuration Appendix R Harmony Connectivity

Feed Tank 2 Configuration

Figure 144. Feed Tank 2

Table 85. Feed Tank 2 (Unit)

Description Tag Name Tag type/Block Type Assignment


unit_tag FT2 Symphony equipment tag None
Level indicator FT2_LI01 Harmony analog (FC30) FT2
Agitator FT2_A01 Harmony remote motor control block (FC136) FT2
Phase tag FT2_P1 PHASEX (FC218) FT2
Phase tag FT2_P2 PHASEX (FC218) FT2
Phase tag FT2_P3 PHASEX (FC218) FT2

486 3BUA000146-600 A
Appendix R Harmony Connectivity Reactor 1 Configuration

Reactor 1 Configuration

Figure 145. Reactor 1 (Unit)

Table 86. Reactor 1 (Unit)

Description Tag Name Tag type/Block Type Assignment


unit_tag R1 Symphony equipment tag None
Level indicator R1_LI01 Harmony analog (FC30) R1
Pressure indicator R1_PI01 Harmony analog (FC30) R1
Temperature R1_TIC01 Harmony station (FC80) R1
controller
Agitator R1_A01 Harmony remote motor control block (FC136) R1
Phase tag R1_P1 PHASEX (FC218) R1
Phase tag R1_P2 PHASEX (FC218) R1
Phase tag R1_P3 PHASEX (FC218) R1

3BUA000146-600 A 487
Reactor 2 Configuration Appendix R Harmony Connectivity

Reactor 2 Configuration

Figure 146. Reactor 2 (Unit)

Table 87. Reactor 2 (Unit)

Description Tag Name Tag type/Block Type Assignment


Unit_tag R2 Symphony equipment tag None
Level indicator R2_LI01 Harmony analog (FC30) R2
Pressure indicator R2_PI01 Harmony analog (FC30) R2
Temperature R2_TIC01 Harmony station (FC80) R2
controller
Agitator R2_A01 Harmony remote motor control block (FC129) R2
Phase tag R2_P1 PHASEX (FC218) R2
Phase tag R2_P2 PHASEX (FC218) R2
Phase tag R2_P3 PHASEX (FC218) R2

488 3BUA000146-600 A
Appendix R Harmony Connectivity Mix Feeder 1 Configuration

Mix Feeder 1 Configuration

Figure 147. Mix Feeder 1

Table 88. Mix Feeder 1 (SEM)

Description Tag Name Tag type/Block Type Assignment


Equipment tag MX1 Symphony equipment tag None
Flow controller FT1_FIC01 Harmony station (FC80) MX1
Flow totalizer FT1_TOT01 Harmony analog (FC30) MX1
Motor control valve FT1_MCV02 Harmony multistate device driver (FC129) MX1
Motor control valve R1_MCV01 Harmony multistate device driver (FC129) MX1
Motor control valve R2_MCV01 Harmony multistate device driver (FC129) MX1
Pump FT1_PM1 Harmony remote motor control block (FC136) MX1

3BUA000146-600 A 489
Mix Feeder 2 Configuration Appendix R Harmony Connectivity

Mix Feeder 2 Configuration

Figure 148. Mix Feeder 2

Table 89. Mix Feeder 2 (SEM)

Description Tag Name Tag type/Block Type Assignment


Equipment tag MX2 Symphony equipment tag None
Flow controller FT2_FIC01 Harmony station (FC80) MX2
Flow totalizer FT2_TOT01 Harmony analog (FC30) MX2
Motor control valve FT2_MCV02 Harmony multistate device driver (FC129) MX2
Motor control valve R1_MCV02 Harmony multistate device driver (FC129) MX2
Motor control valve R2_MCV02 Harmony multistate device driver (FC129) MX2
Pump FT2_PM1 Harmony remote motor control block (FC136) MX2

490 3BUA000146-600 A
Appendix R Harmony Connectivity Product Feeder Configuration

Product Feeder Configuration

Figure 149. Product Feeder

Table 90. Product Feeder (SEM)

Description Tag Name Tag type/Block Type Assignment


Equipment tag PF Harmony equipment tag None
Flow controller R1_FIC01 Harmony station (FC80) PF
Flow totalizer R1_TOT01 Harmony analog (FC30) PF
Motor control valve R1_MCV03 Harmony multistate device driver (FC129) PF
Pump R1_PM1 Harmony remote motor control block (FC136) PF
Flow controller R2_FIC01 Harmony station (FC80) PF
Flow totalizer R2_TOT01 Harmony analog (FC30) PF
Motor control valve R1_MCV03 Harmony multistate device driver (FC129) PF

3BUA000146-600 A 491
Catch Tank 1 Configuration Appendix R Harmony Connectivity

Catch Tank 1 Configuration

Figure 150. Catch Tank 1

Table 91. Catch Tank 1 (Unit)

Description Tag Name Tag type/Block Type Assignment


Unit tag CT1 Symphony equipment tag None
Level indicator CT1_LI01 Harmony analog (FC30) CT1
Agitator CT1_A01 Harmony remote motor control block (FC136) CT1
Phase tag CT1_P1 PHASEX (FC218) CT1

492 3BUA000146-600 A
Appendix R Harmony Connectivity Catch Tank 2 Configuration

Catch Tank 2 Configuration

Figure 151. Catch Tank 2

Table 92. Catch Tank 2 (Unit)

Description Tag Name Tag type/Block Type Assignment


Unit tag CT2 Symphony equipment tag None
Level indicator CT2_LI01 Harmony analog (FC30) CT2
Agitator CT2_A01 Harmony remote motor control block (FC136) CT2
Phase tag CT2_P1 PHASEX (FC218) CT2

3BUA000146-600 A 493
Catch Tank 3 Configuration Appendix R Harmony Connectivity

Catch Tank 3 Configuration

Figure 152. Catch Tank 3

Table 93. Catch Tank 3 (SEM)

Description Tag Name Tag type/Block Type Assignment


Unit tag CT3 Symphony equipment tag None
Level indicator CT3_LI01 Harmony analog (FC30) CT3
Agitator CT3_A01 Harmony remote motor control block (FC136) CT3
Phase tag CT3_P1 PHASEX (FC218) CT3

494 3BUA000146-600 A
Appendix R Harmony Connectivity Catch Tank 4 Configuration

Catch Tank 4 Configuration

Figure 153. Catch Tank 4

Table 94. Catch Tank 4 (SEM)

Description Tag Name Tag type/Block Type Assignment


Unit tag CT4 Symphony equipment tag None
Level indicator CT4_LI01 Harmony analog (FC30) CT4
Agitator CT4_A01 Harmony remote motor control block (FC136) CT4
Phase tag CT4_P1 PHASEX (FC218) CT4

3BUA000146-600 A 495
Catch Tank 4 Configuration Appendix R Harmony Connectivity

496 3BUA000146-600 A
Appendix S DCI Connectivity

Introduction
This appendix describes how to get the Batch Management system to control the
execution of DCI System Six (CCL) sequences. Refer to the 800xA for DCI
Configuration (3BUA000135*) and 800xA for DCI Operation (3BUA000129*)
instructions for complete information about the DCI system.
The following workflow must be followed in order for the execution of CCL
sequences to be controlled by a Batch Management procedure:
• Import the necessary DCU configurations using the DCI Tag Importer tool.
• Use the Batch Equipment aspect of the MSET objects in the Control Structure
to add the DCI phases that will execute on the MSET objects and any required
equipment attributes to the MSET objects.
• Add the appropriate parameters (the same parameters used in the CCL
sequence) to the PHS objects in the Control Structure.

MSET Object
The equipment that will execute the CCL sequence must be identified in the Control
Structure as DCI equipment using the MSET object type. The procedure for
identifying this object is similar to that of identifying equipment that will execute a
batch phase. Refer to Section 5, Equipment Configuration (EPT Control Modules)
for more information. Imported MSET objects are automatically identified as DCI
equipment.

3BUA000146-600 A 497
DCI_PHS Object Appendix S DCI Connectivity

DCI_PHS Object
The DCI_PHS object is the DCI interface to the Batch Management system and is
equivalent to a Batch Management equipment phase object. The procedure for
creating and configuring this object is similar to that of creating and configuring a
Batch Management equipment phase object. Refer to Section 5, Equipment
Configuration (EPT Control Modules) for more information.

498 3BUA000146-600 A
Appendix T AC 870P/Melody Connectivity

Introduction
This appendix provides an overview on how to get the Batch Management system to
control the execution of the Melody AC 870P controllers.

Integration
The Melody Composer configuration is transferred to the 800xA system by the
Melody Uploader tool. Batch data provides users the ability to import Functional
Units, SFC objects, and associated parameters into the Functional Structure. The
uploader will configure these objects with required Batch Management aspects
(Figure 154).

Figure 154. Batch Melody Integration Workflow

3BUA000146-600 A 499
Integration Appendix T AC 870P/Melody Connectivity

Once the configuration is uploaded to the 800xA system, Batch Management


procedures are then developed in the Procedure Structure (Figure 155).

Figure 155. Batch Procedure

500 3BUA000146-600 A
Appendix T AC 870P/Melody Connectivity Workflow

Workflow
The workflow outlines the application engineering required to import SymBatch
configuration into the 800xA system for use with Batch Management (Figure 156).

Figure 156. Workflow

Composer
Perform the following planning steps for batch processing in Composer:
Refer to the 800xA Engineering, AC 870P/Melody - Batch Process Engineering
(2PAA101156*) instruction for more information on all planning steps for Batch
processing in Composer.
• Assign equipment to basic functions in file “_unit.csv (for SymBatch this will
done in the Basic Function Editor).
• Define Alias names for SFC and Parameter for each basic function (for
SymBatch this will done in the Basic Function Editor).
• Definition of the equipment as functional units of type "batch".

3BUA000146-600 A 501
Melody Uploader Tool Appendix T AC 870P/Melody Connectivity

• Definition of the process points of type "batch" including assignment of a piece


of equipment and of an alias structure name.
• Perform plausibility check of the batch configuration data (optional, if the
batch processing interface is to be documented or tested before
commissioning).
• Create function diagrams for batch process points.
• Commission the function diagrams.
• Generate Batch configuration data.

Melody Uploader Tool


Perform the following planning steps for 800xA for AC 870P / Melody:
Refer to the 800xA for AC870P / Melody Configuration (3BDD011741*)
instruction for more information on all planning steps for 800xA for AC 870P /
Melody.
• The Batch configuration data will be exported. Once this is performed, use the
Melody Uploader tool to:
– Add the Batch Equipment Aspect.
– Add the Batch Phase Aspect. The Batch Phase Aspect can contain Phase
parameters that are configured from the Melody Uploader tool and the
OPC data point will be set.

Batch Management
Perform the following planning steps for Batch Management:
• Design batch procedures to make use of the uploaded equipment and phases.
• The Melody uploader has already configured the Batch Equipment and Batch
Phase Aspects.

502 3BUA000146-600 A
Appendix T AC 870P/Melody Connectivity Manual Workflow

Manual Workflow
The Batch Equipment and Batch Phase aspects can be manually configured if
necessary or desirable.
Any manual changes to the uploaded configuration will be overwritten if the
uploader is subsequently used.

Batch Equipment Aspect


The user can add a Batch Equipment aspect to a Functional Unit object in the
Functional Structure. The Batch Equipment aspect contains a General tab, an
Equipment Attributes tab, and an Equipment Phase tab for each Batch Phase

3BUA000146-600 A 503
Equipment Phase Tab Appendix T AC 870P/Melody Connectivity

assigned to the selected piece of equipment (Figure 157).

Figure 157. Batch Equipment General Tab

Equipment Phase Tab


The Equipment Phase tabs of the Batch Equipment aspect defines the OPC points
that are used by Batch Management for the runtime communications with the
phases. There must be one Equipment Phase tab for each phase supported by the
Functional Unit. An equipment phase can be inserted into the equipment by

504 3BUA000146-600 A
Appendix T AC 870P/Melody Connectivity Equipment Phase Tab

pressing the toolbar button (Figure 158).

Figure 158. Toolbar Button

Figure 159 shows the result of selecting the toolbar button.

Figure 159. Phase to Insert

Selecting an SFC or SFC-Phase object will create a new Equipment Phase tab for
the selected phase. A Batch Phase aspect will be added to this object if necessary.
Manually adding the Batch Phase aspect and configuring the parameters of the
phase before adding the phase to the equipment will allow the equipment phase
to be configured completely in this step. Otherwise, it is required to navigate to
the Batch Phase aspect and configure the phase parameters before proceeding
with the equipment phase configuration.

3BUA000146-600 A 505
Equipment Phase Tab Appendix T AC 870P/Melody Connectivity

The Equipment Phase tab (Figure 160) allows configuration and testing of the
configuration of the phase.

Figure 160. Equipment Phase Tab

SFC Path
It is automatically set to the full path of the phase object in the Functional Structure
when the phase is added to the equipment.

Phase Parameters
The Direction setting of the parameter determines which OPC datapoint must be
defined. The Direction is defined for each parameter in the Batch Phase aspect.
In Parameters require the OPC Datapoint In be defined and if defined the OPC
Datapoint Out is used for readback verification of the parameter before the Start

506 3BUA000146-600 A
Appendix T AC 870P/Melody Connectivity Batch Phase Aspect

command is issued. If the OPC Datapoint Out is not defined for an In parameter the
readback verification of this parameter will be disabled.
Out Parameters have the OPC Datapoint In disabled. The OPC Datapoint Out
defines the point where the output value will be read once the phase reaches the
Complete or Aborted state.
In/Out parameters require the OPC Datapoint In to be defined for writing the
parameter value prior to issuing the Start command. The OPC Datapoint Out is
required for both readback verification before the Start command will be issued and
for reading the output value once the phase reaches the Complete or Aborted state.

Batch Phase Aspect


A Batch Phase aspect is added to an SFC object or SFC-Phase object automatically
when the batch equipment phase is added to a Functional Unit through the Insert

3BUA000146-600 A 507
Batch Phase Aspect Appendix T AC 870P/Melody Connectivity

Equipment Phase function of the batch equipment editor (Figure 161).

Figure 161. Batch Phase Parameters Tab

Parameters Tab
The Duration type parameter supports Melody phases. The Duration data type
behaves similarly to the existing Float and Integer types in that a Default value and
Allowable range defined by Low and High limits must be defined. The Duration
type parameter values may be entered in the form DDD:HH:MM:SS or using a
simple integer number of seconds where the following apply:
• DDD - days.
• HH - hours.
• MM - minutes.
• SS - seconds.

508 3BUA000146-600 A
Appendix T AC 870P/Melody Connectivity Batch Phase Aspect

In/Out Parameter Direction. The direction of a parameter can be configured within


the Batch Phase aspect using the batch phase editor. The In or In/Out direction
identifies a parameter that receives a value from Batch Management when the phase
starts. The Out or In/Out direction identifies a parameter that Batch Management
retrieves the value when the phase reaches COMPLETE or ABORTED state.

3BUA000146-600 A 509
Batch Phase Aspect Appendix T AC 870P/Melody Connectivity

510 3BUA000146-600 A
Appendix U VB Graphics and PG2 Graphics

Introduction
This appendix describes the changes, recommendations, and limitations in Batch
Management due to the new graphics implementation.

Changes and Recommendations

VB Faceplates on Batch AC800M Units and SharedEquipmentModules


• The Auto Attributes Faceplate Element aspect (Attributes tab of the
Extended Faceplate view) is replaced by the Auto Attributes Enhanced
Faceplate Element aspect.

PG2 Faceplates on Batch AC800M Units and SharedEquipemntModules:


• A button for opening the Runtime Attribute View of the Batch Equipment
aspect is added to the Faceplate and Extended Faceplate View.

3BUA000146-600 A 511
Changes and Recommendations Appendix U VB Graphics and PG2 Graphics

• The Attributes tab is removed from the Extended Faceplate view and the Auto
Attributes Enhanced Faceplate Element aspect is deprecated.

Figure 162. Extended Faceplates (PG2 Graphics)

After restoring a System Version 5.0 SP2 or a previous version, the Batch
Advanced Templates VB Graphics system extension must be loaded to
continue using the VB Faceplate aspects on Batch Units and Phases.

512 3BUA000146-600 A
Appendix U VB Graphics and PG2 Graphics Changes and Recommendations

Follow the steps to make the Batch Graphics appear in the Control Structure:
1. Copy the Batch Graphic Element aspect(s) to the required object.
2. Select the copied aspect.
3. Right click and select Details... from the context menu.
4. Click the Aspect Info tab in the Details dialog window.
5. Select the Inheritance enabled check box.
6. Click Apply.

Copy the three Batch graphic element aspects (one at a time) to the object where
they are used.
If the object is an Object Type that is being configured, set the "Inheritance
enabled" flag on each one by using the "Aspect Info" tab on the Details view of
each of the three.

3BUA000146-600 A 513
Changes and Recommendations Appendix U VB Graphics and PG2 Graphics

514 3BUA000146-600 A
Appendix V Simple Batch and Parameter
Management

Introduction
This appendix describes the configuration of the Batch Spreadsheet Scheduler
aspect.
Simple Batch and Parameter Management offers the user an optional way to
schedule batches and manage formula parameter information without the need to
access the Batch Overview. Using Microsoft® Excel, a user is able to add and
schedule Batch procedures. In addition, formula worksheets can be added to the
Excel workbook to manage parameter lists.

Prerequisites
The macro security setting of Microsoft® Excel must be set to Enable all Macros.
This setting should be done for each of the Industrial IT User login where Batch
Spreadsheet Scheduler will be used. Follow the steps to enable the Macro security
feature:

Microsoft Office – Excel 2013


1. Click File and then click Options.
2. Click Trust Center, and then click Trust Center Settings.
3. In the Trust Center, click Macro Settings.
4. Make the selection Enable all macros and then click OK.

3BUA000146-600 A 515
Microsoft Office – Excel 2010 Appendix V Simple Batch and Parameter Management

Microsoft Office – Excel 2010


1. Click File and select Options to open the Excel Options dialog box.
2. Select Trust Center in the left pane of the Excel Options dialog box.
3. Click Trust Center Settings to open the Trust Center.
4. Click Macro Settings in the left pane of the Trust Center.
5. Select Enable all Macros in the right pane of the Trust Center.
6. Click OK.

Procedure to Open and Add Formula Sheets

The below mentioned steps should be performed by the Engineers.

1. Open Plant Explorer Workplace.


2. Select the Library structure.
3. Under the Batch Management object, select the Batch Spreadsheet Scheduler
object.
4. Copy the Batch Spreadsheet Scheduler object and paste it in the desired
structure (e.g. Functional structure). If the spreadsheet is to be used for
scheduling without formula data, then skip the following steps.

516 3BUA000146-600 A
Appendix V Simple Batch and Parameter Management Procedure to Open and Add Formula

The sample of the Functional Structure is shown in Figure 163.

Figure 163. Sample of Functional Structure screen.

5. Click Config View from the context menu of Batch Spreadsheet Scheduler
aspect as shown in the Figure 164.

Figure 164. Sample of Batch Spreadsheet Scheduler Context Menu.

6. In Config View, click Edit.


To add the formula data to the spreadsheet, follow Step 7.

3BUA000146-600 A 517
Procedure to Open and Add Formula Sheets Appendix V Simple Batch and Parameter

7. In Microsoft® Excel, users can either insert a new Worksheet or copy/move the
existing Worksheet. To insert a new Worksheet, click Insert Worksheet.
Replace the default Worksheet name with the respective procedure name.
To use the existing formula sheet present in the other Microsoft® Excel
Workbooks, save the BatchSpreadsheet Scheduler.xlsm file to the local system
from the File Viewer Aspect. Reopen the local copy of BatchSpreadsheet
Scheduler.xlsm and also open the Microsoft® Excel Workbook that contains
the formula sheet. In Microsoft® Excel Workbook, click Move or Copy to
insert the existing formula sheet to the Batch Spreadsheet.
The worksheet name in Microsoft® Excel and procedure name in the Batch system
must be same. The formula sheet names must be unique in a Batch Spreadsheet
Scheduler. If procedure names are not unique, then use cell A1 in the formula sheet
to provide the name of the procedure. If cell A1 is blank, then the worksheet name is
used as the procedure name.
The procedure name entered in cell A1 can be in any format accepted by web
services, which includes procedure GUID and fully qualified procedure name
(including path). One of these formats needs to be used in cell A1 for the following
special cases:
• When formulation is desired for two procedures that differ only by case.
• When formulation is desired for procedures that contain special characters not
allowed by Microsoft® Excel in a worksheet name.
In the formula sheet, the first column contains the formula names and the first row
contains the parameter names. Parameter and formula names are case sensitive.
The engineer can optionally add two new columns to any formula sheet to specify
whether parameter values for each formula can be overridden by the operator at
runtime.
To differentiate from parameter names, these columns must be titled (in Row 1)
exactly as shown in Figure 165.

518 3BUA000146-600 A
Appendix V Simple Batch and Parameter Management Procedure to Open and Add Formula

Figure 165. Sample Formula Sheet.

• When Allow override of procedure parameters is set to Yes, the operator can
override the default value for any parameter that is not part of the formula
definition. If this column does not exist, the default value for all formulae is
Yes (i.e. the operator can override default values of Procedure parameters).
• When Allow override of formula parameters is set to Yes, the operator can
override the formula value for any parameter that is part of the formula
definition. If this column does not exist, the default value for all formulae is No
(i.e. the operator cannot override formula values of formula parameters).
All the parameters defined in the formula sheet are considered as formula
parameters.
Add the required formula data to the sheet. The formulae do not need to include all
of the parameters that are defined for the procedure. The default value will be used
for parameters that are omitted from the formulae. Repeat this step for each
procedure that has formula data.
The maximum number of parameters supported by Batch Spreadsheet is 999.

3BUA000146-600 A 519
Procedure to Open and Add Formula Sheets Appendix V Simple Batch and Parameter

The engineer can optionally add a new row to a formula sheet to specify the access
level required to override each parameter value.
The access level names are case sensitive and are applicable only when the
Spreadsheet is used to schedule the Batches.
To differentiate the formula names, the row must be titled "Access Level" (in
column 1) as shown in the Figure 166.

Figure 166. Access Level Field in Formula Sheet

The current user permissions will be checked against the specified access levels for
each parameter to determine whether the value can be overridden. The security
checks for “Allow override of procedure Parameters” and “Allow override of
formula Parameters” are done first, and then the access level checks will be carried
out.
If this row is left blank, then the access level for each parameter (except for
parameter with “No Access” access level) defaults to the defined Access Level in
the procedure.

520 3BUA000146-600 A
Appendix V Simple Batch and Parameter Management Procedure to Open and Add Formula

8. Batch Spreadsheet Scheduler workbook and Formula worksheets can be


secured from editing by un-authorized users. Refer the Appendix X, Batch
Spreadsheet Scheduler Security to know how to apply the security.
9. Save the workbook, close the workbook and exit Microsoft® Excel.
Save and reopen the Batch Spreadsheet after making any modification to the
Spreadsheet. This will reflect all the latest changes made to the Spreadsheet.
10. Click Check-in to check in the changes. The Config view of Batch Spreadsheet
Scheduler Aspect dialog is shown in Figure 167.

Figure 167. Config View of the Batch Spreadsheet Scheduler Aspect

11. Clear the Public Document.

3BUA000146-600 A 521
Unit List Types with Duplicate Names Appendix V Simple Batch and Parameter Management

12. Attach the local copy of the Microsoft® Excel workbook as the public
document. The directory location of the local copy is shown in the Work
Document area of the Config View dialog.
The attached public document is the spreadsheet that launches when the main
view of the aspect is displayed.
13. Close the Config View.
Batch Spreadsheet cannot resolve procedures with same name and path.

Unit List Types with Duplicate Names


At present, if a duplicate unit name exists in the unitlist, there is no proper
identification to select the required unit name among the duplicate names. With this
release, the user can select the right unit name even if the duplicate name exists, the
path of the unit shall be appended to the unit name.
Batch Spreadsheet displays the list of units in a combo box for an “Equipment List”
type parameter. Users can select unit name (other than default and formula value)
under “New value” column before scheduling the Batch.
With the path appended to the unitlist, the combo box displays unitlist as shown in
Figure 168.

522 3BUA000146-600 A
Appendix V Simple Batch and Parameter Management Unit List Types with Duplicate Names

Figure 168. Unit Names with Path Designation in the Combo Box

Engineer shall add the path of the unit name for duplicate unit name while defining
formula values for the unit type parameter in the formula sheet. Unit name for the
unit type parameter with the duplicate name should be defined as shown in
Figure 169.

3BUA000146-600 A 523
Procedure to Modify Scheduler Lists Appendix V Simple Batch and Parameter Management

Figure 169. Formula Value Defined for a Duplicate Unit Name in the Formula Sheet

Procedure to Modify Scheduler Lists

The below mentioned steps should be performed by the Engineers. Users with
only configure permission will have the rights to create and edit the formula
sheets and also make modifications to Admin sheet.
The Admin worksheet contains lists that are used in some of the drop-down lists on
the BatchScheduler sheet.
An engineer can change the order of the items in this list to set the ordering in the
drop-down list and also can delete items without making any changes to the VBA
code.

524 3BUA000146-600 A
Appendix V Simple Batch and Parameter Management Procedure to Add a non-Formula Sheet

Adding new items to the list require VBA code changes. These changes should be
done during configuration. Any change to sheets or VBA code during operation is
not recommended. The Admin sheet is shown in Figure 170.

Figure 170. A Sample of an Admin Sheet.

Procedure to Add a non-Formula Sheet


The below mentioned steps should be performed by the Engineers.

1. Click Insert Worksheet.

3BUA000146-600 A 525
Procedure to Add a non-Formula Sheet Appendix V Simple Batch and Parameter Management

2. Replace the default worksheet name with the desired name.


3. Add the worksheet name to the VBA global array of non-Formula sheets.
The array g_nonFormulaSheets in the VBA code is where all non formula sheets
are defined. To exclude any worksheet from being displayed in the formula
combo, the user must add the worksheet name to the array.

526 3BUA000146-600 A
Appendix W Scheduling Batch from a Non-
800xA Node

Introduction
This appendix describes on how to schedule a Batch from a non-800xA node.
Existing Batch Spreadsheet Scheduler Excel workbook works on only 800xA
nodes. The Spreadsheet Scheduler is hosted into the File Viewer Aspect.
The users are now provided with the flexibility of using the Spreadsheet scheduler
from a non-800xA node. On a standalone system (non-800xA node), Spreadsheet
Scheduler shall work without any dependency of File Viewer Aspect.

Pre-requisites
Windows 8.1 or Windows Server 2012 R2 is the recommended operating system.
However, Windows 7 or Windows Server 2008 operating system can be used as a
non-800xA node.
The pre-requisites to schedule a Batch from a non-800xA node are:
• Installation of the Batch non-800xA node software.
Install .NET FrameWork 4.0, while installing Batch non-800xA software on
Windows 7 or Windows Server 2008 operating system.
• ABB recommended McAfee Antivirus application with latest security updates
on the non-800xA node.
• Microsoft Office 2010 or Microsoft Office 2013.
During customized installation of Microsoft Office Excel 2010, VBA needs to be
installed.
• The user logged on to the non-800xA node must be an 800xA system user.

3BUA000146-600 A 527
Procedure to configure the Target Server Appendix W Scheduling Batch from a Non-800xA Node

Ensure that the Windows time of the non-800xA node should be the same as that
of the 800xA system. If there is a lead or lag in the Windows time of the non-
800xA node, then the Batch gets scheduled with a time difference or immediately
(based on the time difference).

Procedure to configure the Target Server


The Target Server should point to any 800xA System Server node with Batch
installed through which the user can get connected through a non-800xA node.

For a non-800xA node, the user of the Spreadsheet must be a domain user for the
800xA domain. The privileges associated with this user are used to determine
access rights when using the Scheduler. However, in case of the 800xA system
being in workgroup (no domain controller), any workgroup administrator (on any
system) will have access to the scheduling functionality.

To configure a Target Server:


1. After the installation of Batch non-800xA node software, locate the Batch
Spreadsheet Scheduler.xlsm file under:
Windows 32-bit version: <Drive>:\Program Files\ABB Industrial IT\Produce
IT\Batch\Data.
Windows 64-bit version: <Drive>:\Program Files(x86)\ABB Industrial IT\Produce
IT\Batch\Data.
The Batch Spreadsheet Scheduler.xlsm file has to be treated as the master system
template and should be copied to a local user directory and modified as required.
More frequently, the Spreadsheet configured and tested on an 800xA node
(through the file viewer aspect) would be copied over to the non-800xA node and
can be used for operational purposes.
2. The Application Engineer should configure the Target server (location of the
800xA system). To configure the Target Server:
– Open the Excel sheet, an error message will be displayed stating “The
Target Server not set”. Click Admin sheet and un-protect the sheet to enter

528 3BUA000146-600 A
Appendix W Scheduling Batch from a Non-800xA Node To configure a Target Server:

the Target server IP/name of the node. To un-protect the sheet, use the
default password as “BATCH”. After un-protection, users can enter the
Target Server in the sheet.
– An IP address or a node name of the 800xA System Server with Batch
installed should be mentioned in the Target Server field in the Admin

3BUA000146-600 A 529
To configure a Target Server: Appendix W Scheduling Batch from a Non-800xA Node

sheet. Refer to Figure 171 to view the Target Server field.

Figure 171. Target Server

3. Save and close the Excel Workbook.


4. Re-open the Spreadsheet Scheduler to perform the operations.

530 3BUA000146-600 A
Appendix W Scheduling Batch from a Non-800xA Node To configure a Target Server:

3BUA000146-600 A 531
To configure a Target Server: Appendix W Scheduling Batch from a Non-800xA Node

532 3BUA000146-600 A
Appendix X Batch Spreadsheet Scheduler
Security

This appendix covers all the options and features available for the Batch
Spreadsheet Scheduler.

User Level Permissions


The below table lists some of the sample set of users with their permissions that can
be defined in the system:

Table 95. Sample Set of User level permissions with their Groups Defined

Groups
User Industrial IT Industrial IT Industrial Industrial Industrial
Administrator System Engineer IT IT Operator IT User
Application
Engineer
Administrator Yes Yes Yes No Yes
800xAInstaller Yes Yes Yes No Yes
800xAServiceUser1 Yes Yes Yes No Yes
SysEng1 No Yes No Yes Yes
SysEng2 No Yes No No Yes
AppEng1 No No Yes Yes Yes
AppEng2 No No Yes No Yes
Operator1 No No No Yes Yes

3BUA000146-600 A 533
Password Protection Appendix X Batch Spreadsheet Scheduler Security

Password Protection
The items that will be password protected are:
• WorkBook (Batch Spreadsheet Scheduler.xlsm workbook).
• WorkSheets (Formula sheets, BatchScheduler, Admin and Help sheets).
• VBAProject (Visual Basic for Applications).

Workbook
Microsoft Excel workbook can be protected using a password or with an empty
password. If the workbook is protected with an empty password, then any user can
un-protect it. Protected workbook will restrict users from renaming, deleting, move
or Copy, and hiding the worksheets.
Batch Spreadsheet Scheduler workbook will be protected if the logged on user does
not have configure permissions. User without configure permissions should be
restricted from making modifications to the workbook. Only users with configure
permissions can add, modify, delete and rename the formula sheets. For the rest of
the users, these operations will be restricted.
Protecting and un-protecting of the workbook will be done by the code by
checking the user permissions. So no specific configuration is required.

Worksheets
By design “Batch Spreadsheet Scheduler.xlsm” will contain following sheets:
• BatchScheduler
• Admin
• Help sheets
BatchScheduler worksheet is protected with a password by default. Protection of
this worksheet will be done for all the users by default. This is done to avoid
modifications to the existing data in the BatchScheduler sheet which may result in
some unexpected problems. So the users should be strictly prohibited from making
modifications to this sheet.
To un-protect the sheet, logged on user should know the password to un-protect it. If
the Administrator needs to make any modifications to this sheet, it has to be

534 3BUA000146-600 A
Appendix X Batch Spreadsheet Scheduler Security Procedure to Unprotect the Worksheet

unprotected. By default when this spreadsheet is installed in the system, the


password that will be used to protect the sheet is “BATCH”.
It is recommended to change the default password. However, it is not advised to
share the new password with the operators.
Admin, help and all the formula sheets will be protected based on the user logged on
to the system. These sheets will be unprotected for the users who have configure
permissions.

Procedure to Unprotect the Worksheet


1. Log on to the system as an administrator (or any account that has
administrator rights).
2. Right-click on the BatchScheduler Sheet and click Unprotect Sheet as shown in
Figure 172.

3BUA000146-600 A 535
Procedure to Unprotect the Worksheet Appendix X Batch Spreadsheet Scheduler Security

Figure 172. Un-protect Option Shown in the BatchScheduler Sheet

3. Enter the password as “BATCH”.

536 3BUA000146-600 A
Appendix X Batch Spreadsheet Scheduler Security Procedure to Change the Worksheet Password

Figure 173. Password Prompt

4. The sheet will be unprotected and the Administrator (or any account that has
administrator rights) can make modifications in the sheet.
Any changes performed in this sheet (location of the fields) will impact the
functionality. Hence the changes performed in this sheet might require VBA code
modifications.

Procedure to Change the Worksheet Password


To change the password for protecting the worksheet, new password has to be given
in the VBA code.
Changes in the VBA code will make the digital signature invalid.

VBAProject will be password protected as the user without configure permissions


should not be allowed to view the VBA code. The default password that will be used
to protect the VBA code is “BATCH”, Administrator should be able modify the
password while making the configuration.
1. Open VBA Code. Refer Procedure to View the VBAProject on page 538.
2. Under Modules, select the "FormulationModule" File. Search for the
keyword "g_password", the default value set is "BATCH".
3. To change the password, modify the line g_password = "BATCH" to the new
password.

3BUA000146-600 A 537
Procedure to View the VBAProject Appendix X Batch Spreadsheet Scheduler Security

Procedure to View the VBAProject


1. Open Batch Spreadsheet Scheduler sheet.
2. Press Alt + F11. Microsoft Visual Basic dialog is displayed as shown in
Figure 174.

538 3BUA000146-600 A
Appendix X Batch Spreadsheet Scheduler Security Procedure to View the VBAProject

Figure 174. Microsoft Visual Basic Dialog

3BUA000146-600 A 539
Procedure to Modify the VBAProject Password Appendix X Batch Spreadsheet Scheduler Security

3. Double-click on VBAProject(Batch Spreadsheet Scheduler.xlsm).


4. Enter the password as “BATCH” and view the code.

Procedure to Modify the VBAProject Password


1. Open Batch Spreadsheet Scheduler sheet.
2. Press Alt + F11. Microsoft Visual Basic dialog is displayed.
3. Select VBAProject(Batch Spreadsheet Scheduler.xlsm), right-click and then
select VBAProject Properties.
4. Select the Protection tab in the dialog as shown in Figure 175.

Figure 175. Project Properties - Protection Tab Dialog

5. Check the Lock project for viewing option.


6. Under Password to view project properties, enter the new password and the
confirm password fields and click OK as shown in Figure 175.

540 3BUA000146-600 A
Appendix X Batch Spreadsheet Scheduler Security Batch Cell Object

7. VBAProject is now set to a new password, it is mandatory to remember the


password else the user cannot open the VBAProject.

Batch Cell Object


The Batch Cell object is used to selectively grant additional permissions for the
Spreadsheet functionality without having to globally raise permissions of the user.

Location of Batch Cell Object


Cell “B25” in Figure 176 holds the location of the Batch Cell object.
Engineer can enter the location in this cell or can leave it blank. If a value is
provided in this cell, during the use of spreadsheet, the permissions of the given
Batch cell will be used. If left blank, then the default permissions will be used.

3BUA000146-600 A 541
Location of Batch Cell Object Appendix X Batch Spreadsheet Scheduler Security

Figure 176. Batch Cell Object Location shown in the Admin Sheet

542 3BUA000146-600 A
Appendix X Batch Spreadsheet Scheduler Security Procedure to Create a Batch Cell Object

Procedure to Create a Batch Cell Object


Follow the steps mentioned below to create a Batch Cell object:
1. Log in to the system with Admin rights.
2. Right-click on any existing object (Batch Spreadsheet object) and create a
Batch Cell Definition Aspect as shown in the Figure 177.

Figure 177. Batch Cell Definition and Security Definition Aspect

3. Create a Security Definition Aspect under the same Object. This new Aspect
can be used to modify the permissions for any user.
4. In the Spreadsheet Admin tab, set the path to the Batch Cell object as shown in
the Figure 178.

3BUA000146-600 A 543
Procedure to Create a Batch Cell Object Appendix X Batch Spreadsheet Scheduler Security

Figure 178. Batch Cell Object defined in the Admin Sheet

544 3BUA000146-600 A
Appendix Y Batch Scheduler Aspect

Batch users have an option to schedule Batches using a simple dialog with a
minimal set of fields. This scheduling functionality is provided in an Aspect System
Object, so that it can be utilized within a Process Graphics (PG) 2 display as a view
launched by a button on the graphic.

Functionality
As mentioned, the scheduling functionality is provided in an Aspect System Object.
This aspect will contain a config view and a main view. The config view is available
for the Administrators or the Engineers only.

Config View
The config view is shown in the Figure 179.

3BUA000146-600 A 545
Config View Appendix Y Batch Scheduler Aspect

Figure 179. Config View Dialog

The configurable items are defined as follows:


• Title – This is the field that appears on the main view that is editable.

546 3BUA000146-600 A
Appendix Y Batch Scheduler Aspect Config View

• Formulation Aspect – This is PPA path location to the File Viewer aspect that
contains the formulation data. If left blank, no formulation data will be read
and the Formula field cannot be set to visible.
• Procedures – This is a semi-colon delimited list of procedures that limits the
procedures that appear in the Procedure combo box (on the main view). If left
blank, then all procedures (if no formulation aspect is specified) or all formula
procedures (if a formulation aspect is specified) will appear in the Procedure
combo box.
• Fields - These settings determine the appearance of the main view. The twelve
fields that can be set are the same twelve fields that appear on the Spreadsheet
Scheduler. The settings are as follows:
– Name: The name of the field (cannot be modified).
– Visible: This specifies whether the field is visible on the main view.
– Editable: This specifies whether the field can be edited by the operator.
– Order: This specifies the order in which the fields are displayed in the
main view. Users can set the Order in which they want to view the fields in
the main view.
– Default: This specifies a default value. If left blank, then no value will be
passed to the web service schedule call for the field. The default value can
be specified even if the field is not visible on the main view (For ex: The
Schedule Status can be set to “Scheduled” but not displayed).
– Proc Type: This allows to configure the procedure types in Config view.
Based on the selected procedure type, the corresponding procedures are
displayed under the Main view.
• Status - This field displays the status of the operation while Adding or
Scheduling a Batch in the main view. If checked, the message is displayed
while adding a Batch within the status box instead of a pop-up window.
Figure 179 shows the Status field in the Config View dialog. Figure 180 shows
the Status field in the main view dialog.
• PG2 Color - This field is used to enable the PPA Display Background color on
the Main view.

3BUA000146-600 A 547
Main View Appendix Y Batch Scheduler Aspect

Restrictions while editing the fields


In most cases, any combination of settings can be used. However, the following
restrictions apply:
• A field must be set to Visible when editable is set.
• An order must be specified if a field is set to Visible.
• If procedure is set to not Visible, then a default value must be provided.
• If mode is set to not Visible, than a default value must be provided.
• If formula is set to not Visible and a formulation aspect is specified, then a
default value must be provided.
• If a formulation aspect is not specified, then the Formula field cannot be made
Visible.

Main View
The main view is visible based on the settings in the config view. The visible fields
will be presented in the order specified with an equal spacing between each field.
When a subset of the eleven fields are visible (standard), the additional space for the
unused fields will appear at the bottom of the dialog. This allows the customization
(through PPA Workplace Frames) of the aspect view to occupy the minimum
physical space needed.
Default values will be set in the visible fields accordingly. Similarly, the fields will
be enabled as per the editable setting. The Add/Schedule button label will be set
based on the Schedule Status setting.
Figure 180 is the snapshot of the Main View dialog.

548 3BUA000146-600 A
Appendix Y Batch Scheduler Aspect Main View

Figure 180. Main View Dialog

3BUA000146-600 A 549
Main View Appendix Y Batch Scheduler Aspect

Once the Batch Scheduler Aspect is configured, it can be used in the operations as a
standard view aspect. For example, it can be included on a user graphic by adding a
button and linking the button to the Batch Scheduler Aspect's main view. To know
more about how to add an Aspect button, Adding a Scheduler Aspect Button to a
Process Graphic (PG) 2 on page 550.

Adding a Scheduler Aspect Button to a Process Graphic (PG) 2


A button can be added on a user graphic and linked to the Batch Scheduler Aspect’s
Main View dialog.
Follow the below mentioned steps to add a button and launch the Batch Scheduler
Aspect:
1. Under Functional Structure, create a Process Graphic 2 - Graphic Display
PG2 Aspect.
2. Right-click Graphic Display and click Edit. The Graphic Builder window
opens.
3. Under ToolBoxes pane on the left, drag Aspect View Button under Buttons
category into the builder. Figure 181 shows the Aspect View Button and the
Aspect View Properties.

550 3BUA000146-600 A
Appendix Y Batch Scheduler Aspect Main View

Figure 181. Aspect View Button

4. Select the Aspect View button and click on the Aspect View properties on the
right-hand side. The Expression Editor window opens.
5. Go to the Graphic Display Aspect under Functional Structure in Views
category and choose the Graphic Display Aspect and click Insert Selection.

3BUA000146-600 A 551
Main View Appendix Y Batch Scheduler Aspect

Figure 182 shows the Expression Editor with Insert Selection button.

Figure 182. Expression Editor

6. Click Save, and click Apply and then click OK.


7. Now, open the Plant Explorer Workplace to access the Scheduler Aspect View
button to Schedule or add a Batch. Figure 183 shows how the Scheduler Aspect
View button in the Plant Explorer Workplace.

552 3BUA000146-600 A
Appendix Y Batch Scheduler Aspect Main View

Figure 183. Aspect View Button in Plant Explorer Workplace

3BUA000146-600 A 553
Main View Appendix Y Batch Scheduler Aspect

554 3BUA000146-600 A
Revision History

Introduction
This section provides information on the revision history of this User Manual.
The revision index of this User Manual is not related to the 800xA 6.0 System
Revision.

Revision History
The following table lists the revision history of this User Manual.

Revision
Description Date
Index
- First version published for 800xA 6.0 December 2014
A Updated for 800xA 6.0.1 October 2015

Updates in Revision Index A


The following table shows the updates made in this User Manual for 800xA 6.0.1.

Updated Section/Sub-section Description of Update


Appendix A Configuring Batch Variables Use of _bUnitAttributeHelpers Functions, Batch
and Expressions Functional Wizard
Appendix E: Batch Utilities Information on Cold and Warm retain, Batch Search
Utility

3BUA000146-600 A 555
Updates in Revision Index A

556 3BUA000146-600 A
Index
A Batch equipment 179
Abnormal conditions 48 Batch equipment aspect 65
AC 800M/C controller 389, 411 Batch expression structure 297
Example control system configuration 391, Constants 301
416 IF/ELSE syntax 300
Example controller configuration 390, 412 Operators 298
Process 396, 422 Punctuation 300
Process segmenting 397, 422 Text entry format 301
Acquire equipment 242 Batch functions
Alarm & event lists 54 Configuration
Alarm lists 54 Color discrepancies 366
Allocate equipment 236 Equipment settings 360
Approve procedures 197 PFC blink rate 365
Audit trail 50 PFC color 364
Authentication 74 PFC text, block and color 365
Automatic batch ID generation 291 Batch functions (built-in) 307
Cancel aspect changes 295 Batch ID generation 291
Configure sequence number 293 Batch Management
Create pattern 292 Print BMS report configuration 40
Find and replace text 294 Shutdown script 38
Find text 294 Toolbar 375
Print pattern 295 Batch manager actions (BMA) 260
Save aspect changes 295 Acquire/release equipment 242
Assign values from PFC 272
B Collect data from PFC 267
Backup and restore 371 Connect objects on PFC 277
Backup procedure versions retained 369 Correlate PFC and SOP 276
Batch cell definition aspect 56 to 57 Evaluate expressions from PFC 272
Batch cells 201 Issue commands from PFC 273
Batch command interface Message
batch_cbatch command 347 Color configuration 260 to 261
batch_chgunit command 350 Configuration 262
batch_sbatch command 351 Convert to HTML 266
Batch data collection 290 Copy 266
Batch enable equipment 179 Create reusable templates 266

3BUA000146-600 A 557
Index

Delete 265 Parallel branch (end) 217


HTML format 266 Parallel branch (start) 217
Optional verification 262 Phase 216
Preview 265 Procedure 216
Reorder 265 Transition 217
Response access level configuration 256, Block palettel
262 Batch manager action 216
Print report from PFC 269 Built-in functions 307
Provide/request information in a Batch 307
procedure 260 DBA 315
Reserve/unreserve equipment 244 General 320
Schedule job from PFC 270 Built-in variables 323
Select/deselect equipment 245
Batch operation access levels 69 C
Batch settings 356 Collect data from PFC 267
Batch utilities 355 Color configuration
Backup & restore 371 Blink 365
Batch report configuration 372 Block 365
Default procedure configuration 368 PFC 364
Miscellaneous batch configuration 355 Text 365
Batch variable and expressions 297 Color discrepancies 366
Batch web services interface 445 Configuration
Read function calls 448 Print BMA report for Batch Management 40
GetActiveBatches 448 Configuration overview 40
GetEquipmentDetails 456 Batch Management 41
GetEquipmentStatus 457 Equipment 41
GetListOfActiveBatches 451 Miscellaneous batch 43
GetProcedureDetails 452 Procedure 42
GetProcedures 453 Connector object 277
GetTagKeyData 454 Control recipes 202
Write function calls 462 Copy procedure 198
ScheduleBatch 466 Create procedure 196
SetEquipmentAttribute 467 Cross references 199
BatchCommServer control modules 115 Custom functions 328
BatchCommServerExt control modules 115 Add 328
BatchConnect control modules 115 Cancel 329
Blink rate 365 Configure 328
Block labels 238 Delete 333
Block palette Edit 333
Branch (end) 216 Save 329

558 3BUA000146-600 A
Index

Test 332 Add 280


Views 333 Configure 279, 282
Cut procedure 198 Monitoring multiple conditions 287
Overview 192
D Runtime characteristics 284
Data collection (batch) 290 Usage guidelines 280
DBA functions (built-in) 315 Expressions
DCI connectivity 497 Constants 301
DCI_PHS object 498 Evaluation rules 302
Deallocate equipment 236 IF/ELSE syntax 300
Default procedure configuration Operators 298
Blink rate 365 Overview 81
Color discrepancies 366 Punctuation 300
Default batch cell 369 Structure 297
Retained procedure versions 369 Text entry format 301
Delete procedure 198 Expressions (evaluation rules) 302
Deselect equipment 247 External historians 385
Document conventions 25 800xA System 385
Information Management 385
E
Edit procedure 197 F
End objects 235 fpbget() function 340
Equipment configuration 103, 175 fpbgetd() function 340
Batch equipment 179 fpbtget() function 341
Equipment groups 122, 187 fpubid() function 342
Equipment logic 115 Function phase driver 435
Equipment phase logic 110, 176 Function views 333
Equipment phases 111, 184 Function wizard 323
Procedure phases 104, 176 Custom functions 328
Equipment groups 122, 187 Add 328
Equipment logic 115 Cancel 329
Equipment phase logic 110, 176 Configure 328
Equipment phases 111, 184 Delete 333
Equipment settings 360 Edit 333
Event lists 54 Parameters and test variables 330
Event settings 358 Save 329
Excel spreadsheets 339 Search and replace 333
Exception handling 278 Test a function 332
Exception logic 286 Use functions within functions 330
Exception procedure Views 333

3BUA000146-600 A 559
Index

G Text/block/blink color 365


General functions (built-in) 320 Miscellaneous batch security aspects 66
Graphic configuration 343 MOD_Phase object 470
Batch equipment information 345 MOD_Unit object 470
View a PFC 343 MSET object 497
View batch status 344 Multiple condition monitoring 287
View messages 343 Multiple procedure paths 258

H O
Harmony control system Operation procedures 192
Process 396, 422, 482 Operator changes 46
Process segmenting 397, 422, 483 Overview
Harmony equipment objects 475 Abnormal conditions 48
Harmony phase object 476 Audit trail 50
History options 357 Batch 29
Configuration 40
I Equipment 41
INFI 90 Harmony Batch Phase object 476 Miscellaneous batch 43
INFI 90 Harmony Batch Unit object 475 Procedure 42
Intended users 30 Expressions 81
ISA-88 compliance 30 Operator changes 46
ISA-88 template 471 Parameters 81
ISA-88Phase.tcl 471 Runtime operations 43
Variables 81
Version control 47
L
Layered procedures 192
Level N output parameters 360 P
Licensing 31 Parallel processing 257
Parameters 81
Paste procedure 198
M
PFC Editor window
Miscellaneous batch configuration 355
File menu 206
Backup procedure versions 369
Layout menu 212
Batch message logging 358
To access window 197
Default batch cell 369
Tools menu 210
Equipment settings 360
View menu 208
Event settings 358
Phases 104, 176
History options 357
Print BMA report configuration 40
PFC color configuration 364
Print data from PFC 269
Retention limits 356
Procedure color configuration 364

560 3BUA000146-600 A
Index

Procedure configuration 201, 233 Procedure parameters 222


Acquire equipment 242 Add 226
Allocating & deallocating hardware 236 Equipment list type 229
Batch cells 201 Float type 228
Configuring block labels 238 Integer type 228
Control procedures 202 List type 229
Copy procedure 198 String type 228
Create procedure 196 Change 231
Cut procedure 198 Checks 231
Delete procedure 198 Expression editor 232
Deselect equipment 247 Function wizard 323
Elements and actions 235 Configuration 224
Header 218 Create 231
Parameters 222 Delete 231
Paste procedure 198 Expressions and variables 223
Procedure objects 234 Procedure phases 104, 176
Release equipment 244 Procedure SOP 219
Reserve equipment 244 Configuration 220
Restart points 235 Find a text string 221
Select equipment 245 Import SOP text 222
SOP 219 Replace a text string 221
Start and end objects 235 SOP Section Index column 222
Unreserve equipment 245 Procedures 189
Procedure configuration window 204 Layered 190, 192
To access window 204 Types 190
Procedure function blocks 248 Batch 191
Configure phase blocks 251 Exception 192
Configure procedure blocks 248 Operation 192
Configure transition blocks 259 Unit 191
Configuring sequences 257
Count phase parameters 256 R
Define multiple procedure paths 258 Recipe procedure 191
Simultaneous processing 257 Recipes 189
Procedure handling 194 Release equipment 244
Approve 197 Report configuration 372
Copy 198 Configure report 373
Cut 198 Print report 374
Delete 198 View report 374
Paste 198 Reserve equipment 244
Procedure header 218 Restart points 235

3BUA000146-600 A 561
Index

Rules for evaluating expressions 302 W


Web services interface 445
S
Security 56
Authentication 74
Batch cell definition aspect 57
Batch equipment aspect 65
Batch operation access levels 69
Other aspects 66
Security definition aspect 56
Security definition aspect 56
Select equipment 245
Sequence number 293
Shared equipment communication modules 115
Shutdown script 38
Simultaneous processing 257
Spreadsheet log configuration with Excel 339
Start objects 235
Strict ISA-88 Option 370
Synchronization 360

T
TCL sequences 469
Toolbar 375

U
Unit procedure 191
Unreserve equipment 245
UserAbn template 473
UserAbn.tcl 473

V
Variables 81
Variables (built-in) 323
Version control 47, 195
Version history 199
Views of a function 333

562 3BUA000146-600 A
Contact us

www.abb.com/800xA Copyright© 2015 ABB.

3BUA000146-600 A
www.abb.com/controlsystems All rights reserved.

Power and productivity


for a better worldTM

You might also like