Anda di halaman 1dari 710

Wonderware® FactorySuite™

InBatch Premier User’s Guide

For Version 8.0


Last Revision: October 17, 2001 10:20 pm

Wonderware Corporation
All rights reserved. No part of this documentation shall be reproduced, stored in a
retrieval system, or transmitted by any means, electronic, mechanical, photocopying,
recording, or otherwise, without the prior written permission of the Wonderware
Corporation. No copyright or patent liability is assumed with respect to the use of the
information contained herein. Although every precaution has been taken in the
preparation of this documentation, the publisher and the author assume no
responsibility for errors or omissions. Neither is any liability assumed for damages
resulting from the use of the information contained herein.
The information in this documentation is subject to change without notice and does
not represent a commitment on the part of Wonderware Corporation. The software
described in this documentation is furnished under a license or nondisclosure
agreement. This software may be used or copied only in accordance with the terms of
these agreements.

© 2001 Wonderware Corporation. All Rights Reserved.

100 Technology Drive


Irvine, CA 92618
U.S.A.
(949) 727-3200
http://www.wonderware.com

Trademarks
All terms mentioned in this book that are known to be trademarks or service marks
have been appropriately capitalized. Wonderware Corporation cannot attest to the
accuracy of this information. Use of a term in this book should not be regarded as
affecting the validity of any trademark or service mark.
Wonderware, InTouch and FactorySuite Web Server are registered trademarks of
Wonderware Corporation.
FactorySuite, Wonderware FactorySuite, WindowMaker, WindowViewer, SQL
Access Manager, Recipe Manager, SPCPro, DBDump, DBLoad, HDMerge,
HistData, Wonderware Logger, Alarm Logger, InControl, InTrack, InBatch,
IndustrialSQL, FactoryOffice, FactoryFocus, License Viewer, Scout, SuiteLink and
NetDDE are trademarks of Wonderware Corporation.
Contents 1

Contents
CHAPTER 1: Welcome to InBatch Premier Edition
3
Overview........................................................................................................ 3
Flexible Recipes and Process Lines ........................................................... 4
Process Modeling ....................................................................................... 4
Creating and Linking Tags ......................................................................... 5
Materials Tracking Management................................................................ 5
Recipe Management................................................................................... 6
Batch Management..................................................................................... 7
Batch History.............................................................................................. 8
Batch Reports ............................................................................................. 8
FactorySuite Integration ................................................................................ 9
Tag Management ........................................................................................ 9
Tag Communications.................................................................................. 9
Batch Alarms............................................................................................ 10
Windows 2000 Terminal Services Support.................................................. 10
Extensibility ................................................................................................. 10
Managing InBatch Configurations............................................................... 10
InBatch Program Menus .............................................................................. 11
Batch Server ............................................................................................. 11
Batch Development Client ....................................................................... 11
Batch Runtime Client ............................................................................... 12
Information Server ................................................................................... 12
InBatch Programs ........................................................................................ 12
Configuration Programs ........................................................................... 12
Run-time Programs .................................................................................. 13
Utility Programs ....................................................................................... 17
InBatch Configuration Architecture ............................................................ 17
InBatch Runtime Architecture ..................................................................... 18

CHAPTER 2: System Installation ........................ 19


Overview...................................................................................................... 19
Setting up an InBatch 8.0 System ................................................................ 21
Recommended Installation Sequence....................................................... 22
Installing InBatch Information Server Components .................................... 22
Installing an InBatch Server ........................................................................ 24
Installing an InBatch Runtime Client .......................................................... 25
Installing an InBatch Development Client................................................... 26
Installing Seagate Crystal Reports Professional 8.0 .................................... 28
Installing Internet Information Server (IIS)................................................. 28
Uninstalling InBatch Software..................................................................... 29
InBatch Runtime Client Uninstall ............................................................ 29
2 Contents

InBatch Development Client Uninstall .................................................... 30


InBatch Server Uninstall .......................................................................... 30
InBatch Information Server Uninstall and Cleanup................................. 31
Upgrading from InBatch 7.x to InBatch 8.0 ................................................ 33
Upgrade Preparation ................................................................................ 34
Upgrading SQL Server Machine To InBatch Information Server ........... 34
Upgrade InBatch 7.0 History Database to InBatch 8.0............................ 35
Upgrade InBatch 7.1 History Database to InBatch 8.0............................ 40
Upgrade Configuration from InBatch 7.x to InBatch 8.0 ........................ 43

CHAPTER 3: Environment Management System ..


45
Overview ..................................................................................................... 46
Environment Management System Architecture ..................................... 46
Using Environment Display ........................................................................ 47
File Menu ................................................................................................. 48
Update Menu............................................................................................ 49
View Menu ............................................................................................... 51
Help Menu................................................................................................ 51
Starting and Stopping Applications from Environment Display ................. 52
Application Icons ..................................................................................... 53
Runtime Applications .............................................................................. 53
Using Environment Editor........................................................................... 55
File Menu ................................................................................................ 55
Edit Menu................................................................................................. 55
Help Menu................................................................................................ 56
Adding Applications to the Environment .................................................... 57
Adding Applications ................................................................................ 57
Assigning Application Parameters .............................................................. 60
Assign Application Parameters ................................................................ 60
Assign Application Parameter Values...................................................... 61
Application Parameter Descriptions ........................................................ 61
Deleting Application Parameters ............................................................. 64
User Defined (Other) Applications.............................................................. 64
User Defined Application Parameters...................................................... 65
Using Environment Manager....................................................................... 66
Environment System Timeout.................................................................. 66
Automatic Start-up and Shutdown of Runtime ........................................... 67
Considerations.......................................................................................... 68

CHAPTER 4: Process Modeling .......................... 69


Overview ..................................................................................................... 70
Comprehensive Model ............................................................................. 70
Connectionless Model.............................................................................. 71
Hybrid Model ........................................................................................... 71
Contents 3

Model Approach Comparisons................................................................. 72


Process Modeling Steps ........................................................................... 73
Units............................................................................................................. 74
Process Classes (Processes) ........................................................................ 74
Connections ................................................................................................. 74
Transfer Classes (Transfers) ....................................................................... 75
Define Process and Transfer Capabilities ................................................. 75
Phases ....................................................................................................... 75
Phase Types .............................................................................................. 75
Phase Logic .............................................................................................. 76
Phase Parameters...................................................................................... 77
Segments ...................................................................................................... 79
Equipment Status ......................................................................................... 79
Units of Measure.......................................................................................... 79
Enumeration................................................................................................. 79
Tags .............................................................................................................. 79
Tag Types and Usage................................................................................ 80
Unit Tags .................................................................................................. 80
Process Tags ............................................................................................. 81
Connection Tags ....................................................................................... 81
Transfer Tags ............................................................................................ 81
System Tags.............................................................................................. 81
Using Process and Transfer Tags versus Unit and Connection Tags ....... 83
Tag Definition .............................................................................................. 84
Tagname ................................................................................................... 84
Tag Description ........................................................................................ 86
Data Class................................................................................................. 86
Access Mode ............................................................................................ 86
Process Modeling Summary ........................................................................ 87
Example: Process Phases and Tags.............................................................. 87
Ramp Heat Phase Logic ........................................................................... 88
Process Tags and Unit Tags...................................................................... 88
Process Classes and Generic Phases in Recipe Editor ............................. 88
Batch Manager Resolves Process Tags into Unit Tags ............................ 89
Model Editor ................................................................................................ 91
Deleting Model Components ................................................................... 92
Using Model Editor .................................................................................. 92
File Menu ................................................................................................. 93
Edit Menu ................................................................................................. 95
Help Menu................................................................................................ 96
Units Tab ...................................................................................................... 96
Adding Units ............................................................................................ 97
Changing Unit Names .............................................................................. 97
Deleting Units .......................................................................................... 98
Edit Unit Tags........................................................................................... 98
Processes Tab............................................................................................. 100
Adding Process Classes.......................................................................... 101
4 Contents

Changing Process Class Names ............................................................. 101


Deleting Process Classes........................................................................ 102
Unit Control/State Tags.......................................................................... 102
Assign Units ........................................................................................... 103
Process Class Attributes......................................................................... 104
Assigning Unit Attribute Values ............................................................ 105
Edit Process Class Tags.......................................................................... 106
Process Class Phases.............................................................................. 108
Connections Tab ........................................................................................ 122
Editing Connections ............................................................................... 123
Assign Segments to Connections........................................................... 125
Connection Tags..................................................................................... 126
Transfers Tab ............................................................................................ 127
Editing Transfers .................................................................................... 128
Assign Source and Destination Process Classes .................................... 128
Assign Connections................................................................................ 129
Transfer Tags.......................................................................................... 130
Edit Transfer Class Phases ..................................................................... 132
Transfer Phase Configuration ................................................................ 138
Segments Tab............................................................................................. 148
Equipment Status Tab ................................................................................ 149
Units of Measure Tab................................................................................. 151
Import and Export Units of Measure ..................................................... 152
Enumeration Tab........................................................................................ 153
Additional Phase Configuration ................................................................ 155
Edit Control Buttons .............................................................................. 155
Phase Control/Status Bits....................................................................... 155
Edit Interlocks ........................................................................................ 157
Edit Formula Parameters........................................................................ 159

CHAPTER 5: Tag Linker ..................................... 167


Overview ................................................................................................... 168
When to Use Tag Linker........................................................................... 169
Using Tag Linker ...................................................................................... 169
File Menu ............................................................................................... 170
Edit Menu............................................................................................... 175
View Menu ............................................................................................. 175
Help Menu.............................................................................................. 176
Access Editor ............................................................................................. 176
Tag Configuration ...................................................................................... 177
Tag Selection.......................................................................................... 177
Assign Tag Links ................................................................................... 178
Export Editor ............................................................................................ 180
Simulation Export Procedure ................................................................. 183
Runtime Export Procedure..................................................................... 184
Control System Interfacing Example ........................................................ 185
Contents 5

Guidelines for Control System Interfacing ............................................ 185


Setting Up the Control System............................................................... 185

CHAPTER 6: Materials Editor ............................ 187


Overview.................................................................................................... 187
Using the Materials Status Window........................................................... 189
Starting the Materials Status Window .................................................... 189
File Menu ............................................................................................... 190
Edit Menu ............................................................................................... 193
View Menu ............................................................................................. 193
Help Menu.............................................................................................. 195
Using the Materials Editor ......................................................................... 196
Defining Materials.................................................................................. 196
Using the Material Location Assignment Editor ....................................... 198
Assign a Material to a Unit .................................................................... 198
Define Lot Tracking Information ........................................................... 199

CHAPTER 7: Recipe Editor................................ 203


Overview.................................................................................................... 203
Header .................................................................................................... 204
Using Recipe Editor ................................................................................... 210
File Menu ............................................................................................... 211
File/Save................................................................................................. 214
Edit Menu ............................................................................................... 225
Header ........................................................................................................ 225
Equipment Requirements........................................................................... 228
Assign Process Classes........................................................................... 230
Edit Process Instances ............................................................................ 231
Edit Transfer Instances ........................................................................... 237
Formula ...................................................................................................... 241
Process Variables.................................................................................... 248
Unit Procedures Library ......................................................................... 250
Operations Library ................................................................................. 251
View Menu ............................................................................................. 253
Help Menu.............................................................................................. 256
Building a Recipe Procedure ..................................................................... 257
Procedure Layout ................................................................................... 257
Procedure Objects .................................................................................. 258
Storing Unit Procedures ......................................................................... 263
Loading a Unit Procedure ...................................................................... 264
Storing Operations.................................................................................. 265
Loading an Operation............................................................................. 266
Recipe Procedure Mechanics ................................................................. 268
Cutting and Copying Procedure Objects................................................ 277
Pasting Procedure Objects...................................................................... 277
6 Contents

Deleting Procedure Objects ................................................................... 278


Moving and Nesting Procedure Objects ................................................ 284
Unit Procedure Properties ...................................................................... 284
Operation Properties .............................................................................. 286
Phase Properties ..................................................................................... 287
Building Recipes in a Connectionless Process Model............................... 296

CHAPTER 8: Train Editor ................................... 299


Overview ................................................................................................... 299
Using Train Editor ..................................................................................... 300
File Menu ............................................................................................... 302
Help Menu.............................................................................................. 303
Assigning Units to Trains .......................................................................... 303
Assigning Attributes to Trains................................................................... 304

CHAPTER 9: Batch Management System ........ 307


Overview ................................................................................................... 308
Batch Management Diagram ................................................................. 310
Using Batch Scheduler .............................................................................. 310
Starting Batch Scheduler........................................................................ 310
File Menu ............................................................................................... 311
Edit Menu............................................................................................... 312
View Menu ............................................................................................. 313
Initialize Menu ....................................................................................... 317
Options Menu......................................................................................... 319
Help Menu.............................................................................................. 319
Defining a Batch .................................................................................... 319
Changing the Batch Schedule List ......................................................... 322
Using Batch Display .................................................................................. 322
File Menu ............................................................................................... 323
Actions Menu ......................................................................................... 324
Windows Menu ...................................................................................... 327
View Menu ............................................................................................. 331
Help Menu.............................................................................................. 334
Batch Display Layout............................................................................. 334
Batch Display Functionality................................................................... 338
Batch Manager........................................................................................... 344
Starting Batch Manager.......................................................................... 344
Batch Execution......................................................................................... 345
Equipment Allocation ............................................................................ 345
Batch Execution Modes ......................................................................... 347
Unit Selection Modes............................................................................. 352
Process Phases........................................................................................ 352
Transfer Phases ...................................................................................... 354
Continue Mode Execution ..................................................................... 358
Contents 7

Contention for Shared Equipment.......................................................... 358


Runtime Recipe Procedure Jumps - Jump Mode ................................... 360
Report Triggering ................................................................................... 361
End Of Batch Operation ......................................................................... 361
Batch Runtime Errors............................................................................. 361
Batch Schedule Errors............................................................................ 362
Warm Restart ............................................................................................. 363
Starting Batch Manager with Warm Restart Function ........................... 363
Batch Execution ..................................................................................... 364
Batch Restart Mode ................................................................................ 364
Control System Synchronization............................................................ 365
Manual Operation................................................................................... 366

CHAPTER 10: History System........................... 369


Overview.................................................................................................... 369
History Database Tables ............................................................................ 370

CHAPTER 11: Reporting System ...................... 385


Reporting System Components ................................................................. 385
Reporting System Architecture.................................................................. 387
Reporting System Security ........................................................................ 388
Using The Batch Reporting System........................................................... 388
Batch Reporting...................................................................................... 388
Report Configuration.............................................................................. 390
Report Scheduling .................................................................................. 394
Report Viewing ...................................................................................... 402
Creating Reports ........................................................................................ 405
Unsupported Report Templates .............................................................. 405

CHAPTER 12: Process Logging........................ 407


Overview.................................................................................................... 407
Process Log Criteria................................................................................... 408
General Logging Criteria ....................................................................... 408
Tags ........................................................................................................ 409
Using Process Log Editor .......................................................................... 410
File Menu .............................................................................................. 410
Edit Menu ............................................................................................... 414
Creating a Process Log Group ................................................................... 415
Using Process Log Manager ...................................................................... 421
Starting Process Log Manager ............................................................... 421
Runtime Logging Criteria ...................................................................... 421
8 Contents

CHAPTER 13: Security System ......................... 423


Overview ................................................................................................... 423
Using Security Editor ................................................................................ 424
Using Security Editor for the First Time................................................ 425
File Menu ............................................................................................... 426
Edit Menu............................................................................................... 427
Help Menu.............................................................................................. 428
Security System Configuration.................................................................. 428
Security Enabled .................................................................................... 428
Retries .................................................................................................... 428
Password Timeout .................................................................................. 428
Password Reuse...................................................................................... 428
Comment ................................................................................................ 429
Security Levels .......................................................................................... 429
Operator Stations ....................................................................................... 430
User Accounts............................................................................................ 431
Security Level ........................................................................................ 432
Password ................................................................................................ 432
Recipes ................................................................................................... 433
Operator Stations.................................................................................... 434
Applications-Functions.............................................................................. 435
Adding a New Application .................................................................... 436
Enabling Application Security ............................................................... 436
Adding a New Function ......................................................................... 437
Enabling Function Security.................................................................... 437
Application - Function Descriptions ...................................................... 438
Runtime Security.................................................................................... 439
Starting the Security Manager................................................................ 439
Changing Passwords .............................................................................. 440
Application Security Requests ............................................................... 440
Function Security Requests.................................................................... 441

CHAPTER 14: Expression Editor ...................... 443


Using Expression Editor ............................................................................ 443
Starting the Expression Editor ............................................................... 443
Editing an Expression ............................................................................ 444
Expression Elements.................................................................................. 445
Operators ................................................................................................ 445
Operands ................................................................................................ 446
Functions ................................................................................................ 446
Delimiters............................................................................................... 447
Expression Building Rules ........................................................................ 447
Expression Examples................................................................................. 448
Contents 9

CHAPTER 15: Phase Logic Development and


Testing .................................................................. 449
Phase Block Design Guideline .................................................................. 449
Definition of a Phase Block ................................................................... 450
Phase Block Rules of Operation............................................................. 450
Function Block Diagram ........................................................................ 451
Operational Flow Chart.......................................................................... 452
Control System Memory Configuration................................................. 454
Control System Code Structure.............................................................. 454
Unit Control............................................................................................ 458
Unit Status .............................................................................................. 461
Hold Propagation.................................................................................... 462
Phase Control ......................................................................................... 462
Phase Status............................................................................................ 464
Formula Parameters................................................................................ 465
Alarms .................................................................................................... 469
Input and Output Control ....................................................................... 469
Using the Phase Logic Testing Tool .......................................................... 470
Starting the Phase Logic Testing Tool.................................................... 470
File Menu ............................................................................................... 471
Help Menu.............................................................................................. 472
Exercising Phases ...................................................................................... 472

CHAPTER 16: Active-X GUI Controls .............. 473


Overview.................................................................................................... 473
Configuring InTouch WindowMaker to use InBatch Active-X GUI controls.
474
Using InBatch GUI Controls ..................................................................... 474
InBatch GUI Control Descriptions ............................................................ 475
BatchGuiConfig .................................................................................... 475
BatchList ................................................................................................ 478
BatchField .............................................................................................. 481
BatchButton............................................................................................ 483
Building a Simple Batch Scheduler ........................................................... 484
Create the InTouch Window................................................................... 485
Running the Scheduler ........................................................................... 488
Using the BatchSecurity Control ............................................................... 490
Configuring the BatchSecurity Control.................................................. 492
Enumerations.......................................................................................... 496
Security Control Examples..................................................................... 498

CHAPTER 17: InTouch Batch Wizards.............. 505


Overview.................................................................................................... 505
InBatch Wizard Access Names and Support Tags..................................... 506
Using InBatch Wizards .............................................................................. 507
10 Contents

InBatch Wizard Descriptions..................................................................... 508


Batch Scheduler/Dispatcher .................................................................. 508
Active Batch List ................................................................................... 509
Batch Messages...................................................................................... 510
Change Batch Mode............................................................................... 510
Batch Questions with Close ................................................................... 511
Batch Questions ..................................................................................... 511
Button..................................................................................................... 512
Batch Comments .................................................................................... 515
View/Force Transition Logic ................................................................. 515
Active Phase List ................................................................................... 516
Phase Parameter List .............................................................................. 516
Phase and Parameter Editor ................................................................... 517
Phase Instructions .................................................................................. 518
Phase Interlocks ..................................................................................... 518
Phase Comments .................................................................................... 519
Phase Message Information ................................................................... 519
Equipment Allocation ............................................................................ 520
Equipment Selection .............................................................................. 521
Save Control Recipe............................................................................... 521
Batch Errors ........................................................................................... 522
InBatch Wizard Data Change Script.......................................................... 522
Data Change Scripts - Using List Boxes................................................ 524

CHAPTER 18: InTouch Script Add-On Functions..


525
Overview .................................................................................................. 526
Using Script Add-On Functions............................................................. 526
Protocol Usage ....................................................................................... 526
Script Add-On Function Descriptions ....................................................... 526
ibAlarmEventHost ................................................................................. 527
ibAlarmEventInit ................................................................................... 527
ibAlarmNode.......................................................................................... 528
ibBatchAction ........................................................................................ 529
ibConfig ................................................................................................. 532
ibPokeDisc ............................................................................................. 533
ibPokeInt ................................................................................................ 533
ibPokeStr ................................................................................................ 534
ibRequestDisc ........................................................................................ 535
ibRequestInt ........................................................................................... 535
ibRequestStr ........................................................................................... 536
ibTermTopic ........................................................................................... 536
Obsolete DDE Script Add-On Functions .................................................. 537
ibDdePokeDisc....................................................................................... 537
ibDdePokeInt ......................................................................................... 537
ibDdePokeStr ......................................................................................... 537
ibDdeRequestDisc.................................................................................. 537
ibDdeRequestInt..................................................................................... 537
Contents 11

ibDdeRequestStr..................................................................................... 538
ibDdeTermTopic..................................................................................... 538
Script Add-On Function Error Reference .................................................. 538

CHAPTER 19: InTouch Batch Tag Browsing and


Referencing.......................................................... 539
Overview.................................................................................................... 540
Define Batch Tag Sources.......................................................................... 541
Remote Referencing Batch Tags................................................................ 544

CHAPTER 20: InTouch Client Security ............. 545


Overview.................................................................................................... 545
Configuring InBatch Client Security ......................................................... 546
Batch Server Security Configuration ..................................................... 546
Batch Client Security Configuration ...................................................... 547
InBatch Client Security Operation............................................................. 548
DoneBy Security .................................................................................... 548
DoneBy and CheckBy Security.............................................................. 549
Verify DoneBy Password ...................................................................... 549
Verify CheckBy Password...................................................................... 550

CHAPTER 21: Client Alarm/Event Interface ..... 551


Overview.................................................................................................... 551
Required Configuration ............................................................................ 552

CHAPTER 22: Tag Interface Management (TIM)


System.................................................................. 555
Overview.................................................................................................... 556
When to Use the Tag Interface Management (TIM) System ................. 557
Using TIM.................................................................................................. 558
Using TIM Tags ..................................................................................... 558
Batch Management System Interface ........................................................ 562
Manipulate the Batch Schedule.............................................................. 563
Monitor and Control Active Batches ..................................................... 568
View and Adjust Allocation Queue ........................................................... 574
Manipulate Recipe Focus ....................................................................... 577
Monitor and Respond to Batch Questions.............................................. 579
Enter Batch Comments........................................................................... 581
Monitor and Control Active Phases ....................................................... 582
Select Equipment for Allocation ............................................................ 589
Monitor Batch Messages........................................................................ 591
Edit Phases and Parameters.................................................................... 594
12 Contents

Monitor and Control Equipment ............................................................ 598


View/Force Transition Logic ................................................................. 602
Save Control Recipe............................................................................... 605
Monitor and Respond to Errors.............................................................. 608
Batch Management System Interface Handshake Errors....................... 609
Security System Interface .......................................................................... 611
Interact with InBatch Security System................................................... 611
Security System Interface Handshake Errors......................................... 613
Batch Function Interface .......................................................................... 614
Phase Prepare/Complete ........................................................................ 615
Evaluate Equipment for Allocation........................................................ 618
Log Equipment Status ............................................................................ 620
Equipment Allocation Changes ............................................................. 623
Runtime TIM Operation ............................................................................ 625
Runtime TIM Applications .................................................................... 625

CHAPTER 23: Redundancy ............................... 627


Overview ................................................................................................... 628
Setting Up a Redundant Batch Server ....................................................... 628
Network Configuration .......................................................................... 628
Installing a Redundant Batch System ........................................................ 629
Batch Client - Redundancy Configuration............................................. 630
Redundancy Configuration ........................................................................ 631
RedCfg File Structure ............................................................................ 631
Example of a Redundant Server Configuration......................................... 632
RedCfg and Lmhosts File Examples...................................................... 633
Redundancy Switch-Over Configuration .................................................. 634
Redundancy Operation .............................................................................. 635
Directory Configuration ......................................................................... 635
Initial System Start-up............................................................................ 636
RedMngr Startup Procedure................................................................... 636
Typical Redundant Sequence of Operation ............................................... 637
Initial Start-up ........................................................................................ 637
Normal Runtime Operation.................................................................... 637
Backup System Failure .......................................................................... 637
Master System Failure ........................................................................... 637
Master System Failure while Backup’s Operating System is Failed ..... 638
Failed System Recovery......................................................................... 638
Manual Switch-Over to Backup System ................................................ 638
Shutting Down a Redundant System ..................................................... 639
Batch Clients.............................................................................................. 639
Monitoring Redundancy Status.............................................................. 639
Batch Client (InTouch) Switchover ....................................................... 640
Batch Development and Batch Runtime Clients.................................... 641
Configuring InTouch Client Alarms for Redundancy............................ 641
Redundant System Points of Interest......................................................... 642
Contents 13

CHAPTER 24: System Administration.............. 643


Information Server Administration............................................................ 643
History Administration........................................................................... 644
Error Queue Administration................................................................... 646
Information Server Configuration .......................................................... 647
History Archiving................................................................................... 648
Completed Archives............................................................................... 655
Report Log Administration .................................................................... 658
Changing an Information Server Assignment on a Batch Server .......... 659
Changing a Batch Server Assignment on an Information Server .......... 660
Backing Up Batch Databases..................................................................... 661
Using the DBCOPY Utility.................................................................... 661
Managing Batch Configurations................................................................ 661
Batch System Configuration Files.......................................................... 662
Terminal Server License Administration ................................................... 671
Annunciating Batch System Illegal Access Attempts ............................... 672
Implementing FDA 21 CFR Part 11 Compliance .................................. 672
SQL Script.............................................................................................. 675

Index .................................................................... 681


14 Contents
Welcome to InBatch Premier Edition 3

C H A P T E R 1

Welcome to InBatch Premier


Edition

The following is a general overview and discussion of the capabilities of the


InBatch Premier Edition software, including process modeling, creating and using
tags, recipe management, materials tracking, batch management, history and
reporting. It explains the interface between InBatch software and your control
system, including alarming and utility programs.

Contents
• Overview
• FactorySuite Integration
• Extensibility
• Managing InBatch Configurations
• InBatch Program Menus
• InBatch Programs
• InBatch Configuration Architecture
• InBatch Runtime Architecture

Overview
InBatch Premier Edition is a flexible batch management system that is designed to
be configured quickly and easily once fundamental concepts are understood. It is
extremely important to read this section of the manual before attempting to use the
batch system.
Once basic batch system concepts are understood, you should be able to build and
edit configurations quickly without using this manual. As with most menu driven
systems, you will become more proficient by using the manual as a reference to
improve your understanding of the batch system and how to apply features that may
not be obvious.
Consistent with the Instrument Society of America (ISA) S88.01 standard, InBatch
allows you to create recipes quickly and easily and simulate their execution against
a model of the process – all before writing one line of control code. InBatch also
provides complete production history and materials genealogy.
4 Chapter 1

InBatch’s powerful batch engine, combined with its integration to InTouch™ and
other Wonderware FactorySuite™ components, means that you can reduce the cost
and time to implement your batch-related processes by up to 60% over competitive
solutions.
InBatch provides out-of-the-box batch management functionality that eliminates
the need for unsustainable custom code in a programmable logic controller (PLC)
or distributed control system (DCS) and dramatically reduces the life-cycle
engineering effort. The sophisticated batch engine is responsible for unit-to-unit
material tracking, short term scheduling, dynamic batch and equipment
management, and batch history and reporting. The batch management system also
supports redundancy for critical applications.

Flexible Recipes and Process Lines


Within the batch control system, recipe procedures can be changed and new
formula and process lines can be easily re-configured, not re-engineered, for new
product introductions. The batch system is flexible because it lets you model your
plant, create new process lines, manage recipes, schedule and execute batches, and
keep a history of all batch processing activity.
Flexibility in a batch process makes a plant more competitive. Improvements result
because of faster line changeovers, faster time-to-market for new products, quick
response to customer orders, accurate batch history, and consistent product quality.

Process Modeling
A batch processing plant consists of units and connections. Units process and/or
hold materials whereas connections transfer materials between units.
A unit is a vessel that can hold and/or process materials. Some units have no
processing capabilities, as is the case with bulk storage vessels, manual add
stations, and hold tanks. Other units have significant processing capabilities, as is
the case with most reactors, blenders, mixers, dryers, retorts, and washers.
Examples of processing capabilities are agitating, mixing, heating, cooling,
blending, and packaging. Other examples of units are storage tanks, silos, ovens,
fillers, washers, retorts, molders, bottlers, wrappers, cartoners and palletizers.
Connections consist of equipment such as pumps, valves, separators, condensers
and flowmeters that are necessary for transferring a product from one unit to
another.
All units that have the same processing capabilities or perform the same function
are grouped into one process class. All the connections between the same two
process classes are grouped into one transfer class. Process Classes and Transfer
Classes define a family of units and connections, respectively. The ability to group
units and connections into classes is the essence of a true flexible batch system.
Processing and transferring capabilities are defined by phases. Each phase is an
independent action that may contain a unique set of Parameters. Parameters
configure the phase based on recipe requirements. Phases can be automatically
executed by the control system or manually executed by an operator. The execution
of automatic phases is performed by the control system using Phase Logic.
Welcome to InBatch Premier Edition 5

Process Modeling is the process of identifying the processing capabilities of a plant.


There are five basic elements involved in any process modeling: defining the Units,
Process Classes (Processes), Connections, Transfer Classes (Transfers), and
Processing Capabilities. The following guidelines describe the basic steps that
youuse to develop a process model:
1. Identify each unit and its attributes.
2. Group units into process classes.
3. Identify all connections between units.
4. Define all equipment segments and assign to connections.
5. Group connections into transfer classes.
6. Define the processing capabilities of each process class (phases and
parameters).
7. Define the transferring capabilities of each transfer class (phases and
parameters).
8. Define equipment statuses.
9. Define trains.
10. Develop phase logic.
An integral part of Process Modeling involves defining specific data points called
Tags. Tags are associated with all Units, Processes, Connections, and Transfers and
allow data to move between the batch system and the control system. Tags must be
defined prior to configuring any of the batch system programs. There is no limit to
the number of tags that you can have in your batch system.

Creating and Linking Tags


When the process model is created, tags are created for units, connections,
segments, phases, and phase parameters. There are other tags created by the Tag
Interface Management (TIM) system called TIM tags. TIM tags provide an
interface to the Batch Manager and Security Manager so that Wonderware
InTouch™ and other tag-based software packages can communicate and interact
with batch execution.
Model and tags must be linked to control system addresses using the InBatch
TagLinker. The TagLinker provides automatic and manual linking of tags to
external systems

Materials Tracking Management


Materials Tracking Management includes the ability to define materials as
ingredients, intermediates, finished goods, by-products, and others. The ability to
define characteristics is provided for each material entered in the system.
The Materials Editor is used to track the location of materials that are stored in
units. This usually pertains to bulk ingredients and work-in-process (WIP)
materials. The batch management system uses the ingredient location data to
determine where to get ingredients when a batch is to be produced. This capability
allows ingredient locations to be independent of recipes and control programs, and
permits ingredients to change locations with no effect on recipe execution.
6 Chapter 1

The materials database is used by the Recipe Editor in the construction of recipes.
Only materials in the materials database can be used in recipes.
When new bulk ingredients are received, the unit location may be entered into the
materials database by plant personnel. A lot identification can also be assigned to
the material. Multiple lots of the same ingredient may be stored in the same vessel.
The batch management system updates the database when ingredients are used and
when intermediates or finished goods are produced. The database provides for easy
access to WIP information and can be used to update higher level material
management and material resource planning (MRP) systems with ingredient usage
information, WIP, and finished goods production. The Materials Editor is not an
inventory management system, but may be used to complement existing systems.

Recipe Management
InBatch Recipe Management provides the capability to create recipes according to
the guidelines outlined in the ISA S88.01 Flexible Batch Standard. A three-level
hierarchical approach to recipe building features the use of unit procedures,
operations and phases.
The batch management system provides recipe management that enables master
recipes to be constructed and edited. Master recipes are not process line specific;
rather, they are equipment independent. They can be assigned to any process line
(train) that has units belonging to the classes of process equipment defined in the
recipe. A master recipe becomes a control recipe when units, defined in the train,
are dynamically allocated and used to produce a batch.
A master recipe is not necessarily size specific, but can be scaled to the batch size
defined by production scheduling. All formula quantities for ingredients,
intermediates, by-products, and finished goods are entered as either actual
quantities or can be expressed as a percent of the total batch size. Quantities
expressed in percentages are scaled by the batch management system when the
batch is executed.
The Recipe Editor provides several text and graphical editors to develop and
maintain recipes. Recipes can be saved, retrieved, and printed. A version history
capability provides an accurate time stamped history of all changes that have been
made to the recipe.
Welcome to InBatch Premier Edition 7

Batch Management
Batch Management consists of batch scheduling, batch initialization, co-ordination
of batch execution with the control system, interfacing with operators, and batch
history activity. These concepts are further described in the following section.

Scheduling
Batch Scheduler is responsible for dispatching the batches that are ready to run to
the plant operators. Scheduling involves the manual entry of the batch
identification, master recipe, batch size, and Train into the Batch Scheduler. Each
batch that is added to the scheduler, must be initialized before it can be executed.

Batch Initialization
Each batch must be initialized before it is executed. The initialization process
involves validation of the recipe, checking if the Train exists, checking if the bulk
materials defined in the recipe are available in the Train, ensuring that the recipe’s
equipment requirements are satisfied by the Train, and verifying that the Process
Model database is compatible with the recipe.

Batch Management
Batch Manager directs and supervises the execution of each batch. Batch Manager
interprets recipes and enables the control system. Based on the recipe’s procedure,
blocks of control software referred to as phase blocks, are signaled for execution by
Batch Manager. Phase block control logic, located in the control system, is
responsible for controlling the process. Prior to starting each phase block, Batch
Manager verifies that the phase block is ready for execution. If it is ready, the phase
parameter values are downloaded to the block, and then the block is started.
Batch Manager also interfaces with Batch Display which provides a user interface
for operators. Batch Display provides information about all batches that are
initialized and/or executing in the system. Operators can put a batch or phase in
hold. They can also use the interface to restart and abort batches or phases. The
interface also allows operators to change phase parameter values, acknowledge the
execution of phases, review phase interlock statuses, and enter comments during
batch execution.
Batch Manager co-ordinates the usage of process units for each batch and is capable
of managing the simultaneous execution of a large number of batches. Each batch is
a unique entity within the batch system. In batch systems that contain simultaneous
batch executions, contention for the allocation of the same process units may occur.
Batch Manager allocates units to batches as they become available and releases the
units when they are no longer required by the batch.
Flexible batch systems using controllers must take the approach in which a
supervisory computer becomes an active participant in batch execution. The reason
for this is attributed to the very sophisticated unit management in a flexible batch
system. Most controllers do not have the ability to program a unit manager that is
capable of interpreting and executing recipe procedures that can be constructed in
the batch control system.
8 Chapter 1

A master recipe uses classes of process units, not specific units. This means that
phases pertain to a class of units, not to a specific unit. When Batch Manager
executes a master recipe, each phase encountered is converted into a unit specific
phase. This process is called master recipe to Partial control recipe conversion. The
Train assigned to produce the batch specifies all of the units that can be used. The
Batch Manager automatically converts the master recipe into a control recipe based
on the units found in the Train.

History
Batch Manager captures and stores all processing and operator activity during the
execution of a batch.

Batch History
InBatch uses Microsoft SQL Server for its historical database. This approach is
very open and allows easy access to all batch history.
The batch management system is responsible for logging all information related to
the production of a batch into the history database. This data includes all of the
events, process data, production information, material usage, operator comments,
operator actions, equipment used to produce the associated batch, and all batch-
related process alarms.

Batch Reports
InBatch uses a web-based interface for report configuration, scheduling and
viewing. The reporting system utilizes Seagate Crystal Reports Professional™ for
report development. This approach is very flexible and allows the creation of
custom reports. InBatch includes a set of predefined report templates. Utilizing
these templates, you can create customized reports to suit your specific
requirements. The batch system also allows you to configure and execute historical
reports during runtime. Report execution can also be configured to automatically
trigger during batch execution or at the end of a batch.
Welcome to InBatch Premier Edition 9

FactorySuite Integration
The following section describes the integration of InBatch with the FactorySuite.

Tag Management
InBatch interfaces to other FactorySuite components like InControl™, IOServers,
and InTouch™ software through tags. There are several InBatch components that
create, edit, link, validate, communicate and, in general, manage tags. These
components are discussed below.

Model Editor
The Model Editor is used to construct the plant model consisting on units,
connections, phases, phase parameters and segments. Tags are automatically
created using these names and are used by the InBatch to communicate with PLC or
DCS systems.

Tag Interface Management System


The Tag Interface Management (TIM) system is a tag-based interface to the Batch
Manager and the Security Manager. TIM is built on the Batch Talk API and
Security API, but instead of using C functions to interact with the manager, tags are
used. The TIM system is configurable allowing functionality to be enabled or
disabled and the number of client nodes required to be defined.

TagLinker
The tags created by the Model Editor and TIM can be linked to control system
addresses using the InBatch TagLinker. The TagLinker provides capabilities to link
tags automatically using default links, manually through the graphical user
interface, or by external interfaces using a comma separated variable format
import/export file. The TagLinker also validates Model and TIM tags.

Tag Communications
All tag communications between InBatch and FactorySuite™ is through DDE,
OPC, or the SuiteLink™ protocol. Tag communications between InBatch and
FactorySuite™ are used to interface to unit control logic, phase logic and operator
displays. There are two utilities or tools available to diagnose, troubleshoot and
exercise tags communications between InBatch and FactorySuite™.

Phase Logic Testing Tool (PhaseLogic)


The Phase Logic testing tool is used to test and exercise the handshake interface
between the Batch Manager and the control system phase logic. PhaseLogic is a
testing tool and should not be used during normal operation.

TagView Tool
The TagView tool is used to monitor InBatch tags at run time.
10 Chapter 1

Batch Alarms
Batch alarms, in InBatch, are captured, associated with a batch and stored in the
history database. The Unit or Connection Name parameter of the tag is the key in
accomplishing this objective. All alarms from a designated InTouch™ aqpplication,
are monitored by the batch control system. If the first peice of the tag name
corresponds to a unit, connection, or segment name in the InBatch model, the alarm
is automatically logged to the InBatch History and associated to the batch that was
active in the named equipment at the time of the alarm.

Windows 2000 Terminal Services Support


InBatch supports the use of Windows 2000 Terminal Services. Terminal Services
allow Batch Development Clients and Batch Runtime Client applications to be run
on a terminal server in such a way that the client computers themselves function as
terminals rather than independent systems. The server provides a multisession
environment that runs the InBatch applications and other Windows-based programs
on the clients. Since all of the batch software is resident on the terminal server, the
need to install batch client software on remote systems is eliminated. For any
application that requires upgrade or modification, Terminal Services is an efficient,
highly manageable way to provide user workstations with the most current version
of the application.

Extensibility
InBatch includes ActiveX™ objects, ActiveX Servers and a library of API
functions that allow integration with external applications such as ERP and
scheduling systems. These features allow you to develop custom applications that
access the batch control system that share and exchange formulas/recipes, materials
and production results.
InBatch uses Microsoft SQL Server for its historical database. This approach is
very open and allows easy access to all batch history.
These features make it easy for you to integrate with enterprise resource planning
(ERP) and advanced planning systems (APS), allowing InBatch to be a key link in
successful supply chain management initiatives.

Managing InBatch Configurations


When the InBatch Batch Server is installed, a default folder structure is created.
Wonderware recommends that you do not modify this structure except for one
notable exception: the configuration folder.
The InBatch configuration that you create is located in the InBatch\cfg\config_A
folder. When InBatch is running, it must find your configuration in config_A. If
you intend to develop other configurations, you should create a different folder and
move the contents of the configuration into it. For example, create a folder named
AnotherConfig, and then move the configuration files from config_A into it. You
can then copy an empty set of default database files from the dflt_cfg folder into the
config_A folder.
Welcome to InBatch Premier Edition 11

InBatch Program Menus


InBatch software is comprised of batch server, batch info server, and batch client
options that are accessed from program menus on your desktop. This section
provides a summary of the various program menu items associated with the server
and client installations. For more information on installing InBatch servers and
clients, see Chapter 2, "System Installation."

Batch Server
When you install a Batch Server, the following menu items appear in the InBatch
Server menu. Each menu item is described below.
Environment Display starts the Environment Display and initializes the
background processes necessary to access InBatch configuration and runtime
applications.
Release Notes displays a summary of user documentation issues, and known
issues and solutions for the batch system.
What’s New displays a summary of the enhancements and features that are
included in the batch system.
Uninstall Server starts the unInstallShield program which allows you to
remove the InBatch Batch server from your computer.

Batch Development Client


When you install a Batch Development Client, a set of menus are created which
contain the InBatch Development Client submenu which contains the items
described below.
Process Modeling Editor starts Process Modeling Editor on the client.
Tag Linker starts Tag Linker on the client.
Train Editor starts Train Editor on the client.
Material Editor starts Material Editor on the client.
Recipe Editor starts Recipe Editor on the client.
Batch Report starts Batch Report on the client.
Security Editor starts Security Editor on the client.
Process Log Editor starts Process Log Editor on the client.
UnInstall starts the unInstallShield program which allows you to remove the
Batch Development Client from your computer.
12 Chapter 1

Batch Runtime Client


When you install a Batch Runtime Client, a menu is created which contains the
Batch Runtime Client submenu. The following summary describes these menu
items and other installed components.
Batch Display starts Batch Display on the client.
Batch Scheduler starts Batch Schedule on the client
Batch Report starts Batch Report on the client.
unInstallShield starts the unInstallShield program which allows you to
completely remove the Batch Development Client from your computer.

Information Server
When you install an Information Server, a menu is created which contains the
BatchInfoServer submenu. The following summary describes these menu items and
other installed components.
BatchAdmin starts the Batch Admin web page which allows you to configure
certain system and web reporting settings on the batch system.
uninstall Information Server starts the unInstallShield program which allows
you to remove the Information Server software from your computer.
WWLogger starts the WWLogger application which displays all system
activity, such as starting and stopping of applications, warning messages and
error messages.

InBatch Programs
The following section summarizes the programs that are available from the
Environment Editor. Program summaries are divided into three categories:
configuration programs, runtime programs and utility programs.

Configuration Programs
The following configuration programs are used to develop and manage your batch
system.

Environment Editor (EnvEdit)


(Required) The Environment Editor is used to define the batch configuration and
runtime applications that are to be executed.

Process Modeling Editor (ModelEdit)


(Required) The Process Modeling Editor provides the capability for a user to create
a process model database. Only one Process Modeling Editor can run in a system at
a time.
Welcome to InBatch Premier Edition 13

Tag Linker Editor (TagLinker)


(Required) The Tag Linker Editor associates InBatch tags with a control system. It
is also capable of associating InBatch tags with InTouch tags. Tag Linker also
exports InBatch tags to a comma separated variable file that will ultimately
populate the InTouch tag dictionary with memory and IO tags.

Train Editor (TrainEdit)


(Required) The Train Editor is used to create production lines on which batches are
scheduled.

Materials Editor (MaterialEdit)


(Required) The Materials Editor provides the capability for a user to create and edit
a materials database both on and off-line. Multiple Materials Editors can run in a
system enabling multiple users to edit the same database simultaneously.

Recipe Editor (RecipeEdit)


(Required) The Recipe Editor provides the capability for a user to create and edit a
recipe database both on and off-line. Multiple Recipe Editors can run in a system
enabling multiple users to edit the same database simultaneously.

Process Log Editor (LogEdit)


(Optional) The Process Log Editor is used to create, edit, and print batch-related
data logging configurations.

Batch Reporting (BatchReport)


The BatchReport icon launches a web browser which provides access to the batch
system’s web-based reporting system.

Security Editor (SecEdit)


(Optional) Security Editor allows you to define batch system users, user security
levels, user access, recipe access for each user, and the capability to enable/disable
applications and functions that require security.

Run-time Programs
The following run-time programs are used by the batch system during batch
execution.

Environment Manager (EnvMngr)


(Required) The Environment Manager manages the execution of the batch run-time
applications defined with the Environment Editor.
14 Chapter 1

Environment Display (EnvDspl)


(Required) The Environment Display is a client of the Environment Manager and
provides a single interface for starting and stopping all batch system GUI
applications.

Wonderware Logger (WWLogger)


(Optional) The Wonderware Logger displays messages for all system activity for all
FactorySuite components including the Batch Server, Run-time Clients and
Development Clients such as startup, shutdown, warnings and errors as well as time
and date stamps.

Unilink Manager (UnilinkMngr)


(Required) The Unlink Manager manages inter-process communications among all
the batch system applications.

InBatch Client (IBCli)


The InBatch Client (IBCli) is the link to Wonderware’s family of I/O Servers for
communicating with plant-floor systems including Programmable Logic
Controllers (PLC) and Distributed Control Systems (DCS). IBCli communicates
with Wonderware or third party tag server components using DDE, OPC, or
SuiteLink protocols.

Memory Tag Manager (MemTagMngr)


(Required) The Memory Tag Manager is responsible for generating all InBatch
Memory Tags, including the system tags, for all the equipment in the process
model.

Simulation Manager (SimMngr)


(Required for Simulation) The Simulation Manager replaces the communication
drivers for a batch system and allows the system to be executed without control
system hardware present.

Information Manager (InfoMngr)


(Required) Information Manager provides general batch server information to
client applications.

InBatch Server (IBServ)


(Required) Runtime server application, which allows SuiteLink and DDE client
applications (e.g. InTouch), to use InBatch TIM tags and Control System tags.
Welcome to InBatch Premier Edition 15

InBatch Function Server (IBFServ)


(Required if you are using Batch Function Tags) Runtime server application, which
allows SuiteLink and DDE client applications (e.g. InTouch), to use InBatch Batch
Function Tags.

Note InBatch 8.0 is the last release that shall support the InBatch Batch Function
Tags and the TIM system. Wonderware strongly suggests you use the BatchHook
Active X automation server interface for customizing the batch engine.

Batch Manager (BatchMngr)


(Required) Batch Manager interfaces with the process model, recipe, and materials
databases. The Batch Manager works in conjunction with the Batch Scheduler and
Batch Display programs. The Batch Manager executes all recipes, manages unit
allocation, moves batch information to the history database queue, and triggers
reports.

Batch Scheduler (BatchSched)


(Optional) Batch Scheduler interfaces with the Batch Manager and is used to
construct a schedule of batches to be executed. Multiple Batch Schedulers can run
in a system.

Batch Display (BatchDspl)


(Optional) The Batch Display is a client of the Batch Manager, and provides all the
run-time information concerning the execution of a single batch. Multiple Batch
Displays can run in a system.

Process Logger Manager (LogMngr)


(Optional) The Process Logger Manager controls the data logging of any tag in the
system according to the logging configuration.

Security Manager (SecMngr)


(Optional) Security Manager is used in batch and external applications to evaluate
and respond to requests for security clearance.

Tag Interface Management (TIM) System Batch


Process (TIMBatch)
(Optional) The TIM System Batch Process manages the runtime tag interface
between the batch management system and the workstations and/or control stations
defined in the system.
16 Chapter 1

Tag Interface Management (TIM) System Function


Library Process (TIMFunc)
(Optional) The TIM System Function Library Process manages the runtime tag
interface between the batch functions and the computers and/or controllers defined
in the system.

Tag Interface Management (TIM) System Security


Process (TIMSec)
(Optional) The TIM System Security Process manages the runtime tag interface
between the security system and the computers and/or controllers defined in the
system.

Recipe Automation Server (RecipeEdit)


The Recipe Automation Server is an integral part of Recipe Editor and is installed
on the Batch Server and the Batch Development Client. (Refer to COM Technical
Reference Guide for more information.)

Batch Talk ActiveX Control (OCXBATCH.OCX)


The OCXBATCH.OCX is a background server supporting ActiveX technology that
provides all functionality provided by the Batch Talk API. This server is installed in
the Batch Server, Run-time and Development Clients. (Refer to COM Technical
Reference Guide for more information.)

Recipe Procedure SFC Active X Control


(INBATCHSFC.OCX)
The SFC ActiveX Control is a GUI-based control for the recipe procedure. This
control is installed in the Batch Server, Runtime and Development Clients. (Refer
to COM Technical Reference Guide for more information.)

Material Automation Server (MATERIALSVR.EXE)


The Material Automation Server provides access to the Material database using
ActiveX technology. This server is installed in the Batch Server, Runtime and
Development Clients. (Refer to COM Technical Reference Guide for more
information.)

Batch Function Interface Type Libraries


(BATCHOBJSRV.DLL & BATCHVBSERVER.DLL)
The Batch Function Interface Type libraries are used to construct a Batch Manager
in-process server. The libraries provide access to the key events during batch
execution. (Refer to COM Technical Reference Guide for more information.)
Welcome to InBatch Premier Edition 17

Utility Programs
The following Utility Programs are provided with the batch system to help assist
your development and runtime processes.

Phase Logic Testing Tool (PhaseLogic)


(Optional) The Phase Logic module permits individual phase execution
independent of any batch operation.

Change Password (ChgPwd)


(Optional) The Change Password application permits you to interact with the
security system from the command line in order to change a user’s password. The
Change Password utility is part of the security system.

TagView Utility (TagView)


(Optional) The TagView application permits monitoring and changing any of the
InBatch equipment or TIM tags.

InBatch Configuration Architecture


ModelEdit TrainEdit MaterialEdit RecipeEdit ReportEdit

CfgModelDB MaterialDB RecipeDB ReportDB

TagLinker EnvEdit SecEdit LogEdit

LinkDB Imp/Exp

CfgLinkDB CfgTIMDB DBLoad Files EnvDB SecurityDB LogDB

InBatch Configuration Architecture


18 Chapter 1

InBatch Runtime Architecture

RecipeEdit MaterialEdit EnvMngr

EnvDB

Lock Manager
(lm_tcp)

RecipeDB MaterialDB BatchDB .BatchWR

BatchSched
(OCXBatch) InSQL

InfoMngr BatchMngr

BatchDspl
(OCXBatch, LogMngr
SFCOCX)
SQLServer
TIMBatch
TIMSec
TIMFunc

TrainEdit UnilinkMngr

ModelDB SysTagMngr
LogDB
IBHist

SimMngr

IBCli IBServ

LinkDB TIMDB

WindowMaker/Viewer

IO Server InControl
SFC Batch InBatch Wizards InBatch Tag
Alarm/Event
ActiveX ActiveX and Script Browser
Interface (.dlls)
Object Object Functions Server
System Installation 19

C H A P T E R 2

System Installation

This section describes the installation options for your InBatch system components.

Contents
• Overview
• Setting up an InBatch 8.0 System
• Installing InBatch Information Server Components
• Installing an InBatch Server
• Installing an InBatch Runtime Client
• Installing an InBatch Development Client
• Installing Seagate Crystal Reports Professional 8.0
• Installing Internet Information Server (IIS)
• Uninstalling InBatch Software
• Upgrading from InBatch 7.x to InBatch 8.0

Overview
An InBatch system consists of several different station types. These include a Batch
Server, Information Server, and Batch Clients (Runtime and Development). Each
station will include both InBatch Software and other additional required software.
A typical batch system would consist of a Batch Server, an Information Server, and
Batch Clients that are connected over a network.
InBatch 8.0 features integration of Windows 2000 Terminal Services. Batch Clients
(Runtime and Development) can be installed on the Terminal Server. You cannot
install a Batch Server on a Terminal Server.

Note When installing InBatch applications on the Terminal Server, you must use
the Windows Control Panel - Add Programs option rather than the standalone Setup
program that is associated with an InBatch installation. By using the Control Panel /
Add Programs option, the Windows Terminal Server is able to properly manage the
multisession environment. If you do not install your applications using this method,
you will not be able to access the client applications from operator stations.
20 Chapter 2

The InBatch software is dependent on the presence of additional required software


for proper installation and operation. If the additional required software is not
present then you will be unable to install the InBatch software.
The table below summarizes the Station Type, the InBatch software requirements
and the additional required software for each Station Type.

Additional Included
Required with
InBatch Station Type Operating System Software package

Batch Server Windows NT 4.0 Server Windows NT 4.0 Yes


Service Pack 6a

Windows 2000 Server Windows 2000 No


Service Pack 2

Batch Runtime Client Windows NT 4.0 Workstation Windows NT 4.0 Yes


Service Pack 6a

InTouch 7.1 or No
InTouch 7.1.1

Windows 2000 Professional Windows 2000 No


Service Pack 2

InTouch 7.1 or No
InTouch 7.1.1

Batch Development Client Windows NT 4.0 Workstation Windows NT 4.0 Yes


Service Pack 6a

Windows 2000 Professional Windows 2000 No


Service Pack 2
System Installation 21

Additional Included
Required with
InBatch Station Type Operating System Software package

Information Server Windows NT 4.0 Server Windows NT 4.0 Yes


Service Pack 6a

Wonderware No
Industrial SQL
Server 7.1 OR
Microsoft SQL
Server 7.0 Service
Pack 3 OR Microsoft
SQL Server 2000
SP1

Seagate Crystal Yes


Reports Professional
8.0

IIS (NT Option Pack No


4)

MDAC 2.5 Service Yes


Pack 2

Windows 2000 Server Wonderware No


Industrial SQL
Server 7.1 OR
Microsoft SQL
Server 7.0 Service
Pack 3 OR Microsoft
SQL Server 2000
SP1

Seagate Crystal Yes


Reports Professional
8.0

Windows 2000 No
Service Pack 2

Note When installing additional InBatch or other FactorySuite software on the


Information Server, it is necessary to shutdown the InBatch_HistQReader and
InBatch_ReportQReader services.

Setting up an InBatch 8.0 System


The setup of an InBatch 8.0 system is a two-step process. You are required to
install prerequisite software (third-party and Wonderware FactorySuite) and
InBatch software. If the prerequisite software is not installed then you will be
unable to install the InBatch software.
22 Chapter 2

In order to install the InBatch software you must be logged on as an administrator


or as a user with administrative privileges.

Recommended Installation Sequence


1. Setup an InBatch Information Server
2. Setup the InBatch Server
3. Setup InBatch Clients (Runtime or Development)
If using the Windows 2000 Server operating system for the InBatch Information
Server then the prerequisite software should be installed in the following sequence:
1. Install Wonderware Industrial SQL Server 7.1 or Microsoft SQL Server 7.0
SP3, or Microsoft SQL Server 2000 SP1.
2. Install Seagate Crystal Reports Professional 8.0.
If using the Windows NT 4.0 Server operating system for the InBatch Information
Server then the prerequisite software should be installed in the following sequence:
1. Install Windows NT 4.0 Service Pack 6a.
2. Install Wonderware Industrial SQL Server 7.1 or Microsoft SQL Server 7.0
SP3 or Microsoft SQL Server 2000 SP1.
3. Install Seagate Crystal Reports Professional 8.0.
4. Install Internet Information Server (IIS) via NT Option Pack 4.
5. Reapply Windows NT 4.0 Service Pack 6a.
6. Install MDAC 2.5 SP2.

Note It is recommended that you upgrade older versions of Crystal Reports to


Crystal Reports Professional 8.0.

Note It is recommended that you do not install Crystal Reports (any version) on an
InBatch Server Station.

Installing InBatch Information Server


Components
These instructions assume the following:
1. The FactorySuite common components have been installed.
2. The FactorySuite Release Notes have been reviewed.
3. A network strategy has been implemented that will provide communication
between the Information Server, InBatch Server, and InBatch clients.
4. The prerequisite software has been installed.
System Installation 23

If you have not installed the prerequisite software, then a System Information
window will be displayed which will inform you of the prerequisite software
that is needed for the computer. You will not be able to install the InBatch
software until the required prerequisite software is installed.
1. Insert the InBatch CD into the CD-ROM drive. The auto-run capability of
Windows will start the setup program. If it does not, select Run from the Start
menu and enter E:\setup.exe.
2. On the Welcome to FactorySuite 2000 window, click Next.
3. On the FactorySuite 2000 License Agreement window, click Yes to accept the
license agreement.
4. When prompted to review the FactorySuite Release Notes, say No to continue
the installation.
5. On the FS2000 Products window, choose to install InBatch.
6. On the Installation Options window, choose to install the InBatch software.
7. You will be prompted to review the Release Notes. It is recommended that you
review the Release Notes, as they may contain important information regarding
the installation procedure.

To view the Release Notes click Yes. When finished reviewing the Release
Notes close them and continue to the next step in this installation procedure.
8. On the Select Components window, enable the Information Server checkbox.
Disable all other checkboxes.
9. On the SQL Server Login window, enter or select a Server.
10. On the SQL Server Login window, enable the Use SQL Server authentication
radio button.
11. On the SQL Server Login window, for the Login Name enter sa. Leave the
Password field blank.
12. On the SQL Server Login window, click OK to continue the installation.
13. On the History Database Creation window, enter the name and location of the
history database that you will use with your InBatch 8.0 system.

Note It is recommended that you create the log files on a different physical
drive than where the database files are located.

14. On the History Database Creation window, if necessary, change the Initial DB
Size.
15. On the History Database Creation window, if necessary, change the Initial Log
Size.
16. On the History Database Creation window, click Create Databases.
17. On the Archive Database Creation window, enter the name and location of the
archive database that you will use with your InBatch 8.0 system.

Note It is recommended that you create the log files on a different physical drive
than where the database files are located.
24 Chapter 2

18. On the Archive Database Creation window, if necessary, change the Initial DB
Size.
19. On the Archive Database Creation window, if necessary, change the Initial Log
Size.
20. On the Archive Database Creation window, click Create Databases.
21. On the Information Components window, accept the default Destination Folder
or browse to select a different location. Click Next to continue the installation.
22. On the InBatch Server Information window, enter the host name of your
InBatch Server in the Host1 field.

Note The host name entered in the Host1 field must match the case of the
InBatch Server’s TCP/IP host name. For the Windows 2000 operating system,
the host name is all capitalized.

Click Next to continue the installation.


23. On the Alarm System Server window, if using InTouch 7.11, enter the
computer name of the SQL Server machine where the InTouch alarm database
(WWALMDB) resides. If using an earlier version of InTouch, click Next to
continue the installation.
24. On the Setup Complete window, click OK to reboot the computer.

Note When the Information Server is installed, the Report Path is


C:\BatchInfoServer\Crystal by default. The default Report Path is always
associated with the C: drive even if the Information Server is installed on a
different drive. If the Information Server is installed on a different drive, then
the Report Path must be edited using the Config button on the Information
Server’s AdminWeb page. If you change the Report Path, the
InBatch_ReportQReader service must be restarted. Users should consider this
when creating and editing recipes that include reports. For more information on
using the AdminWeb page, see Chapter 24, "System Administration."

Note The MS SQL SQLServerAgent service should be configured to


autostart when the operating system starts. You can do this by enabling the
'Auto-start service when the OS starts' checkbox on the SQL Server Service
Manager dialog.

Installing an InBatch Server


Note If you are installing a Batch Server on Windows 2000, you must install a
Loopback adapter. Consult Windows online help for this procedure.

These instructions assume the following:


1. The FactorySuite common components have been installed.
2. The FactorySuite Release Notes have been reviewed.
3. A network strategy has been implemented that will provide communication
between the Information Server, InBatch Server, and InBatch clients.
System Installation 25

4. The prerequisite software has been installed.


If you have not installed the prerequisite software, then a System Information
window will be displayed which will inform you of the prerequisite software
that is needed for the computer. You will not be able to install the InBatch
software until the required prerequisite software is installed.
1. Insert the InBatch CD into the CD-ROM drive. The auto-run capability of
Windows will start the setup program. If it does not, select Run from the Start
menu and enter E:\setup.exe (where E: is your CD-ROM drive).
2. On the Welcome to FactorySuite 2000 window, click Next.
3. On the FactorySuite 2000 License Agreement window, click Yes to accept the
license agreement.
4. When prompted to review the FactorySuite Release Notes, say No to continue
the installation.
5. On the FS2000 Products window, choose to install InBatch.
6. On the Installation Options window, choose to install the InBatch Software.
7. You will be prompted to review the Release Notes. It is recommended that you
review the Release Notes, as they may contain important information regarding
the installation procedure.

To view the Release Notes click Yes. When finished reviewing the Release
Notes close them and continue to the next step in this installation procedure.

8. On the Select Components window, enable the Batch Server checkbox. The
Batch Clients checkbox will also be enabled since the Batch Client
applications are part of the Batch Server installation. Click Next to continue
the installation.
9. On the Information Server Hostname window, enter the host name of your
Information Server. Click Next to continue the installation.
10. On the InBatch Installation Location window, accept the default Destination
Folder or browse to select a different location. Click Next to continue the
installation.
11. On the Setup Complete window, click OK to reboot the computer.

Installing an InBatch Runtime Client


These instructions assume the following:
1. The FactorySuite common components have been installed.
2. The FactorySuite Release Notes have been reviewed.
3. A network strategy has been implemented that will provide communication
between the Information Server, InBatch Server, and InBatch clients.
4. The prerequisite software has been installed.
26 Chapter 2

If you have not installed the prerequisite software, then a System Information
window will be displayed which will inform you of the prerequisite software that is
needed for the computer. You will not be able to install the InBatch software until
the required prerequisite software is installed.
1. Insert the InBatch CD into the CD-ROM drive. The auto-run capability of
Windows will start the setup program. If it does not, select Run from the Start
menu and enter E:\setup.exe (where E: is your CD-ROM drive).
2. On the Welcome to FactorySuite 2000 window, click Next.
3. On the FactorySuite 2000 License Agreement window, click Yes to accept the
license agreement.
4. When prompted to review the FactorySuite Release Notes, say No to continue
the installation.
5. On the FS2000 Products window, choose to install InBatch.
6. On the Installation Options window, choose to install the InBatch Software.
7. You will be prompted to review the Release Notes. It is recommended that you
review the Release Notes, as they may contain important information regarding
the installation procedure.

To view the Release Notes click Yes. When finished reviewing the Release
Notes close them and continue to the next step in this installation procedure.
8. On the Select Components window, enable the Batch Clients checkbox.
Disable all other checkboxes.
9. Click on the Change button.
10. On the Select Sub-components window, enable the Batch Runtime Client
checkbox. Disable the Batch Development Client checkbox. Click Continue.
11. On the Select Components window, click Next to continue the installation.
12. On the Information Server Hostname window, enter the host name of your
Information Server. Click Next to continue the installation.
13. On the InBatch Runtime Client Configuration Data window, enter the host
name of your InBatch Server in the Host Name field.

Note The host name entered in the Host Name field must match the case of the
InBatch Server’s TCP/IP host name. For the Windows 2000 operating system, all
characters in the host name are capitalized.

Click Next to continue the installation.


14. On the InBatch Installation Location window, accept the default Destination
Folder or browse to select a different location. Click Next to continue the
installation.
15. On the Setup Complete window, click OK to reboot the computer.

Installing an InBatch Development Client


These instructions assume the following:
System Installation 27

1. The FactorySuite common components have been installed.


2. The FactorySuite Release Notes have been reviewed.
3. A network strategy has been implemented that will provide communication
between the Information Server, InBatch Server, and InBatch clients.
4. The prerequisite software has been installed.
If you have not installed the prerequisite software, then a System Information
window will be displayed which will inform you of the prerequisite software
that is needed for the computer. You will not be able to install the InBatch
software until the required prerequisite software is installed.
1. On the InBatch Server, create a share for C:\Program
Files\FactorySuite\InBatch directory. It is recommended that you name the
share “InBatch”.
2. On the computer where you intend to install the InBatch Development Client,
map a drive to the InBatch Server’s share for the C:\Program
Files\FactorySuite\InBatch directory.
3. Insert the InBatch CD into the CD-ROM drive. The auto-run capability of
Windows will start the setup program. If it does not, select Run from the Start
menu and enter E:\setup.exe (where E: is your CD-ROM drive).
4. On the Welcome to FactorySuite 2000 window, click Next.
5. On the FactorySuite 2000 License Agreement window, click Yes to accept the
license agreement.
6. When prompted to review the FactorySuite Release Notes, say No to continue
the installation.
7. On the FS2000 Products window, choose to install InBatch.
8. On the Installation Options window, choose to install the InBatch Software.
9. You will be prompted to review the Release Notes. It is recommended that you
review the Release Notes, as they may contain important information regarding
the installation procedure.

To view the Release Notes click Yes. When finished reviewing the Release
Notes close them and continue to the next step in this installation procedure.
10. On the Select Components window, enable the Batch Clients checkbox.
Disable all other checkboxes.
11. Click on the Change button.
12. On the Select Sub-components window, enable the Batch Development Client
checkbox. Disable the Batch Runtime Client checkbox. Click Continue.
13. On the Select Components window, click Next to continue the installation.
14. On the Information Server Hostname window, enter the host name of your
Information Server. Click Next to continue the installation.
15. On the InBatch Development Client Data window, enter the Host Name for the
InBatch Server, the letter of the local drive that was mapped to C:\Program
Files\FactorySuite\InBatch directory on the InBatch Server, and the directory
in which the InBatch Development Client files will be installed.
28 Chapter 2

Note The host name entered in the Host Name field must match the case of
the InBatch Server’s TCP/IP host name. For the Windows 2000 operating
system, the host name is all capitalized.

Click Next to continue the installation.


16. On the Setup Complete window, click OK to reboot the computer.

Installing Seagate Crystal Reports Professional


8.0
1. Insert the InBatch CD into the CD-ROM drive. The auto-run capability of
Windows will start the setup program. If it does not, select Run from the Start
menu and enter E:\setup.exe (where E: is your CD-ROM drive).
2. On the Welcome to FactorySuite 2000 window, click Next.
3. On the FactorySuite 2000 License Agreement window, click Yes to accept the
license agreement.
4. When prompted to review the FactorySuite Release Notes, say No to continue
the installation.
5. On the FS2000 Products window, choose to install InBatch.
6. On the Installation Options window, choose to install the prerequisite software.
7. On the System Installation Options window, enable the Install Crystal Reports
Professional 8.0 radio button. Click Next.
8. On the Seagate Crystal Reports Professional Edition Setup window, click Next.
9. On the Seagate Crystal Reports Professional Setup window, enable the ‘I
accept the License Agreement’ radio button. Click Next.
10. On the Seagate Crystal Reports Professional Edition Setup window, enable the
Typical radio button. Click Next to begin the installation.

Note When asked to register the software, choose to register the software later.

Installing Internet Information Server (IIS)


Note This procedure is only required if you are using the Windows NT 4.0 Server
operating system for your Information Server platform. The Windows 2000 Server
operating system includes IIS.

1. If you have not done so already, install Windows NT 4.0 Service Pack 6a.
2. Install Windows NT 4.0 Option Pack:
A. If a dialog pops up that states ‘Setup detected the Windows NT 4.0 SP4 or
greater is installed on your machine. We haven’t tested this product on
SP4’. Choose Yes to continue with the installation.
System Installation 29

B. Read the end user license agreement. Click Accept to continue the
installation.
C. Choose the Typical installation.
D. Accept the default settings for Microsoft Internet Information Server.
E. Accept the default settings for SMTP Service.
3. Reapply Windows NT 4.0 Service Pack 6a.
4. Install MDAC 2.5 Service Pack 2.
A. Insert the InBatch CD into the CD-ROM drive. The auto-run capability of
Windows will start the setup program. If it does not, select Run from the
Start menu and enter E:\setup.exe (where E: is your CD-ROM drive).
B. On the Welcome to FactorySuite 2000 window, click Next.
C. On the FactorySuite 2000 License Agreement window, click Yes to accept
the license agreement.
D. When prompted to review the FactorySuite Release Notes, say No to
continue the installation.
E. On the FS2000 Products window, choose to install InBatch.
F. On the Installation Options window, choose to install the prerequisite
software.
G. On the System Installation Options window, enable the MDAC 2.5 SP2
radio button. Click Next.
H. On the Microsoft Data Access Components 2.5 Setup window, enable the
‘Yes, I accept all of the terms of the preceding license agreement.’
checkbox. Click Next.
I. On the Microsoft Data Access Components 2.5 Setup window, click Next
to begin the installation.
J. On the Microsoft Data Access Components 2.5 Setup window, enable the
‘Let me restart the system later’ radio button. Click Finish.
K. On the FS2000 Products window, click Exit.
L. Restart the machine.

Uninstalling InBatch Software


The following section describes how to remove components from your batch
system.

InBatch Runtime Client Uninstall


1. Close any InBatch applications that may be running on the machine.
2. Select uninstall Runtime Client from the Start > Programs > Wonderware
FactorySuite > InBatch Runtime Client menu.
3. On the Confirm File Deletion window, click Yes to continue the uninstall.
30 Chapter 2

4. The Remove Programs From Your Computer dialog appears. This dialog will
provide the status of the uninstall.

Note During the uninstall the ’Removed Shared File?’ window may pop up.
Click the Yes To All button to remove all shared files.

5. At the completion of the uninstall, if it was unable to remove all items then
click on the Details button to view items that were not removed. Make note of
the items that were not removed and click OK to close the Remove Programs
From Your Computer window.
6. Remove all items that may have been left behind, including the \InBatch folder.
7. Restart the machine.

InBatch Development Client Uninstall


1. Close any InBatch applications that may be running on the machine.
2. Unmap the drive to the InBatch Server machine.
3. Select uninstall Development Client from the Start > Programs > Wonderware
FactorySuite > InBatch Development Client menu.
4. On the Confirm File Deletion window, click Yes to continue the uninstall.
5. The Remove Programs From Your Computer dialog appears. This dialog will
provide the status of the uninstall.

Note During the uninstall the Removed Shared File? Window may pop up.
Click the Yes To All button to remove all shared files.

6. At the completion of the uninstall, if it was unable to remove all items then
click on the Details button to view items that were not removed. Make note of
the items that were not removed and click OK to close the Remove Programs
From Your Computer window.
7. Remove all items that may have been left behind, including the \InBatch folder.
8. Restart the machine.

InBatch Server Uninstall


1. Perform an Exit and Shutdown from Environment Display. Close the
WWLogger.
2. Select uninstall Server from the Start > Programs > Wonderware FactorySuite
> InBatch Server menu.
3. On the Confirm File Deletion window, click Yes to continue the uninstall.
4. The Remove Programs From Your Computer dialog appears. This dialog will
provide the status of the uninstall.

Note During the uninstall the Removed Shared File? Window may pop up.
Click the Yes To All button to remove all shared files.
System Installation 31

5. At the completion of the uninstall, if it was unable to remove all items then
click on the Details button to view items that were not removed. Make note of
the items that were not removed and click OK to close the Remove Programs
From Your Computer window.
6. Remove all items that may have been left behind, including the \InBatch folder.
7. Restart the machine.

InBatch Information Server Uninstall and Cleanup


The uninstall and cleanup of the InBatch Information Server is a multi step process:
1. Uninstall the InBatch Information Server.
2. Cleanup Microsoft SQL Server.
3. Remove report folders (optional).

Uninstall the InBatch Information Server


1. Select uninstall Information Server from the Start > Programs > Wonderware
FactorySuite > InBatch > BatchInfoServer menu.
2. On the Confirm File Deletion window, click Yes to continue the uninstall.
3. The Remove Programs From Your Computer dialog appears. This dialog will
provide the status of the uninstall.

Note During the uninstall the Removed Shared File? Window may pop up.
Click the Yes To All button to remove all shared files.

4. At the completion of the uninstall, if it was unable to remove all items then
click on the Details button to view items that were not removed. Make note of
the items that were not removed and click OK to close the Remove Programs
From Your Computer window.
5. Restart the machine.
6. The Information Server uninstall does not remove the AdminWeb, ReportWeb,
and BatchWeb default websites from Microsoft Internet Information Server.
To remove the websites, use the following procedure:
A. If using the Windows NT 4.0 Server operating system: On the Start menu,
select Programs > Windows NT 4.0 Option Pack > Microsoft Internet
Information Server > Internet Service Manager. This will start the
Microsoft Management Console. Expand the Internet Information Server
icon.

If using the Windows 2000 Server operating system: On the Start menu,
select Programs > Administrative Tools > Internet Services Manager. This
will start the Internet Services Manager.
B. Expand the icon for the hostname of your Information Server.
C. Expand the icon for the Default Website.
D. Right-click AdminWeb and select the Delete option.
E. Right-click ReportWeb and select the Delete option.
32 Chapter 2

F. Right-click BatchWeb and select the Delete option.


7. Restart the machine.
8. Remove all items that may have been left behind, including the
\BatchInfoServer folder.

Microsoft SQL Server Cleanup


To remove items added to Microsoft SQL Server by the InBatch software, the
following steps should be performed:
1. Start Enterprise Manager.
2. Expand the SQL Server tree (in the left window pane).
3. Remove the batch history databases:
A. Expand the Databases tree (in the left window pane).
B. Place the mouse cursor over BatchArchive.
C. Right-click then select Delete.
D. Place the mouse cursor over BatchHistory.
E. Right-click then select Delete.
4. Remove Extended Stored Procedures:
A. Expand the Master database tree (in the left window pane).
B. Double-click Extended Stored Procedures.
C. Select xp_ListReports (in the right pane of the window).
D. Right-click then select Delete.
E. Select xp_SyncReportLog.
F. Right-click then select Delete.
5. Remove Report Categories and Jobs:
A. Expand the Management tree (in the left window pane).
B. Expand the SQL Server Agent tree.
C. Select Jobs.
D. Right-click then select All Tasks > Manage Job Categories.
E. A Job Categories window will be displayed.
F. Select BatchArchives(0).
G. Click Delete.
H. Select BatchHistory(1).
I. Click Delete.
J. Click Close.
K. Select a job with Category BatchReports (in the right window pane).
L. Right-click then select Delete.
6. Remove Batch Logins:
System Installation 33

A. Expand the Security tree (in the left window pane).


B. Select Logins.
C. Select BatchAdminUser (in the right window pane).
D. Right-click then select Delete.
E. Select BatchUser (in the right window pane).
F. Right-click then select Delete.
7. Remove the following log and data files:
A. BatchHistory_Data.mdf
B. BatchArchive_Data.mdf
C. BatchHistory_Log.ldf
D. BatchArchive_Log.ldf.

Note The cleanup instructions assume that during the SQL Database creation
portion of the Information Server install, the default names for the history and
archive databases were not changed from BatchHistory and BatchArchive
respectively.

Remove report folders (optional)


Report output files are not uninstalled nor are they archived. Report folders contain
any report file output as configured using the ReportWeb. Report folder names are
created by the user.

Upgrading from InBatch 7.x to InBatch 8.0


Please read through all instructions before performing the upgrade.

Note If you are installing InBatch Premier edition and are upgrading from 7.1 to
8.0, but you did not purchase a security license, you must copy a default security
database (from the default configuration database folder) into the config_a folder to
ensure that security will be not be enabled.

The procedure for upgrading an InBatch 7.x system to an InBatch 8.0 system is as
follows:
1. Perform the Upgrade Preparation steps detailed in the 'Upgrade Preparation'
section.
2. If you are using your existing SQL Server machine then follow the procedure
detailed in the 'Upgrading SQL Server Machine To InBatch Information
Server'.
If you are using a new SQL Server machine then setup an InBatch Information
Server per the procedure detailed in the 'Installing InBatch Information Server
Components' section.
3. Install a Batch Server per the procedure detailed in the 'Installing an InBatch
Server' section.
34 Chapter 2

4. Install Batch Clients per the procedures detailed in the 'Installing a Batch
Runtime Client' and 'Installing a Batch Development Client' sections.
5. Upgrade the configuration databases per the procedure detailed in the 'Upgrade
Configuration from InBatch 7.x to InBatch 8.0' section.

Upgrade Preparation
1. All open batches should be closed prior to running the upgrade. The batch
schedule is not preserved by the upgrade.
2. Open Environment Editor and make note of your configuration settings. If you
have customized the environment you will need to re-customize it after the
upgrade.
3. Make a backup copy of your configurations.
4. Install the InBatch 7.x software
5. If on Windows NT 4.0 SP5 or lower then you must upgrade to Windows NT
4.0 SP6a.
Use the following procedure to uninstall the InBatch 7.x software.
1. On the Batch Development Client, un-map the drives to the Batch Server.
2. Uninstall the Batch Development Client and reboot the machine.
3. Uninstall the Batch Runtime Client and reboot the machine.
4. On the Batch Server, remove the batch history DSNs
5. Uninstall the Batch Server and reboot the machine.
6. Remove any \InBatch folders that remain after the un-installs.

Upgrading SQL Server Machine To InBatch


Information Server
1. On your existing SQL Server machine, install Wonderware Industrial SQL
Server 7.1, or Microsoft SQL Server 7.0 SP3, or Microsoft SQL 2000 SP1.
2. On your existing SQL Server machine, install Seagate Crystal Reports
Professional 8.0.
3. On your existing SQL Server machine, install Internet Information Server (IIS)
via NT Option Pack 4.
4. On your existing SQL Server machine, reapply Windows NT 4.0 Service Pack
6a.
5. On your existing SQL Server machine, install MDAC 2.5 Service Pack 2.
6. If you plan to convert your InBatch 7.0 history databases then follow the
procedure detailed in the 'Upgrade InBatch 7.0 History Database to InBatch
8.0' section.

If you do not plan to convert your InBatch 7.0 history databases then follow
the procedure detailed in the 'Installing InBatch Information Server
Components" section.
System Installation 35

7. If you plan to convert your InBatch 7.1 history databases then follow the
procedure detailed in the 'Upgrade InBatch 7.1 History Database to InBatch
8.0' section.

If you do not plan to convert your InBatch 7.1 history databases then follow the
procedure detailed in the "Installing InBatch Information Server Components"
section.

Upgrade InBatch 7.0 History Database to InBatch


8.0
1. If your Batch archive database is marked read-only you will need to remove
this restriction.
2. On the machine to be used as the InBatch 8.0 Information Server, create the
C:\Temp directory, if it does not already exist.
3. On the machine to be used as the InBatch 8.0 Information Server, copy the
\convert folder from the InBatch CD to the local drive.
4. On the machine to be used as the InBatch 8.0 Information Server, copy the
\InBatch\SQL71_Install folder from the InBatch CD to the local drive.
5. On the machine to be used as the InBatch 8.0 Information Server, run the
IB71_SQL_Install.exe that is located in the \InBatch\SQL71_Install folder.
6. On the SQL Server Login window, enter or select the Server.
7. On the SQL Server Login window, enable the Use SQL Server authentication
radio button.
8. On the SQL Server Login window, for the Login Name, enter sa. Leave the
Password field blank.
9. On the SQL Server Login window, click OK to continue the installation.
10. On the History Database Creation window, enter the name and location of the
History database that you will use with your InBatch 8.0 system.

Note It is recommended that you create the log files on a different physical
drive than where the database files are located.

11. On the History Database Creation window, if necessary, change the initial DB
size.
12. On the History Database Creation window, if necessary, change the initial log
size.
13. On the History Database Creation window, click Create Databases.
14. On the Archive Database Creation window, enter the name and location of the
Archive database that you will use with your InBatch 8.0 system.

Note It is recommended that you create the log files on a different physical
drive than where the database files are located.

15. On the Archive Database Creation window, if necessary, change the initial DB
size.
36 Chapter 2

16. On the Archive Database Creation window, if necessary, change the initial log
size.
17. On the Archive Database Creation window, click Create Databases.
18. On the machine to be used as the InBatch 8.0 Information Server, start
Microsoft SQL Server Enterprise Manager.
19. On the Tools menu, select Data Transformation Services and then point to
Import Data.
20. On the DTS Import Wizard, click Next.
21. On the next DTS Import Wizard dialog, select the Source drop-down arrow
and select 'Microsoft ODBC for SQL Server'.
22. Select the Server that contains the InBatch 7.0 History database that you want
to convert.
23. Click the Database drop-down arrow, and select the database that you want to
convert.
24. Enable the 'Use SQL Server authentication' radio button, and enter the
Username and Password as required. Click Next.
25. Click the Destination drop-down arrow and select 'Microsoft OLE DB
Provider for SQL Server'.
26. Select the Server that you will be using as the InBatch 8.0 Information Server.
27. Click the Database drop-down arrow, and select the history database that was
created by running IB71_SQL_Install.exe. Click Next.
28. Choose to copy tables.
29. Enable all of the Source table checkboxes except for the CodeTable and
UserProfile.
30. In the Source Table column, select InBatchAdmin, click the Destination Table
drop-down arrow, and then select BatchAdmin.
31. In the Source Table column, select the BatchLogID table.
32. In the Transform column, click the ellipses button for BatchLogID.
33. On the Column Mappings tab, for Recipe_Type and Recipe_State Destination,
set the Source to <ignore>.
34. Ensure that all Source and Destination Names (except for Recipe_Type and
Recipe_State) are the same. To change the mapping, click the entry in the
Source column and then select the field, from the drop down list, that matches
the entry in the Destination column.
35. Click OK.
36. Click Next.
37. Enable the 'Run Immediately' and 'Save DTS' checkboxes.
38. Click Next.
39. A default Name and Description are provided. You can modify these entries.
40. Enable the 'Use SQL Server authentication' radio button.
41. For the Username enter sa. Leave the password blank.
System Installation 37

42. Disable the 'Use SQL2000 encryption' checkbox.


43. Click Next.
44. Click Finish.
45. The Executing DTS Package window will indicate the progress of your
database conversions. If you have carefully selected all of the SQL Server
configuration parameters and table mappings, a message will be displayed
indicating that the conversion was successful. If there are errors, a descriptive
error message will be displayed. If errors occur, carefully examine the results,
and then attempt the conversion again.
46. Copy \convert\xp_ListReports.dll to \MSSQL7\binn.
47. Copy \convert\xp_SyncReportLog.dll to \MSSQL7\binn.
48. Run the convert711.bat file that is located in the \convert folder. The syntax for
running the file is as follows:

Convert711 <ServNM> <HistDB> <ArchDB>

where

<ServNM> is the name of the station where SQL Server resides.


This is required. Use the name of the machine being used for the
InBatch Information Server.

<HistDB> is the name of the history database. By default, the name is


BatchHistory, and the command will use the default name if it is not
provided. Use the name of the history database created by running
IB71_SQL_Install.exe.

<ArchDB> is the name of the archive database. By default, the name is


BatchArchive, and the command will use the default name if it is not
provided. Use the name of the archive database created by running
IB_SQL_Install.exe.

Example:

"Convert711 InBatch_SQL BatchHistory BatchArchive"


49. Run the convert80.bat file that is located in the \convert folder. The syntax for
running the file is as follows:
38 Chapter 2

Convert80 <ServNM> <HistDB> <ArchDB>

where

<ServNM> is the name of the station where SQL Server resides.


This is required. Use the name of the machine being used for the
InBatch Information Server.

<HistDB> is the name of the history database. By default, the name is


BatchHistory, and the command will use the default name if it is not
provided. Use the name of the history database created by running
IB71_SQL_Install.exe.

<ArchDB> is the name of the archive database. By default, the name is


BatchArchive, and the command will use the default name if it is not
provided. Use the name of the archive database created by running
IB71_SQL_Install.exe.

Example:

"Convert80 InBatch_SQL BatchHistory BatchArchive"


50. On the machine to be used as the InBatch 8.0 Information Server, bring up the
Control Panel. (In the steps that follow you will be configuring the
BatchHistory DSN. )
51. In the Control Panel window, double-click the ODBC Data Sources icon.
52. In the ODBC Data Source Administrator window, select the System DSN tab.
Click Add.
53. In the Create New Data Source window, select SQL Server for the driver.
Click Finish.
54. In the Create a New Data Source to SQL Server window, enter BatchHistory
for the Name of the data source.
55. Select the SQL Server. Click Next.
56. Enable the 'With SQL Server authentication using a login ID and password
entered by the user' radio button.
57. Click Client Configuration.
58. In the Edit Network Library Configuration window, enable the 'TCP/IP' radio
button. Click OK to close the window.
System Installation 39

59. Enable the 'Connect to SQL Server to obtain default settings for the additional
configuration options' checkbox.
60. Enter a Login ID and Password for an account with administrative privileges.
Default Login ID is 'sa' and Password is blank. Click Next.
61. Enable the 'Change the default database to:' checkbox and then select your
batch history database. Click Next.
62. When finished, click OK on the ODBC Data Source Administrator window.
63. On the machine to be used as the InBatch 8.0 Information Server, insert the
InBatch CD into the CD-ROM drive. The auto-run capability of Windows will
start the setup program. If it does not, select Run from the Start menu and enter
E:\setup.exe (where E: is your CD-ROM drive).
64. On the Welcome to FactorySuite 2000 window, click Next.
65. On the FactorySuite 2000 License Agreement window, click Yes to accept the
license agreement.
66. When prompted to review the FactorySuite Release Notes, say No to continue
the installation.
67. On the FS2000 Products window, choose to install InBatch.
68. On the Installation Options window, choose to install the InBatch software.
69. You will be prompted to review the Release Notes. It is recommended that you
review the Release Notes, as they may contain important information regarding
the installation procedure.

To view the Release Notes click Yes. When finished reviewing the Release
Notes close them and continue to the next step in this installation procedure.
70. On the Select Components window, enable the Information Server checkbox.
Disable all other checkboxes.
71. Click the Change button.
72. On the Select Sub-components window, enable the Information Server
Components checkbox. Disable all other checkboxes. Click Continue.
73. On the Select Components window, click Next.
74. On the Information Components window, accept the default Destination Folder
or browse to select a different location. Click Next to continue the installation.
75. On the InBatch Server Information window, enter the host name of your
InBatch Server in the Host1 field.

Note The host name entered in the Host1 field must match the case of the
InBatch Server's TCP/IP host name. For the Windows 2000 operating system,
the host name is all capitalized

Click Next to continue the installation.


76. On the Alarm System Server window, if using InTouch 7.11, enter the
computer name of the SQL Server machine where the InTouch alarm database
(WWALMDB) resides. If using an earlier version of InTouch, click Next to
continue the installation.
77. On the Setup Complete window, click OK to reboot the computer.
40 Chapter 2

Note When the Information Server is installed, the Report Path is


C:\BatchInfoServer\Crystal by default. The default Report Path is always
associated with the C: drive even if the Information Server is installed on a
different drive. If the Information Server is installed on a different drive, then
the Report Path must be edited using the Config button on the Information
Server's AdminWeb page. If you change the Report Path, the
InBatch_ReportQReader service must be restarted. Users should consider this
when creating and editing recipes that include reports. For more information
on using the AdminWeb page, see Chapter 24, "System Administration."

Upgrade InBatch 7.1 History Database to InBatch


8.0
1. If your Batch archive database is marked read-only you will need to remove
this restriction.
2. On your existing SQL Server machine, copy the \convert folder from the
InBatch CD to the local drive.
3. Copy \convert\xp_ListReports.dll to \MSSQL7\binn.
4. Copy \convert\xp_SyncReportLog.dll to \MSSQL7\binn.
5. Run the convert711.bat file that is located in the \convert folder. The syntax for
running the file is as follows:

Convert711 <ServNM> <HistDB> <ArchDB>

where

<ServNM> is the name of the station where SQL Server resides.


This is required.

<HistDB> is the name of the history database. By default, the name is


BatchHistory, and the command will use the default name if it is not
provided.

<ArchDB> is the name of the archive database. By default, the name is


BatchArchive, and the command will use the default name if it is not
provided.

Example:

"Convert711 InBatch_SQL BatchHistory BatchArchive"


System Installation 41

6. Run the convert80.bat file that is located in the \convert folder. The syntax for
running the file is as follows:

Convert80 <ServNM> <HistDB> <ArchDB>

where

<ServNM> is the name of the station where SQL Server resides.


This is required.

<HistDB> is the name of the history database. By default, the name is


BatchHistory, and the command will use the default name if it is not
provided.

<ArchDB> is the name of the archive database. By default, the name is


BatchArchive, and the command will use the default name if it is not
provided.

Example:

"Convert80 InBatch_SQL BatchHistory BatchArchive"

7. On your existing SQL Server machine, bring up the Control Panel. (In the steps
that follow you will be configuring the BatchHistory DSN.)
8. In the Control Panel window, double-click the ODBC Data Sources icon.
9. In the ODBC Data Source Administrator window, select the System DSN tab.
Click Add.
10. In the Create New Data Source window, select SQL Server for the driver.
Click Finish.
11. In the Create a New Data Source to SQL Server window, enter BatchHistory
for the Name of the data source.
12. Select the SQL Server. Click Next.
13. Enable the 'With SQL Server authentication using a login ID and password
entered by the user' radio button.
14. Click Client Configuration.
15. In the Edit Network Library Configuration window, enable the 'TCP/IP' radio
button. Click OK to close the window.
42 Chapter 2

16. Enable the 'Connect to SQL Server to obtain default settings for the additional
configuration options' checkbox.
17. Enter a Login ID and Password for an account with administrative privileges.
Default Login ID is 'sa' and Password is blank. Click Next.
18. Enable the 'Change the default database to:' checkbox and then select your
batch history database. Click Next.
19. When finished, click OK on the ODBC Data Source Administrator window.
20. On your existing SQL Server machine, insert the InBatch CD into the CD-
ROM drive. The auto-run capability of Windows will start the setup program.
If it does not, select Run from the Start menu and enter E:\setup.exe (where E:
is your CD-ROM drive).
21. On the Welcome to FactorySuite 2000 window, click Next.
22. On the FactorySuite 2000 License Agreement window, click Yes to accept the
license agreement.
23. When prompted to review the FactorySuite Release Notes, say No to continue
the installation.
24. On the FS2000 Products window, choose to install InBatch.
25. On the Installation Options window, choose to install the InBatch software.
26. You will be prompted to review the Release Notes. It is recommended that you
review the Release Notes, as they may contain important information regarding
the installation procedure.

To view the Release Notes click Yes. When finished reviewing the Release
Notes close them and continue to the next step in this installation procedure
27. On the Select Components window, enable the Information Server checkbox.
Disable all other checkboxes.
28. Click the Change button.
29. On the Select Sub-components window, enable the Information Server
Components checkbox. Disable all other checkboxes. Click Continue.
30. On the Select Components window, click Next.
31. On the Information Components window, accept the default Destination Folder
or browse to select a different location. Click Next to continue the installation.
32. On the InBatch Server Information window, enter the host name of your
InBatch Server in the Host1 field.

Note The host name entered in the Host1 field must match the case of the InBatch
Server's TCP/IP host name. For the Windows 2000 operating system, each
character of the host name is capitalized.

Click Next to continue the installation.


33. On the Alarm System Server window, if using InTouch 7.11, enter the
computer name of the SQL Server machine where the InTouch alarm database
(WWALMDB) resides. If using an earlier version of InTouch, click Next to
continue the installation.
34. On the Setup Complete window, click OK to reboot the computer.
System Installation 43

Note When the Information Server is installed, the Report Path is


C:\BatchInfoServer\Crystal by default. The default Report Path is always
associated with the C: drive even if the Information Server is installed on a different
drive. If the Information Server is installed on a different drive, then the Report
Path must be edited using the Config button on the Information Server's AdminWeb
page. If you change the Report Path, the InBatch_ReportQReader service must be
restarted. Users should consider this when creating and editing recipes that include
reports. For more information on using the AdminWeb page, see Chapter 24,
"System Administration."

Upgrade Configuration from InBatch 7.x to InBatch


8.0
In order to use configurations created with InBatch 7.x in InBatch 8.0, the
configuration must be converted. Failure to convert the configuration may render
the InBatch 8.0 system unusable.

Database Conversion Requirement

Batch No conversion required

Environment Required
Note You must manually reconfigure the Environment
database after the conversion.

History Required

Link No conversion required

Materials Required
Note Material characteristic values are converted to real
data types.

Process Logger Required

Process Model Required

Recipe Required

Report Required
Note You will need to copy any customized Crystal Report
files to the Information Server. Do not overwrite any of the
Crystal Report files that were installed as part of the
Information Server software.

Security Required

Tag Interface No conversion required


Management
(TIM)

Note The upgrade of the configuration is performed on the Batch Server.


44 Chapter 2

1. Start the Environment Display and then perform an Exit and Shutdown.
2. Close the WWLogger.
3. Select Run from the Start menu and enter C:\Program
Files\FactorySuite\InBatch\bin\CvtMaster.exe.
4. Acknowledge the message that informs you to backup your configuration and
ensure that the Information Server is operating properly.
5. Click the Configuration button to browse and select the location of your
configuration.

Note If you are converting a configuration that contains a Report database, the
conversion utility will require that you enter a path name for the location on the
Information Server where report output files will be stored. It is recommended that
you create a folder on the Information Server for this purpose.

6. If applicable, enter a path name for the location on the Information Server
where report output files will be stored.
7. Click Convert.

When the conversion has finished, a window will display the databases that
were converted, those that failed to be converted or were skipped, and those
that were up to date. A detailed log of the conversion operations is contained
in the DbCvt.txt file. This file is located in the configuration folder specified
earlier.
8. Copy CfgModelDB.dat, CfgModelDB.dbd, and CfgModelDB.key from the
converted configuration to C:\Program
Files\FactorySuite\InBatch\cfg\config_A.
9. Copy ModelDB.dat, ModelDB.dbd, and ModelDB.key from the converted
configuration to C:\Program Files\FactorySuite\InBatch\cfg\config_A.
10. Copy MaterialDB.dat, MaterialDB.dbd, and MaterialDB.key from the
converted configuration to C:\Program
Files\FactorySuite\InBatch\cfg\config_A.
11. Copy RecipeDB.dat, RecipeDB.dbd, and RecipeDB.key from the converted
configuration to C:\Program Files\FactorySuite\InBatch\cfg\config_A.
12. Copy SecurityDB.dat, SecurityDB.dbd, and SecurityDB.key from the
converted configuration to C:\Program
Files\FactorySuite\InBatch\cfg\config_A.

Note It is assumed that C:\Program Files\FactorySuite\InBatch\cfg\config_A


contains empty databases. If it does not, it is recommended that the contents of
\config_A be deleted and the contents of \dflt_cfg be copied to \config_A.

Note If you had Link and Process Logger databases configured in InBatch 7.x
then CfgLinkDB.dat, CfgLinkDB.dbd, CfgLinkDB.key, LinkDB.dat, LinkDB.dbd,
LinkDB.key, LoggerDB.dat, LoggerDB.dbd, and LoggerDB.key may also be
copied to the \config_A directory.
Environment Management System 45

C H A P T E R 3

Environment Management
System

The Environment Management System manages the execution of applications


within the batch system. The system consists of the Environment Editor,
Environment Manager, and Environment Display. Use Environment Editor to
configure the applications that will run on the batch server. Environment Manager
starts and stops applications, manages databases and provides system control.
Environment Display is a graphical user interface (GUI) for visualizing and
interacting with the batch system.
The Environment Management System monitors the interdependencies of system
applications to ensure correct start-up and shutdown sequences. The Environment
Management System also allows you to configure the operation of custom
applications.

Contents
• Overview
• Using Environment Display
• Starting and Stopping Applications from Environment Display
• Using Environment Editor
• Adding Applications to the Environment
• Assigning Application Parameters
• User Defined (Other) Applications
• Using Environment Manager
• Automatic Start-up and Shutdown of Runtime
46 Chapter 3

Overview
You can use Environment Editor to define the applications that run on a Batch
Server. An Environment is configured by selecting applications from a list of
available applications. The editor then sorts and displays the list of selected
applications in the order that they will be executed. This sequential ordering is
necessary due to interdependencies of batch applications.
Environment Manager determines which applications will be displayed in the
Environment Display by reading the environment database. Environment Manager
ensures that the proper interdependent applications are running and displays an
appropriate error message otherwise. For example, you want to add Batch Display
to the Environment Display. The operation of Batch Display requires the server
capability of Batch Manager. Therefore, the editor must ensure that Batch Manager
is selected or already in the system.
Environment Display is the user interface to the batch server applications.
Operators typically use Environment Display to view the status of background
applications and start foreground applications.
The Environment Management System provides an environment for editing an off-
line copy of the Process Model database (CfgModelDB). This capability allows you
to edit an off-line copy of the model while the batch system continues normal
runtime operation. After you complete your changes to the model, you can
shutdown the runtime system, update the configuration process model database
with the runtime process model database, and then restart the system.

Environment Management System Architecture


Environment Management System 47

Using Environment Display


Environment Display is the graphical user interface between operators and the
applications running in the batch management system. Use Environment Display
for starting batch system applications, configuring the environment system and
viewing the status of background applications.

To start Environment Display:


1. On the Windows Start menu, click Programs, point to Wonderware
FactorySuite, InBatch Server, and then point to Environment Display.

2. The Environment Display window will appear.

Note When Environment Display is started, the Environment Manager


(EnvMngr), Lock Manager (lm_tcp) History Queue Manager (HistQMngr), and
Security Manager (SecMngr) applications are started in the background.

3. When the Environment Display starts it also starts the Wonderware Logger.
The Wonderware Logger displays messages for all system activity for the
Batch Server, Runtime Clients and Development Clients such as startup,
shutdown, warnings and errors along with time and date stamps. If the
Wonderware Logger is closed, it can be restarted by selecting the Windows
Start menu, click Programs, point to Wonderware FactoySuite, Common
and then point to WWLogger.
48 Chapter 3

A typical Wonderware Logger window is shown here.

File Menu
The Environment Display File menu provides system functions for the
Environment Display application.

File/Exit
Use the File/Exit menu to stop the Environment Display application. Selecting
File/Exit does not stop background runtime applications or services.

To stop the Environment Display:


Click File and then select Exit.

File/Terminate App
Use the File/Terminate menu to terminate applications that failed to start or stop in
the batch system (default timeout is two minutes). The File/Terminate App option
can only be selected when applications are available for termination.
Environment Management System 49

To terminate an application:
1. From the Applications list, select the application(s) you want to terminate.
2. Click Terminate.
3. Click Close.

Note By default, Environment Manager waits 120 seconds before declaring that
an application is available for termination. It may be necessary to increase this
system timeout value. For more information on changing the default system
timeout value, see ‘Environment System Timeout’ later in this section.

File/Exit and Shutdown


Use the File/Exit and Shutdown menu to stop the Environment Display,
Environment Manager, Security Manager, History Queue Manager, database Lock
Manager (lm_tcp), all active batch system applications (e.g. Model Editor, Recipe
Editor) and all active runtime applications.

To Exit and Shutdown the Batch System:


1. Click File and then Exit and Shutdown.
2. The batch system will begin the process of stopping the runtime system. If
configuration applications such as Model Editor or Recipe Editor are running,
you will be prompted as to whether or not you want to stop them.

Note An Exit and Shutdown completely stops the batch system. If you are not
logged on to the operating system with administration privileges, you will not be
able to restart Environment Manager or Environment Display. To restart the batch
system, a user with proper administrative privileges must log on. To avoid this
situation you can configure security for the Environment Display Exit & Shutdown
function using the security system.

For more information on configuring security, see Chapter 13, "Security System."

Update Menu
The Environment Display Update menu allows you to modify the environment
(runtime and configurations) based on changes that you have made to the batch
system.

Update/Environment
Use the Update/Environment command to re-initialize the Environment Manager
and Display based on the environment database configuration. Changes that you
make to the environment database with the Environment Editor are not active until
you update the environment.

Note You cannot update the environment when any other batch application is
running. This includes applications started on a batch client that access your batch
server. All batch applications, including the runtime system, must be shutdown
before the update can be successfully executed.
50 Chapter 3

To Update the Environment:


1. From the Environment Display file menu, select Update and then click
Environment.
2. The Environment Display message box will appear, prompting you to
proceed with the update.
3. Click Yes on the message box.

Update/Runtime
The environment system provides you with the ability to make off-line changes to
process models and tag linker databases. Use Update/Runtime to copy the
contents of the process model, link, and TIM configuration databases into the
corresponding runtime databases. Changes that you make to a process model are
not active until you update the runtime databases. You cannot perform an
Update/Runtime on a running system.

To Update the Runtime:


1. From the Environment Display file menu, select Update and then click
Runtime.
2. A confirmation message will appear advising that the runtime databases in
your system are going to be overwritten by the configuration databases. The
date and time are displayed in the message so that you can determine whether
or not you want to proceed with the update.

WARNING! The contents of the runtime process model, link, and TIM databases
will be overwritten by the configuration databases when you perform a runtime
update. You should backup your runtime databases before proceeding.

3. Click Yes to update the runtime databases.

Update/Configuration
The environment system provides you with the ability to discard any off-line
changes to the process model and tag linker databases. Use Update/Configuration
to copy the contents of the process model, link, and TIM runtime databases into the
corresponding configuration databases. You cannot perform an
Update/Configuration on a running system.

To Update the Configuration:


1. From the Environment Display file menu, select Update and then click
Configuration.
2. A confirmation message will appear advising that the configuration databases
in your system are going to be overwritten by the runtime databases. The date
and time are displayed in the message so that you can determine whether or not
you want to proceed with the update.

WARNING! The contents of the configuration process model, link, and TIM
databases will be overwritten by the runtime databases when you update the
configuration. You should backup your databases before proceeding.
Environment Management System 51

3. Click Yes to update the configuration databases.

View Menu
The Environment Display View menu allows you to monitor the operation of
background applications that were started by the batch system.

View/Status
Use the View/Status menu to display the System Application Status window. This
window displays the current status of the background applications that were
automatically started with the Environment Display. Each application listed in the
window must be “Running” in order to initiate any of the associated configuration
and runtime applications.

To View the Status of System Applications:


1. From the Environment Display file menu, select View and then click Status.
2. The System Application Status window appears.

The Database Manager entry refers to the database lock manager (lm_tcp). The
History Queue entry refers to the History Queue Manager. The Security
System entry refers to the Security Manager. These applications are executed
as an operating system service and are started by the Environment Manager.

Note The System Application status window will show the status of the
Redundancy Manager if redundancy is being used.

3. Click Close.

Help Menu
The Environment Display Help menu contains commands that provide you with
access to the online help system and information regarding product version.

Help/Help Topics
Use the Help/Help Topics command to display the help contents for Environment
Display.
52 Chapter 3

To View the Help Topics for Environment Display:


1. From the Environment Display file menu, select Help and then click
Help Topics.
2. The Help Topics window will appear.

Help/About Environment Display


Use the Help/About command to view information regarding program version.

To View Help About Topics for Environment Display:


1. From the Environment Display file menu, select Help and then click Help
About Environment Display.
2. The About Batch Environment Display window will appear.
3. Click OK to close the window.

To View FactorySuite Licensing Information:


1. From the Environment Display file menu, select Help and then click Help
About Environment Display.
2. The About InBatch Environment Display window will appear.
3. Click View License.
4. The License Utility window will appear.

Note Using the License utility is beyond the scope of this User's Guide.

For more information on FactorySuite Licensing, see your FactorySuite


Administrator’s Guide

Starting and Stopping Applications from


Environment Display
Batch System Runtime applications can be started and shutdown using the
Environment Display or they can be configured to automatically start or shutdown.
Use Environment Display to configure the start-up of GUI-based and runtime
applications. If you have a plant in which you need unattended shutdown or startup
your batch runtime system, see “Automatic Start-up and Shutdown of Runtime”
later in this section.
Configuration and runtime applications that a have a GUI, and were configured in
the environment editor, appear as icons in the environment display. All of the
applications in the Environment Display are started by double-clicking the
application’s icon.
Configuration applications start when you select them. Runtime applications start
only if the corresponding server is running. For example, Batch Scheduler and
Batch Display will not start if Batch Manager is not running. If you attempt to start
a runtime application and it’s server is not started, an error message will be
displayed.
Environment Management System 53

Application Icons
Configuration and runtime applications that have a user interface and were
configured in the environment editor will appear as icons in the environment
display. All of the applications in the Environment Display are started by double-
clicking the application's icon.

Runtime Applications
Runtime applications can be started and stopped from the Environment Display.
Runtime applications run as Windows NT services. You can start and stop
individual or multiple applications.

To Start All Runtime Applications:


1. On the Environment Display, click the Runtime button.
2. The Runtime Application Display appears.

3. Click Start All.


4. All the runtime applications are started in the same order in which they are
listed.
When an application is started, a message indicating the application’s status is
displayed in the Status column of the Runtime Application Display. As each
application starts, its Status will change from Stopped to Starting, and then
finally, to Running.

To Stop All Runtime Applications:


1. On the Runtime Application Display, click Stop All.
54 Chapter 3

2. All the runtime applications are stopped in the same order in which they were
started.
When an application is stopped, a message indicating the application’s status is
displayed in the Status column of the Runtime Application Display. As each
application stops, its Status will change from Started to Stopping, and then,
finally to Stopped.
An error message will be displayed if you attempt to stop an application that
has a interdependent client application running.

To Start a Single Runtime Application:


1. In the Runtime Application Display, Application list, select the application
that you want to start.
2. Click Start App.
When the application is started, a message indicating the application’s status is
displayed in the Status column of the Runtime Application Display. As the
application starts, its Status will change from Stopped to Starting, and then
finally, to Running.
Environment Manager will ensure that the appropriate server applications are
running when you attempt to start a single application. If the required servers
are not running for the selected application, an error message is displayed.

To Stop a Single Runtime Application:


1. In the Runtime Application Display, Applications list, select the application
that you want to stop.
2. Click Stop App.
When the application is stopped, a message indicating the application’s status
is displayed in the Status column of the Runtime Application Display. As the
application stops, its Status will change from Started to Stopping, and then,
finally to Stopped. An error message will be displayed if you attempt to stop an
application that has an interdependent client application running.
Environment Management System 55

Using Environment Editor


Use Environment Editor to configure individual applications within the batch
system. You can use Environment Editor to add or remove applications from the
environment management system and configure application parameters. You can
also configure the applications within Environment Display that are controlled by
Environment Manager.

To start Environment Editor:


1. On the Environment Display window, click the Environment button.
2. The Environment Editor window will appear.

File Menu
The Environment Editor File menu provides system functions for the Environment
Editor application.

File/Exit
Use the File/Exit menu to close Environment Editor.

To Close Environment Editor:


On the Environment Editor menu bar, click File and then select Exit.

Edit Menu
The Environment Editor Edit menu allows you to view and modify environment
system parameters.

Edit/System Parms
Use the Edit/System Parms menu to modify the parameter values assigned to
background service applications (e.g. Lock Manager and Redundancy Manager)
that are started prior to all applications.

To Edit System Parameters:


1. On the Environment Editor menu bar, click Edit and then select System
Parms.
2. The Edit System Parameters window will appear.

3. From the Parameters list, select the item that you want to edit.
56 Chapter 3

4. In the Value field, enter the required value in accordance with the table below.

Parameter Description
Max locked files The maximum number of database files under lock
manager control. Default is 256.
Max locks in queue The maximum size of the file lock request queue. Default
is 128.
Max users The maximum number of users lock manager may control.
Default is 32.
Redundancy Time-out The number of seconds that the backup computer will wait
when a communication failure occurs before it becomes a
master. (Applicable to redundant systems only).
User ID Time-out The number of seconds that the current User ID will be
retained before it must be reentered. The default value of 0
retains the User ID indefinitely.
Number Recipe Levels Number of levels to the recipe procedure for InBatch
Premier Edition Only. Valid values are 2 and 3. Default is
3. This parameter is ignored by InBatch FlexFormula
Edition.
Allow Sync Approvals Allows the Recipe Edit user to optionally retain all recipe
approvals when syncing recipes. Options are 1 or 0. A
value of 0 will completely remove this feature from
RecipeEdit. Default is 1.

Note The table lists all of the available parameters.

5. Click Change.
If you do not click Change, the values that you entered will not be updated.
6. Click Close to close the Edit System Parameters window.

Note You must shutdown and restart your batch system in order for system
parameter changes to take effect.

Help Menu
The Environment Editor Help menu contains commands that provide you with
access to the online help system and information regarding product version.

Help/Help Topics
Use the Help/Help Topics command to display the help contents for Environment
Editor.

To View Help Topics for Environment Editor:


1. From the Environment Editor file menu, select Help and then click Help
Topics.
2. The Help Topics window will appear.
Environment Management System 57

Help/About Environment Editor


Use the Help/About command to view Version information.

To View About Help Topics for Environment Editor:


1. From the Environment Editor file menu, select Help and then click Help
About Environment Editor.
2. The About Environment Editor window will appear.
3. Click OK to close the window.

To View FactorySuite Licensing Information:


1. From the Environment Editor file menu, select Help and then click Help
About Environment Editor.
2. The About InBatch Environment Editor window will appear.
3. Click View License.
4. The License Utility window will appear.

Note Using the License utility is beyond the scope of this User's Guide.

For more information on FactorySuite Licensing, see your FactorySuite


Administrator’s Guide

Adding Applications to the Environment


Use the Environment Editor Add Applications window to add batch system
applications and user-defined applications to the environment.
You can also add multiple instances of some configuration and batch client
applications running on a batch server. Some runtime manager applications cannot
have multiple instances. If you attempt to add an instance of a runtime server that is
present in the environment, an error message will be displayed.
When you have multiple instances of configuration and batch client applications
running on a batch server, you must specify a unique name for each. Instance names
(12-char max) should describe the purpose of the application.
Application names, including instances, appear as icon labels in the Environment
Display. They are also listed in the Runtime Application Display.

Note When you add an instance, a unique name is automatically assigned. You
can use Environment Editor to change the name. Instance names within the batch
system must be unique. If they are not, an error message will appear.

Adding Applications
To Add an Application:
1. On the Environment Editor window, click the Add button.
2. The Add Application window will appear.
58 Chapter 3

The Applications list contains all of the batch system and user defined
applications that can be added.
3. In the Applications list, select the item that you want to add.
4. Click Apply to add your selection to Environment Editor’s Application list.
Clicking OK also adds an application; however, the Add Applications
window will close.
5. Click Close to close the Add Applications window.

Note Applications in the Environment Editor Application list are shown in the
sequence in which the batch system will execute them.

To Add an Instance of an Application:


1. On the Environment Editor window, click the Add button.
2. The Add Application window will appear.
Environment Management System 59

The Applications list contains all of the batch system and user defined
applications that can be added.
3. In the Applications list, select the item that you want to add as an instance.
4. Click Apply to add the instance to Environment Editor’s Application list.
Clicking OK also adds an application; however, the Add Applications
window will close.
5. Click Close to close the Add Applications window.
6. The default instance name will appear in the Environment Editor
Application list and in the Instance name field.
60 Chapter 3

7. In the Instance field, enter an appropriate name for the application.


8. Click Change.
9. The new Instance name will appear in the Instance list of the
Environment Editor.

Assigning Application Parameters


Some applications require the assignment of parameters in order to run properly.

Assign Application Parameters


To Assign Application Parameters:
1. From Environment Editor, select an application from the Application list.
Environment Management System 61

2. If you want create a new parameter, click the New button and then enter an
appropriate parameter Name and Value.

The new parameter will be available for assignment.


3. Click the Assign Parm button.
If you select an application whose parameters cannot be configured, the Assign
Parm button will be unavailable.

The Assign Application Parameters window will appear.

4. From the Parameters list, select the appropriate parameter(s).


5. Click Apply to add the parameter(s) to the application.
Clicking OK adds an application and then closes the Assign Application
Parameters window.
6. Click Close to close the Assign Application Parameters window.

Assign Application Parameter Values


To Assign Application Parameter Values:
1. From the Environment Editor Application list, select an application.
2. The parameter will appear in the Parameter list. The current value will appear
in the Value list and in the Value field.
If you select an application whose parameters cannot be configured, the list
will be empty.
3. In the Value field, enter the required value.
For more information on Application Parameters, see “Application Parameter
Descriptions” below.
4. Click Change to update the value.

Application Parameter Descriptions


All of the available parameters for each application are described below.
62 Chapter 3

Simulation Manager (SimMngr)

Parameters Description
Seconds per Phase Length of time for which each new phase is executed. Default value of 30
seconds.
Write R/O Tags Enables writing to read-only tags in the batch system.

Process Log Manager (LogMngr)

Parameters Description
Configuration Enter the name of the configuration defined in the Process Log Editor.

Batch Manager (BatchMngr)

Parameters Description
Restarting Batches All batches are resumed in their previous state upon system restart.
Phase/Batch Status Batch Manager controls all active phases upon a single batch phase becoming
held or restarted.
Init Status Tags The Batch Manager sets all unit and segment status tags to the default value
defined in the Process Model.
LIFO Materials Material consumption uses LIFO instead of the default FIFO method.
Unit States Enables the use of Unit State System tags by Batch Manager. Refer to Chapter 9,
"Batch Management System." for details on Unit Control using Unit State tags.
COM Interface Enables the use of COM for Batch Hooks in Batch Manager.
Server Node ID Sets Batch Server Unique Indentifier. Allows multiple batch servers to use a
single history database. (Use only the characters A thru Z to define the ID)
Disable Warm Restart Disables loading and saving of warm restart information. Batches will be lost
when application stops.
Parm Time (msecs) Time, in milliseconds, between each attempt to read a parameter tag value with a
valid timestamp. The default value is 50 msecs. This parameter determines how
often Batch Manager tries to read the parameter values at the end of a phase.
Parm Timeout (sec) Time, in seconds, of all attempts to read a parameter tag value before a timeout
failure. The default value is 30 seconds. A value of zero disables retries. This
parameter determines how long Batch Manager will continue to retry reading
parameters before generating an error.
Semi-Auto On Abort Batch is placed in semi-automatic mode when a phase is aborted.

Batch Display (BatchDspl)

Parameters Description
Manual Operations Enable the selection of Manual Operation from Batch Display.
Environment Management System 63

InBatch I/O Client (IBCli)

Parameters Description
Access Name Access name for which IBCli will obtain values for the assigned tags
Advise All Performs an Advise All on initialization.
Backup App Secondary application from which IBCli will look for tag values if there is a
communications failure.
Backup Node Secondary workstation from which IBCli will look for tag values if there is a
communications failure.
Backup Topic Secondary topic from which IBCli will look for tag values if there is a
communications failure.
Connect Time (sec) Time after which an IBCli connect to the I/O server will time-out.
Disable Timestamp Disable end-of-phase timestamp feature for this topic.
Force Use Tag Name Use tag name instead of the defined item name.
Ping Time (sec) Time after which IBCli will ping the I/O server to detect a connection loss.
Recon Time (sec) Time after which IBCli will attempt to re-establish communications with the I/O
server.
Response Time (sec) Time after which an IBCli request to the I/O server will time-out. Default is 15
seconds.
Verbose Mode Enables extensive messaging for IBCli information and application errors.
64 Chapter 3

InBatch Function Server (IBFServ)


Parameters Description
ProtTimer (msecs) I/O Server toolkit setting.
Verbose Mode Enable extensive messaging for IBFServ application errors and information.

InBatch Server (IBServ)


Parameters Description
ProtTimer (msecs) I/O Server toolkit setting.
Verbose Mode Enable extensive messaging for IBServ application errors and information

TIMBatch (TIMBatch)
Parameters Description
Use 3 Levels When set, uses all 3 levels of the recipe procedure in InTouch wizard Phase and
Phase Edit lists. InBatch Premier Edition Only. This parameter is ignored in
FlexFormula Edition
Wizard Compatibility Allows InTouch Batch Wizards to continue functioning by removing new
columns of information.

Deleting Application Parameters


To Delete Application Parameters:
1. From Environment Editor, select an application from the Application list.
1. Click the Delete button.
1. The Application Parameter is no longer assigned to the application.

User Defined (Other) Applications


User-defined applications and parameters can be added to the environment
management system. Only batch system compatible applications will work
properly within the environment system. This features does not support the entry
and execution of standard operating system applications. This section is limited to
the description of how to add previously created applications to the environment
system. Creating compatible applications is beyond the scope of this manual.

To Add a User Defined Application:


1. On the Add Applications window, click Other.
2. The User Defined Applications window will appear.
Environment Management System 65

3. Enter a Name (16-char max), Type, Parameters, (optional), and select Client
Of/Server To designations (optional).
The Type drop-down menu lists three application types.

Type Description
Editor Designates the application as a configuration application within the Environment
system.
Single Runtime Designates the application as a runtime application that can only be added once
to the Environment system.
Multiple Runtime Designates the application as a runtime application that can be added more than
once to the Environment system.

The Client Of and Server To selections define the list item location in the Add
Applications list. The selection of this location is important since the custom
application will also appear in the Runtime Applications Display. The order that
the applications are listed is essential for proper batch system operation. Editors do
not appear in the Runtime Application Display and are placed at the end of the
Applications list in the Add Applications window.

User Defined Application Parameters


Use the User Defined Application Parameters window to define parameters for
your application. User defined application parameters will be available for selection
in the Assign Applications Parameters window after the user defined application
is added to the environment system

To Add Parameters to a User Defined Application:


1. On the User Defined Applications window, click Edit Parameters.
2. The User Defined Application Parameters window will appear.
66 Chapter 3

3. Enter a Name (20-char max), optional Description (120-char max) and


Parameter value.
You can assign multiple parameters to your applications.
4. Enable the Parameter Required check box if your application requires
parameters.

Using Environment Manager


Environment Manager is an operating system service that manages batch system
application execution.
The Environment Manager is responsible for the following functions:
• Start-up and Shutdown of the database Lock Manager (lm_tcp).
• Start-up and Shutdown of the Security Manager.
• Start-up and Shutdown of the Redundancy Manager (if enabled).
• Start-up and Shutdown of any batch system runtime application.
If you perform a successful installation of the batch system, Environment Manager
starts automatically when your computer is started. If you perform an Exit and
Shutdown of the batch system, Environment Manager will be restart when
Environment Display is initiated.

Environment System Timeout


By default, Environment Manager assumes that an application is available for
termination if it has not started after 120 seconds. For most applications associated
with the Batch System, the timeout value of 120 seconds is sufficient. However,
runtime applications such as IBCli sometimes require a longer period of time on
larger systems in order to properly start. The length of time required varies
depending on your particular application and the number of tags associated with
IBCli. Unless you are experiencing a conflict as a result of an insufficient timeout,
it is recommended that you do not change the default value. The following
procedure should only be implemented when the default value of 120 seconds
needs to be changed.
Environment Management System 67

To Change the Environment System Timeout:


1. From the Start menu, select Settings, and point to Control Panel.
2. From the Control Panel, select the System icon.
3. On the System Properties window, click the Environment tab.
4. In the System Variables list, add a Variable named TIMEOUT, and enter the
required Value (integer value in seconds).
5. Click the Set button and then click OK to close the System Properties
window.
6. To enable the change of Timeout value, you must shutdown and restart
Windows.

Note Remember that changing the Timeout value has a global effect; that is,
Environment Display will wait the specified amount of time before it reports any
application that is available for termination.

Automatic Start-up and Shutdown of Runtime


This section describes how you can automatically start-up or shutdown your batch
system without the intervention of a user. Normally, you would use Environment
Editor’s Runtime Application Display to do this. In some instances however, you
might need to start-up or shutdown your batch system when no users are present in
your facility.
The example in this section describes a facility in which the batch runtime system is
configured to shutdown (or start-up) as a result of a power outage. When
momentary or prolonged power outages occur, users and the system software must
be able to react accordingly.
The main requirements for automatic shutdown in a batch process are highlighted
here.
1. The Batch Server computer must be connected to an uninterruptable power
supply (UPS) which will maintain power to the server computer for a
minimum of five minutes.
2. The server software must recognize external commands initiated from the UPS
that will allow it to shutdown gracefully with no manual intervention.
3. Upon computer restart, either via power restoration or manually, the batch
system must completely restart runtime operation with no manual intervention.
To satisfy these requirements, the batch system includes an executable (etcmds.exe)
that controls the start-up and shutdown of the runtime system. This executable
provides options for starting the runtime system, shutting down the runtime system,
or exiting and shutting down the entire batch system.
The etcmd.exe program, located in the InBatch\bin folder of your batch system can
be executed from a command prompt or it can be started from another application.
The following options are available and required for the etcmds.exe application.
-r – This option starts the runtime applications. These applications pertain to
those found in the Runtime window opened from the Environment Display.
68 Chapter 3

-s – This option stops only the runtime applications. These applications pertain
to those found in the Runtime window opened from the Environment Display.
This option will also automatically halt all batch client applications such as
Batch Scheduler, Batch Display, etc.
-x – This option performs stops all applications. This is identical to performing
an Exit and Shutdown command from the Environment Display. This option
will also automatically halt all batch client applications such as Batch
Scheduler, Batch Display, etc.

Note One of the above options is required when executing the application. There
is no feedback from this application. It executes without any confirmation.

Considerations
• Stopping the batch system automatically can be accomplished by using the
functionality provided by most intelligent UPS systems. Typically, a UPS has
an option that will allow the user to configure a command file, such as a batch
file, that will be executed upon loss of power. Parameters, such as time delay,
etc., associated with this execution can usually be configured. This provides a
very easy method for stopping the batch runtime system.
• Depending on the number of runtime and client applications that are started,
the batch system may take several minutes to completely shutdown. The UPS
must provide ample time for a complete, undisturbed shutdown.
• After an Exit and Shutdown occurs (- x), a confirmation dialog appears on the
screen if the Environment Display is active. This must be acknowledged
manually to completely close the Environment Display application. However,
failure to manually acknowledge this dialog does not result in any problems or
loss of data. All InBatch services and databases close prior to this confirmation
dialog.
• Starting the batch system automatically can be accomplished by creating a
batch file that starts the etcmds program. This batch file must be placed in the
Windows Start-up program group.
sleep 150
etcmds -r
• The start runtime option will not initiate any client applications such as Batch
Scheduler, Batch Display, etc.
• Exercise caution when restarting the batch system. The batch management
system will retain knowledge of all active batches and phases. If the controller
resets with a power outage, the batch system and the controller logic may lose
synchronization. Procedures should be implemented to recover from such a
situation. Options include manually restarting all previously active phases,
putting a UPS on the controller, or aborting all active phases prior to shutdown.
Process Modeling 69

C H A P T E R 4

Process Modeling

Configuration of a process model requires a thorough understanding of the process


and the control system that you want to model. Using the Process Modeling Editor
to configure a process model is not an overly complicated task. You will invest
most of your development effort in revising the process model based on
information that you gather about a facility’s process, and achieving the desired
level of flexibility.
Obtaining accurate Process and Instrumentation Diagrams (P&IDs) of the process
before configuring the process model is very helpful. You can use the P&IDs to
determine the components and capabilities of the process.

Contents
• Overview
• Units
• Process Classes (Processes)
• Connections
• Transfer Classes (Transfers)
• Define Process and Transfer Capabilities
• Segments
• Equipment Status
• Tags
• Tag Definition
• Process Modeling Summary
• Example: Process Phases and Tags
• Model Editor
• Units Tab
• Processes Tab
• Connections Tab
• Transfers Tab
• Segments Tab
• Equipment Status Tab
70 Chapter 4

• Units of Measure Tab


• Enumeration Tab
• Additional Phase Configuration

Overview
Batch processing facilities are typically comprised of a variety of vessels, and the
equipment necessary to move materials and products between the vessels. Use the
Process Modeling Editor to configure a batch control system in a manner that
facilitates recipe creation and the execution of recipes within batches.
Process models for batch facilities are based on two primary modeling approaches:
the Comprehensive Model and the Connectionless Model. You can also use a
Hybrid Model that contains elements of both. To ultimately decide which approach
is optimal for your specific application, you should analyze the theoretical batch
philosophy of the company, the process that is being modeled, the flexibility
requirements, the user interface requirements of the recipe builder and process
operators, and the historical batch recording requirements.
A summary of these approaches, including the benefits and liabilities of each, is
described in this section. All of the features of the Process Modeling Editor are
described, regardless of which modeling approach you choose.

Comprehensive Model
A comprehensive model approach uses all of the available configuration tools of
the flexible batch system. It also provides complete material tracking and ease-of-
use for the recipe builder and operators.
In a comprehensive model, the physical process is defined with units and
connections. This gives the sophisticated batch engine the information it needs to
most efficiently orchestrate your batch process. It also saves you from writing a lot
of custom code in the control system that would otherwise be required to coordinate
material transfers between units. This is the preferred modeling technique since it
leverages the full power of the batch system.
A unit is defined as any vessel that can hold and/or process materials. Examples of
units are bulk storage vessels, reactors, blenders, mixers, hold tanks, etc. Unique
statuses can be defined that describe the possible states that each unit can assume.
In addition to units, the comprehensive model includes information about the
material transfer capabilities between units. A connection is any means of getting
materials from one units to another. This might be automatic equipment that
transfers product between units such as pumps, values, and piping. Or it might be a
manual transfer such as an operator carrying a tote. A semi-automatic transfer is
one in which an operator may be required to prepare some equipment such as a
flexible pipe connection or hose, before the automated transfers can take place. All
of these situations can be accurately modeled.
Process Modeling 71

Some plants have single units with connections to multiple units while others have
multiple connections between two units. After all, there may be more than one way
of getting material from Unit ‘A’ to unit ‘B’. Connections can be further divided
into segments. Connection availability is determined by the status of all of the
segments that are a part of the connection. Unique statuses can be defined that
describe the possible states that each segment can potentially assume.
All units that have the same processing capabilities or perform the same function
are grouped in the same process class. All connections between the same two
process classes are grouped in a transfer class. The processing and transferring
capabilities for each of these classes are defined with phases. Each phase is an
independent action that requires a unique set of parameters. Parameters configure
the phase based on a recipe’s requirements. A phase can be executed either
automatically or manually. The batch management system is responsible for
coordinating unit-to-unit management.

Connectionless Model
A connectionless model approach uses a subset of the available configuration tools
of the flexible batch system. This approach requires a more complete understanding
of the process by the recipe builder and the operators. With some extra work in the
control system logic, a connectionless model approach can also provide complete
material tracking.
In a connectionless model, the physical process is defined with units only. Units are
the same in any model, that is, any vessel that can hold and/or process materials.
Unique statuses can be defined that describe the possible states that each unit can
assume.
All units that have the same processing capabilities or perform the same function
are grouped in the same process class. The processing capabilities of each class are
defined with phases. Each phase is an independent action that requires a unique set
of parameters that configure the phase based on a recipe’s requirements A phase
can be executed either automatically or manually.
The connectionless model approach does not use connections and segments. The
movement of material between units is accomplished using complementary process
phases. For example, to move material from a reactor to a mix tank, a discharge
phase associated with the reactor and a charge phase associated with the mix tank
are required. The recipe builder is responsible for coordinating these two phases as
part of the recipe procedure. Coordination of unit-to-unit management is the
responsibility of the operator or control system.
Proper material tracking within a connectionless transfer requires the definition of
input parameters for the appropriate source class discharge phase, and the definition
of output parameters for the appropriate destination class charge phase.

Hybrid Model
The hybrid model approach uses a combination of elements of the comprehensive
and connectionless models. It allows you to configure a process in a way that
maximizes the benefits of both approaches by providing all of the available
configuration tools, material tracking and ease-of-use for the recipe builder and
operators.
72 Chapter 4

In the hybrid model, the physical process is defined with units and connections.
However, only the static, non-flexible material paths are defined as connections.
Flexible paths or those that involve many possible destinations are not defined as
connections. Like the comprehensive and connectionless models, all of the units
that have the same processing capabilities or perform the same function are grouped
in the same process class, and all connections between the same two process classes
are grouped into a transfer class.
Flexible paths that are not defined with connections will use the complementary
process phase approach.
For more information on complementary process phases, see “Connectionless
Model” on page 71 in this section.
The hybrid approach’s most beneficial advantage is that it can minimize the overall
number of connections and associated tags in the model, while preserving all of the
connections for paths that are constant.

Model Approach Comparisons


This table summarizes the benefits, liabilities and recommended usage for the
comprehensive, connectionless and hybrid model approaches.

Approach Benefits Liabilities Usage


Comprehensive Automatic unit-to-unit batch Possibility of many connections and Mostly Static
Model management associated connection tags for (fixed)
Complete material genealogy flexible paths Transfers
Intuitive for recipe builder and
operator
Assignment of bulk material
sources for automatic lot tracking
One phase to conduct material
transfers minimizes recipe
complexity
Connections and segments
provide some automatic
interlocking functionality when
moving materials between units
Process Modeling 73

Approach Benefits Liabilities Usage


Connectionless Complete material genealogy Requires complementary process Totally
Model Eliminates many connections and phases in recipes for all material dynamic
connection tags for flexible paths movement Transfers
More training for recipe builder and
operator
Operator or control system must
guarantee the coordination of units
Requires extensive control system
logic and interlocking when moving
materials between units
Automatic tracking of input materials
requires definition of parameters for
the source process phase
Automatic tracking of output
materials requires definition of
parameters for the destination process
phase
Hybrid Model Complete material genealogy Liabilities of comprehensive and Partially
Minimizes flexible connections connectionless models are present for Fixed and
and preserves static connections areas defined with and without Partially
Benefits of comprehensive and connections Flexible
connectionless models are present Transfers
for areas defined with and without
connections

Process Modeling Steps


This table shows the general steps necessary to create a process model. The steps
are shown in sequential order. The steps required for each approach are marked
with an “X”.

Modeling Steps Comprehensive Connectionless Hybrid


1. Define units X X X
2. Define units of measure Optional Optional Optional
3. Define enumeration Optional Optional Optional
4. Group units into process classes and define attributes X X X
5. Define all connections between units X
6. Define all fixed connections between units X
7. Group connections into transfer classes X X
8. Define the phases of each process class X X X
9. Define the phases of each transfer class X X
10. Define the segments and assign to connections Optional Optional
11. Define the possible equipment statuses that units X X X
and/or segments can assume
12. Define Tags for transferring the specific phase data X X X
points between the batch and control systems
74 Chapter 4

Modeling Steps Comprehensive Connectionless Hybrid


13. Develop phase logic X X X

Units
A unit is a group of processing equipment that performs one of the following
functions.
1. The unit processes materials; examples are reactors, mixers, blenders, and
retorts.
2. The unit holds materials; examples are manual add stations, hold tanks, bulk
storage vessels, and filling stations.
Units can have unique attributes, such as capacity or material of construction,
which define the processing capabilities or limitations of the unit.

Process Classes (Processes)


A process class is a group of units. Each unit in the class has the same processing
capabilities and/or performs the same function. For example, a plant may have five
blenders, each of which has the same processing capability. The only difference
between the blenders might be capacity and blending efficiency. All five blenders
would therefore be identified by one process class.
Some units have no processing capabilities but perform the same function.
Examples of these units are bulk ingredient storage tanks, hold tanks, filling
stations, and manual add stations.
Each process can have a common set of attributes, which further define the
capabilities of each unit in the class. Unit attributes are used by the batch
management system to verify that the units in the train match the equipment
requirements defined by the recipe.

Connections
A connection defines a group of equipment such as valves, pumps and flow meters
that transfer materials from a source unit to a destination unit. All connections
between units must be defined when configuring the process model. Some
processes may have more than one connection between the same two units. In this
case, each connection is defined separately.
Process Modeling 75

Transfer Classes (Transfers)


Each connection must be assigned to a Transfer class. Transfer classes are similar to
Process classes, except where Process classes are associated with units Transfer
classes are associated with connections. Transfers define a group of connections
where all source units are in the same process class and all destination units are in
the same process class. The source and destination process classes can be the same.
For example, all of the connections between the source process class, Bulk
Ingredient Silos, and the destination process class, Scales, are assigned to the same
transfer class. Another example of a transfer class includes all of the connections
between the process class, Scales, and the process class, Blenders.

Define Process and Transfer Capabilities


Process classes have processing capabilities. These capabilities are defined by
Process Phases and parameters.
Transfer classes have transferring capabilities. These capabilities are defined by
Transfer Phases and their associated parameters.

Phases
A Phase is an independent process action. Phase Logic refers to the logical steps
and sequences within the control system that occur during the execution of a phase.
Phase logic can be constructed to automatically accommodate formula parameter
values received during runtime. Parameter values originate within a recipe.

Phase Types
There are three types of process phases and four types of transfer phases. Process
phases are classified as either automatic, manual, or data. Transfer phases are
classified as either automatic, semi-automatic, manual, or data.

Automatic Phases
Automatic phases are executed by the control system. Therefore, there must be
phase logic in the control system for the phase to execute. Examples of automatic
phases include bulk add, discharge, heat, and mix.

Manual Phases
Manual phases are executed by the batch management system in conjunction with
an operator. The control system is not involved in the execution of a manual phase.
Therefore, no phase logic is required. Examples of manual phases include manual
add and test.
76 Chapter 4

Semi-automatic Phases
Semi-automatic can only be defined for transfer phases. Successful execution
requires the operator and the control system to work together in order to
successfully complete the phase. Semi-automatic phases require control system
phase logic. An example of a semi-automatic phase is drum add.

Data Phases
Data phases are executed by the batch management system. They have no phase
control or status tags for handshaking with the control system, and do not require
operator acknowledgement. They do not have control button capability, but do
allow formula parameter assignments. When a data phase is encountered during
batch execution, the batch manager automatically writes (downloads) all
parameters values to the control system.

Note Data Phases are intended to be used to write a Target value to a controller. If
the process model has only parameter Target tags created, then the Target value
will be written to both the Target and Actual in history. If Actual tags have been
created in the process model, then the Actual value from the controller will be
written to history.

Class Class Type Phase Phase Type


BulkBlnd Transfer BulkAdd Automatic
DrumBlnd Transfer DrumAdd Semi-automatic
Blenders Process Blend Automatic
BlndCook Transfer Discharg Automatic
Cookers Process AgitOn Automatic
AgitOff Automatic
Heat Automatic
Cool Automatic
Soak Automatic
Sample Manual
CookHold Transfer Discharg Automatic

Phase Logic
Phase Logic refers to the steps and sequences in a control system that are exercised
during the execution of a phase. Phase logic will make the control system program
very structured, and is required to support every phase defined as automatic or
semi-automatic. For example, if a process class of blenders has three automatic
phases, each blender in the process class will require three phase logic blocks.
Similarly, phase logic blocks are required for each automatic and/or semi-automatic
phase defined for each connection assigned to a transfer class. The logic for each
may be identical; however, the physical I/O and internal address assignments are
different for each blender in the class. Manual phases are executed by the batch
management system through interaction with operators and do not require phase
logic.
Process Modeling 77

This diagram shows the structured interface between phase logic and the batch
management system.

Phase Parameters
Phase parameters are used to configure, control, and monitor a phase. There are
four types of parameters; Formula Parameters, Phase Control and Status Bits,
Interlocks, and Control Buttons. Each of these types is shown in the table following
the definitions.

Formula Parameters
There are three types of formula parameters: Input, Output, and Process Variable.
A recipe consists of a header, a procedure, equipment requirements, and a formula.
The formula contains the defined Input, Output, and Process Variable parameters.
Input and output parameters are used to define and track material transfer
quantities. Process variable parameters define setpoints. Parameter elements, such
as high and low deviation, are used to quantify, define, and track the formula when
a batch is executed. Units of Measure can also be assigned to Process Variables.

Phase Control and Status Bits


Phase Control and Status Bits are used by the batch management system during
run-time to control and monitor the execution of each phase.
For more information on using phase control and status bits, see
78 Chapter 4

Interlocks
Each phase logic block may require interlocks. Interlocks provide safety and
security for personnel and equipment by preventing the execution of a phase when
other equipment or operators are not ready. All tags within the system can be
assigned as an interlock to a phase. There is no limit to the number of interlocks that
can be assigned to a phase. The physical interlocking is performed in the control
system, not by the batch control system. In this case, the batch control system
serves as a diagnostic tool by displaying the status of interlocks.

Control Buttons
Operators use control buttons to initiate or alter process actions during phase
execution. Control buttons are included in user interfaces for batch execution
displays. There are two control buttons available for each phase. Control buttons
are associated with the values of discrete tags.
A summary of all phase parameters is displayed in the following table.

Parameter Type Elements


Formula Input Target
Actual
High Deviation (%)
Low Deviation (%)
Lot Code
Preact
Lot Code
Material Id
Process Variable Target
Actual
High Deviation (%)
Low Deviation (%)
High Limit
Low Limit
Output Target
Actual
Material Id
Phase Control Start
Hold
Restart
Abort
Reset
Phase Status Ready
Run
Held
Done
Aborted
Interlocked
Interlocks Application Specific
Control Buttons Button #1
Button #2
Process Modeling 79

Segments
A segment is a subsection of a connection. Segments may be defined in the process
model whenever multiple connections share the same equipment and when it is
necessary to prevent the automatic use of common segments. Examples of
segments are sections of common piping, shared valves and shared pumps.
Segment definition and usage is optional. If you do use segments in your model, it
is not necessary to assign segments for all of the connections.

Equipment Status
An equipment status represents the transition states of units and/or segments and is
defined in the process model. Equipment Status is evaluated before the allocation of
units and/or connections. The use of equipment status is optional.

Units of Measure
A unit of measure is an attribute of a formula parameter and can be defined for
process variables only. They are defined in the process model. An example of
assigning a unit of measure might involve a process variable formula parameter
named Temperature. The unit of measure assigned to this parameter might be
Degrees F. Each process variable in your process model should have a unit of
measure assignment.

Enumeration
An enumeration is a data class which is identified by a Set Name in which a list of
integer values correspond to an alpha-numeric string value .
The enumeration data class is available for process variable formula parameters.
Enumeration data class Set Names and Values are defined using the Process Model
Editor. Each Enumeration Set Name is a associated with at least one Enumeration
Value and Name. An example of an Enumeration is the Set Name ‘BOOLEAN’. In
this example, you could associate the values 0 and 1 with the names ‘FALSE’ and
‘TRUE’ respectively. The use of Enumerations is optional.

Tags
A tag is a collection of data or information that is given. Tags are named and
defined with the Process Model Editor. A tag usually corresponds to a control
system data point. Tags are also used to configure batch control system applications
such as recipes and reports. All tagnames must be unique.
There are eight tag types in the batch control system: Unit Tags, Process Tags,
Connection Tags, Transfer Tags, System Class Tags, System Unit Tags, System
Connection Tags, and System Segment Tags. Each type has a unique responsibility
as described below.
80 Chapter 4

Tag Types and Usage

Value
from
Control
Tag Type Use System Comments
Unit Process Modeling: Yes
Transfer and Process Phase Interlocks
All SCADA Applications
Process Process Modeling: No Note 1: For each process tag, the Model
Process Phase Control Buttons Editor automatically creates one unit
Process Phase Control Bits tag for each unit in the process class.
Process Phase Status Bits Note 2: For each process class, the
Process Phase Formula Parameters Modeling Editor automatically creates a
Recipes: set of System Class Tags.
Transition Logic Note 3: For each unit in the process
class, the Model Editor automatically
creates a set of System Unit Tags.
Connection Process Modeling: Yes
Transfer and Process Phase Interlocks
All SCADA Applications
Transfer Process Modeling: No Note 1: For each transfer tag, the Model
Transfer Phase Control Buttons Editor automatically creates one
Transfer Phase Control Bits connection tag for each connection in
Transfer Phase Status Bits the transfer.
Transfer Phase Formula Parameters
Recipes:
Transition Logic
System Class Process Modeling: No Note 1: System tags are internal batch
Process Phase Formula Parameters control system tags and are updated by
Transfer Phase Formula Parameters the batch management system.
Recipes: Note 2: System Class tags are
Transition Logic automatically generated for each
process and transfer class defined in the
process model.
System Unit All SCADA Applications No Note 1: System Unit tags are
automatically created for each unit
assigned to a process class.
System All SCADA Applications No Note 1: System Connection tags are
Connection automatically created for each
connection assigned to a transfer class.
System All SCADA Applications No Note 1: System Segment tags are
Segment automatically created for each defined
segment.

Unit Tags
Unit tags define data points that are uniquely associated with a single processing
unit.
Process Modeling 81

Process Tags
Process tags define all of the data points that are common to all of the units
associated with a process class. Each automatically defined process tag generates a
set of unit tags for each member in the process class. For example, if there are three
units in a process class and one process tag is entered, three unit tags are created:
one for each unit in the process class. Each of these unit tags may correspond to a
specific address in a control system. Process tags are indirectly associated to the
control system by way of the unit tags that they create.
Process tags have an abstract nature; that is, they are not directly associated with the
control system. They represent a set of unit tags. Process tags become unit tags
when a batch is executed in a process. Process tags may be used as part of recipe
transition logic.

Connection Tags
Connection tags define data points uniquely associated with a connection.

Transfer Tags
A transfer tag defines the data points that are common to all of the connections
associated with a transfer class. Each automatically defined transfer tag generates a
set of connection tags for each member in the transfer class. For example, if there
are three connections in a transfer and one transfer tag is entered, three connection
tags are created; one for each connection in the transfer class. Each of these
connection tags may correspond to a specific address in a control system. Transfer
tags are indirectly associated with the control system by way of the connection tags
that they create.
Transfer tags are abstract in nature; that is they are not directly associated with the
control system. They represent a set of connection tags. Transfer tags become
connection tags when a batch is executed in a process. Transfer tags may be used as
part of recipe transition logic.

System Tags
System tags are automatically created by the Model Editor when a process class,
transfer class, or segment is added to the model. There are four types of system
tags: System Class tags, System Unit tags, System Connection tags, and System
Segment tags. System class tags are identical to process/transfer tags, system unit
tags are identical to unit tags, and system connection tags are identical to
connection tags. System segment tags are similar to system connection tags.
System class tags do not correspond to a specific address in the control system.
They are internal batch control system tags. However, they may be assigned to
formula parameter elements and used in recipe transition logic. System unit,
connection, and segment tags may be assigned to the control system and can be
used in SCADA applications.
82 Chapter 4

Description System Class Tagname Data/Information


Unit Information Allocation Possible Values:
Ready
Allocated
Batch_ID Batch ID of batch unit is allocated to.
Batch_Mode Possible Values:
Automatic
Semi-Auto
Manual
Batch_Size Assigned batch size of batch within unit.
Batch_Status Possible Values:
Open
Ready
Run
Held
Aborting
Aborted
Done
Campaign_ID Campaign ID of batch unit is allocated to.
Last_Recipe_ID ID of last recipe produced within unit.
Lot_ID Lot ID of batch unit is allocated to.
Recipe_ID ID of recipe assigned to batch within unit.
Recipe_Name Name of recipe assigned to batch within unit.
Status Current status of unit. Possible values are defined by
user in the Equipment Status tab within the process
model editor.
Connection Allocation Possible Values:
Information Ready
Allocated
Availability Possible Values:
Available
Unavailable
Batch_ID Batch ID connection is allocated to.
Campaign_ID Campaign ID connection is allocated to.
Last_Recipe_ID ID of last recipe produced within connection.
Lot_ID Lot ID connection is allocated to.
Segment Information Allocation Possible Values:
Ready
Allocated
Batch_ID Batch ID segment is allocated to.
Campaign_ID Campaign ID segment is allocated to.
Last_Recipe_ID ID of last recipe produced within segment.
Lot_ID Lot ID segment is allocated to.
Status Current status of segment. Possible values are
defined by user in the Equipment Status tab within
the process model editor.
Process Modeling 83

Using Process and Transfer Tags versus Unit and


Connection Tags
The following guideline will help you decide when to define a tag as a process,
transfer, unit, or connection tag.
1. Any data point that is common to all units in a process class can be entered as a
process tag.
2. Any data point that is common to all connections in a transfer class can be
entered as a transfer tag.
3. Any data point that is not common to all units in a process class must be
entered as a unit tag.
4. Any data point that is not common to all connections in a transfer class must be
entered as a connection tag.
5. Any data point that is to be used in recipe transition logic must be entered as
either a process or transfer tag.
6. Any critical phase logic data point must be entered as a process or transfer tag.
The critical phase logic data points are required by the batch management
system to control, monitor, and configure a phase based on a recipe’s
requirements. The following table lists the critical phase logic data points.

Item Data Point


Phase Control Bits Start
Hold
Restart
Abort
Reset
Phase Status Bits Ready
Run
Held
Done
Interlocked
Aborted
Control Buttons Control Button #1
Control Button #2
Formula Parameter Elements Target
- Process Variable Actual
High Deviation (%)
Low Deviation (%)
High Limit
Low Limit
Formula Parameter Elements Target
- Input Actual
High Deviation (%)
Low Deviation (%)
Preact
Lot Code
Material ID
84 Chapter 4

Item Data Point


Formula Parameter Elements Target
- Output Actual
Material ID

Tag Definition
A tag consists of a structured name. Each tagname must be unique within the batch
control system. The terms tagname and tag will be used throughout the
documentation to refer to tags in the process model.

Tagname
A tagname is a unique, structured name that defines one data point. Tagnames have
a hierarchical structure. The highest level of the structure depends on the tag type.
The Unit name is the highest level for unit tags, the Process class name for process
tags, the Connection name for connection tags and the Transfer class name for
transfer tags. Each is followed by Phase, Parameter and Element.

Tagname Structure

Name Number of Characters

Unit or Connection, Process Class or Transfer Class 8

Phase Name 8

Parameter Name 8

Element Name 5

Attribute Name (InTouch dot field) 16

Valid Characters for Tagnames


You can use the following characters in a tagname.
A through Z, a through z, 0 through 9, !,@,?, #, $, % , _, &

Delimiters

Item Delimiter
Between Names - (dash)
Before Attribute . (period)
Process Modeling 85

Automatically Generated Tagnames

Automatically
Tag Appended
Classification Parameter Name Element Name Description
Unit System not used CAMPN Campaign ID
Tags LOTID Lot ID
BATCH Batch ID
RECID Recipe ID
RECNM Recipe Name
BATSZ Batch Size
BATST Batch Status
BATMD Batch Mode
USTAT Unit Status
ALLOC Unit Allocation
LASTR Last Recipe ID
USTATE Unit State
Connection not used CAMPN Campaign ID
System Tags LOTID Lot ID
BATCH Batch ID
AVAIL Connection Availability
ALLOC Connection Allocation
LASTR Last Recipe ID
Segment not used CAMPN Campaign ID
System Tags LOTID Lot ID
BATCH Batch ID
USTAT Segment Status
ALLOC Segment Allocation
LASTR Last Recipe ID
Phase Control CONTROL_STATUS START Start
Tags HOLD Hold
RSTRT Restart
ABORT Abort
RESET Reset
Phase Status CONTROL_STATUS READY Ready
Tags HELD Held
RUN Run
DONE Done
ABRTD Aborted
INTLK Interlocked
Unit Control not used UHOLD Unit Hold
Tags URSTR Unit Restart
UABRT Unit Abort
86 Chapter 4

Automatically
Tag Appended
Classification Parameter Name Element Name Description
Phase Parameter Name ACT Actual
Parameter Tags TAR Target
HIDEV High Deviation
LODEV Low Deviation
HILMT High Limit
LOLMT Low Limit
PRACT Preact
LOTCD Lot Code
MATID Material ID

Tag Description
Each tag can be given a 120-character description. This allows for complete
documentation of every tag in the system.

Data Class
A tag can be classified as discrete, analog, string or enumeration. Discrete tags have
two logical states; zero (0) and one (1). Analog tags reflect the process status with a
numerical value and may have many states. String tags are identified by an
alphanumeric value and may contain up to 80-characters. Enumeration tags are
identified by an integer value which represents a textual enumeration name.

Access Mode
Access Mode defines whether a tag is Read-only or Read/Write. A check box is
used to select the access mode for a tag.
Process Modeling 87

Process Modeling Summary

Example: Process Phases and Tags


The example shown on the following pages illustrates how a Heat phase block
would be developed and interfaced to the batch control system for two reactors. The
two reactors found in our example plant are in the same Process Class called
Reactors. The names of the reactors are Reactor A and Reactor B.
88 Chapter 4

Ramp Heat Phase Logic


A phase block must be developed for each reactor to perform the heat function.
When instructed to run, the heat phase block will heat the contents of the reactor to
a specified temperature and at the specified rate. The target temperature and rate are
parameters used to configure the phase block. The parameters, which are both
designated as process variables, are assigned a value in the recipe. The value
becomes part of the recipe formula.
The Heat phase blocks must be designed to be completely independent of each
other.
Reactor A and Reactor B are identical to each other in every way, except that
Reactor B utilizes a special pressure probe, which Reactor A does not have.
To keep our example simple, only one input and one output are shown for each
phase. In actuality, there may be several inputs and outputs, as well as many other
internal data points that may be common to each phase.
For more information on Phase Logic, see Chapter 15, "Phase Logic Development
and Testing."

Process Tags and Unit Tags


Reactor A and Reactor B are in the same Process Class. Therefore, process tags that
define the interface between the batch control system and the generic phase named
Heat, must be defined. The interface requires that process tags be defined for phase
control, phase status, formula parameters, control buttons, and interlocks. If inputs,
outputs, and internal data points are common to each phase, which is the case in this
example, they would also be entered as process tags. Any tags that are not common
to both of the phase blocks would be entered as unit tags. The only unit tag in this
example is the Reactor B Pressure Probe.
Each process class tag is a global tag that represents a set of unit tags; one unit tag
for each reactor in the class. For example, Reactors-Heat-CS-START is a global
tag that represents the ReactorA-Heat-CS-START and ReactorB-Heat-CS-
START unit tags.

Process Classes and Generic Phases in Recipe


Editor
Process tags are used to define the interface points between the batch control
system and a generic phase defined for a process class. In this example, Heat is the
generic phase and Reactors is the process class. Recipe Editor creates Master
Recipes which are equipment independent. The Recipe Editor references process
classes (Reactors) and generic phases (Heat) instead of specific units (Reactor A)
and phases (Reactor A Heat).
For more information on Master Recipes and Recipe Editor, see Chapter 7, "Recipe
Editor."
Process Modeling 89

Batch Manager Resolves Process Tags into Unit


Tags
Process tags and process classes are of an abstract nature. This means that they are
not associated with a specific piece of process equipment. Rather, their association
with actual equipment occurs when a batch is defined, scheduled and then executed.
Batches are defined by specifying a Campaign ID, Lot ID, Batch ID, Recipe ID,
and Train. Recipes are equipment independent. Trains specify the process
equipment (units) that will be used. The batch management system uses the Recipe
and Train information to resolve which Heat phase, and ultimately, the set of unit
tags that will be used.
90 Chapter 4

Example Plant
Process Modeling 91

Model Editor
Use Model Editor (ModelEdit) to create and edit the process model. While you are
using the Model Editor, all additions and changes that you make to the model are
dynamically updated in the process model configuration database (CfgModelDB).
Model Editor will guide and verify, where possible, that entries and assignments are
made correctly. It is ultimately the user’s responsibility to accurately define the
process model.
Once all of the configuration changes have been made, the Environment Display
Update Runtime menu option must be used to copy the process model
configuration database (CfgModelDB) to the process model runtime database
(ModelDB). This will allow the runtime system to access the configuration changes.
The Environment Display Update Configuration menu option should be used to
copy the process model runtime database (ModelDB) to the process model
configuration database (CfgModelDB).

WARNING! Use caution when updating your configuration from Environment


Display. When you update the configuration, the process model configuration
database is overwritten by the process model runtime database. All configuration
changes are lost.

As you read this section, please note that all of editors and windows utilize the
following conventions:

Editors:
Whenever you enter new elements you must click the Add button. If you make
changes to an element, you must click the Change button. To remove elements,
click Delete.

Assigning and Selecting:


After selecting the item(s), you must click the Apply button. Clicking OK applies
your selections and closes the associated dialog. Clicking the Close button closes a
window. List box items are selected and deselected by single-clicking the list item.
When applicable, multiple entries can be selected by holding down the control (or
shift) key while simultaneously left-clicking the desired items.
92 Chapter 4

Deleting Model Components


WARNING! It is important to understand that when you delete a unit, process
class, connection, or transfer class, that other elements of the overall process model
are also deleted. Always back-up your work before making changes. The following
table describes the effect of deleting model components.

Element
Deleted Related Deletions
Unit All unit tags associated with the unit
All unit tags associated with the Process Class to which the unit is assigned
All connections in which the unit is a source or a destination
Process Class All process tags associated with the class
All unit tags resulting from the process tags
All process phases associated with the class
All transfers in which the class is a source or a destination
Connection All connection tags associated with the connection
All connection tags associated with the Transfer Class to which the connection is assigned
Transfer Class All transfer tags associated with the transfer
All connection tags resulting from the transfer tags
All transfer phases associated with the class

Note You cannot delete a Unit that is assigned to a train until you remove the unit
from each train. When you delete a unit that is assigned to a train(s), the train names
in which the unit has been assigned will be displayed in the WW Logger.

For more information on creating trains, see Chapter 8, "Train Editor."

Using Model Editor


Use Process Modeling Editor to define and edit all your process model.

To start Model Editor:


1. On Environment Display, double-click the ModelEdit icon.

Note Model Editor will not start if you are running Train Editor or TagLinker. You
cannot start more than one instance of Model Editor.

The Process Modeling Editor window will appear.


Process Modeling 93

File Menu
The Process Model Editor File menu provides system functions for the Process
Modeling Editor.

File/Validate
Use the File/Validate menu to initiate a validation of the process model database.
Validation consists of a verification of the following elements.
• All Automatic phases have tag assignments for (minimally) the Start, Reset,
Ready, and Done phase control and status bits.
• All Semi-Automatic phases have tag assignments for (minimally) the Start,
Reset, Ready, and Done phase control and status bits.
• All tags assigned to an Edit Allowed or Edit Required actual element of a
formula parameter must have a read/write access mode.
• At least one equipment status has been defined.
• One of the defined equipment statuses has been assigned as the default status.
94 Chapter 4

To Validate the Process Model:


1. Click File on the Process Modeling Editor and then select Validate.
If the validation is successful, the Validation window indicates that the process
model configuration is valid. If validation errors exist, the associated phases
and/or tags will be displayed along with a validation error message. You can
use the information to troubleshoot the process model configuration.
2. Click Close to close the Validate window.

File/Print
Use the File/Print menu to print one or more formatted reports. The reports allow
you to select the elements of your process model.

To Print reports from the Model Editor:


1. Click File on the Process Modeling Editor and then select Print.
The Print window allows you to select one or more of the following reports
from the Select Report list box.
• Units
• Unit Tags
• Connections
• Connection Tags
• Enumerations
• Equipment Status
• Process Classes
• Process Tags
• Process Phases
• Segments
• Segment Tags
• Transfer Classes
• Transfer Tags
• Transfer Phases
2. If you want to select a different printer than the one listed, click the Printer
Name drop down box and specify a printer.
3. If you want to change any printer settings, click the Properties button and
enter your changes.
4. If you want to print your report(s) to a file, enable the Print to File check box.
You will be prompted later for the name of the file that you want to print to.
5. If you want to print multiple copies of the report(s), enter the quantity in the
Number of Copies combo-box.
6. Click OK to print the report(s).
Process Modeling 95

File/Print Preview
Use the File/Print Preview menu to view one or more formatted reports on the
screen. The reports allow you to select the elements of your process model.

To Preview reports from the Model Editor:


1. Click File on the Process Modeling Editor and then select Print Preview.
2. Select one or more reports from the list box described earlier and click OK.
3. A preview of your report will be displayed on the screen.

File/Print Setup
Use the File/Print Setup menu to setup your printer using the standard windows
printer dialog. Refer to your Windows NT documentation for more information.

File/Exit
Use File/Exit to close the Process Modeling Editor window.

Note All of your work is automatically saved in the configuration process model
database as you edit the process model. You do not have to be concerned about
saving your changes.

Edit Menu
The Process Modeling Editor Edit menu contains a list of items that correspond to
the Process Modeling Editor tabs. Each of the associated Process Modeling Editor
tabs are discussed later in this section.

Edit/Units
Use the Edit/Units menu to display the Process Modeling Editor Units tab.

Edit/Processes
Use the Edit/Processes menu to display the Process Modeling Editor Processes
tab.

Edit/Connections
Use the Edit/Connections menu to display the Process Modeling Editor
Connections tab.

Edit/Transfers
Use the Edit/Transfers menu to display the Process Modeling Editor Transfers
tab.
96 Chapter 4

Edit/Segments
Use the Edit/Segments menu to display the Process Modeling Editor Segments
tab.

Edit/Equipment Status
Use the Edit/Equipment Status menu to display the Equipment Status tab.

Edit/Units of Measure
Use the Edit/Units of Measure menu to display the Units of Measure tab.

Edit/Enumeration
Use the Edit/Enumeration menu to display the Enumeration tab.

Help Menu
The Process Modeling Help menu contains commands that provide you with access
to the online help system and information regarding product version and licensing.

Help/Help Topics
Use the Help/Help Topics menu to display the online help for the Process
Modeling Editor.

Help/About Process Modeling


Use the Help/About Process Modeling menu to view product version information.

Units Tab
Use the Units tab to define and edit process model units for the processing vessels
in the plant.

To display the Units Tab:


1. On the Process Modeling Editor window, click the Units tab.
The Units tab will appear.
Process Modeling 97

All of the available units in your process model are listed in the Units list box.
The selected unit name appears in the Name box. Information regarding the
Unit appears in the Description box.

Adding Units
To Add a Unit:
1. In the Name box, enter a name for the unit (8-char max).
2. In the Description box, you can optionally enter text describing the unit (120-
char max).
3. Click Add to include the new unit in the Units list.
The editor will verify all unit names to ensure validity and uniqueness. You
will be prompted to change the unit name in the event you enter a duplicate.

Changing Unit Names


To Change a Unit Name:
1. From the Units list, select the Unit that you want to change.
2. In the Name box, enter a name for the unit (8-char max).
98 Chapter 4

3. In the Description box, you can optionally enter text describing the unit (120-
char max).
4. Click Change to update the unit in the Units list.
The editor will verify all unit names to ensure validity and uniqueness. You
will be prompted to change the unit name in the event you enter a duplicate.

Deleting Units
To Delete a Unit:

WARNING! It is important to understand that deleting a unit affects other


elements of the overall process model. Always back-up your work before making
changes.

1. From the Units list, select the Unit that you want to delete.
2. Click Delete.
If you attempt to delete a unit that is part of a train, the following Process
Modeling Editor warning will appear, and the unit will not be deleted. In this
case, you must first delete the unit(s) from the train, and then delete the unit
from the model.

Edit Unit Tags


Each unit in a process model may have tags associated with it. Use Edit Unit Tags
window to associate tags with a unit. Tags that are associated with process phases
must be entered as Process Tags.
A Unit tag consists of the following elements. Some elements are required, while
others are optional.
• Phase Name (Optional, 8-char max)
• Parameter Name (Optional, 8-char max)
• Element Name (Required, 5-char max)
• Description (Optional, 120-char max)
• Data Class (Required, Enumeration, Analog, Discrete, or String)
• Access Mode (Required, Either Read Only or Read/Write)
• Attributes (Optional, Select from available InTouch dot fields)
Process Modeling 99

To Edit Unit Tags:


1. On the Units tab, click the Tags button.
The Edit Unit Tags window will appear.

Assigning Attributes to Unit Tags


Use the Assign Attribute Tags window to assign Attributes to Unit Tags. The
Assign Attribute Tags window contains a list of the available InTouch .fields )that
can be selected. These fields correspond to the data class of the selected unit tag.
The editor creates internal tags corresponding to the selected fields. The tags are not
displayed in the unit tags list, but are available in tag selection dialogs.

To Assign Attributes to Unit Tags:


1. On the Edit Unit Tags window, click the Attributes button.
The Assign Attribute Tags window will appear:
100 Chapter 4

Attributes are not available for tags of String or Enumeration data type.
2. In the applicable Assign Attribute Tags window, select the desired attribute.
3. Click Apply to associate the selected attribute with the Unit Tag.
4. Click Close to close the Assign Attribute Tags window.

Processes Tab
Use the Processes tab to define and edit process class units for the processing
vessels in the plant.

To display the Processes Tab:


1. On the Process Modeling Editor window, click the Processes tab.
The Processes tab will appear.
Process Modeling 101

All of the available Process Classes (processes) in your process model are
listed in the Process Classes list box. When a process class is selected, its
name appears in the Name box. Information regarding the Process Class
appears in the Description box.

Adding Process Classes


To Add a Process Class:
1. In the Name box, enter a name for the process (8-char max).
2. In the Description box, you can optionally enter text describing the process
(120-char max).
3. Click Add to include the new process in the Process Classes list.
The editor will verify all process names to ensure validity and uniqueness. You
will be prompted to change the process name in the event you enter a duplicate.

Changing Process Class Names


To Change a Process Class Name:
1. From the Process Classes list, select the Process that you want to change.
2. In the Description box, you can optionally enter text describing the process
(120-char max).
102 Chapter 4

3. Click Change to update the Process in the Process Classes list.


The editor will verify all Process Class names to ensure validity and
uniqueness. You will be prompted to change the name in the event you enter a
duplicate.

Deleting Process Classes


To Delete a Process Class:

WARNING! It is important to understand that deleting a process class affects other


elements of the overall process model. Always back-up your work before making
changes.

1. From the Process Classes list, select the Process that you want to delete.
2. Click Delete.
3. When you delete a Process Class, the editor will display a warning message
indicating the relationship of the tags in process class to other batch system
elements. Read any such warning messages very carefully.

Unit Control/State Tags


Unit Control Tags are used by Batch Manager to inform the control system of an
operator initiated Batch Hold, Restart, or Abort. When a Hold, Restart, or Abort is
initiated, Batch Manager identifies the units involved in the batch and sets the
appropriate tag(s) within the control system. The control system manages control
phase logic as required by an application. There are three types of unit control tags:
Unit Hold, Unit Restart, and Unit Abort.
Unit State Tags are discrete, and are used by the control system to inform Batch
Manager that the status of a unit is Alarm, Held, Run or Ready.
Unit Control/State Tags are automatically created for each unit in a class when you
enable the Use Unit Control/State Tags check box.

To Enable Unit Control/State Tags for a Process Class:


1. From the Process Classes list, select the required Process.
2. Enable the Unit Control/State Tags check box.
3. Click Change to associate the unit control and unit state tags with the Process
Class.
Process Modeling 103

Assign Units
A process class can have one or more units assigned to it. Use the Assign Units
button on the Processes tab to associate units to a process class.

To Assign Units to a Process Class:


1. On the Processes tab, select the required process from the Process Class list.

2. All of the units that are currently assigned to the selected Process Class will be
displayed in the Units list.
3. You can select and deselect units appearing in the Units list.
4. If you want to add additional units to the Units list, and ultimately, the process
class, click the Assign Units button.
The Assign Units to Process window will appear.
104 Chapter 4

The Units list will display all of the units (unassigned and previously assigned
units) that can be assigned to the process class. Units that were previously
assigned are, by default, selected.
5. In the Units list, select the desired units.
6. Click Apply.
The selected units will appear in the Units list on the Processes tab.

Process Class Attributes


Attributes are process class characteristics that you define during recipe creation.
Attributes allow you to categorize, or narrow, the available units that can be
selected from the process class. There is no limit to the number of attributes that
you can define for a class.
Use the Edit Attributes window to Add, Change and Delete Process Class
Attributes.

To Assign Attributes to a Process Class:


1. On the Processes tab, click the Attributes button.
The Edit Attributes window will appear.
Process Modeling 105

2. If Attributes have already been created for the process class, they will be
appear in the Process Attributes list.
3. If you are adding a new Attribute, enter a name in the Name box (16-char
max).
4. Click Add.
5. The Process Attributes list will display the attribute.

Note The editor will verify all new attribute names to ensure validity and
uniqueness. You will be prompted to change the name in the event you enter a
duplicate.

Assigning Unit Attribute Values


After an attribute(s) has been created, specific values for each attribute must be
defined for each unit that belongs to the process class. Only numeric values can be
assigned. This may require defining an external translation table so that value
assignments can easily be related for the appropriate attribute. In the example plant
referenced earlier, stainless steel reactors have been assigned a value of 1 and glass
lined reactors have been assigned a value of 2. Also, a separation type of 1
represents the presence of a liquid/oil separator, while a value of 2 represents the
presence of a liquid/solid separator.

To Assign a Unit Attribute Value:


1. On the Processes tab, from the Units list, select the required unit.
106 Chapter 4

2. Select an Attribute from the Attribute list.


3. In the Value field, enter the value of the attribute for the selected unit.
4. Click the Change button.
The value will appear in the unit’s Attribute/Value list.

Edit Process Class Tags


Each process class may have tags associated with it. All of the tags that are
associated with a process phase, or that are common to all of the units within the
process class, must be entered using the Edit Process Tags window.
Defining a process class tag requires the entry of the following information.
• Phase Name (Optional, 8-char max)
• Parameter Name (Optional, 8-char max)
• Element Name (Required, 8-char max)
• Description (Optional, 120-char max)
• Data Class (Required, Analog, Discrete, String or Enumeration)
• Access Mode (Required, Either Read-Only or Read/Write)
• Attribute (Optional, Select from available InTouch dot fields)
Process Modeling 107

Note It is important to remember that for every process tag that is created, unit
tags are automatically generated for each unit assigned to the class. These unit tags,
not the process tags, are associated to data points in the control system. However,
the process class tags are available for assignment to formula parameters and to the
recipe builder through the transition logic expression builder.

Use the Edit Process Tags window to Add, Change or Delete Process Class Tag
properties.

To Edit a Process Class Tag:


1. On the Processes tab, click the Tags button.
The Edit Process Tags window will appear.
All tags previously assigned to the Process Class will be listed.

2. Enter/Edit the Phase Name, Parameter Name, Element Name, Description,


Data Class and Access mode as described earlier in this section.
3. Click Add if you are creating a new tag or click Change if you are modifying
an existing tag.
4. Click Close to close the Edit Process Tags window.
108 Chapter 4

Assigning Attributes to Process Tags


Use the Attributes button on the Edit Process Tags window to access a list of the
available InTouch .fields that can be selected. These fields correspond to the data
class of the selected process tag. The editor creates internal tags that correspond to
the selected fields. The tags do not appear in the unit tags list; however, they are
listed in the windows from which tags are selected.

To Assign Process Tag Attributes


1. On The Edit Process Tags window, click the Attributes button.
The Assign Process Tags window will appear

Attribute tags are not available for tags of String or Enumeration data type
2. Select the desired attribute from the Assign Attibute Tags window.
3. Click Apply to associate the selected attribute with the process class tag.
4. Click Close to close the Assign Attribute Tags window.

Process Class Phases


Use the Edit Phases window to assign phases to a process class. Each process class
can have any number of phases. Process phase types can be automatic or manual.
Automatic phases require control system phase logic. Manual phases and Data
Phases are executed by the batch management system.
Defining a process class phase requires the entry of the following information.
• Phase Name (Optional, 8-char max)
• Description (Optional, 120-char max)
• Phase Type (Required, Automatic , Manual or Data)
• Control Buttons (Optional, 2 available buttons)
• Interlocks (Optional, Available for all tags)
• Formula Parameters (Optional, Assign as required for the Phase)
• Save History (Optional, Save Control/Status Activity, and/or Parameter
Status)
Process Modeling 109

To Edit a Process Class Phase:


1. On the Processes tab, click the Phases button.
The Edit Phases window will appear.
All Phases previously assigned to the Process Class will be listed.

2. Enter/Edit the appropriate Name and Description as described earlier in this


section.
3. Click the Phase Type drop down arrow, and select Automatic, Manual or
Data as required.
4. Click Add to include the phase in the list or click Change if you have edited an
existing phase.
5. Configure additional phase options as described in the following text.

Save History
Use the Save History Control/Status Activity and Parameter Status check boxes
to configure the type of phase activity that will be stored in the history database. All
data stored in the history database is stamped with the time and date. You can
enable both check boxes if required. Use of this History feature is optional.

To Enable Save History Options:


1. In the Edit Phases window, enable the Control/Status Activity and/or
Parameter Status check box(es).
Enable the Control/Status Activity box to include all phase control and status
bit transitions.
Enable the Parameter Status box to include (when the phase is done) all
parameter element values, control button activity, and phase instructions.
2. Click Change.
110 Chapter 4

Control Buttons
You can include Control Buttons as part of the user interface. The buttons are a
part of the selected process class phase. To use a control button, you must associate
a tagname with the desired button.
For more information on Control Buttons, see “Process Phase Configuration” and
“Additional Phase Configuration” later in this section.

To Configure Control Buttons:


1. On the Edit Phases window, click Control Buttons.
The Edit Phase Control Buttons window will appear.

2. Enable Button 1 or Button 2 as required.


3. In the Label box, enter the text (8-char max) that you want to appear on the
button.
4. Click Assign Tag.
If you want to remove a tag that is associated with the control button, click
Clear Tag. Remember that modifying any assignments may affect other parts
of your overall process model.
The Tag Selection window will appear.
Process Modeling 111

5. Select a tag from the list.


You can sort list items by clicking a column heading.
6. Click OK to assign the tag to the control button, and close the Tag Selection
window.

Phase Control/Status Bits


Use the Edit Phase Control/Status window to configure Phase Control and Phase
Status bits. To configure phase control and phase status bits, you must associate
tags from the process phase and process class.
For more information on Phase Control/Status bits, see “Process Phase
Configuration” and “Additional Phase Configuration” later in this section.

To Configure Phase Control/Status Bits:


1. On the Edit Phases window, click Phase Control/Status.
The Edit Phase Control/Status window will appear.
The window shows the configuration for the selected Process Class and Phase.
112 Chapter 4

2. Configure the Phase Control and Phase Status bits as required.


For more information on Phase Control/Status bits, see “Process Phase
Configuration” and “Additional Phase Configuration” later in this section.

Interlocks
Use the Edit Process Interlocks window to configure interlocks for a process class
phase. To assign interlocks, you must associate unit tags with the process phase and
process class.
For more information on configuring Interlocks, see “Process Phase Configuration”
and “Additional Phase Configuration” later in this section.

To Configure Interlocks:
1. On the Edit Phases window, click the Interlocks button.
The Edit Process Interlocks window will appear.
The window shows all of the available units in the process class and any tags
(process class/transfer) assigned to the selected unit.
Process Modeling 113

2. Click the Assign Tags button.


The Tag Selection window will appear.

3. Select the required tag(s) from the list.


4. Click OK to assign the selected tag(s) to the Tags list on the Edit Process
Interlocks window.
114 Chapter 4

Formula Parameters
Use the Edit Formula Parameters window to configure formula parameters for a
process class phase.
For detailed information on configuring Formula Parameters, see “Process Phase
Configuration” and “Additional Phase Configuration” later in this section.

To Configure Formula Parameters:


1. On the Edit Phases window, click the Formula Parameters button.
The Edit Formula Parameters window will appear.

The window shows the Formula Parameter configuration of the selected


Process Class and Phase.
For detailed information on configuring Formula Parameters, see “Process Phase
Configuration” and “Additional Phase Configuration” later in this section.

Automatic Process Phases


Automatic process phases are executed in the control system. Operator interaction
can be a normal part of the process or can occur only when abnormal situations
arise. Operator actions could involve putting the phase in hold or entering
parameter values while the phase is running. Enabling the operator to change
parameter values is defined when the formula parameters are configured.
Automatic process phases must have control system phase logic, and therefore,
must have Phase Control and Status Bits defined. Interlocks, Control Buttons, and
Formula Parameters are optional.
When the batch management system encounters an automatic process phase with an
input type parameter, the batch management system will update the material usage
record in the materials database based on the actual amount used.
Process Modeling 115

For more information on material location assignments, see Chapter 6, "Materials


Editor."
The batch control system can be configured to handle many different automatic
process phases. The following examples describes several examples of automatic
phases. The phase names correspond to the processing capabilities associated with
the example plant referenced earlier.
1. Phase Name: Heat
Increase the temperature of the unit to a specified temperature at a specified
rate.
2. Phase Name: Cool
Decrease the temperature of the unit to a specified temperature at a specified
rate.
3. Phase Name: Soak
Maintain the temperature of the unit at a specified temperature for a specified
time.
4. Phase Name: Agitate
Turn the agitator on for a specified time.
5. Phase Name: AgitOn
Turn the agitator on.
6. Phase Name: AgitOff
Turn the agitator off.
7. Phase Name: Charge
Coordinated with a source unit discharge phase, this phase represents one of
the ways in which materials can be moved and tracked. It is responsible for
enabling the flow of a material into the unit.
8. Phase Name: Discharge
Coordinated with a destination unit charge phase, this phase represents one of
the ways in which raw materials can be moved and tracked. It is responsible for
enabling the flow of a material out of the unit.
Possible phase parameter configurations for these automatic process phase
examples are shown below.

Phase
Phase Control/Status Interlocks and
Phase Logic Parameters Formula Control
Name Required Required Parameters Buttons
Heat Yes Yes Rate Temp As Needed
Cool Yes Yes Rate Temp As Needed
Soak Yes Yes Time Temp As Needed
Agitate Yes Yes Time As Needed
AgitOn Yes Yes None As Needed
AgitOff Yes Yes None As Needed
Charge Yes Yes Quantity As Needed
Discharg Yes Yes Quantity As Needed
116 Chapter 4

Formula Parameter Configuration of Automatic


Process Phases
There are three types of Formula Parameters; Input, Output, and Process
Variable. Process variable parameters are used to represent setpoints, rates, etc.
Input and output parameters are used when material tracking is required. Also, a
specific data class type must be assigned to each formula parameter. The available
data class options are Analog, Discrete, String, and Enumeration. Enumeration is
only available for Process Variable type parameters. Tag assignments to the
elements associated with each parameter correspond to the assigned data class of
the parameter. For example, only analog tags can be assigned to the elements of an
analog process variable parameter.
Input parameters have seven elements. The parameter name defines a family of
information while Elements define the members of the family. The seven elements
for input parameters are Target, Actual, High Deviation, Low Deviation, Preact, Lot
Code, and Material ID.
Output parameters have three elements. The parameter name defines a family of
information while Elements define the members of the family. The three elements
for output parameters are Target, Actual, and Material Id.
Process variables have six elements. The parameter name defines a family of
information. Elements define the members of the family. The six elements for
process variables are Target, Actual, High Deviation, Low Deviation, High Limit,
and Low Limit.
The configuration of the parameter type, data class, and elements is extremely
important. The batch management system will control a phase and interact with
both the control system and the operator based on the configuration of the
parameters. The following sections contain a detailed explanation of the results that
can you can achieve for different parameter configurations.

Target Element
The target element is available for all parameter and data class combinations and is
configured as follows:
1. Select the Enable Display check box if the target value is to be displayed
during the runtime execution of the phase. If a tag is assigned to the element,
the value assigned in the recipe will be written to the control system by the
batch management system prior to the start of the phase. Typically, the phase
logic will use the target value to determine when to end the phase.
2. If the operator is allowed to modify the target, enable the Edit Allowed check
box.
3. If the operator must modify the target, enable the Edit Required check box.
4. A Default Value can be assigned to the target element for process variable
parameters of any data class.

Actual Element
The actual element is available for all parameter and data class combinations and is
configured as follows:
Process Modeling 117

1. Select the Enable Display check box if the actual value is to be displayed
during the runtime execution of the phase. If a tag is assigned to the element,
the batch management system will read the value of the tag, in real-time, from
the control system during the execution of the phase.
2. If the operator is allowed to modify the actual value, enable the Edit Allowed
check box.
3. If the operator must modify the actual, enable the Edit Required check box.

High and Low Deviation Elements


High and low deviation elements are available for analog process variable
parameters and analog input parameters and are expressed as a percentage of the
target value. If tags are assigned, the batch management system calculates and
writes the deviation values to the control system prior to the start of the phase.
Deviations are recalculated if changes are made to the target or deviation elements.
For example, if the target value is 100, the high deviation is 3%, and the low
deviation is 5%, the down-loaded high and low deviation values will be 3 and 5
respectively.
High and low deviation elements are configured as follows:
1. Select the appropriate Enable Display check box if either of the element
values are to be displayed during the runtime execution of the phase. Typically,
the phase logic uses the deviations to establish alarm limits or an acceptable
phase completion range for the actual value of the parameter.
2. If the operator is allowed to modify either of the deviation values, then enable
the Edit Allowed check box.
3. If the operator must modify either of the deviation values, then enable the Edit
Required check box.
4. A Default Value can be assigned to the high and low deviation elements for
analog process variable parameters only.

High and Low Limit Elements


The high and low limit elements are available for analog process variable
parameters and are used by the Recipe Editor and the batch management system to
prevent the entry of out of range values. If tags are assigned, the batch management
system writes the limit values to the control system prior to the start of the phase.
The high and low limit elements are configured as follows:
1. Select the appropriate Enable Display if either of the element values are to be
displayed during the runtime execution of the phase.
2. A Default Value can be assigned to the high and low limit elements.

Preact Element
The preact element is available for analog input parameters and is configured as
follows:
1. Select the Enable Display if the preact value is to be displayed during the
runtime execution of the phase.
118 Chapter 4

2. If a tag is assigned to the element, the preact value defined in the process
model will be written to the control system by the batch management system
prior to the start of the phase.

Lot Code Element


The lot code element is available for analog input parameters and is configured as
follows:
1. Select the Enable Display if the lot code value is to be displayed during the
runtime execution of the phase.
2. If the operator is allowed to modify the lot code, enable the Edit Allowed
check box.
3. If the operator must modify the lot code, enable the Edit Required check box.
4. If a tag is assigned to the element, the value assigned by the operator or the
control system will be written to the batch management system during the
execution of the phase.

Material ID Element
The material id element is available for analog input and output parameters and is
configured as follows:
1. Select the Enable Display if the material id value is to be displayed during the
runtime execution of the phase.
2. If the operator is allowed to modify the material id, enable the Edit Allowed
check box.
3. If the operator must modify the material id, enable the Edit Required check
box.
Formula parameter configurations for the automatic process phase examples given
earlier are shown below.

Phase Parameter Parameter Assign Enable/ Edit Edit


Name Name Type Tag Display Allowed Required
Target Element
a) Agitate SpeedTime Process Variable Yes Yes Yes No
Process Variable Yes Yes Yes No
b) AgitOff N/A N/A N/A N/A N/A N/A
c) AgitOn Speed Process Variable Yes Yes Yes No
d) Charge Quantity Input Yes Yes Yes No
e) Cool Temp Process Variable Yes Yes Yes No
Rate Process Variable Yes Yes Yes No
f) Discharg Quantity Output Yes Yes Yes No
g) Heat Temp Process Variable Yes Yes Yes No
Rate Process Variable Yes Yes Yes No
h) Soak Temp Process Variable Yes Yes Yes No
Time Process Variable Yes Yes Yes No
Process Modeling 119

Phase Parameter Parameter Assign Enable/ Edit Edit


Name Name Type Tag Display Allowed Required

Actual Element
a) Agitate Speed Process Variable Yes Yes No No
a) Agitate Time Process Variable Yes Yes No No
b) AgitOff N/A N/A N/A N/A N/A N/A
c) AgitOn Speed Process Variable Yes Yes No No
d) Charge Quantity Input Yes Yes No No
e) Cool Temp Process Variable Yes Yes No No
Rate Process Variable Yes Yes No No
f) Discharg Quantity Output Yes Yes No No
g) Heat Temp Process Variable Yes Yes No No
Rate Process Variable Yes Yes No No
h) Soak Temp Process Variable Yes Yes No No
Time Process Variable Yes Yes No No
High and Low Deviation Element
a) Agitate Speed Process Variable Yes Yes No No
Time Process Variable Yes Yes No No
b) AgitOff N/A N/A N/A N/A N/A N/A
c) AgitOn Speed Process Variable Yes Yes No No
d) Charge Quantity Input Yes Yes No No
e) Cool Temp Process Variable Yes Yes No No
Rate Process Variable Yes Yes No No
f) Discharg Quantity Output Yes Yes No No
g) Heat Temp Process Variable Yes Yes No No
Rate Process Variable Yes Yes No No
h) Soak Temp Process Variable Yes Yes No No
Time Process Variable Yes Yes No No
High and Low Limit Element
a) Agitate Speed Process Variable Yes Yes N/A N/A
Time Process Variable Yes Yes N/A N/A
b) AgitOff N/A N/A N/A N/A N/A N/A
c) AgitOn Speed Process Variable Yes Yes N/A N/A
d) Charge Quantity Input Yes Yes N/A N/A
e) Cool Temp Process Variable Yes Yes N/A N/A
Rate Process Variable Yes Yes N/A N/A
f) Discharg Quantity Output Yes Yes N/A N/A
g) Heat Temp Process Variable Yes Yes N/A N/A
Rate Process Variable Yes Yes N/A N/A
h) Soak Temp Process Variable Yes Yes N/A N/A
Time Process Variable Yes Yes N/A N/A
120 Chapter 4

Phase Parameter Parameter Assign Enable/ Edit Edit


Name Name Type Tag Display Allowed Required
Preact Element
a) Agitate N/A N/A N/A N/A N/A N/A
b) AgitOff N/A N/A N/A N/A N/A N/A
c) AgitOn N/A N/A N/A N/A N/A N/A
d) Charge Quantity Input No No No No
(LBS)
e) Cool N/A N/A N/A N/A N/A N/A
f) Discharg N/A N/A N/A N/A N/A N/A
g) Heat N/A N/A N/A N/A N/A N/A
h) Soak N/A N/A N/A N/A N/A N/A
Lot Code Element
a) Agitate N/A N/A N/A N/A N/A N/A
b) AgitOff N/A N/A N/A N/A N/A N/A
c) AgitOn N/A N/A N/A N/A N/A N/A
d) Charge Quantity Input Yes Yes Yes Yes
(LBS)
e) Cool N/A N/A N/A N/A N/A N/A
f) Discharg N/A N/A N/A N/A N/A N/A
g) Heat N/A N/A N/A N/A N/A N/A
h) Soak N/A N/A N/A N/A N/A N/A
Material Id Element
a) Agitate N/A N/A N/A N/A N/A N/A
b) AgitOff N/A N/A N/A N/A N/A N/A
c) AgitOn N/A N/A N/A N/A N/A N/A
d) Charge Quantity Input Yes Yes No No
(LBS)
e) Cool N/A N/A N/A N/A N/A N/A
f) Discharg Quantity Output Yes Yes No No
(LBS)
g) Heat N/A N/A N/A N/A N/A N/A
h) Soak N/A N/A N/A N/A N/A N/A

Manual and Data Process Phases


Manual process phases are used to model manual activities in the process. Many
processes are not completely automated and require the operator to perform manual
operations or actions according to the phase being executed, and to acknowledge
phase completion.
Data process phases are used as a convenient means of mass data transfer between
the batch system and control system. Data phases are similar to manual phases
except they do not require operator acknowledgement. Use data phases to
download data to (and/or upload data from) the control system and log it to history.
Process Modeling 121

Manual and data process phases do not have control system phase logic, and
therefore, they do not have tag assignments for Phase Control/Status Bits or
Interlocks. Control Buttons are optional for manual phases but are not available for
data phases. Formula Parameters are optional for both phase types.
Manual and data phases are executed by the batch management system. Manual
process phases must be acknowledged by the operator before they are considered
done. Acknowledgment can only be accomplished once all of the phase edit and
comment requirements have been satisfied. Data phases do not require operator
acknowledgement.
The batch control system can be configured to handle many different manual and
data process phases. Described below are several examples that can be configured.
The phase names are used only for example purposes.
1. Phase Name: QASample (Manual)
The instruction will be given to the operator to take a sample of product to QA
for testing.
2. Phase Name: OpAction (Manual)
This phase is a general purpose message phase. This phase can be used anytime
the operator must be instructed to perform a task. The instructions are entered
as part of the recipe.
3. Phase Name: Agitate (Manual)
The operator will be instructed to manually start the agitator, a timer, and
adjust the agitator speed.
4. Phase Name: MixSpeed (Data)
In the middle of a mixing phase, the mix speed must be set to a higher speed.
The MixSpeed phase simply downloads the new setpoint. The existing tag
from the mixing phase can even be used.
5. Phase Name: EqStatus (Data)
This phase uses the Equipment Status (USTAT) tag from the unit in the target
of it’s Status string parameter. This phase can used in a product recipe to set
equipment statuses to values such as “Used”, or “Dirty” after a product recipe,
or “Clean” after a cleaning recipe.
6. Phase Name: GetInfo (Data)
This phase reads data from an external instrument to log into the batch history.
Perhaps the temperature of the batch is desired, but there is really no automatic
phase for monitoring this value. The GetInfo phase can be used at critical
points in the batch to capture a temperature reading.
Possible phase parameter configurations for the manual and data process phase
examples are shown below.

Phase
Phase Control/Status Interlocks and
Logic Parameters Formula Control
Phase Name Required Required Parameters Buttons
QASample No No none N/A
OpAction No No none N/A
Agitate No No Time Speed N/A
MixSpeed No No NewSpeed N/A
122 Chapter 4

Phase
Phase Control/Status Interlocks and
Logic Parameters Formula Control
Phase Name Required Required Parameters Buttons
EqStatus No No Status N/A
GetInfo No No Temp N/A

Formula Parameter Configuration of Manual and


Data Process Phases
The formula parameters that are available for manual and data process phases are
exactly the same as those described for automatic process phases. All of the
parameter types, data class options, and element alternatives are the same for
automatic and manual process phases.
For more information on Formula Parameter Configuration of Manual and Data
Process Phases, see, Formula Parameter Configuration of Automatic Process
Phases, earlier in this section.

Connections Tab
Use the Connections tab to define all the material and product paths in the plant.

To display the Connections Tab:


1. On the Process Modeling Editor window, click the Connections tab.
The Connections tab will appear.
Process Modeling 123

All of the available Connections in your process model are listed.

Editing Connections
To Edit a Connection:
1. In the Name box, enter a name for the connection (8-char max).
2. In the Description box, you can optionally enter text describing the connection
(120-char max).
3. In the Preact box, you can optionally enter the a value.
Preact is a value that is equal to the difference between the target quantity
(preset) and the actual quantity (actual) that is delivered when material is
transferred through a connection. Many times, there is dribble or free fall of
product in the connection when a transfer occurs. This results in overflow. The
preact defines the anticipated overflow; that is, the difference between the
target and the actual. The preact value is only used in transfer phases.
The control system phase logic must include appropriate logic in anticipation
of receiving a preact during the execution of a recipe. Also, there are no
automatic adjustments made to the preact value by the batch control system.
Any calculations and adjustments that are to be made to the preact must be
done at the control system level. This is explained further in the section
associated with automatic transfer phases.
124 Chapter 4

Assign Source and Destination Units


A connection requires a source unit and a destination unit. Use the Source Unit and
Destination Unit buttons to make these assignments. All units in the model are
available for assignment. Only one unit can be assigned as a source or destination
unit. The source and the destination cannot be the same unit.

To Assign Source and Destination Units:


1. Click the Source Unit button.
The Select Source Unit window appears.

2. From the Units list, select an appropriate source unit.


3. Click OK.
4. Click the Destination Unit button.
The Select Destination Unit window appears.

5. From the Units list, select an appropriate destination unit.


6. Click OK.
Process Modeling 125

Note Because of the relationship that connections have with units and their parent
transfer class, the source and/or destination units may not be changed. In order to
change the source and/or destination unit for a connection, the existing connection
must be deleted and a new connection must be created.

Assign Segments to Connections


Each connection may consist of zero, one, or more segments. A segment is a
subsection of a connection, and can be shared by more than one connection. The
use of segments is optional.
Before you can assign segments you must create them using the Segment editor.
For more information on creating segments, refer to “Edit Segments Tab” later in
this section.

To Assign a Segment:

Note If you have not assigned segments, the Segments list will be empty.

1. On the Connections tab, click the Assign Segments button.


The Assign Segments to Connection window will appear.

2. All available segments will be displayed in the Segments list box. Segments
that were previously assigned are selected by default. In the example shown,
the selected segments are being assigned to the Bulk Tank1 to ReactorA
connection.
3. Select the appropriate Segment(s) from the list.
4. Click OK.
126 Chapter 4

Connection Tags
Each connection in a process model may have tags associated with it. Use the Edit
Connections Tags window to associate tags with a connection. Connection tags are
virtually identical to unit tags, except connection tags are associated with the
connections between units. All of the tags that are associated with a connection
must be entered using the Edit Connections Tags window.
A Connection tag consists of the following elements. Some elements are required,
while others are optional.
• Phase Name (Optional, 8-char max)
• Parameter Name (Optional, 8-char max)
• Element Name (Required, 5-char max)
• Description (Optional, 120-char max)
• Data Class (Required, Analog, Discrete, String or Enumeration)
• Access Mode (Required, Either Read Only or Read/Write)
• Attribute (Optional, Select from available InTouch dot fields)

To Edit Connection Tags:


1. On the Connections tab, click the Tags button.
The Edit Connection Tags window will appear.
Process Modeling 127

Assigning Attributes to Connection Tags


Use the Assign Attribute Tags window to assign Attributes to Connection Tags. The
Assign Attribute Tags window contains a list of the available InTouch .fields )that
can be selected. These fields correspond to the data class of the selected unit tag.
The editor creates internal tags corresponding to the selected fields. The tags are not
displayed in the unit tags list, but are available in tag selection dialogs.

To Assign Attributes to Connection Tags:


1. On the Edit Connection Tags window, click the Attributes button.
The Assign Attribute Tags window will appear:

2. Select the desired attribute from the list.


3. Click Apply to associate the selected attribute with the Connection Tag.
4. Click Close to close the Assign Attribute Tags window.

Transfers Tab
Use the Transfers tab to define all of the transfer classes in your process model. A
transfer is a group of connections in which all of the source units have the same
process class and all of the destination units have the same process class.
Connections are assigned to transfers based on their source and destination units.
Unlike a connection, which cannot have the same source and destination unit
assigned, a transfer class may have the same source and destination process class
assignment.

To Display the Transfers Tab:


1. On the Process Modeling Editor window, click the Transfers tab.
The Transfers tab will appear.
128 Chapter 4

All of the available Transfers in your process model are listed.

Editing Transfers
To Edit a Transfer:
1. In the Name box, enter a name for the transfer (8-char max).
2. In the Description box, you can optionally enter text describing the transfer
(120-char max).

Assign Source and Destination Process Classes


A transfer requires a source process class and a destination process class. Use the
Source Process Class and Destination Process Class buttons to make these
assignments. It is important to define descriptive transfer names. These names will
be referenced in the recipe procedure editor. Therefore, it will be helpful if the
selected names describe the purpose of the transfer.
There may be processing facilities where there is more than one type of connection
between the same two classes of equipment. This is shown in the example plant
earlier in this section. Reactors A and B are connected to their respective mix tanks
directly, as well as through a separator and a condenser. For all situations where two
units have more than one connection between them, each connection must be
assigned to a different transfer class.
Process Modeling 129

To Assign Source and Destination Process Classes:


1. Click the Source Process Class button.
The Select Source Process Class window appears.

2. From the Process Class list, select an appropriate process class.


3. Click OK.
4. Click the Destination Process Class button.
The Select Destination Process Class window appears.

5. From the Process Class list, select an appropriate process class.


6. Click OK.

Assign Connections
Each transfer class can have one or more connections assigned to it.

To Assign Connections to a Transfer:


1. On the Transfers tab, click the Assign Connections button.
The Assign Connections to Transfer window will appear.
130 Chapter 4

All unassigned connections, and any connections previously assigned to a


transfer that have source and destination units belonging to the transfer’s
source and destination process class assignments, will be displayed in the list.
All previously assigned connections will be selected.
2. Select the appropriate connection(s) from the list.
3. Click OK to assign the connections to the transfer.
In the above example, the source process class is “Bulk Tanks” and the
destination process class is “Reactors.” The assignment window displays all of
the connections between the four bulk sources and both of the reactors because
the bulk sources are in the Bulk Tanks process class and the reactors are in the
Reactors process class.

Transfer Tags
Each transfer class may have tags associated with it. Use the Edit Transfer Tags
window to associate tags with a transfer class. All tags associated with a transfer
phase or common to all connections in the class must be entered using the Edit
Transfer Tags window.

Note It is important to remember that for every transfer tag created, connection
tags are automatically generated for each connection assigned to the class. These
connection tags, not the transfer tags, are associated to data points in the control
system. However, the transfer class tags are available to the recipe builder through
the transition logic expression builder.

A Transfer tag consists of the following elements. Some elements are required,
while others are optional.
• Phase Name (Optional, 12-char max)
• Parameter Name (Optional, 16-char max)
• Element Name (Required, 16-char max)
• Description (Optional, 120-char max)
• Data Class (Required, Analog, Discrete, String or Enumeration)
• Access Mode (Required, Either Read Only or Read/Write)
Process Modeling 131

To Edit Transfer Tags:


1. On the Transfers tab, click the Tags button.
The Edit Transfer Tags window will appear.

Assigning Attributes to Transfer Tags


Use the Assign Attribute Tags window to assign Attributes to Connection Tags. The
Assign Attribute Tags window contains a list of the available InTouch .fields that
can be selected. These fields correspond to the data class of the selected unit tag.
The editor creates internal tags corresponding to the selected fields. The tags are not
displayed in the unit tags list, but are available in tag selection dialogs

To Assign Attributes to Transfer Tags:


1. On the Edit Transfer Tags window, click the Attributes button.
The Assign Attribute Tags window will appear:
132 Chapter 4

2. Select the desired attribute from the list.


3. Click Apply to associate the selected attribute with the Transfer Tag.
4. Click Close to close the Assign Attribute Tags window.

Edit Transfer Class Phases


Use the Edit Phases window to assign phases to a transfer class. Each transfer class
can have any number of phases. Transfer class phase types can be automatic,
manual or data. Automatic phases require control system phase logic while manual
phases and data phases are executed by the batch management system. It is
important to define descriptive phase names. These names will be referenced in the
recipe procedure editor. Therefore, it will be helpful if the selected names describe
the purpose of the phase.
Inputs (ingredients or raw materials) and outputs (intermediates, by-products, and
finished goods) are recorded to the historical database when transfers are executed.
Not all transfers should, or need to, be configured to record inputs or outputs. Some
transfer phases are strictly used to transfer product from one unit to another. Only
transfer phases that result in a raw material being added to a batch, or where
finished product, intermediate, or by-products are produced, should be configured
to record input usage or production output.
Defining a transfer class phase requires the entry of the following information.
• Phase Name (Required, 8-char max)
• Description (Optional, 120-char max)
• Phase Type (Required, Automatic, Semi-Auto, Manual or Data)
• Control Buttons (Optional, 2 available buttons)
• Interlocks (Optional, Available for all tags)
• Formula Parameters (Optional, Assign as required for the Phase)
• Save History (Optional, Save Control/Status Activity, and/or Parameter
Status)
• Phase Control/Status (Required for Automatic and Semi-Auto phases,
Select/Assign tags to the phase control and status bits)
Process Modeling 133

To Edit a Transfer Class Phase:


1. On the Transfers tab, click the Phases button.
The Edit Phases window will appear.

All Phases previously assigned to the Transfer Class will be listed.


2. Enter/Edit the appropriate Name and Description as described earlier in this
section.
3. Click the Phase Type drop down arrow, and select Automatic, Semi-Auto,
Manual or Data as desired.
4. Click Add to include the phase in the list or click Change if you have edited an
existing phase.
5. Configure additional phase options as described in the following text.

Save History
Use the Save History Control/Status Activity and Parameter Status check boxes
to configure the type of phase activity that will be stored in the history database. All
data stored in the history database is stamped with the time and date. You can
enable both check boxes if required. Use of this History feature is optional.

To Enable Save History Options:


1. In the Edit Phases window, enable the Control/Status Activity and/or
Parameter Status check box(es).
Enable the Control/Status Activity box to include all phase control and status
bit transitions.
Enable the Parameter Status box to include (when the phase is done) all
parameter element values, control button activity, and phase instructions.
2. Click Change.
134 Chapter 4

Control Buttons
You can include Control Buttons as part of the user interface. The buttons are a
part of the selected transfer class phase. To use a control button, you must associate
a tagname with the desired button. Control buttons are not available for data type
phases.
For more information on Control Buttons, see “Transfer Phase Configuration” and
“Additional Phase Configuration” later in this section.

To Configure Control Buttons


1. On the Edit Phases window, click Control Buttons.
The Edit Phase Control Buttons window will appear.

2. Enable Button 1 or Button 2 as required.


3. In the Label box, enter the text (8-char max) that you want to appear on the
button.
4. Click Assign Tag.
If you want to remove a tag that is associated with the control button, click
Clear Tag. Remember that modifying any assignments may affect other parts
of your overall process model.
The Tag Selection window will appear.
Process Modeling 135

5. Select a tag from the list.


You can sort list items by clicking a column heading.
6. Click OK to assign the tag to the control button, and close the Tag Selection
window.

Phase Control/Status Bits


Use the Edit Phase Control/Status window to configure Phase Control and Phase
Status bits. To configure phase control and phase status bits, you must associate
tags from the transfer phase and transfer class. Phase Control/Status Bits are not
available for manual or data type phases.
For more information on Phase Control/Status bits, see “Transfer Phase
Configuration” and “Additional Phase Configuration” later in this section.

To Configure Phase Control/Status Bits:


1. On the Edit Phases window, click Phase Control/Status.
The Edit Phase Control/Status window will appear.
136 Chapter 4

The window shows the configuration for the selected Transfer Class and Phase.
2. Configure the Phase Control and Phase Status bits as required.
For more information on Phase Control/Status bits, see “Transfer Phase
Configuration” and “Additional Phase Configuration” later in this section.

Interlocks
Use the Edit Transfer Interlocks window to configure interlocks for a transfer
phase. Interlocks are not available for data type phases.
For more information on configuring Interlocks, see “Transfer Phase
Configuration” and “Additional Phase Configuration” later in this section.

To Configure Interlocks:
1. On the Edit Phases window, click the Interlocks button.
The Edit Transfer Interlocks window will appear.
The window shows all of the available units in the transfer class and any tags
(process class/transfer) assigned to the selected unit.
Process Modeling 137

2. Click the Assign Tags button.


The Tag Selection window will appear.

3. Select the required tag(s) from the list.


4. Click OK to assign the selected tag(s) to the Tags list on the Edit Transfer
Interlocks window.
138 Chapter 4

Formula Parameters
Use the Edit Formula Parameters window to configure formula parameters for a
transfer class phase.
For detailed information on configuring Formula Parameters, see “Transfer Phase
Configuration” and “Additional Phase Configuration” later in this section.

To Configure Formula Parameters:


1. On the Edit Phases window, click the Formula Parameters button.
The Edit Formula Parameters window will appear.

The window shows all of the Formula Parameter configuration for the selected
Transfer Class and Phase.
For detailed information on configuring Formula Parameters, see “Transfer Phase
Configuration” and “Additional Phase Configuration” later in this section.

Transfer Phase Configuration


There are four types of transfer phases; Automatic, Semi-Automatic, Manual, and
Data. The following section describe the phase types and provides examples to help
you understand how to configure transfer phases.
Process Modeling 139

Automatic and Semi-Automatic Transfer Phases


Automatic and semi-automatic transfer phases are executed in the control system.
Operator interaction can be a normal part of the process or may occur only when
abnormal situations arise. Operator actions might involve putting the phase in Hold
or entering parameter values while the phase is running. Enabling the operator to
change parameter values is defined when formula parameters are configured.
Automatic and semi-automatic transfer phases must have control system phase
logic, and therefore, must have Phase Control and Status Bits defined. Interlocks,
Control Buttons, and Formula Parameters are optional. The transfer phases that are
used to record inputs or outputs must have formula parameters configured.
When the batch management system encounters an automatic transfer phase with
an input type parameter, a bulk material addition is (typically) being made to the
batch. The batch management system finds the storage unit that holds the material
in the materials database, and determines which connection (i.e. which phase) to
execute in order to successfully complete the transfer. The batch management
system will update the material usage record in the materials database based on the
actual amount used.
For more information on material location assignments, see Chapter 6, "Materials
Editor."
When the batch management system encounters a semi-automatic transfer phase
with an input type parameter, typically a non-bulk material addition is being made
to the batch. Because the phase is semi-automatic, the operator must acknowledge
the start of the phase. Also, the batch management system will not search for the
location of the material in the materials database. However, if the material has been
assigned to a unit, the batch management system will update the material usage
record in the materials database based on the actual amount used.
The batch control system can be configured to handle many different automatic and
semi-automatic transfer phases. Described below are several examples that can be
configured. Most of the phase names correspond to the transferring capabilities
associated with the example plant referenced earlier. The DrumAdd and LoadBulk
phases are used only for example purposes.
1. Phase Name: BulkAdd (Automatic)
Raw materials stored in bulk units are transferred to other units in the plant.
Measurement of the actual amount transferred is made using a flow meter,
mass flow meter, or weigh scale. A record of the quantity added to the batch is
required.
2. Phase Name: Separate (Automatic)
Material is transferred through a separator from one unit to another unit. There
is no actual measurement of the by-product output of the separator, but a record
of this output is required.
3. Phase Name: Package (Automatic)
Finished product is transferred from a processing unit to a finished goods
package of some form. The operator initiates the start of the fill for each
package. Control of the transfer and measurement of the actual amount is
performed by the control system. A record of the finished product and the
number of packages are required.
140 Chapter 4

4. Phase Name: Condense (Automatic)


Material is transferred from one unit to another through a condenser. There is
no record of material usage or production output.
5. Phase Name: Transfer (Automatic)
Material is transferred from one unit to another. There is no record of material
usage or production output.
6. Phase Name: LoadBulk (Automatic)
Finished product is transferred from a processing unit to a bulk unit (railroad
car, tanker, and storage tank). The operator is responsible for starting the
transfer. Control of the transfer and measurement of the quantity transferred is
performed by the control system. A record of the finished product output is
required.
7. Phase Name: DrumAdd (Semi-Automatic)
Material is transferred from a drum unload station to one unit. The operator
must acknowledge that the drum and pump are in place and properly connected
before the phase will execute. The drum unload station is used to add many
different materials.
Possible phase parameter configurations for the automatic and semi-automatic
transfer phase examples are shown in the following table.

Phase
Phase Control/Status Interlocks
Phase Logic Parameters Formula and Control
Name Type Required Required Parameters Buttons
BulkAdd Automatic Yes Yes Quantity As Needed
Separate Automatic Yes Yes Quantity As Needed
Package Automatic Yes Yes Quantity As Needed
Size
Count
Condense Automatic Yes Yes None As Needed
Transfer Automatic Yes Yes None As Needed
LoadBulk Automatic Yes Yes Quantity As Needed
DrumAdd Semi-Automatic Yes Yes Quantity As Needed

Formula Parameter Configuration of Auto and


Semi-Auto Transfer Phases
There are three types of Formula Parameters: Input, Output, and Process
Variable. Process variable parameters represent setpoints, rates, etc. Input and
output parameters are used when material tracking is required. A specific data class
type must be assigned to each formula parameter. The available data class options
are Analog, Discrete, String and Enumeration. Tag assignments to the elements
associated with each parameter correspond to the assigned data class of the
parameter. For example, only analog tags can be assigned to the elements of an
analog process variable parameter.
Process Modeling 141

Input parameters have seven elements. The parameter name defines a family of
information. Elements define the members of the family. The seven elements for
input parameters are Target, Actual, High Deviation, Low Deviation, Preact, Lot
Code, and Material ID.
Output parameters have three elements. The parameter name defines a family of
information. Elements define the members of the family. The three elements for
output parameters are Target, Actual, and Material ID.
Process variables parameters have six elements. The parameter name defines a
family of information. Elements define the members of the family. The six elements
for process variable parameters are Target, Actual, High Deviation, Low Deviation,
High Limit, and Low Limit.
The configuration of the parameter type, data class, and elements is extremely
important. The batch management system will control a phase and interact with
both the control system and the operator based on the configuration of the
parameters. Described below is a detailed explanation of the results that can be
expected for different parameter configurations.

Target Element
The target element is available for all parameter and data class combinations and is
configured as follows:
1. Select the Enable Display if the target value is to be displayed during the
runtime execution of the phase. If a tag is assigned to the element, the value
assigned in the recipe will be written to the control system by the batch
management system prior to the start of the phase. Typically, the phase logic
will use the target value to determine when to end the phase.
2. If the operator is allowed to modify the target, enable the Edit Allowed check
box.
3. If the operator must modify the target, enable the Edit Required check box.
4. A default value can be assigned to the target element for process variable
parameters of any data class.

Actual Element
The actual element is available for all parameter and data class combinations and is
configured as follows:
1. Select the Enable Display if the actual value is to be displayed during the
runtime execution of the phase. If a tag is assigned to the element, the batch
management system will read the value of the tag, in real-time, from the
control system during the execution of the phase.
2. If the operator is allowed to modify the actual value, enable the Edit Allowed
check box.
3. If the operator must modify the actual, enable the Edit Required check box.
142 Chapter 4

High and Low Deviation Elements


The high and low deviation elements are available for analog process variable
parameters and analog input parameters. If tags are assigned, the batch management
system calculates and writes the deviation values to the control system prior to the
start of the phase. Deviations are recalculated whenever changes are made to the
target or to the deviation elements. The high and low deviation elements are
expressed as real numbers representing a percentage of the target value. For
example, assume that the target value is 200, the high deviation is 3%, and the low
deviation is 5%. The values that are downloaded to the control system are; a high
deviation value of 6 and a low deviation value of 10.
The high and low deviation elements are configured as follows:
1. Select the appropriate Enable Display if either of the element values is to be
displayed during the runtime execution of the phase. Typically, the phase logic
uses the deviations to establish alarm limits or an acceptable phase completion
range for the actual value of the parameter.
2. If the operator is allowed to modify either of the deviation values, enable the
Edit Allowed check box.
3. If the operator must modify either of the deviation values, enable the Edit
Required check box.
4. A Default Value can be assigned to the high and low deviation elements for
analog process variable parameters only.

High and Low Limit Elements


The high and low limit elements are available for analog process variable
parameters and are used by the Recipe Editor and the batch management system to
prevent the entry of out of range values. If tags are assigned, the batch management
system writes the limit values to the control system prior to the start of the phase.
The high and low limit elements are configured as follows:
1. Set the appropriate Enable Display if either of the element values are to be
displayed during the runtime execution of the phase.
2. A Default Value can be assigned to the high and low limit elements.

Preact Element
The preact element is available for analog input parameters and is configured as
follows:
1. Set the Enable Display if the preact value is to be displayed during the runtime
execution of the phase.
2. If a tag is assigned to the element, the preact value defined in the process
model will be written to the control system by the batch management system
prior to the start of the phase.

Lot Code Element


The lot code element is available for analog input parameters and is configured as
follows:
Process Modeling 143

1. Set the Enable Display if the lot code value is to be displayed during the
runtime execution of the phase.
2. If the operator is allowed to modify the lot code, enable the Edit Allowed
check box.
3. If the operator must modify the lot code, enable the Edit Required check box.
4. If a tag is assigned to the element, the value assigned by the operator or the
control system will be written to the batch management system during the
execution of the phase.

Material ID Element
The material id element is available for analog input and output parameters and is
configured as follows:
1. Set the Enable Display if the material id value is to be displayed during the
runtime execution of the phase.
2. If the operator is allowed to modify the material id, enable the Edit Allowed
check box.
3. If the operator must modify the material id, enable the Edit Required check
box.
Formula parameter configurations for the automatic and semi-automatic
transfer phase examples presented earlier are shown in the following table.

Parameter Parameter Assign Enable/ Edit Edit


Phase Name Name Type Tag Display Allowed Required
Target Element
a) BulkAdd Quantity Input Yes Yes Yes No
b) Separate Quantity Output No Yes Yes No
c) Package Quantity Output Yes Yes Yes No
Size Process Variable Yes Yes Yes No
Count Process Variable No Yes Yes No
d) Condense N/A N/A N/A N/A N/A N/A
e) Transfer N/A N/A N/A N/A N/A N/A
f) LoadBulk Quantity Output Yes Yes Yes No
g) DrumAdd Rate Process Variable Yes Yes Yes No
Actual Element
a) BulkAdd Quantity Input Yes Yes Yes No
b) Separate Quantity Output No No No No
c) Package Quantity Output Yes Yes No No
Size Process Variable Yes Yes No No
Count Process Variable Yes Yes No No
d) Condense N/A N/A N/A N/A N/A N/A
e) Transfer N/A N/A N/A N/A N/A N/A
f) LoadBulk Quantity Output Yes Yes No No
g) DrumAdd Rate Process Variable Yes Yes No No
144 Chapter 4

Parameter Parameter Assign Enable/ Edit Edit


Phase Name Name Type Tag Display Allowed Required
High and Low Deviation Elements
a) BulkAdd Quantity Input Yes Yes No No
b) Separate Quantity Output Yes Yes No No
c) Package Quantity Output Yes Yes No No
Size Process Variable Yes Yes No No
Count Process Variable Yes Yes No No
d) Condense N/A N/A N/A N/A N/A N/A
e) Transfer N/A N/A N/A N/A N/A N/A
f) LoadBulk Quantity Output Yes Yes No No
g) DrumAdd Rate Process Variable Yes Yes No No
High and Low Limit Elements
a) BulkAdd Quantity Input N/A N/A N/A N/A
b) Separate Quantity Output N/A N/A N/A N/A
c) Package Quantity Output N/A N/A N/A N/A
Size Process Variable Yes Yes N/A N/A
Count Process Variable Yes Yes N/A N/A
d) Condense N/A N/A N/A N/A N/A N/A
e) Transfer N/A N/A N/A N/A N/A N/A
f) LoadBulk Quantity Output N/A N/A N/A N/A
g) DrumAdd Rate Process Variable Yes Yes Yes No
Preact Element
a) BulkAdd Quantity Input Yes Yes No No
b) Separate Quantity Output No No No No
c) Package Quantity Output N/A N/A N/A N/A
Size Process Variable N/A N/A N/A N/A
Count Process Variable N/A N/A N/A N/A
d) Condense N/A N/A N/A N/A N/A N/A
e) Transfer N/A N/A N/A N/A N/A N/A
f) LoadBulk Quantity Output N/A N/A N/A N/A
g) DrumAdd Rate Process Variable N/A N/A N/A N/A
Lot Code Element
a) BulkAdd Quantity Input No Yes Yes Yes
b) Separate Quantity Output No No No No
c) Package Quantity Output N/A N/A N/A N/A
Size Process Variable N/A N/A N/A N/A
Count Process Variable N/A N/A N/A N/A
d) Condense N/A N/A N/A N/A N/A N/A
e) Transfer N/A N/A N/A N/A N/A N/A
f) LoadBulk Quantity Output N/A N/A N/A N/A
g) DrumAdd Rate Process Variable No No No No
Material Id Element
Process Modeling 145

Parameter Parameter Assign Enable/ Edit Edit


Phase Name Name Type Tag Display Allowed Required
a) BulkAdd Quantity Input Yes Yes Yes No
b) Separate Quantity Output No No No No
c) Package Quantity Output Yes Yes No No
Size Process Variable Yes Yes No No
Count Process Variable Yes Yes No No
d) Condense N/A N/A N/A N/A N/A N/A
e) Transfer N/A N/A N/A N/A N/A N/A
f) LoadBulk Quantity Output N/A N/A N/A N/A
g) DrumAdd Rate Process Variable Yes Yes No No

Manual and Data Transfer Phases


Manual transfer phases are used to model manual material transfer activities in the
process. Many processes are not completely automated and may require an operator
to add materials to a batch by hand, or type in a lot code, or acknowledge the
completion of the phase.
Data transfer phases may be used to interface to external systems which cannot
implement the formal phase logic that the automatic phase requires.
Manual and data phases do not have control system phase logic, and therefore, do
not have tag assignments for Phase Control/Status Bits or Interlocks. The use of
Control Buttons are optional with manual phases. Formula parameters can
optionally be assigned to either type of phase.
Manual and data phases are executed by the batch management system. All manual
transfer phases must be acknowledged by the operator before they are considered
done by the batch system. Acknowledgement can only be accomplished once all of
the phase edit and comment requirements have been satisfied. Data transfer phases
do not require operator acknowledgement.
The batch control system can be configured to handle many different manual and
data transfer phases. The following examples demonstrate several manual and data
phase configurations. The phase names are used only for example purposes.
1. Phase Name: ScaleAdd (Manual)
Material is weighed on a scale that is attached to the control system. The
operator is required to enter the lot code for the material. When the weight,
which is being updated on the Batch Display, is within the acceptable range,
the operator depresses the acknowledge button. The operator then manually
transfers the material to the appropriate processing unit.
2. Phase Name: ManAdd (Manual)
Material is weighed on a scale that is not attached to the control system. The
operator must enter the actual weight, press the acknowledge button when the
weight is acceptable, and then manually transfer the material to the processing
unit.
146 Chapter 4

3. Phase Name: AckAdd (Manual)


Materials are pre-weighed prior to the execution of the final production batch.
As materials are added, the operator acknowledges each addition. The Batch
Manager records the material usage by using the target value as the actual
value.
4. Phase Name: PartsAdd (Manual)
The material addition may have two parts. For example, 60 pounds of salt must
be added, and salt comes in 50 pound bags. A scale is attached to the control
system.
One 50-pound bag is added to the batch. The operator enters 50 as the actual
value, enters the material lot code, and then acknowledges that the phase is
complete. The Batch Manager will treat this as a partial addition.
The remaining material (10 lbs) is weighed on the scale. When the weight is
within the tolerances, the operator enters the material lot code and then
acknowledges that the phase is complete.
5. Phase Name: Fill (Manual)
Material is transferred from a bulk source to a finished goods container where
the operator manually controls the transfer.
6. Phase Name: External (Data)
This phase reads and writes information to an external system. Target values
are writes, Actuals are reads.
The following table shows the valid phase parameter configurations for the manual
and data transfer phase examples described in this section.

Phase
Phase Control/Status
Logic Parameters Formula Interlocks and
Phase Name Required Required Parameters Control Buttons
ScaleAdd No No Quantity No Interlocks
Control Buttons As
Needed
ManAdd No No Quantity No Interlocks
Control Buttons As
Needed
AckAdd No No Quantity No Interlocks
Control Buttons As
Needed
PartsAdd No No Quantity No Interlocks
Control Buttons As
Needed
Fill No No Quantity No Interlocks
Control Buttons As
Needed
External No No as needed N/A
Process Modeling 147

Formula Parameter Configuration of Manual and


Data Transfer Phases
The formula parameters that are available for manual and data transfer phases are
exactly the same as those described earlier for automatic and semi-automatic
transfer phases.
For more information on configuring formula parameters for manual or data
transfer phases, see “Formula Parameter Configuration of Automatic and Semi-
Automatic Transfer Phases” earlier in this section.
All of the parameter types, data class options, and element alternatives are the same
for automatic, semi-automatic, manual and data transfer phases. Formula parameter
configurations for the manual and data transfer phase examples given earlier are
shown in the following table.

Parameter Parameter Assign Enable/ Edit Edit


Phase Name Name Type Tag Display Allowed Required
Target Element
a) ScaleAdd Quantity Input No Yes No No
b) ManAdd Quantity Input No Yes No No
c) AckAdd Quantity Input No Yes No No
d) PartsAdd Quantity Input No Yes No Yes
e) Fill N/A N/A N/A N/A N/A N/A
f ) External varies varies Yes N/A N/A N/A
Actual Element
a) ScaleAdd Quantity Input Yes Yes Yes No
b) ManAdd Quantity Input No No No Yes
c) AckAdd Quantity Input No Yes No No
d) PartsAdd Quantity Input No No No Yes
e) Fill N/A N/A N/A N/A N/A N/A
f ) External varies varies Yes N/A N/A N/A
High and Low Deviation Elements
a) ScaleAdd Quantity Input No Yes No No
b) ManAdd Quantity Input No Yes No No
c) AckAdd Quantity Input No Yes No No
d) PartsAdd Quantity Input No Yes No No
e) Fill N/A N/A N/A N/A N/A N/A
High and Low Limit Elements
a) ScaleAdd N/A N/A N/A N/A N/A N/A
b) ManAdd N/A N/A N/A N/A N/A N/A
c) AckAdd N/A N/A N/A N/A N/A N/A
d) PartsAdd N/A N/A N/A N/A N/A N/A
e) Fill N/A N/A N/A N/A N/A N/A
Preact Element
a) ScaleAdd Quantity Input No No No No
148 Chapter 4

Parameter Parameter Assign Enable/ Edit Edit


Phase Name Name Type Tag Display Allowed Required
b) ManAdd Quantity Input No No No No
c) AckAdd Quantity Input No No No No
d) PartsAdd Quantity Input No No No No
e) Fill N/A N/A N/A N/A N/A N/A
Lot Code Element
a) ScaleAdd Quantity Input No Yes Yes Yes
b) ManAdd Quantity Input No Yes No Yes
c) AckAdd Quantity Input No No No No
d) PartsAdd Quantity Input No Yes No Yes
e) Fill N/A N/A N/A N/A N/A N/A
Material Id Element
a) ScaleAdd Quantity Input No No No No
b) ManAdd Quantity Input No No No No
c) AckAdd Quantity Input No No No No
d) PartsAdd Quantity Input No No No No
e) Fill N/A N/A N/A N/A N/A N/A

Segments Tab
Use the Segments tab to define, edit and delete segments in your process model.
Segment names must be unique. If you attempt to enter a duplicate segment name, a
message box will be displayed, indicating that the segment already exists. If you
attempt to delete a segment that is assigned to a connection, a warning message will
be displayed. Deleting segments can affect other portions of your process model.

To Display the Segments Tab:


1. On the Process Modeling Editor window, click the Segments tab.
The Segments tab will appear.
Process Modeling 149

All of the segments that have been defined for the process model will appear in
the Segments list.

To Edit a Segment:
1. On the Segment tab, enter or edit the Name (8-char max) and optional
Description (120-char max).
2. Click Add to include the segment in the process model or click Change if you
are editing an existing Name or Description.
For more information on assigning segments to connections, see “Assign Segments
to Connections” earlier in this section.

Equipment Status Tab


Use the Equipment Status tab to define, edit and delete process model statuses for
units and segments. Equipment Status names must be unique. If you attempt to
enter a duplicate name, a message box will be displayed, indicating that the
equipment status already exists. Deleting an Equipment Status can affect other
portions of your process model
150 Chapter 4

Equipment statuses represent the various states that a unit or segment may possess
at any point during the process. You must define one default status. The default
status defines the initial state that the batch management system assumes for all of
the units and segments. All status changes are recorded in the historical database.
There is a system tag that is automatically generated for each unit and/or segment
defined in the process model. The equipment statuses define the possible values of
this system tag. The statuses are used by the batch management system when
evaluating the availability of a unit or connection.
The availability of a unit is determined by the current status. If the status is set to
“available,” the batch management system can allocate the unit. If the status is not
available, the unit cannot be allocated.
The availability of a connection is determined by the current status of all of the
segments that comprise the connection. If a connection does not contain one or
more segments, the connection is always available.

To Display the Equipment Status Tab:


1. On the Process Modeling Editor window, click the Equipment Status tab.
The Equipment Status tab will appear.

All of the statuses that have been defined for the process model will appear in
the Status list.
Process Modeling 151

To Edit an Equipment Status:


1. On the Equipment Status tab, enter or edit a Name (16-char max) and optional
Description (120-char max).
2. Enable or disable the Available and/or Default check box(es) as required.

Note You must define one default status.

3. Click Add to include the equipment status in the process model or click
Change if you are editing an existing Name or Description.

Units of Measure Tab


Use the Units of Measure tab to define, change, delete, and import or export the
units of measure that you want to define for your process model. Units of Measure
are ultimately assigned to process variable formula parameters that you defined
using the Edit Formula Parameters window. If you are going to assign Units of
Measure to process variable formula parameters, you should define them first. You
can add, change or delete a Unit of Measure at any time during the development of
your process model. However, in the planning of your process model, you should
consider defining them before you create process classes. You can import and
export a list of Units of Measure to and from an ascii text file.

To Add or Change a Unit of Measure:


1. On the Process Modeling Editor window, click the Units of Measure tab.
The Units of Measure tab will appear.
152 Chapter 4

All of the units of measure that have been defined for the process model will
appear in the Units of Measure list.
2. Enter/Edit a Name (16-char max).
3. Click Add to include the unit of measure in the process model or click Change
if you are editing an existing Name or Description.

Import and Export Units of Measure


If you want to import a list of Units of Measure from an ascii text file, ensure
that the file is named UOM_IN.txt, and is located in the config_A folder of the
batch system, and then click Import. If the import is successful, Units of
Measure will be added to the list.
If you want to export Units of Measure from your process model, click the
Export button. The exported file is named UOM_OUT.txt and is created in the
config_A folder of the batch system.
The format for the UOM_OUT.txt and UOM_IN.txt files is shown below. Note
that the line references enclosed in brackets (e.g. <Line 1>) are not actually a
part of the file’s content. Each line in the text file represents one Unit of
Measure consisting of up to 16 alphanumeric characters. These files can be
viewed and edited with any ASCII text editor.
Process Modeling 153

File Structure
<Line 1> ImportUOM1
<Line 2> ImportUOM2
<Line 3> ImportUOM3
|
|
|
<Line n> ImportUOMn

Enumeration Tab
Use the Enumeration tab to add, change, delete, import and export process model
enumeration set names and values. Enumeration Set Names must be unique
within your process model. Enumeration Values must be unique for a given Set
Name. You can use the same Enumeration Value in another Set Name, or you can
enable a check-box to ensure that the Enumeration Values are unique across all Set
Names within your process model. It is important to remember that deleting or
changing Enumeration Set Names and Values affects the Enumerations list in the
Formula Parameter editor.
Enumerations are used only with process variables and are available for selection
using the Formula Editor.
Each Enumeration Set is defined by one or more enumeration integer values. And
each enumeration value is associated with an alpha-numeric string. The
enumeration value is used by the batch system whenever the associated process
variable is encountered as part of phase execution. The alphanumeric string that is
associated with the value is used for display purposes only. You can modify the
string without affecting the way that a process variable is used. However, before
you modify Set Names or assigned values, you should carefully consider how the
process variable is used and what the effect of changing the name will cause.

To Add or Change Enumerations:


1. On the Process Modeling Editor window, click the Enumeration tab.
The Enumeration tab will appear.
154 Chapter 4

All of the enumeration sets that have been defined for the process model will
appear in the Sets list.
2. Enter/Edit a Set Name (16-char max).
3. Click Add to include the Set Name in the process model or click Change if
you are editing an existing Set Name.
4. In the Enumerations pane, enter a Name (16-char max) and a Value (Integer,
0-32767). By default, the Value is automatically assigned.
5. Click Add to include the Name and Value in the process model or click
Change if you are editing an existing Enumeration.
Process Modeling 155

Additional Phase Configuration


The following section describes how to configure phases using Control Buttons and
Phase Control/Status bits.

Edit Control Buttons


Control buttons can be used to execute any special function required during a
phase. The Control buttons become available to the operator on the Batch Display.
Control buttons act as momentary push-buttons, therefore the phase logic must be
written accordingly.
Use of Control Buttons is optional. Only the label for the button or buttons that
have tag assignments will be displayed on the Batch Display. Only one label can be
assigned to a control button, and the label is displayed when the phase is executed.

Assign Tags to Buttons


Tag assignments are made by first selecting a control button (radio button) on the
Edit Phase Control button window, and then clicking the Assign Tag button. This
will cause the Tag Selection window to appear. A list of available discrete process
or transfer tags, which have been configured with an access of read/write, will be
displayed in the list. Only one tag can be selected. Each control button can be given
a Label (8-characters maximum). The label appears on the Batch Display control
button when the phase is executed. The Clear Tag button will clear the assigned tag
from the selected control button.

Phase Control/Status Bits


There are eleven possible phase control and status bits. These tags are created and
assigned only when defining automatic process phases and automatic or semi-
automatic transfer phases. These tags define the structured interface that will exist
between the selected phase and the control system. The batch management system
is responsible for manipulating the phase control tags. The control system is
responsible for manipulating the phase status tags. The batch management system
and the control system must work together to successfully execute the phase. There
are two approaches to creating and assigning tags for the phase control and status
tags: Automatic and Manual.

Automatic Tag Creation and Assignment


There are several ways to automatically create phase control and status tags. The
options are described in this section.
156 Chapter 4

• Select the desired control and status tags manually by enabling the appropriate
check box for each option.
• Click the Select Required button to enable the check box for the Start, Reset,
Ready, and Done options. This represents the minimum set of tags that must be
created.
• Press the Select All button to enable the check box for all of the options.
After the check boxes are enabled for the required control and status options, click
the Create Tags button to create and assign the appropriate tags.
Use the Clear All button to de-select the all check boxes for all of the control and
status options.
Use the Delete Tags button to remove the tags from the options selected. A warning
message must be acknowledged before you can delete the tags.
Use the Clear Tag button to remove the tags from the option selected.
Process Modeling 157

Example – Automatic Tagnames


Process Class: Reactors
Phase Name: Heat
Given the above Process Class and Phase Names, the tagnames shown in the
following table will be created.

Process Class Phase Tagname


Reactors Heat Reactors-Heat-CS.START
Reactors Heat Reactors-Heat-CS.HOLD
Reactors Heat Reactors-Heat-CS.RSTRT
Reactors Heat Reactors-Heat-CS.ABORT
Reactors Heat Reactors-Heat-CS.RESET
Reactors Heat Reactors-Heat-CS.READY
Reactors Heat Reactors-Heat-CS.RUN
Reactors Heat Reactors-Heat-CS.HELD
Reactors Heat Reactors-Heat-CS.DONE
Reactors Heat Reactors-Heat-CS.ABRTD
Reactors Heat Reactors-Heat-CS.INTLK

Manual Tag Creation and Assignment


Manually creating and assigning phase control and status tags involves two steps.
• Manually create the tag using the appropriate tag editor.
• Manually assign the tag.
For more information on creating tags, see “Edit Process Class Tags” or “Edit
Transfer Class Tags” earlier in this section.
Manually assign the tag by enabling the check box corresponding to the control or
status parameter that you want to configure. Click the Assign Tag button to display
the Tag Selection window. A list of all available read/write discrete process or
transfer tags will be displayed in the list. Only one tag can be selected. Click OK or
Apply to assign the appropriate control or status bit.

Edit Interlocks
An interlock is a condition that prevents the execution of a phase. This could be a
process alarm condition or an open valve. A phase may have one or more
interlocks. However, the batch system does not perform the interlocking logic. The
physical interlocking for safety and equipment damage prevention is the
responsibility of the control system. The batch control system does provide the
ability to display the interlocks for each phase on the Batch Display. This allows
operators to quickly and easily identify and fix the interlocks that are preventing a
phase from executing.
158 Chapter 4

Assign Tags
Interlock assignments are made to each phase in a class using Unit and Connection
tags.

An assignment is made by selecting the required unit or connection and then


clicking the Assign Tags button.
Process Modeling 159

In the Tag Selection window, select phase interlock tags. The Tags list in the Edit
Processes (or Transfers) window will display the assigned tag(s).

Edit Formula Parameters


Formula parameters represent all of the configurable information that a phase needs
to execute properly. Formula parameters are placeholders for values. Values are
assigned in the recipe editor when the phases are used in a recipe procedure. Values
are used by the batch management system in specific ways when recipes are
executed. Phase information that does not change for different recipes, does not
need to be defined as a formula parameter.
Formula parameter configurations consist of the following information:
1. Name (Required, 8-char max)
2. Description (Optional, 120-char max).
3. Type (Required - Input, Output, or Process Variable)
Process and Transfer phases can have any number of input, output, or process
variable formula parameters.
4. UOM (Optional - Process Variables Only)
5. Data Class (Required - Analog, Discrete, String, or Enumeration)
Each formula parameter must be assigned a data class type. This assigned data
class determines what data class of tags are available for assigning to the
elements of each parameter type. For example, only analog tags can be
assigned to the elements of an analog parameter. Process variable parameters
can be defined as either analog, discrete, string, or enumeration. Input and
output parameters are defined as analog and cannot be changed.
160 Chapter 4

Note The Data Class radio button can be used to change the data class of a process
variable. If the user changes the data class by accident and answers no to the dialog
prompt, the radio button may not reset to the true data class. Users should reselect
the correct data class in this situation.

Parameter Type Assignable Data Classes


Process Variable Analog, Discrete, String, Enumeration
Input Analog
Output Analog

6. Parameter Elements (Optional)


Each type of formula parameter has associated elements as shown in this table.

Elements Elements Elements Elements


Parameter (Analog Data (Discrete Data (String Data (Enumeration
Type Class) Class) Class) Data Class)
Process Target Target Target Target
Variable Actual Actual Actual Actual
High Deviation%
Low Deviation%
High Limit
Low Limit
Input Target Not Allowed Not Allowed Not Allowed
Actual
High Deviation%
Low Deviation%
Preact
Lot Code
Material Id
Output Target Not Allowed Not Allowed Not Allowed
Actual
Material Id

Each parameter element can be assigned to a tag. Tags are either automatically
created and assigned, or they are manually created and assigned.
Each element can be further configured for operator interaction. The Enable
Display check box specifies whether or not the element will be displayed to an
operator. The Edit Allowed check box specifies whether or not an operator is
allowed to modify the element at runtime. The Edit Required check box
specifies whether the operator is required to modify the element at runtime.
However, the Edit Required option applies only to the end of the phase. An
Acknowledge on Entry setting used in conjunction with an Edit Allowed
target element can be used to effectively represent an edit that is required prior
to the start of the phase.
7. Element Default Values (Optional)
Process Modeling 161

Default values can only be defined for process variable formula parameter
elements. The default value is set to zero if it is not explicitly defined. These
values will be used by the batch management system unless changed in the
recipe.
The High Limit and Low Limit default values are used by the Recipe Editor to
prevent the user from entering an out of range value. When an out of range
value is entered into a recipe, an error message is displayed and the Recipe
Editor will clamp the value to the default limit.

Enter and Configure Formula Parameters


A formula parameter is defined by first entering a name, optional description and
selecting the data type. After the name, description and type are defined, parameter
elements must be configured. This includes creating and assigning tags to elements,
defining the operator display and edit capabilities for each element, and if the
parameter is a process variable, defining the default values.

Automatic Tag Creation and Assignment


Tags are created and assigned to the elements by selecting all appropriate check
boxes for each element and then clicking the Create Tags button. The created
tagnames will be displayed in the tag assignment field.
When you attempt to delete tags, you must acknowledge a warning message.

Manual Tag Creation and Assignment


Tags can be manually created and assigned to the elements by selecting an element
name check boxes and then clicking the Assign Tags button. You can then select
tags from the Tag Selection window. The selected tagname will be displayed in the
tag assignment field. The tags available for selection from the Tag Selection
window will consist of only process tags if you are configuring a process phase. If
you are configuring a transfer phase, the list will only include transfer tags. The
tags that are available for selection will have the same data class as those assigned
to the parameter. For example, the system tags, as well as all defined string tags, are
available when assigning tags to a parameter with a string data class assignment.

Operator Display and Edit Configuration


Each element must be configured for operator display and editing. This is done by
selecting the appropriated check box and clicking the Apply button.

Default Values for Process Parameters


Process parameters can be assigned default values by editing the appropriate fields
and clicking the Apply button. The defaults are displayed as default values when
the phase is used in a recipe procedure.
162 Chapter 4

Formula Parameter Examples


This section provides several examples of formula parameter configurations.
The following example is an Analog Process Variable parameter.

The following example is a Discrete Process Variable parameter.


Process Modeling 163

The following example is a String Process Variable parameter.


164 Chapter 4

The following example is an Enumeration Process Variable parameter.

The following example is an Input parameter.


Process Modeling 165

The following example is an Output parameter.


166 Chapter 4
Tag Linker 167

C H A P T E R 5

Tag Linker

Tag Linker is an editing utility which provides a means of configuring InBatch tags
as internal memory tags or linking them to an item of an external IO server
application much in the same way as the Tagname Dictionary functions within
InTouch. Tag Linker also provides powerful filtering and selection tools for making
changes to multiple tags at once. Finally, Tag Linker contains a flexible export
utility that creates a comma separated variable (.csv) file of user-selected tags for
direct import into InTouch using the DBLoad utility.
Tag Linker allows you to link InBatch tags with an I/O Server, link InBatch tags
with InTouch tags, and export tags for use by InTouch DBLoad utility.

Contents
• Overview
• When to Use Tag Linker
• Using Tag Linker
• Access Editor
• Tag Configuration
• Export Editor
• Control System Interfacing Example
168 Chapter 5

Overview
Within the InBatch environment, tags control batch processes and the provide
control system interface. InTouch uses tags for features such as graphical object
animation and control system interface. Each tag has a unique name and is
associated with a specific class of data. Tags are created during InBatch and
InTouch application development. InBatch Wizards automatically generate tags
when the wizard is created.
In order for InTouch and InBatch applications to communicate with each other
and/or control systems, all of the required tags must be properly configured. All
communications between InBatch and other applications is accomplished using
SuiteLink.
For environments in which there are interactive InBatch and InTouch applications,
Tag Linker is used to select, edit and then export InBatch tags to a comma separated
variable (.csv) file. The .csv file contains InTouch compliant tag names, including
access names. The tags in the .csv file can be imported into the InTouch application
using the InTouch DBLOAD utility

Note InTouch permits defining remote tag sources from which tags can be viewed
and remotely referenced in an application. InBatch can be one of these external
sources. If tags are remotely referenced, using the DBLOAD utility to import the
InBatch tags from the exported .csv file is unnecessary.

Model Configuration
Model
Editor Database

Configuration
Link
Database
InTouch

Tag Export DBLOAD InTouch


XXX.csv Tagname
Linker File
(Optional)
Dictionary

InBatch
InTouch

For more information on browsing and referencing remote InBatch tags from
InTouch, see Chapter 19, "InTouch Batch Tag Browsing and Referencing."
Tag Linker is associated with three categories of InBatch tags; Process Model Tags,
TIM (Tag Interface Management) Tags, and Batch Function Tags. The three types
are defined below:
Process Model Tags are all of the unit, connection, and segment tags that are
generated when the process model is developed. These are the only tags that are
displayed and can be edited by the Tag Linker. Process Model Tags are further
categorized as one of two types; System Tags and Equipment Tags.
Tag Linker 169

System Tags are associated with units, connections and segments and are
generated by InBatch as the units, segments, and connections are created in the
model. System Tags are not associated with phases and are therefore
distinguished by a triple-hyphen in the tag name. Most of these tags are string
tags. Although the Access of these tags can be changed, it is strongly
recommended that these tags be left as InBatch Memory tags! Adverse
performance can occur if these tags are written to by anything but InBatch. The
exception to this rule is the equipment status tag (Unit---USTAT or Segment---
USTAT).
Equipment Tags are associated with a specific phase or phase parameter and
are generated by the user when a phase is created. These tags are generally
"owned" by an IO server, InTouch, or another server application, however, they
can be defined as InBatch memory tags for simulation purposes.
TIM Tags provide batch and recipe related information to a batch client such as an
InTouch application using InBatch wizards.
For more information on TIM Tags, see Chapter 22, "Tag Interface Management
(TIM) System."
Batch Function Tags are a set of tags that provide a custom interface to special
InBatch batch management functions. These tags are not required unless
customized batch management operation is required
For more information on Batch Function Tags, see Chapter 22, "Tag Interface
Management (TIM) System."

When to Use Tag Linker


Wonderware recommends that you perform your application development in the
following order:
1. Develop your InBatch process model.
2. Use Tag Linker to assign required tags to appropriate control systems and/or
InTouch node(s).
3. Develop your InTouch application scripts and animation links.

Note The Tag Linker supports an import/export feature that will allow an external
spreadsheet application such as Microsoft Excel to configure the batch system tags.

Using Tag Linker


Tag Linker is used to define the data sources and assign the appropriate sources to
the InBatch tags. The application also supports an export operation that configures
the Tag Interface Management (TIM) system and creates a .csv file for loading into
an InTouch client application

Note Only one instance of the Tag Linker can be active. Also, Tag Linker will not
start if the Process Modeling Editor or Train Editor is running.
170 Chapter 5

To Start Tag Linker:

Double-click the TagLinker icon in the Environment Display.


The Tag Linker window will appear.

4. Use the window to view and configure tags. System functions are accessed
from the File menu and configuration dialogs are available from the Edit menu.

File Menu
The Tag Linker File menu provides system functions for the Tag Linker. The File
menu items are described below.

File/Runtime Export
Use this command to perform a Runtime Export of the current tag configuration.
The Export Results dialog is displayed and provides messages on the progress on
the export. This option is used to export all requested tags using the configuration
information defined in the Tag Linker. This option should be used if the control
hardware (InControl, PLC, etc.) will be executing the phases.

File/Simulation Export
Use this command to perform a Simulation Export of the current tag configuration.
The Export Results dialog is displayed and provides messages on the progress on
the export. This option is used to export all requested tags as InBatch Memory tags.
This option should be used if the InBatch Simulation Manager (SimMngr) will be
executing the phases.
Tag Linker 171

File/Export Tags
Use this option to display the Export File Selection window. A File name can be
specified to which all Tag Linker configuration data will be written. The default file
location is the current configuration (config_A) directory. The file format is
comma-separated variable (csv). If the specified file exists, a message is displayed
prompting whether or not it is acceptable to overwrite the file.

Note The name must include the complete patch and the .csv extension.

This option does not provide filtering of the tag list. The exported file contains an
exact image of the configuration Tag Linker database (CfgLinkDB). Once
exported, tag configuration information can be modified. Modifications to the file
only affect the configuration of the tags in the CfgLinkDB based on the changes
you made to the exported file.

Note You should not add or remove tags to/ from the exported file. If you delete
tags from the file and then select the File/Import Tags menu option, the
configuration of those tags within the configuration link database is not modified. If
you add tags to the file and then perform an Import, the additional tags are ignored
since they do not already exist in the database.

CSV File Format


The following table describes the format of each line in the csv file except for line
one. The first line of the csv file contains a text header which describes each
column in the file.

Column Identity Range/Length Type Description

1 Tag ID long_min, long InBatch internal tag id (READ-ONLY)


long_max

2 Tag Name 85 characters string InBatch tag name (READ-ONLY)

3 Data Class Analog, Discrete enum Tag data class (READ-ONLY)


String

4 DataAccess ReadOnly, enum Tag read/write characteristics


ReadWrite (READ-ONLY)

5 Link Type Item,TagName, enum Link type specifier (READ-WRITE)


or Memory

6 Item 128 characters string Tag corresponding Item. Applicable to Link


Type of "Link" (READ-WRITE)
172 Chapter 5

Column Identity Range/Length Type Description

7 Initial Value 131 characters string Tag initial value. Applicable to link type =
"Memory".NOTE: Can represent a numeric
value conversion based on tag actual data
type(READ-WRITE)

8 Access 15 characters string The Access Name that "owns" this tag. The
Access Name must exist in TagLinker. Assigned
a value for Link Type = "Memory". (READ-
WRITE)

9 Export Flag NoExport, enum Tag export flag. (READ-WRITE)


Export

10 Min Raw long_min, double Tag minimum raw value. Applicable to tags with
long_max Data Class Analog. Value = 0 if not relevant.
(READ-WRITE)

11 Max Raw long_min, double Tag maximum raw value. Applicable to tags
long_max with Data Class Analog. Value = 0 if not
relevant. (READ-WRITE)

12 Min Scaled long_min, double Tag minimum scaled raw value. Applicable to
long_max tags with Data Class = "Analog". Value = 0 if not
relevant.
(READ-WRITE)

13 Max scaled long_min, double Tag maximum scaled raw value. Applicable to
long_max tags with Data Class = "Analog". Value = 0 if not
relevant.
(READ-WRITE)

14 Data Type Float, Integer, enum Tag actual data type. Applicable to tags with
or empty Data Class ="Analog". Empty if not
relevant.(READ WRITE)

File/Import Tags
This option displays the Import File Selection dialog. A File name can be
specified from which all Tag Linker configuration data will be read. . The default
file location is the current configuration (config_A) directory. The file format is
comma-separated variable (csv). If the specified file exists, a message is displayed.

Note The name must include the complete patch and the .csv extension.
Tag Linker 173

File/Validate
This command initiates a validation of the Tag Linker configuration. Validation
consists of verifying all Accesses, Attributes, and links. Depending on the size of
the process, the Validation option may be time consuming.
If the validation is successful, a Validate message dialog will be displayed. If
validation errors exist, the associated tags will be displayed along with a validation
error or warning message.

Note Error messages must be corrected. However, warning messages need not be
corrected prior to system operation.

File/Print
Use this command to select reports and configure printer options.

File/Print Preview
Use this command to select reports and then preview them on the screen.
174 Chapter 5

File/Print Setup
Use this command to configure your Windows. Refer to your Windows
documentation for more information.

File/Exit
Use this command to close the Tag Linker.

Note Your work is dynamically saved in the configuration link database as you
edit and make changes to the linker configuration. Therefore, you do not have to be
concerned with saving your work.
Tag Linker 175

Edit Menu
The Tag Linker Edit menu contains the commands that are used to access the Tag
Linker's configuration windows.

Edit/Access
Use this command to display the Access Editor.

Edit/Export
Use this command to display the Export Editor.

View Menu
The Tag Linker View menu contains the commands that are used to modify the tags
that are displayed in the main window and the selection mode for modifying the
tags.

View/Filter
Use this command to display the View Filter Selection window.
176 Chapter 5

View/Single Selection
Use this command to select single tags from the main window.

View/Multiple Selection
Use this command to allow the selection of multiple tags from the main window.

Help Menu
The Tag Linker Help menu contains the commands that are used to access the main
help screen, and information about the version and licensing of the application.

Help/Help Topics
Use this command to display online help for Tag Linker.

Help/About Tag Linker


Use this command to display version and licensing information for InBatch.

Access Editor
Use the Access Editor to define Access Names.

An Access Name represents a data source for InBatch tags. An Access consists of
an Access Name (16-characters maximum), an Application, a Topic, and an
InTouch Node designation if applicable. The editor will verify all new access
names to ensure uniqueness.
Two Access Names are provided by default: ControlSystem and InTouch. The
default access names can be changed; however, they cannot be deleted. It is
recommended that these default names be changed to relate to your application.
When the process model is created, all of the tags associated with it are stored in a
configuration link database. The default Access Names allow the process model to
operate and simulate batch operation.
Tag Linker 177

The InTouch access name is initially assigned to the Application: VIEW (InTouch
WindowViewer) and converses by way of the Topic: TAGNAME. Application
identifies the node and name of an InTouch application (e.g. \\BEN\VIEW). The
node name, BEN, identifies a specific network path where the InTouch application
is located, while VIEW is the name required for InTouch server conversations. The
Topic identifies the group of elements within the application through which
conversations will be established. The InTouch Node check box is enabled for the
InTouch access name, indicating that this access is connecting to an InTouch node.
All Access Names associated with InTouch require the Application name, VIEW,
and Topic, TAGNAME.
You can create Access Names by following these guidelines and referring to the
appropriate control system documentation.

Note It is required that only SuiteLink IO servers be used with InBatch. SuiteLink
provides the robust and reliable communications protocol that InBatch demands.

Tag Configuration
The following section describes how to configure tags in a batch system.

Tag Selection
The Tag Linker window list is, by default, initially empty. This indicates that no
tags have been selected.
178 Chapter 5

The View Filter Selection window lists all of the Units, Connections and
Segments that are available in the current configuration process model database.
Select the appropriate equipment using the Control (or Shift) key and then the OK
or Apply command button to update the display. Equipment is de-selected by
holding the Control key and selecting with the mouse.
The Analog, Discrete, String, Enumeration, and Attributes radio buttons allow
additional filtering based on data class. Data classes are defined when tags are
created.

Assign Tag Links


Select the required Tag Name(s) in the Tag Linker main window and then define
the configuration options. The window contains five configuration sections. Tags
created during process modeling have a predefined configuration. Prior to
exporting these tags to InTouch or communicating with external control system
hardware, it will, in some cases, be necessary to modify the configuration.
Each of the areas has a selection check box to the left of the group box. Each check
box is used to enable the use of the particular area. If only one tag is selected, all of
these check boxes will be set. In Single or Multiple selection mode, clearing a
selection check box results in the associated configuration parameters being
ignored when the Apply button is clicked. This is useful for changing only certain
properties on multiple tags. When using Multiple Selection and trying to change the
configuration settings for more than one tag, both the check box and the setting
within the area must be enabled.

WARNING! When in multiple selection mode, ensure that your modifications are
appropriate for all selected tags. Changes cannot be undone.

Item Definition

The Item Definition area identifies three parameters (each associated with a radio
button) that are related to the tag name and properties. Only one of the three
parameters can be selected. The Item is associated with a specific location of data;
such as a tag name or a PLC register. The Use Tag Name option is selected when
you want the actual name of a tag to be used in the export. Select InBatch Memory
Tag when there is no external source for the tag. This option also initializes the
value of the InBatch Memory Tag for analog, discrete or string tag types as
specified in the Initial Value field. If no value is entered, the initial value is set to 0
for analog tags, 0 (Logical False) for discrete tags, or empty (null) for string tags.
Tag Linker 179

Access Assignment

The Access Assignment area allows you to assign one of the Access Names that
were created using the Access Editor. The Access button displays the Access
Names dialog. Select the appropriate access and assign to the tag.

Export Tag

The Export Tag check box allows you to enable or disable the export of the
associated tag. Not all tags from the InBatch model are necessarily required for an
InTouch application. If a tag is going to be used within the InTouch application and
contained in the InTouch tagname dictionary, you must select the option. If a tag is
not required, it can be de-selected.

Note Exporting tags that are not required in InTouch is acceptable and perhaps
convenient. However, batch utilities constantly monitor and manage InBatch and
InTouch processes. A high quantity of unnecessary tags can degrade overall system
performance.

For more information on alternatives to exporting tags from InBatch and loading
the tags into InTouch, see Chapter 19, "InTouch Batch Tag Browsing and
Referencing."

Scaling Options
180 Chapter 5

The Scaling Options area applies to analog tags only. Min Raw and Max Raw are
associated with the values output from a source such as a PLC. Min Scaled and
Max Scaled are scaling factors associated with InBatch

Data Type Selection

The Data Type area applies to analog tags only and allows the user to set the type of
numeric data with which a tag is associated. The options are either Float (floating
point) or Integer.

Export Editor
The Export Editor groups tags by their Access Names. You can select which
access names (tag groups) are exported to the .csv file. Multiple csv files can be
created for different InTouch applications such as an operator workstation, a
supervisory node, or a batch scheduling node. Each different type of InTouch
application is called a Client Type. A Client Type consists of a Client Type name
(14-characters maximum), Accesses for which to include the tags in the csv file,
TIM Tags and Batch Function Tags check boxes, and an Output Path/Filename.
Tag Linker 181

Client Types are user defined and are typically represent your batch control system
architecture. Before you can export tags, you must determine for each Client Type:
• Does the associated InTouch node provide tag data?
• Does the InTouch node require access to data from an external control system
or InBatch?
• Does the InTouch application use InBatch Wizards?
• Does the InTouch application use Batch Function Tags?
• What is the name of the .csv file that you want to export to?
If the InTouch application provides tag data to InBatch, select the appropriate
access name from the Export Access as InTouch Memory tags list box.
If the InTouch application requires access to tag data that is associated with external
control systems or InBatch, select the appropriate access name(s) from the Export
Access as InTouch IO Tags list box.

Note An access name; for example, InTouch, can be associated with either the
Export Access as InTouch Memory tags or the Export Access as InTouch IO
Tags classification, not both.

When you are using InBatch Wizards, you must enable the TIM Tags selection
button and then enter the Number of Clients that will be served. The Number of
Clients parameter is ultimately used at runtime by the batch management system. It
specifies how many InTouch applications potentially require access to the batch
information for the selected Client Type. To differentiate each set of TIM Tags
within InBatch, the batch management system appends an instance number to the
Client Type name.
For example, if two InTouch nodes utilize the same client type; that is, the same
tags, then the Number of Clients should be set to 2. This instance number must be
used within InTouch as well to point InTouch to the appropriate set of TIM Tags
assigned to that node. The Access Name and the IB_TIM_ACCESS_TAG tag in
the InTouch application are used to make this designation. The values for this
access name and tag must contain the Client Type name with appropriate instance
number appended. The diagram below shows the InTouch definition required for
the second node in this example.
182 Chapter 5

If you are using Batch Function Tags, enable the Batch Function Tags check box.
Batch function tags are used to access strategic points, or hooks, within the
execution of the batch management system by way of InTouch scripts. There are
five hook points.

Hook Description
Phase Prepare Called at the beginning of every phase.
Phase Prepare Called at the end of every phase.
Evaluate Equipment for Allocation Called before units and connections are allocated.
Log Equipment Status Called when the status of a unit or segment changes.
Equipment Allocation Changes Called whenever a unit or connection becomes allocated or
released.

For more information on how to use the Batch Function Tags, see Chapter 22, "Tag
Interface Management (TIM) System."

WARNING! Only enable the Batch Function Tags for one client. This client is
then responsible for managing these tags.

You will need to specify a .csv file name for the export in the Output
Path/Filename field. Ensure that you include the full path and file name, including
the .csv extension. If you do not specify a path, the file will be located in the current
InBatch configuration (config_A) folder.
Tag Linker 183

This following table further illustrates how Access Names are created in an
InTouch application for tags which are exported from Tag Linker and then imported
using the DBLOAD utility. The Node Name for each would correspond to the host
name of the appropriate computer (Batch Server, IO Server, etc.) and has been
omitted from the table. The TI Direct IO Server (TIDIR) has been used as an
example for the control system interface.

AccessName Application Topic Description


ControlSystem TIDIR TI_TOPIC Access(es) for Control System tags
directly to the IO Server(s). Control
system tags are set to this access name(s)
after a Runtime Export.
IB_CTRLSYS_TAGS IBSERV IB_TAGS Accesses for Control System tags using
InBatch as the server. Control system tags
are set to this access name after a
Simulation Export.
IB_TIM_TAGS IBSERV View1 Access for imported TIM Tags.
IB_DEVFUNC_TAGS IBFSERV View Access for imported Batch Function Tags.

Simulation Export Procedure


A Simulation Export will export all Process Model Tags as InBatch memory tags no
matter how they are defined in Tag Linker. The following steps describe how to
perform an export for simulation purposes only.
1. Select the Edit/Export menu option.
This displays the Export Editor window.
2. Define a Client Type name.
3. Select the ControlSystem access in the Export Access as InTouch IO Tags
list.
4. Select TIM Tags for export to the client.
5. Define an Output Path/Filename.
6. Add the Client Type.
7. Select the File/Validate menu option.
This validates the list of tags to be exported.
8. Select the File/Simulation Export menu option.
The Export Results dialog will be displayed showing the progression and
status of the export.
9. Load the .csv file into InTouch using the DBLOAD utility.
184 Chapter 5

Runtime Export Procedure


A Runtime Export will export all Process Model Tags using the tag configuration
information defined in the Tag Linker main window for each tag. The following
steps describe how to perform an export for runtime purposes only.
1. Select the Edit/Access menu option.
This displays the Access Editor dialog.
2. Define the appropriate accesses for the tags in the process model.
3. From the Tag Linker main window, select the View/Filter menu option.
This displays the View Filter Selection dialog.
4. Select the appropriate tags and define using the tag configuration options
available in the Tag Linker main window.
5. Select the Edit/Export menu option.
This displays the Export Editor dialog.
6. Define a Client Type name.
7. Select the ControlSystem access in the Export Access as InTouch IO Tags
list.
8. Select TIM Tags for export to the client.
9. Define an Output Path/Filename.
10. Add the Client Type.
11. Select the File/Validate menu option.
12. This validates the list of tags to be exported.
13. Select the File/Runtime Export menu option.
The Export Results dialog will be displayed showing the progression and
status of the export.
14. Load the .csv file into InTouch using the DBLOAD utility.
Tag Linker 185

Control System Interfacing Example


This section provides guidelines for interfacing with a PLC. The guidelines assume
that you have a functional simulation system and that the system has a server and at
least one client. Each client should be configured to access TIM Tags by way of
Wizards.

Guidelines for Control System Interfacing


1. Select PLC and develop the required phase logic.
2. Select a Wonderware IO Server for your PLC (Available from your
Distributor).
3. Use the Tag Linker Access Editor to define an Access Name for the IO Server.
4. Use the Tag Linker View Filter Selection dialog to select tags.
5. Assign the appropriate Item Names to the tags.
6. Configure parameters if necessary (i.e. scaling, etc.).
7. Perform Tag Linker Validation.
8. Perform Tag Linker Runtime Export.
9. If tags are required in InTouch, use the InTouch DBLOAD utility to import the
.csv file.
10. Configure one instance of IBCli for each Access Name.
11. Perform an Update/Runtime operation from Environment Display.

Setting Up the Control System


Once you have chosen an appropriate PLC, you will need to develop PLC phase
logic and obtain a Wonderware IO Server. Contact your distributor to obtain the
required IO Server.
For the purpose of this section we will assume that the IO Server is named "TIDIR"
and is located on a client computer which has a (network) name of "plcnode". We
will also assume that it has a configured Topic named "TI_TOPIC." Thus, the IO
server is accessed as: \\plcnode\TIDIR|TI_TOPIC!<item_name>. The
<item_name> is defined in Tag Linker.
Use the Tag Linker Access Editor to define an access name for the TIDIR IO
Server. Tag Linker provides a default Access named "ControlSystem" which is
associated with all of the InBatch control system tags (i.e., phase control, status,
parameter tags, etc.). Modify this Access Name to identify your IO Server. For this
example we will make the following modifications using the Access Editor:
Access Name:TI_Tags
Application:\\plcnode\TIDIR
Topic:TI_TOPIC
Protocol:SuiteLink
186 Chapter 5

All of the tags assigned to this Access Name are now associated with the "TIDIR"
IO Server located on "plcnode". If you have multiple topics for the "TIDIR" I/O
Server, or if you are using multiple IO servers, you will need to add a new Access
Name for each.
Many of the tags that were created when the Process Model was constructed need
to be assigned the appropriate Access Name and associated with the proper Item.
Using Tag Linker's View Filter Selection dialog, select the required tags or groups
of tags and then assign the appropriate Item Name. In our example, we would
assign values such as "V100" and "C15000" to the Item Name field. You can
change the Access for each tag if required. Since we are only using one Access
Name in our example we do not have to do this. Other parameters such as scaling,
can be entered.
Some tags (by default) are not associated with an Access Name. Instead, they have
the "InBatch Memory Tag" parameter enabled. These tags are typically the system
tags (string tags) which are used by InBatch to store system information during
runtime. If you need to use the information in these tags at the PLC level, you must
enter and Apply the appropriate Item Name.
Once you have made the necessary modifications, select the File/Validation menu
option for Tag Linker. You may see a warning during the validation indicating that
the InTouch Access does not have tags associated with it. This is not unusual. The
InTouch Access is used only when InTouch is used as an IO server.
When you perform a "simulation export" and then a subsequent DBLOAD,
InTouch is configured to obtain all of its control system tag data directly from the
InBatch Server. Now that an actual control system has been implemented, we want
InTouch nodes to communicate with it to obtain tag data. To accomplish this, first
select the File/Runtime Export, and then use the DBLOAD utility to load the .csv
file.
For each Access that was defined using the Tag Linker you will need to configure
and run one instance of the IBCli application. The only exception to this is if you
get a warning message during Tag Linker validation indicating that no tags are
associated with a particular access. In this case you do not need an instance of
IBCli. IBCli is configured using the Editor. For each instance of IBCli you need to
configure several application parameters. For the purpose of our example, we need
to configure one instance as follows:
Access Name:TI_Tags
Verbose Mode
The Access Name argument is required and should match one of the Access Names
defined using the Tag Linker Access Editor. The Verbose Mode parameter option is
useful for troubleshooting.
Materials Editor 187

C H A P T E R 6

Materials Editor

Use the Materials Editor to define materials, assign material locations, and track the
usage and production of materials in a batch processing facility.

Contents
• Overview
• Using the Materials Status Window
• Using the Materials Editor
• Using the Material Location Assignment Editor

Overview
The Materials Editor provides a graphical user interface to the Materials Database.
All of the materials that will be used during recipe creation must be defined within
this database. Use the Materials Editor to define Ingredients (Raw Materials),
Intermediates (Premixes), Finished Goods, By-Products, and Other ingredients.
In addition to the defining materials to be stored in the Materials Database, you can
use the Materials Editor to configure tracking the location of materials that are
stored in units. This is typically associated with bulk ingredients and intermediate
materials. The batch management system uses the unit assignments to determine
where an ingredient is located when a batch is executed. This capability allows
ingredient locations to be independent of recipes and control system logic, and
permits ingredients to change locations without affecting recipe execution.
systems with ingredient usage information and intermediate and finished goods
production.

Note The Materials Editor is not, within itself, an inventory management system.
However, it can be used to complement existing systems.

The following diagram provides an overview of the Material Editor and its
relationship with other system components.
188 Chapter 6
Materials Editor 189

Using the Materials Status Window


Managing materials requires three components; the Materials Status window, the
Materials Editor, and the Material Location Assignment Editor. The Materials
Status window is used for viewing the name, unit of measure, total quantity, and
characteristics of all materials defined in the database. The Materials Editor
window is used to define and/or edit materials in the database. The Material
Location Assignment Editor window is used to assign unit storage locations and
production tracking information to materials in the database.

Starting the Materials Status Window


To Start the Materials Status Window:
1. Double-click the MtlEdit icon in Environment Display.
2. The Materials Status window will appear.

The status of all of the materials in the Materials Database will be displayed. If
there are no materials defined in the in the database, the list will be empty.

To View Material Status:


1. Click the Materials drop-down arrow and select the material type that you
want to view.
The five material types will be listed. These are Ingredients, Intermediates,
Finished Goods, By Products, and Other. The default material type is
Ingredients.
190 Chapter 6

2. From the Materials list, select a Material ID.


The Material ID, Material Name, Unit of Measure and Total Quantity will be
displayed. The material characteristic and default value are also displayed.

File Menu
The Materials Status File menu provides access to the system functions for
materials management.

File/Validate
Use the File/Validate menu to validate materials database entries. Validation
consists of verifying that all of the units assigned to the materials exist within the
process model.
message will be displayed indicating that the materials configuration is valid. If
validation errors exist, the associated tags will be displayed as an error message.

Correcting Validation Errors


A validation error will occur when a unit to which a material had been previously
assigned no longer exists in the process model. This is corrected by reassigning a
valid unit or by removing the invalid unit assignment from the associated
material(s). The necessary steps for these corrections are described below.

To Reassign a Valid Unit


1. Select the Material ID from the Materials Status window.
2. Use the Edit/Materials Locations menu to access the Material Location
Assignment Editor. When the invalid unit is selected, you will see a Record
Not Found! error message.
3. Acknowledge the error.
4. Click the Delete button to remove the invalid unit assignment.
5. Click the Add button and then select a valid unit from the Unit Selection
window.
6. If other materials have invalid unit assignments, perform the above steps for
each material.

To Remove a Unit Assignment


1. Select the Material ID from the Materials Status window.
2. Use the Edit/Materials Locations menu to access the Material Location
Assignment Editor. When the invalid unit is selected, you will see a Record
Not Found! error message.
3. Acknowledge the error.
4. Click the Delete button to remove the invalid unit assignment.
Materials Editor 191

File/Print
Use the File/Print command to select from one or more pre-formatted reports, and
then print the materials status. The print window also provides standard Windows
printer options.

To Print a Configuration:
1. On the menu bar, click File and select Print.
2. The Print window will appear.

3. In the Select Reports list, select item(s) that you want.


4. Select other printer options as required.
5. Click OK to print the report and close the window.

Note If you want to print several reports, press and hold the control or shift key,
while selecting from the list with the left mouse button.

File/Print Preview
Use the File/Print Preview command to select one or more formatted reports, and
then view the report(s) on the screen.

To Preview a Materials Status Report:


1. On the menu bar, click File and select Print Preview.
2. The Select Reports window will appear.
192 Chapter 6

3. Select the report(s) from the list


4. Click OK.

Note If you want to preview several reports, press and hold the control or shift
key, while selecting from the list with the left mouse button.

File/Print Setup
Use the File/Print Setup command to select and configure a printer. Refer to your
printer manufacturer’s documentation for more information.

To Setup your Printer:


1. On the menu bar, click File and select Print Setup.
2. The Print Setup window will appear.

File/Exit
Use the File/Exit command to close the Materials Editor.

To Close the Materials Editor:


On the menu bar, click File and select Exit.

Note All of your work is dynamically saved in the materials database as you edit
and make changes. Therefore, you do not have to be concerned with saving your
work.
Materials Editor 193

Edit Menu
Use the Edit menu to access the Materials Editor and the Materials Location
Assignment Editor.

Edit/Materials Editor
Use the Edit/Materials Editor command to display the Materials Editor window.
For more information on the Materials Editor, see “Using the Materials Editor” on
page 196 later in this section.

Edit/Material Locations
Use the Edit/Material Locations command to display the Material Location
Assignment Editor window.
For more information on editing Material Locations, see “Using the Material
Location Assignment Editor” on page 198 later in this section.

View Menu
Use the Materials Status View menus to view a list of the materials that are assigned
to units. You can also use the menu to filter the materials ID list by specifying a
portion of a material ID. A find option is also provided for a direct search of a
Material ID.

View/Assigned Units
Use the View/Assigned Units menu to display a list of all of the Unit to Material
assignments.

To View Assigned Units:


1. On the menu bar, click View and select Assigned Units.
2. The Assigned Units window will appear.

All of the Unit assignments, material Type and Material ID are listed.
3. Click Close to close the Assigned Units window.
194 Chapter 6

View/Partial List
Use the View/Partial List menu to filter the list of available Unit Assignments.
This option is especially useful in helping you narrow your focus when there is a
large number of Material IDs for a given ingredient type.

To Filter the Unit Assignments List:


1. On the menu bar, click View and select Partial List.
2. The View Partial Filter window will appear.

3. In the Partial ID text box, enter the first portion of the Material ID (16-char
max) that you want to use as your filter.
4. Click OK.
5. The Material ID list will now show all of the Material IDs that include the
filter.

View/Full List
Use the View/Full List command to display a list of all of the materials in the
Materials Database.

To View All Materials:


1. On the menu bar, click View and select Full List.
2. The Material ID list will now show all of the Materials in the Materials
Database.

View/Find
Use the View/Find command to search for a specific Material ID.

To Filter the Unit Assignments List:


1. On the menu bar, click View and select Find.
2. The Find Material window will appear.
Materials Editor 195

3. In the Material ID text box, enter the Material ID (16-char max) that you
want to search for.
4. Click OK.
5. The Material ID list will now show only the Material that you entered.
If you enter a non-existent Material ID, an error message will be displayed.

Help Menu
Use the Materials Status Help menu to access to the online help system and
information regarding product version.

Help/Help Topics
Use the Help/Help Topics command to display the help contents for Materials
Status.

To View the Help Topics for Materials Status:


1. From the Materials Status Display file menu, select Help and then click Help
Topics.
2. The Help Topics window will appear.

Help/About Materials Status


Use the Help/About command to view Version information.

To View Help About Topics for Materials Status:


1. On the Materials Status menu bar, select Help and then click Help About
Materials Status.
2. The About Materials Status window will appear.
3. Click OK to close the window.
196 Chapter 6

Using the Materials Editor


Use the Materials Editor to define, edit and delete the processing materials used in
your plant. As you enter materials, the editor will verify that each Material ID is
unique. You can enter as many materials as your process requires.

WARNING! Deleting materials from the materials database can affect recipe
execution. Before you delete or modify a material, ensure that you understand how
your particular application manages materials.

Defining Materials
Material Definition requires the assignment of the following characteristics. Some
elements are required while others are not.
• Type (Required)
Each material must be defined as an Ingredient, Intermediate, Finished
Good, By-Product, or Other.
• Material ID (Required, 16-char max)
• Name (Optional, 40-char max)
This name can be used to represent the actual name of the material.
• Description (Optional, 120-char max)
• Unit of Measure (Optional, 12-char max)
• High Deviation (Optional, value between 0.00 and 100.00 inclusive)
This value represents the General or default, high deviation when the material
is used in a recipe.
• Low Deviation (Optional, value between 0.00 and 100.00 inclusively)
This value represents the General, or default, low deviation when the material
is used in a recipe.
• Characteristics (Optional)
Each material can have an unlimited set of characteristics. Characteristics help
distinguish materials from one another. They also allow you to separate lots of
the same material. A characteristic consists of a Name (16-char max), Data
Type (Real, Integer or String) and a Default Value. Examples of
characteristics include potency, density, color, and brix.

Note Additions, deletions, and changes must first be made to the material before
the characteristics can be updated.

To Start the Materials Editor:


1. On the Materials Status menu bar, click Edit, and then select Materials
Editor.
2. The Materials Editor window will appear.
Materials Editor 197

To Define a Material:
1. In the Materials Editor, click the Materials drop-down arrow and select a
material type (Ingredient, Intermediate, Finished Good, By-Product, or
Other.)
You can use the Find button and View Partial List check box to search all of
the defined materials in the database. This is useful when you want to enter
new materials that are similar to existing entries.
2. Enter a Material ID, Name, Description, Unit of Measure, and High and
Low Deviations as described earlier in this section.
3. Click Add to include the entry in the materials database.

To Define Characteristics for a Material:


1. In the Materials Editor, select a Material Type and Material ID.
198 Chapter 6

2. In the Characteristics pane, enter a Name, Default Value, and select an


appropriate Data Type as described earlier in this section.
3. Click Add to associate the characteristic with the material.

Note When you change the default characteristic Data Type, the corresponding
Actual Value is reset with the Default characteristic value. Therefore, before you
change a Material Characteristic Data Type, you should consider how this will
affect your material definitions.

Using the Material Location Assignment Editor


Use the Material Location Assignment Editor to log the location of bulk ingredients
as they are received and unloaded into storage units, such as silos or tanks. This
requires the assignment of a process model unit, the entry of production tracking
information, and the definition of specific characteristic values for each production
tracking record.
Materials Location Assignment Editor is for a specific Material ID which is
selected from the Materials Status window.
Material Location Assignment Editor provides the capability to essentially layer
materials on top of one another within a unit. By default, materials are used on a
first-in, first-out (FIFO) basis. During batch execution, the batch management
system decrements the quantity used and stores the usage and tracking
identification data to history for all phases with input formula parameters. If the
usage involves more than one lot of material, each lot and its respective usage are
logged. When a lot of material is consumed, its lot tracking record is automatically
removed from the database.

Note The default FIFO material usage can be changed to last-in, first-out (LIFO)
by assigning the LIFO Materials application parameter to Batch Manager in the
Environment Editor.

The batch management system will also add lot tracking records for all materials
produced in batches by phases that have output formula parameters. These
materials can then be consumed by subsequent phases with input parameters.

Note The Materials Editor does not require that lot tracking information be
defined for all materials used in production. The batch management system will
record the lot tracking information to the historical database if this information is
defined, but if the information is not defined, the batch management system will
still execute all batches using the material.

Assign a Material to a Unit


Each material in the materials database may be assigned to one or more units
defined in the process model. Normally, this assignment is made only for the bulk
ingredients and intermediates that are associated with a location. The batch
management system uses the unit assignments to obtain the location of a material
during automatic transfer phases.
Materials Editor 199

Define Lot Tracking Information


You can enter lot tracking information for each unit assigned to a material. Lot
tracking information consists of the following elements.
• Campaign Lot Batch (16-chars max) – You must define at least one of these
fields.
• Date Received -By default, this is the current date. You can change it as
required.
• Quantity - less than or equal to 9,999,999,999,999,999.
• Characteristics - For every lot tracking record, a Name (16-char max) and an
Actual Value may be entered for any characteristic defined for the material. In
actual production this allows each shipment of a material to have a specific
characteristic value assigned. You can use the Materials Editor to change the
default characteristic value.

To Start the Material Location Assignment Editor:


1. On the Materials Status menu bar, click Edit, and then select Material
Locations.
2. The Material Location Assignment Editor window will appear.
200 Chapter 6

To Assign a Material to a Unit:


1. On the Materials Status window, select a Material ID.
2. On the Material Location Assignment Editor, click the Add button.
3. The Unit Selection window will appear.
Materials Editor 201

4. Select a unit from the list.


The listed items are units that have been previously entered in the process
model that are not currently assigned to a material.
5. Click Add.
The selected unit will appear in the Unit Assignment list of the Material
Location Assignment Editor.

Note The Materials Editor uses the contents of the runtime process model
database. It may be necessary to perform an Update/Runtime from Environment
Display in order for the Unit Selection window to show the correct list. If the list is
empty, it is likely that you need to perform an Update/Runtime.

To Assign Lot Tracking Information:


1. Enter a Campaign, Lot and Batch (16-char max) as required for the selected
Unit Assignment.
You must specify at least one of the above elements.
2. Enter the Date Rcvd and Quantity.
3. Click Add.

To Assign an Actual Value to a Unit Assignment:


1. In the Actual Value field, enter a value for the Characteristic.
If the selected unit in the Unit Assignments list does not have a defined
characteristic, you will not be able to enter an Actual Value.
2. Click Change to apply your entry.
202 Chapter 6
Recipe Editor 203

C H A P T E R 7

Recipe Editor

The batch control system coordinates the construction and management of recipes
in accordance with the guidelines outlined in the Instrument Society of America
(ISA) S88.01 Flexible Batch Specification. Consistent with this standard, Recipe
Editor supports all three sublevels of the recipe procedure.
The batch control system provides a recipe management system that enables Master
Recipes to be constructed and edited. Master recipes are not process line specific.
They can be assigned to any process line that has the classes of process equipment
defined in the recipe. A master recipe becomes a Control Recipe when it is assigned
to a Train and it is initialized by the batch management system. A control recipe is
process line specific.
for ingredients, intermediates, by-products, and finished goods are entered as either
actual quantities or as a percent of the batch size. Quantities expressed as
percentages are scaled by the batch management system when the batch is
scheduled and initialized.

Contents
• Overview
• Using Recipe Editor
• Header
• Equipment Requirements
• Formula
• Building a Recipe Procedure
• Building Recipes in a Connectionless Process Model

Overview
A recipe consists of four parts. They are the Header, the Equipment Requirements,
the Formula, and the Procedure.
204 Chapter 7

Header
A recipe Header identifies and documents each recipe. The header consists of a
Recipe ID, Recipe Name, Recipe State, Recipe Type, Product ID, Product Name,
Minimum Batch Size, Maximum Batch Size, Default Batch Size, and Comment.

Equipment Requirements
Equipment Requirements specify the process classes and attributes required by a
recipe. When defining attributes, you must specify the minimum and maximum
values for each attribute. For example, if a recipe requires a 500 or 1000 pound
reactor, the minimum and maximum values for the attribute “Capacity” would be
500 and 1000, respectively. When a very specific characteristic is required, the
minimum and the maximum should be assigned the same number.
When trains are defined, it is possible to have multiple destination units available
for a given transfer. There may be times when you want to give an operator the
flexibility to select a destination unit and other times when this selection is
automatic. You can enable this feature when you define equipment requirements for
a recipe.
The Recipe Editor automatically inherits all process and transfer phases associated
with the process classes defined in the equipment requirements. These are the only
phases that you can use to build a recipe procedure.

Process and Transfer Instances


In addition to specifying process classes, specific instances of each process class
can be defined. You must define process multiple instances when your recipe
procedure uses more than one unit of the same class. Each process instance
corresponds to an actual unit when the recipe is executed. You may assign a specific
unit to a process instance, or you can allow the unit to be selected when the recipe
executes using automatic or manual selection. When one or more process instances
have specific units assigned to them, the recipe is called an “equipment dependent”
recipe. This means that the recipe, by design always uses specific equipment for its
execution. When process instances are not assigned to specific units, the recipe is
called an “equipment independent” recipe.
Recipe Editor 205

Normally, whenever you define process instances, you would also define all of the
resulting transfer instances. Defining multiple instances allows the recipe builder to
simultaneously process-in or transfer-to multiple units within the same process
class. A process instance can have a specific attribute range or it can have a specific
unit assignment. This gives the recipe builder the ability to create equipment
independent or dependent recipes.

Formula
The Formula specifies the inputs (raw materials, ingredients), outputs
(intermediates, finished goods, and by-products), and process variables for a recipe.
Input and output quantities can be entered as actual values or as percentage value.
Process variable values are entered as actual quantities. Default tolerances for
ingredients and process variables will be automatically displayed. However, the
default tolerances can be changed for the current recipe or can be disabled
altogether.

Procedure
The procedure defines the sequence of process actions needed to execute one batch
of a recipe. A procedure is constructed using unit procedures, operations, phases,
transition logic, branch objects, and loop objects. Unit Procedures are associated
with a process instance and are defined in the recipe. Operations provide a
convenient way of grouping the phases that are associated with the recipe.
Operations are defined during recipe construction. Phases are defined when you
create the process model.
206 Chapter 7

Phases are configured with parameters. A parameter is assigned a value when the
recipe formula is entered. Parameter types are either input, output, or process
variable. When the recipe is executed by the batch management system, the values
assigned to the parameters are written to the control system.
provides the ability to redirect the execution of a procedure based on the result of a
Boolean expression. Expressions can be constructed using process class and/or
instance tags, transfer class and or instance tags, and predefined functions such as
questions that prompt an operator. These questions are displayed and then answered
by an operator when the recipe procedure is executed.
allow the recipe builder to execute simultaneous unit procedures, operations and
phases, execute one of many unit procedures, operations or phases, and execute
operations simultaneously on two or more units.
allow the recipe builder to re-execute unit procedures, operations and phases based
on an evaluated transition logic expression.

Unit Procedures
A Unit Procedure is a process action consisting of one or more operations. The Unit
Procedure names are defined by the recipe builder. A process instance must be
assigned to each Unit Procedure created. All process phases associated with the
assigned process instance, and all transfer phases associated with a transfer instance
that has the assigned process class as either its source or destination class, can be
used to define the unit procedure. Some examples of unit procedures and associated
process class instances are provided in the following table.

Unit Procedure Name Process Instance Assignment


Blend Blenders
Process Reactors
Process ReactorA
Sample Reactors
Sample ReactorA
Manual Addition Mix Tanks
Bulk Addition Bulk Tanks
Liquid Addition Blenders
Discharge Pack Stations

Operations
An Operation is an independent process action which identifies one or more phases.
The operation names are defined by the recipe builder. Defining an operation
simply requires the assignment of a name. Some examples of operations are
provided in the following table.

Operation Name
Add and Process
Transfer-MixTank
Recipe Editor 207

Operation Name
Fill and Package
Transfer-RecvTank

Phases
A phase is an independent processing action. Automatic and semi-automatic phases
are executed by the control system using Phase Logic. Phase logic is constructed in
a manner where it is automatically configured through phase parameters and
enabled and monitored by the batch management system when recipes are
executed.
Manual and data phases have no phase logic and are executed by the batch
management system. Typically, a manual phase is used to instruct an operator to
perform a function such as manually adding an ingredient, or performing a test
sample. A data phase may be used to read or write values to the control system or
an external device with operator interaction or formal phase logic.
208 Chapter 7

Some recipe procedures require the acknowledgment of certain conditions by an


operator before a phase can be executed. A recipe procedure may also require an
operator to acknowledge the completion of a phase. Additionally, a recipe
procedure may require the entry of operator comments before batch execution can
continue. All of these situations can be configured as part of the recipe procedure.
Several examples of process and transfer phases are provided in the following table.

Class Category Phase Type


Blenders Process Blend Automatic
Reactors Process Heat Automatic
Cool Automatic
Soak Automatic
Agitate Automatic
Q/A Test Manual
ManAdd Manual
EqStatus Download
Mix Tanks Process MixerOn Automatic
MixerOff Automatic
MixerTimed Automatic
ManAdd-Reactors Transfer ManualAdd Manual
Drums-Reactors Transfer DrumAdd Semi-Automatic
Bulks-Reactors Transfer BuldAdd Automatic
Reactors-Pack Transfer Pack Automatic

In addition to the types of phases previously described, there are two special phases
that can be used at any time in a recipe procedure to reserve ownership of specific
units or connections to a batch. These phases are named Allocate and Release.
When a unit or connection is allocated, it is owned by the batch until it is either
released as part of the recipe procedure or the batch finishes, or an operator
manually releases it.

Parameters
You can use Formula Parameters to further define the execution of a phase.
Formula parameters are defined in the process model editor. There are three types
of parameters:Inputs, Outputs, and Process Variables.
will hold process variable values. Output parameters will hold output quantities
based on the formula. As a procedure is constructed, each element of the formula is
assigned to a parameter.

Class Category Phase Parameters Type


Blenders Process Blend Speed Process Variable
Time Process Variable
Reactors Process Heat Rate Process Variable
Temp Process Variable
Recipe Editor 209

Class Category Phase Parameters Type


Process Cool Rate Process Variable
Temp Process Variable
Process Soak Time Process Variable
Temp Process Variable
Process Agitate Time Process Variable
Speed Process Variable
Process Q/A Test None N/A
Process ManAdd Qty_Lbs Input
Process EqStatus Status Process Variable
Mix Tanks Process MixerOn None N/A
Process MixerOff None N/A
Process MixerTimed Time Process Variable
Sample Process Q/A Test None N/A
Drums-Reactors Transfer DrumAdd Quantity Input
Bulks-Reactors Transfer BulkAdd Quantity Input
Reactors-Pack Transfer Pack Quantity Output

Transition Logic
In addition to defining process actions and the sequence of execution, there is a way
to control (enable/inhibit) the execution of the parts of a recipe procedure based on
operator decisions or process conditions, unit status, and batch information. This is
achieved through the use of Transition logic.
With transition logic, a Boolean expression is constructed and evaluated. If the
expression evaluates to TRUE, the execution of the recipe moves to the point below
the transition logic. If the expression evaluates to FALSE, the recipe execution will
stop and wait for the transition logic to evaluate to TRUE.
Transition Logic is constructed with the expression builder using:
1. Process Class and/or Instance Tags
2. Transfer Class and/or Instance Tags
3. Pre-defined Functions (Ask, Not, WaitSec, WaitMin, WaitHour)
4. Constants
The following table shows all of the available transition logic operators.
For more information on building expressions, see Chapter 14, "Expression Editor."

Operator Symbol
Negate -
Multiply *
Divide /
Modulus %
Add +
Subtract -
210 Chapter 7

Operator Symbol
Less Than <
Greater Than >
Less Than or Equal To <=
Greater Than or Equal To >=
Equal To =
Not Equal To <>
AND &
Or ¾
Assign :=
Not Not

Using Recipe Editor


Use Recipe Editor to create all of the recipes that will be executed in the batch
control system. Recipe Editor uses the information in the process model and
materials databases as part of recipe procedure development. Therefore, recipes
should be created only after your process model and materials databases have been
defined.
The procedure for creating a new recipe procedure requires the following basic
steps:
1. Enter Header Information.
2. Define Equipment Requirements.
3. Define Formula Inputs.
4. Define Formula Outputs.
5. Create a Procedure.
6. Validate the Recipe.
7. Save the Recipe.
8. Approve the Recipe.

To Start the Recipe Editor:


1. Double-click the RecipeEdit icon in the Environment Display.
Recipe Editor 211

2. The Recipe Editor window will appear.

File Menu
The Recipe Editor File menu provides system functions for the Recipe Editor. The
File menu items are described in the following sections.
212 Chapter 7

File/New
Use the File/New command to create a new recipe and clear an open recipe from
memory. If prior editing had been done and not saved, a message box will be
displayed providing the option to discard the changes before clearing the recipe.

To Create a New Recipe:


• Click File, and then select New.
You can also click the New icon on the main toolbar.

File/Open
Use the File/Open command to open an existing recipe and clear an open recipe
from memory. If prior editing had been done and not saved, a message box will be
displayed providing the option to discard the changes before opening the recipe.

To Open a Recipe:
1. Click File, and then select Open.
You can also click the Open icon on the main toolbar.

2. The Recipes – Open window will appear.

All of the recipes in the recipe database will be listed. You can sort the list by
clicking a list heading.
3. Click Open.
4. Double-click the required list item.
You can also open a recipe by double-clicking an item.
5. The recipe that you selected will appear in the Recipe Editor window.
Recipe Editor 213

Using Recipe Find and Filter


If your facility uses many recipes that makes finding the recipe difficult, you can
use the Find and Filter buttons to help you search for a specific recipe in the recipe
database.

To Find a Recipe:
1. Click the Find button.
2. The Recipe Find window will appear.

3. In the Search For text box, enter the text that you want to search for.
The space character acts as a wildcard entry. Entering a space character in the
Search For text box will cause every item in the list to be searched.
4. From the In drop-down list, select whether you want to search the Recipe ID,
Recipe Name, State or Type, or all of these fields.
5. Enable the Case Sensitive check box as required.
6. Click Find Next.
The first Recipe that matches your criteria will be highlighted in the Recipes –
Open list box. You can click Find Next to continue searching and scrolling
through the list.
7. When you identify the recipe that you want, click Open on the Recipes –
Open window.
8. Recipe Editor will display the selected recipe

To Filter the Recipe List:


1. Click the Filter button.
2. The Recipe Filters window will appear.
214 Chapter 7

3. Select as many States and/or Types as required.


4. Click OK.
5. The Recipes – Open list will now display only those recipes that match the
States and/or Types that you specified.
6. When you identify the recipe that you want, click Open on the Recipes –
Open window.
7. Recipe Editor will display the selected recipe

File/Save
Use the File/Save command to save changes to an open recipe. The File/Save can
also be used as a Save As function by specifying a different Recipe ID when you
are prompted to save the recipe. The first time that you save a recipe, you will be
required to enter a Recipe ID (16-char max) and an Author (30-char max). You can
also enter optional Comments that describe any changes or details that you want to
document. All subsequent changes to a recipe will require the entry of an Author.
You can effectively copy a recipe simply by saving it with a unique Recipe ID.
If you attempt to enter a Recipe ID that is not unique, a warning message will be
displayed that prompts you to overwrite the current version.
There will be occasions when either the Recipe ID and/or the Author is
automatically supplied. The Recipe ID is supplied when the current recipe has
already been assigned an ID. You can change this information at any time as
explained earlier. The Author field is supplied when the batch security system is
enabled and the Recipe Editor Author function has been assigned to require security
clearance. In this case, security clearance will be required whenever the save menu
option is selected. The corresponding Done By user entered in the security
clearance request will be automatically assigned to the Author field. This field may
not be changed.
Recipe Editor 215

To Save a Recipe
1. Click File, and then select Save.
You can also click the Save icon on the main toolbar.

2. The Save Recipe window will appear.

3. Enter a Recipe ID, Author and Comments as described earlier in this section.
4. Click Save.

File/Delete Recipes
Use the File/Delete Recipes command to remove a recipe from the recipe database.
Any recipe defined in the database can be deleted; however, you can only delete
one recipe at a time. If you delete the recipe that is currently open, you will have to
use the File/New command to clear the deleted recipe from the display.

To Delete a Recipe
1. Click File, and then select Delete Recipe.
2. The Recipes – Delete window will appear.
216 Chapter 7

3. Select a recipe from the list.


4. Click Delete.
The Recipes – Delete window provides Find and Filter capabilities similar to the
Recipes – Open window to aid in searching through long lists of recipes.

File/Validate
Use the File/Validate command to initiate a validation of the current recipe. The
validation process consists of the following elements.
• Verify that the process model database information used in the recipe exists.
This includes process classes, phases, parameters, and tags.
• Verify that the material database information used in the recipe exists.
• Verify that the minimum, maximum, and default batch sizes defined in the
recipe header are appropriate. (Minimum <= Default <= Maximum)
• Verify that all of the formula parameters defined in the recipe procedure are
linked to the appropriate information.
• Verify that all transition logic, including loop logic, is valid.

Note The validation process only verifies user configured information. Because of
the flexibility provided in constructing recipe procedures, it is impossible to verify
a recipe design. This verification is the responsibility of the user.

The validation does not check the document path specified for a document that is to
be viewed as part of a phase's execution.

The validation process does not verify the existence of reports on the Information
Server. This verification is the responsibility of the user.

To Validate a Recipe
1. Click File, and then select Validate.
Recipe Editor 217

You can also click the Validate icon on the main toolbar.

2. If the validation is successful, Recipe is Valid will be displayed in the Validate


window. If validation errors exist, the associated tags will be displayed along
with a validation error message.

File/Approvals
Use the File/Approvals command to approve any recipe in the database for
production or for testing. Approvals are required before the Approved for
Production check box can be set. A recipe cannot be scheduled as part of a batch
unless the Approved for Production or Approved for Test check box has been
enabled. The levels of approval required are configured in the Security Editor. If
security is not enabled, the Approved for Production or Approved for Test check
box must be manually enabled each time the recipe is saved. There are five levels of
recipe approval permitted. The first level corresponds to the author. The remaining
levels of approval are numbered two through five and can be assigned based on
your requirements.

Note In order to prevent the same person from approving recipes at different
levels, each level of approval should be assigned a different security level.

You approve the recipe by selecting the appropriate level command button on the
Approvals and entering information required by the security request windows.
Levels may be approved in any order, but the Approved for Production or
Approved for Test check box cannot be enabled until all of the required levels have
been satisfied. The Approved for Production or Approved for Test check box can be
enabled or disabled at any time for recipes in which all levels of approval have been
satisfied.
For more information on configuring security, see Chapter 13, "Security System."

To Approve a Recipe
1. Click File, and then select Approvals.
You can also click the Approvals icon on the main toolbar.

2. The Approvals window will appear.


218 Chapter 7

3. Select the required options as described earlier.


For more information on configuring security, see Chapter 13, "Security
System."
4. Click Close.

Note Recipe approvals made on version 8.0 and later show the time/date stamp of
the electronic signature. If recipe approvals were made on a prior version of the
batch software, the time/date of the electronic signature is not available.

File/History
Use the File/History command to view the construction history for any recipe in
the database. You can view the Version, Date of creation, and recipe Author for
each entry.

To View Recipe History:


1. Click File, and then select History.
You can also click the History icon on the main toolbar.
Recipe Editor 219

2. The History window will appear.

3. All of the history for the open recipe will be listed.

Note Old versions of recipes cannot be executed. If multiple recipe versions are
required, It is recommended that you enter the version identification in the Recipe
ID.

4. Click Close when you are finished viewing.


220 Chapter 7

File/Import/Export
Use the File/Import/Export command to export recipes to files and import recipes
from a file. You can copy and/or move recipes between local recipe databases
(those on your server) and across a network.

To Open the Import/Export window:


1. Click File, and then select Import/Export.
2. The Import/Export window will appear.

The Import/Export window is described above.

To Export a Recipe:
1. In the Import/Export window, enter a directory or select it from the
Directories list.
2. From the Recipe IDs list, select the required recipe(s).
3. Click Export.
This will create the recipe file(s) (.rcp extension) in the directory that you
selected. If the recipe file exists, the Duplicate Recipe window will appear
prompting you overwrite the existing file. Acknowledge the prompt as
required. You can also specify a different file name in the text box.
Recipe Editor 221

Note The file that is created contains information in a proprietary format Do not
attempt to view or edit the contents.

To Import a Recipe:
1. In the Import/Export window, enter a directory or select it from the
Directories list.
2. From the Recipe IDs list, select the required recipe(s).
3. Click Import.
This will create the recipe file(s) (.rcp extension) in the directory that you
selected. If the recipe file exists, the Duplicate Recipe window will appear
prompting you to overwrite the existing file. Acknowledge the prompt as
required. You can also specify a different file name in the text box.

Note After you import a recipe, you should validate and approve it using the
Recipe Editor.

WARNING! Do not attempt to import files that were not created by performing a
recipe export. An application error will occur.

File/Save View Settings


Use the File/Save View Settings command to store the current layout of the Recipe
Editor window. Because the Recipe Editor is very flexible, you may, for a given
recipe, scale the editor windows or have need for different zoom levels for specific
windows. By default, when you close Recipe Editor and then restart it, the layout is
set to its default settings. By saving the view settings before you exit, you are able
to restart the editor with the custom settings.

File/Sync and Validate Recipes


Use the File/Sync and Validate Recipes command to automatically synchronize
the phase parameters in one or more recipes with the phase parameters in the
process model. When phase parameters are added, deleted or changed in a process
model, all recipes that are associated with the parameters are affected.
222 Chapter 7

When the synchronization process starts, it first initiates a synchronization of the


phase parameters in the recipe with those in the process model. When differences
are encountered, the Recipe phase parameter information is updated using the
process model phase parameter information. After the synchronization stage is
completed, the recipe is validated.
You can choose to retain the approvals that are already assigned to a recipe, or you
may require the entry of approvals as part of the synchronization process by
configuring the Allow Sync Approvals parameter in Environment Editor. The
synchronization process can be interrupted if necessary.
For more information on configuring security, see Chapter 3, "Environment
Management System."
The following procedure assumes that you have already made changes to process
model phase parameters and that your process model is valid.

Note It is recommended that you back up your recipe databases prior to using the
Synchronize Recipe feature.

To Synchronize Recipes:
1. On the menu bar, click File and select Sync and Validate Recipes.
The Sync & Validate Recipe window will appear.

Note If you have a Recipe open, you must close it before you can use the
synchronization feature.

2. Enter an Author (30 char max).


Recipe Editor 223

3. Enable the Retain Recipe Approvals check box to retain the Approvals that
are currently assigned to each recipe in the database.

If you disable the Retain Recipe Approvals check box, you will be required to
enter new Approvals.

Note By default, the Retain Recipe Approvals is enabled. If you have disabled
the Allow Sync Approvals parameter in Environment Editor, the Retain Recipe
Approvals check box cannot be selected.

4. Enable the Acknowledge Required check box to require confirmation of each


recipe synchronization before it begins.
If you disable the Acknowledge Required check box, recipes are
synchronized and/or validated without the need of confirmation.
5. Enable the Validate Only check box if you only want to verify whether or not
recipes are synchronized.
6. After making your selections, click the Execute button to begin the validation
and/or synchronization process.
7. Use the Pause button to interrupt the process.
After you pause the process, you can use the Skip Recipe button to ignore the
current recipe and proceed to the next. Once paused, you can completely stop
the process by clicking Cancel.
When you click Pause, the button label changes to Continue. If after a pause,
you want to resume, click Continue.
8. When the process is complete, you can click the Validation Results button to
view the status of the synchronization and validation process.

File/Print
Use the File/Print command to select one or more pre-formatted reports, and then
print the section(s) to a printer or a file. Printed output supports the use of
PostScript formatting for graphical representation as well as a Standard format that
is text-only. You can optionally print your reports on a grey background. The Print
window also allows you to select and configure the Properties of the printer

To Print a Recipe:
1. On the menu bar, click File and select Print.
You can also click the Print icon on the main toolbar.

2. The Print window will appear.


224 Chapter 7

3. In the Select Reports list, select item(s) that you want.

File/Print Preview
Use the File/Print Preview command to select one or more pre-formatted reports,
and then preview them on the screen.

To Preview a Recipe:
1. On the menu bar, click File and select Print Preview.
You can also click the Print Preview icon on the main toolbar.

2. Select one or more reports and then click OK to preview your selections.

File/Print Setup
Use the File/Print Setup command to select and configure a printer. Refer to your
printer manufacturer’s documentation for more information.

To Setup your Printer:


1. On the menu bar, click File and select Print Setup.
Recipe Editor 225

The Print Setup window will appear.


2. Configure your printer as required.

File/Exit
Use the File/Exit command to close the Recipe Editor.

To Close the Recipe Editor:


On the menu bar, click File and select Exit.

Note If you have edited a recipe and did not save it, you will be prompted to save
or discard the changes prior to closing the Recipe Editor.

Edit Menu
The Recipe Editor Edit menu provides system functions for the Recipe Editor.

Header
Use the Edit/Recipe Header menu to create and edit recipe header information.

Edit/Recipe Header
Use the Edit /Recipe Header command to define the name and other identification
information for a recipe. A Recipe Header contains the elements show in the
following list. Not all of the elements are required.
• Recipe ID (Required; Display only; Defined when recipe is saved)
• Recipe Name (Optional, 16-char max)
• Recipe State (Required, Defaults to the default State defined in the Recipe
State Editor)
• Recipe Type (Optional, Defaults to the default Type defined in the Recipe
Type Editor)
• Product ID (Optional, 16-char max)
• Product Name (Optional, 16-char max)
• Minimize Batch Size (Required, Defaults to zero if left blank)
• Maximize Batch Size (Required, Defaults to zero if left blank)
• Default Batch Size (Required, Defaults to zero if left blank)
• Comments (Optional, No size restrictions)
The Recipe ID is the only field that cannot be edited from the Header. The Recipe
ID is the unique identifier for the recipe and defined when the recipe is saved.

To Edit a Recipe Header


1. Click Edit, and then select Recipe Header.
226 Chapter 7

You can also click the Header icon on the main toolbar.

2. The Recipe Header window will appear.

3. Enter information for the header as described earlier in this section.

To Assign a Recipe State:


1. Click the States button.
2. The Assign Recipe States window will appear.
Recipe Editor 227

3. Select a State from the list.

Note Assignment of a State is optional.

For more information on defining Recipe States, see “Recipe State Editor”
later in this section.
4. Click OK.
5. The State will appear in the Recipe Editor window.

To Assign a Recipe Type:


1. Click the Types button.
2. The Assign Recipe Types window will appear.
228 Chapter 7

3. Select a Type from the list.

Note Assignment of a Type is required.

For more information on defining Recipe Types, see “Recipe Type Editor”
later in this section.
4. Click OK.
5. The State will appear in the Recipe Editor window.

Equipment Requirements
Use the Edit/Equipment Requirements menu to define the equipment requirements
for your recipe.

Edit/Equipment Requirements
Use the Edit/Equipment Requirements command to access the Equipment
Requirements Editor which you will use to edit recipe equipment requirements.
Equipment requirements identify the process classes and/or process and transfer
instances from which process and transfer phases can be used while building the
procedure. The equipment requirements are also used by the batch management
system to verify train selection during batch scheduling, and also which units will
be selected from the train when the batch is executed. You must define recipe
equipment requirements before you can construct a recipe procedure.
The equipment requirements for a recipe consist of the following items.
• Process Classes (Required, One or more selected from the process model)
• Process Instances (Optional, One Process Instance is created by default for
each selected Process Class. At least one Process Instance is required for a
recipe.)
• Transfer Instances (Optional)
Recipe Editor 229

• Unit Selection Mode (Required, Defined for each process class and/or
instance)
• Attributes (Optional, Available for each process class and/or instance for
which process class attributes were defined in the process model)
• Unit Assignments (Optional, Required for equipment dependent recipes only)
• Comments (Optional, No size restrictions)
Recipe Editor gives you the ability to define equipment independent or equipment
dependent recipes. An equipment independent recipe does not have units assigned
to its process instances. An equipment dependent recipe is associated with specific
units assigned to one or more process instances. In actuality, the recipe procedure is
associated with instances within a class. For example, the process class “Reactors”
might have 2 process instances: “ReactorA” and “ReactorB.” ReactorA and
ReactorB are still classed based, but can be independently referenced in the recipe.

Note It is very important for you to remember that adding process instances is not
necessary if your requirements need only one unit from within the same process
class.

Using Process and Transfer Instances:


Example 1 illustrates the necessary equipment requirements for a recipe that uses
one process instance per class. Example 2 illustrates the equipment requirements
for a recipe that uses two reactor and hold tank process instances. In example 1, all
process and transfer instances automatically default to the class name. In example
2, four process class instances are defined and four transfer instances must be
defined.
230 Chapter 7

To Open the Equipment Requirements Editor


1. On the Recipe Editor menu, click Edit, and then select Equipment
Requirements.
2. The Equipment Requirements Editor window will appear.

All previously assigned Process Classes will be listed.

Assign Process Classes


You must select at least one process class from the process model and assign it to
the recipe procedure. The phases that are available in the recipe procedure
correspond to the process phases of the selected classes. They also correspond to
the transfer phases for the transfer classes in which the source and destination
classes are included in the equipment requirements.

Note You can delete Process class assignments with the Equipment Requirements
Editor. Deleting a process class will remove all of the process and transfer instances
that are associated with the deleted class. Phases previously assigned to instances
associated with the deleted process class must be manually deleted from the recipe
procedure. Until you delete these phases, the recipe will become invalid. Should
this condition arise, a message box will be displayed.
Recipe Editor 231

To Assign Process Classes:


1. On the Equipment Requirements Editor, click Add Processes.
2. The Process Classes window will appear.

All of the Process Classes in your process model will be listed.


3. Select the required Process Class(es) and then click OK.

Edit Process Instances


The following section describes how to configure a process instance.

Process Instances
Use the Process Class Instance Editor to define the specific process instances
necessary for recipe construction. Instance names must be unique. The editor
verifies the name to ensure validity and uniqueness.

• Name (16-char max)


• Selection Mode – (Automatic or Manual) the manner in which runtime unit
selection is made for the instance. The default is Automatic. If you assign Units
to the Process Instance, the Selection Mode is unavailable, and is, by default,
Automatic.
• Attributes – All attributes defined for the selected process class are available.
• Unit Assignment – Required for equipment dependant recipes.
You will use the instance names when you assign phases to an operation during
recipe procedure development.
232 Chapter 7

Note Deleting a process instance will also remove all of transfer instances that
were defined using the deleted process instance. If you delete all of the instances for
a process class, there will no instances available for assigning operations in the
Procedure Editor. New instances can be defined, or the process class can be deleted
and reassigned using the Equipment Requirements Editor in order to return the
default instance name. All of the phases that were assigned to a deleted process
instance must be manually deleted from the recipe procedure. The recipe will
become invalid until the phases are removed.

If your recipe procedure requires multiple process instance names, you should first
change the name of the default instance, and then add the required instances.
Remember that if you delete default process instances, then the default transfer
instances are deleted as well. Also, if you retain the default instance and name, and
do not use it in the procedure, the batch management system will require an extra
unit in the train in order to initialize the recipe.

Note Multiple process instances are not required unless you have a batch
execution requirement for the simultaneous allocation of more than one unit from
the same process class.

To Assign Process Instances:


1. On the Equipment Requirements Editor, click Process Instances.
2. The Process Class Instances Editor will appear.
Recipe Editor 233

The Name box in the Process Class Instance Editor window displays a
default instance name which is the same as the selected process class name. If
you only need one unit from the class for the recipe, then you can use the
default name. If more than one unit is required from the process class, you
must define multiple instance names.
3. In the Name box, enter an appropriate Process Instance name.
4. Click Add.

Assign Units to Process Class Instances


You must assign units to a process class if you are developing an equipment
dependent recipe. A specific unit can be assigned to each process instance.

Note If you remove an Assigned Unit assignment from a process instance, it is


also removed from the selected instance. If an instance has no unit assignments,
then all of the units in the selected process class that are part of the train assigned to
the batch, are available for allocation when the batch is executed.

To Assign Process Instances:


1. On the Process Class Instances Editor, enter a Name (16-char max) for the
process instance.
2. Click Assign Unit.
3. The Units window will appear.

All of the units assigned to the selected process class in the process model will
be displayed.
4. Select a Unit from the list and click OK.
The unit that you select is assigned to the instance. The unit name is displayed
in the Process Class Instance Editor window along with the appropriate
process instance name
234 Chapter 7

Unit Selection Mode


Use the Selection Mode drop-down list to define how a single unit will be selected
during batch execution when multiple units within the process class are available in
the associated train. The Selection Mode has two settings; Automatic and Manual.
The Automatic mode requires the batch management system to select the specific
unit. The Manual mode requires the operator to manually select the specific unit
from a list of available units. The actual unit selection is made during the runtime
execution of the recipe.

Note If a specific unit has been assigned to a process instance, you cannot set the
selection mode. In this case, the batch management system allocates the assigned
unit when the recipe executes.

Attributes
Use the Attributes list and, Min and Max text boxes, to provide additional
equipment requirements for a recipe.

Note Use of Attributes is optional.

The batch management system uses attributes to allocate units in the train assigned
to a batch only if the unit attribute values satisfy the corresponding recipe attribute
requirements. Attributes are defined for the process class in the Process Modeling
Editor
For more information on Process Class Attributes, see Chapter 4, "Process
Modeling."
The assigned attributes are valid only for the selected process instance and the
recipe that you are creating. The attribute range consists of a minimum value (Min)
and a maximum value (Max).

Minimum Value Maximum Value Batch Management Action


0 0 Attribute ignored by the batch management system.
10 100 Only units in the process class that have an attribute value greater
than or equal to 10 and less than or equal to 100 can be used by the
batch management system.
50 50 Only units in the process class that have an attribute value of 50
can be used by the batch management system.

Note If a specific unit has been assigned to a process instance, an attribute range
cannot be defined. The batch management system is required to allocate the
assigned unit when the recipe is executed as part of a batch.
Recipe Editor 235

Example Equipment Requirements


The following example demonstrates how the equipment requirements can be
configured for a recipe and how the requirements are used by the batch
management system during the execution of a batch.
For this example, suppose that a transfer phase is to be conducted from a bulk tank
to a reactor, as shown in the following diagram. Also, assume that the train assigned
to the batch includes the three units displayed, and the bulk can be transferred to
both reactors simultaneously.

The following Process Class Instance Editor represents one possible


configuration for this example.
236 Chapter 7

In the example, the batch management system must allocate a reactor as the
destination unit in order to execute the bulk addition. The unit selection mode and
the capacity attribute range defined in the recipe are evaluated by the batch
management system and compared with the unit attribute values defined in the
process model editor. The following table shows variety of scenarios and the result
of the batch management system for the previous example.

Minimum Maximum
Process Unit Capacity Capacity
Instances Assigne Selection Attribute Attribute
Defined d Units Mode Value Value Resultant Unit Selected
Reactors None Automatic 0 0 Reactor A or Reactor B
Reactors None Automatic 0 2000 Reactor A or Reactor B
Reactors None Automatic 0 1000 Reactor A
Reactors None Automatic 2001 3000 Batch cannot be initialized
because train does not
contain an acceptable unit.
Reactors None Manual 0 0 User selects Reactor A or
Reactor B
Reactors None Manual 0 2000 User selects Reactor A or
Reactor B
Reactors None Manual 0 1000 Reactor A is automatically
selected because it is the
only reactor satisfying the
attribute range.
Reactors ReactorA N/A N/A N/A Reactor A
Reactors ReactorB N/A N/A N/A Reactor B
First_Reactor None Automatic 0 2000 Reactor A or Reactor B
First_Reactor None Manual 0 2000 Reactor A or Reactor B
First_Reactor None Manual 0 2000 Reactor A or Reactor B
Second_Reactor None Manual 0 2000 selected for the
First_Reactor instance. The
other reactor would be
selected for the
Second_Reactor instance.
First_Reactor None Manual 0 2000 The user must manually
Second_Reactor None Manual 0 2000 select Reactor A or
Reactor B for the
First_Reactor instance. The
other reactor would be
automatically selected for
the Second_Reactor
instance.
First_Reactor ReactorA N/A N/A N/A Reactor A is allocated for the
Second_Reactor None Automatic 0 2000 First_Reactor instance.
Reactor B is allocated for the
Second_Reactor instance.
Recipe Editor 237

Minimum Maximum
Process Unit Capacity Capacity
Instances Assigne Selection Attribute Attribute
Defined d Units Mode Value Value Resultant Unit Selected
First_Reactor ReactorA N/A N/A N/A Reactor A is allocated for the
Second_Reactor ReactorB N/A N/A N/A First_Reactor instance.
Reactor B is allocated for the
Second_Reactor instance.

Edit Transfer Instances


The following section describes how to configure a transfer instance.

Transfer Instances
Use the Transfer Class Instance Editor to define the specific transfer instances
necessary for recipe construction. Instance names must be unique. The editor
verifies the name to ensure validity and uniqueness.
A transfer class instance consists of the following:
• Name (16-char max)
• Source Instance
• Destination Instance
You will use the names defined for the instances while you are building a recipe and
are assigning phases to an operation.

Note Multiple transfer instances are not required unless more than one process
instance has been defined for a process class, or if multiple connections require
simultaneous allocation from the same transfer class during batch execution.

The default transfer instance name is the same as the name of the transfer class. The
source and destination instances associated with the default transfer instance
correspond to the first process instances defined for the source and destination
process classes. If multiple process instances have been defined for a process class,
then multiple transfer instances must be defined so that the recipe builder can
differentiate the transfer phases into and out of each process instance.
If your recipe procedure requires multiple transfer instance names, you should first
change the name of the default instance, and then add the required instances.
If multiple transfer instance names are required, change the name of the default
instance first, then add any other required instances.

Note If you delete a transfer class instance, you will have to manually delete the
phases that were previously assigned. The recipe will become invalid until the
phases are removed.

To Assign Transfer Instances:


1. On the Equipment Requirements Editor, click the Transfer Instances
button.
238 Chapter 7

2. The Transfer Class Instance Editor will appear.

All available transfer classes along with their source and destination classes defined
in the process model are listed. Note, in the lower pane of this window, that there is
a single transfer instance displayed for each transfer class.

Assign Source and Destination Instances


Use the Source Instance and Destination Instance windows to assign source and
destination instances to the transfer instance. Only one instance can be selected at a
time. Either the default or the user defined process instances will be available. The
proper instance must be selected from the appropriate dialog and assigned to the
transfer instance.
Recipe Editor 239

Note If multiple transfer instances are being created from process classes that
contain multiple process instances, it is possible for a transfer instance to be defined
for which a connection does not exist in the process model. Therefore, the recipe
builder must be sure that the physical process model contains a connection that is
represented by the defined transfer instances.

To Assign a Source Instance:


1. On the Transfer Class Instance Editor window, click the Source Instance
button.
2. The Source Instance window will appear.

3. Select the required Source Instance from the list.


4. Click OK.

To Assign a Destination Instance:


1. On the Transfer Class Instance Editor window, click the Destination
Instance button.
2. The Source Instance window will appear.
240 Chapter 7

3. Select the required Source Instance from the list.


4. Click OK.

Example Transfer Instance Selection


The window display shows how you would use two transfer instances for the bulk-
to-reactor addition example shown earlier in this section. After definition, the
instances would be available within the recipe procedure, allowing the recipe
builder to select the appropriate transfer phase depending on the process instance
operation being defined.
Recipe Editor 241

Formula
A recipe formula consists of the inputs, outputs, and process variables that are used
in the recipe procedure. You define these parameters using the Formula Inputs
Editor, the Formula Outputs Editor, and the Process Variables editors described
in the following section.
defined in the materials database prior to development of the recipe. Inputs and
outputs must be selected for a recipe before they can be used in the procedure. Once
defined, the inputs and outputs are available for assignment in phases that have
input or output parameters defined. Value assignments for each material can be
made from the respective editor or locally at each phase. The process variable
editor displays all of the process variable type parameters that are used in phases in
the recipe procedure. Phases with process variable parameters must be edited in the
procedure editor before they can be displayed in the process variable editor. Value
assignments for each process variable can be made while constructing the recipe
procedure or from the process variable editor after the procedure is constructed.

Edit/Formula Inputs
Use the Edit/Formula Inputs command to access the Formula Inputs Editor
window which you use to define the input materials that will be used in the recipe.
Formula inputs are the materials that will be used as raw materials in the recipe
procedure. All phases that have an input parameter defined must have an input
material assigned.
The same material can be added to the Recipe with as many configurations as you
require. Inputs that you define and add do not necessarily need to be used in the
recipe procedure.

Note The single instance of a material may be assigned to the input parameter of
more than one phase, and unique quantity values may be assigned to each
parameter. However, one material may not be used as both a percent value and an
actual value within different phases in a recipe. If this is desired, the material must
be added twice to the Formula Inputs Editor Inputs list.

To Edit Formula Inputs:


1. Click Edit, and then select Formula Inputs.
You can also click the Formula Inputs icon on the main toolbar

2. The Formula Inputs Editor window will appear.


242 Chapter 7

To Add Input Materials:


1. On the Formula Editors window, click the Add Inputs button.
2. The Materials window will appear.

All of the materials in the materials database of the selected Type, will be
listed. The material types include Ingredients, Intermediates, Finished Goods,
By-Products, and Other.
Recipe Editor 243

3. Click the Type drop-down arrow, and select the applicable material type.
4. Select the required Material(s) from the list.
5. Click OK.

To Change Input Materials:


1. On the Formula Editors window, click the Change Inputs button.
2. The Materials window will appear.

All of the materials in the materials database of the selected Type, will be
listed. The material types include Ingredients, Intermediates, Finished Goods,
By-Products, and Other.
3. Click the Type drop-down arrow, and select the applicable material type.
4. Select the required Material from the list.
5. Click OK.
The new material will retain the values and phase assignment that were
assigned to previous input.

To Add or Change Input Materials- Alternate Method:


In the event that the materials database grows very large, you may notice an
increasing delay when opening the Materials window. To avoid the this, you can
use an alternate method to add or change input materials.
1. Disable the Add Materials From List check box in the Formula Inputs
Editor window. When enabled, materials are entered as described earlier in
this section.
2. When you click the Add Inputs or Change Input button the Material
window will appear.
244 Chapter 7

3. In the Material ID text box, enter the required Material ID and then click OK
or Apply.
If the material is located in the materials database, then the material is added to
the list in the Formula Inputs Editor window. If the material does not exist in
the materials database, an error message is displayed.

To Edit Input Material Settings:


1. On the Formula Inputs Editor window, in the Material Settings pane, enter a
quantity in the Value text box.
For each material assigned as a recipe formula input, you can define a Value
which represents the material quantity. This value is entered as either a
percentage of the total batch size or as an actual value.
2. Click the Type drop-down arrow and select Percent or Actual as required for
the entered value.
3. Enable the Total check box if you want the value to be included as part of the
inputs total in the Inputs Summary list.
The sum of all of the values assigned to inputs that have the total check box
selected is displayed Inputs Summary pane. This totalizing feature will only
function for inputs that have values of the same type. If there is a mix of input
materials with actual values that have the total check box selected and input
materials with Percent values that have the total check box selected, the Value
will display N/A.
The totalizing function is provided merely as a convenience for totaling
selected inputs when a recipe can be constructed, and therefore produced, in
more than one way. The Recipe Editor does not require that the total of inputs
is equal to exactly 100%. An example of this is a recipe that varies in batch size
from 100 to 5000 pounds. When the batch size is below 500 pounds, a specific
group of inputs (ingredients) are assembled in advance as a premix and then
added to the batch as an intermediate. When the size is equal to or above 500
pounds, all inputs are added individually. If the total intermediate is 25% of the
batch and is included in the total, the total would be 125%. If the Total check
box is disabled for the intermediate, the total would be 100%. In this example,
the procedure would include parallel operations or phases for adding the inputs
in question, with only the appropriate operations or phases being executed.
Transition logic evaluating the batch size would be used to determine which
operations or phases to execute.
4. Click the Tolerance drop-down arrow and select General, Recipe or None as
required.
Recipe Editor 245

General (default) tolerances are defined for each input as part of their entry
into the materials database. These tolerances are displayed in the high and low
deviation fields as percentages. The tolerances can be also be assigned as
Recipe specific. If you do not want to assign a tolerance, use the None option.
You can change input material tolerances using the Formula Inputs Editor
window or by directly editing the phase in the recipe procedure.
5. If you specified Recipe as the Tolerance, enter a High Deviation and Low
Deviation.
6. In the Unit of Measure text box, enter an appropriate term (16-char max).
(e.g. Kgs, Liters, Gallons, etc.)
7. Click Change.

Edit/Formula Outputs
Use the Edit/Formula Outputs command to access the Formula Outputs Editor
window which you use to define the materials that will be produced by the recipe.
All phases that have output parameter definitions must have an output material
assigned. A single instance of a material may be assigned to the output parameter of
more than one phase, and unique quantity values may be assigned to each
parameter. However, the same material cannot be used as both a percent value and
an actual value within different phases of a recipe. If this is required, you must add
the material twice.

To Edit Formula Outputs:


1. Click Edit, and then select Formula Inputs.
You can also click the Formula Inputs icon on the main toolbar.

2. The Formula Outputs Editor window will appear.


246 Chapter 7

To Add Output Materials:


1. On the Formula Editors window, click the Add Outputs button.
2. The Materials window will appear.

All of the materials in the materials database of the selected Type, will be
listed. The material types include Ingredients, Intermediates, Finished Goods,
By-Products, and Other.
Recipe Editor 247

3. Click the Type drop-down arrow, and select the applicable material type.
4. Select the required Material(s) from the list.
5. Click OK.

To Change Output Materials:


1. On the Formula Editors window, click the Change Output button.
2. The Materials window will appear.

All of the materials in the materials database of the selected Type, will be
listed. The material types include Ingredients, Intermediates, Finished Goods,
By-Products, and Other.
3. Click the Type drop-down arrow, and select the applicable material type.
4. Select the required Material from the list.
5. Click OK.
The new material will retain the values and phase assignment that were assigned to
previous input.

To Add or Change Output Materials - Alternate Method:


In the event that the materials database grows very large, you may notice an
increasing delay when opening the Materials window. To avoid the this, you can
use an alternate method to add or change input materials.
1. Disable the Add Materials From List check box in the Formula Inputs
Editor window. When enabled, materials are entered as described earlier in
this section.
2. When you click the Add Outputs or Change Output button the Material
window will appear.
248 Chapter 7

3. In the Material ID text box, enter the required Material ID and then click OK
or Apply.
If the material is located in the materials database, then the material is added to
the list in the Formula Inputs Editor window. If the material does not exist in
the materials database, an error message is displayed.

To Edit Output Material Settings:


1. On the Formula Outputs Editor window, in the Material Settings pane,
enter a quantity in the Value text box.
For each material assigned as a recipe formula output, you can define a Value
which represents the material quantity. This value is entered as either a
percentage of the total batch size or as an actual value.
2. Click the Type drop-down arrow and select Percent or Actual as required for
the entered value.
3. Enable the Total check box if you want the value to be included as part of the
inputs total in the Inputs Summary list.
The sum of all of the values assigned to outputs that have the total check box
selected is displayed in the Outputs Summary pane. The totalizing function
will only work on outputs that have values of the same type. If there is a mix of
output materials with Actual values that have the total check box selected and
output materials with Percent values that have the total check box selected, the
Value will display N/A.
The totalizing function is provided as a convenience for totaling selected
outputs when a recipe can be constructed, and therefore produced, in more than
one way. The Recipe Editor does not require the outputs to total exactly 100%.
4. In the Unit of Measure text box, enter an appropriate term (16-char max). (e.g.
Kgs, Liters, Gallons, etc.)
5. Click Change.

Process Variables
Formula Process Variables correspond to all of the process variable formula
parameters defined for the phases used in the construction of the recipe. Process
variable formula parameters are defined in the Process Modeling Editor. Use the
Process Variables window to redefine the names or values assigned to process
variable parameters.
Recipe Editor 249

Edit/Process Variables
Use the Edit/Process Variables command to edit formula process variables.

To Edit Process Variables:


1. On the Recipe Editor window, click Edit and then select Process Variables.
You can also click the Process Variables icon on the main toolbar.

2. The Process Variables window is displayed.

The list shows all of the process variables used in the phases of the recipe
procedure. The list will be empty until you use phases that contain process
variable parameters in the recipe procedure. Following recipe procedure
creation, you can change process variable parameter in the Process Variables
window or directly in the specific phase.
For each process variable displayed in the list, the phase Type, Name, Value,
Tolerances, and Description are displayed. This information is derived from
the process model database.
3. Select a Process Variable from the list.
4. In the Name text box, enter an appropriate name (16-char max).
5. In the Value text box, enter an appropriate value.

Note The Value must be within the range of the High and Low Limit values
defined for the parameter in the process model database.

6. Click the Tolerances drop-down arrow and select General, Recipe, or None
as required.
7. In the High Deviation and Low Deviation text boxes, enter values that are
consistent with the Tolerance that you specified.
8. Click Change.
250 Chapter 7

Unit Procedures Library


You create and initially save Unit Procedure Operations during recipe construction.
For more information on saving unit procedures, see “Building a Recipe” later in
this section.
Use the Edit/Unit Procedures Library command to edit the name and description
of recipe unit procedures that were created during recipe development and then
store them for future use.
Unit Procedure Name (16-char max) and optional comments of unlimited length.
The Unit Procedure Library is recipe independent and there is no limit to the
number of unit procedures that you can store.

To Edit the Unit Procedures Library:


1. Click Edit, and then select Unit Procedures Library.
You can also click the Unit Procedures icon on the main toolbar.

2. The Unit Procedure Library window will appear.

All of the unit procedures that have been previously saved will appear in the
list.
3. In the Unit Procedure Name text box, enter an appropriate name.
4. In the Comments box, enter a description for the unit procedure (optional).
5. Click Change and then Close.
Recipe Editor 251

Operations Library
The following section describes how to use the Operations Library.

Edit/Operations Library
You create and initially save Recipe Operations during recipe construction.
For more information on saving operations, see “Building a Recipe” later in this
section.
Use the Edit/Operations Library command to edit the name and description of
recipe operations that were created during recipe development and then store them
for future use.
Operation Name (16-char max) and optional comments of unlimited length. The
Operation Library is recipe independent and there is no limit to the number of
operations that you can store.

To Edit the Operations Library:


1. Click Edit, and then select Operations Library.
You can also click the Operations Library icon on the main toolbar.

2. The Operations Library window will appear.

All of the operations that have been previously saved will appear in the list.
3. In the Operation Name text box, enter an appropriate name.
4. In the Comments box, enter a description for the Operation (optional).
252 Chapter 7

5. Click Change and then Close.

Edit/Recipe States
Use the Edit/Recipe States menu to access the Edit Recipe States window.
Recipe states are defined on a global basis throughout the entire recipe management
system and are available for every recipe created. Examples of Recipe States might
include Test, Production and Archive.
Recipe States consists of Name (16-char max) and an optional description. All
recipes must contain a State assignment in order for the recipe to be valid.

To Edit a Recipe State:


1. On the Recipe Editor menu, click Edit and then select Recipe States.
2. The Edit Recipe States window will be displayed.

3. Select the required State from the list.


4. In the Name text box, enter a name for the State.
5. In the Description box, enter text describing the state (optional).
6. Enable the Default, Schedule and Read Only check boxes as required.
Any of the available states can be selected as the default. The assignment of a
default state to a recipe is optional and will not prevent validation or approval
of a recipe. However, once it is set as the default, it is automatically assigned to
all new recipes. Enabling the Schedule check box will allow the recipe to be
scheduled for execution by the batch system. Enabling the Read Only check
box will prevent saving of the recipe during editing.
7. Click Add if you creating a new State or click Change if you are editing an
existing State.
Recipe Editor 253

Edit/Recipe Types
Use the Edit/Recipe Types menu to access the Edit Recipe Types window.
Recipe Types are defined on a global basis throughout the entire recipe
management system and are available for every recipe created.

To Edit a Recipe Type:


1. On the Recipe Editor menu, click Edit and then select Recipe Types.
2. The Edit Recipe Types window will be displayed.

3. Select the required Type from the list.


4. In the Name text box, enter a name for the type (16-char max).
5. In the Description box, enter text describing the type (optional).
6. Enable the Default check box if you want to set the current Type as the default.
The assignment of a default Type to a recipe is optional and will not prevent
validation or approval of a recipe. However, once it is set as the default, it is
automatically assigned to all new recipes.
7. Click Add if you creating a new Type or click Change if you are editing an
existing Type.

View Menu
Use the Recipe Editor View menu to show or hide toolbars, change the
magnification (zoom-in or zoom-out) of the unit procedures, operation and phase
displays, show or hide the unit procedures, operations and phases views.
254 Chapter 7

View/Main Toolbar
To view the Main Toolbar:
• Click View and then enable the Main Toolbar menu item.

View/Unit Procedure Toolbar


To view the Unit Procedure Toolbar:
• Click View and then enable the Unit Procedure Toolbar menu item.
You can also use the Show/Hide Unit Procedures View icon on the main
toolbar.

View/Operation Toolbar
To view the Operations Toolbar:
• Click View and then enable the Operation Toolbar menu item.
You can also use the Show/Hide Operations View icon on the main toolbar.

View/Phase Toolbar
To view the Operations Toolbar:
• Click View and then enable the Phase Toolbar menu item.
You can also use the Show/Hide Phases View icon on the main toolbar.

View/Status Bar
To view the Status Bar:
• Click View and then enable the Status Bar menu item.

View/Unit Procedure View


Use the View/Unit Procedure View menu item to show or hide the Unit
Procedures pane and toolbar.
Recipe Editor 255

View/Unit Procedure Zoom In


To Zoom In on Unit Procedures:
• Click View and then select Unit Procedure Zoom In to increase the displayed
size of objects in the recipe unit procedure pane.
You can also use the Unit Procedure Zoom In icon in the Unit Procedures
Toolbar.

View/Unit Procedure Zoom Out


To Zoom Out on Unit Procedures:
• Click View and then select Unit Procedure Zoom Out to increase the
displayed size of objects in the recipe unit procedure pane.
You can also use the Unit Procedure Zoom Out icon in the Unit Procedures
Toolbar.

View/Operation View
Use the View/Operation View menu item to show or hide the Operations pane and
toolbar.

View/Operation Zoom In
To Zoom In on a Recipe Operation:
• Click View and then select Operation Zoom In to increase the displayed size
of objects in the recipe operation pane.
You can also use the Operation Zoom In icon on the main toolbar.

View/Operation Zoom Out


To Zoom Out of a Recipe Operation:
• Click View and then select Operation Zoom Out command to decrease the
displayed size of objects in the recipe operation pane.
You can also use the Operations Zoom Out icon on the main toolbar.
256 Chapter 7

View/Phase View
Use the View/Phase View menu item to show or hide the Phases pane and toolbar.

View/Phase Zoom In
• Click View and then select Phase Zoom In command to increase the displayed
size of phases in the recipe phase pane.
You can also use the Phase Zoom In icon on the main toolbar.

View/Phase Zoom Out


To Zoom Out of a Recipe Phase:
• Click View and then select Phase Zoom Out command to decrease the
displayed size of phases in the recipe phase pane.
You can also use the Phase Zoom Out icon on the main toolbar.

Help Menu
The Recipe Editor Help menu contains commands that provide you with access to
the online help system and information regarding product version.

Help/Help Topics
Use the Help/Help Topics command to display the help contents for Recipe Editor.

Help/About Recipe Editor


Use the Help/About command to view product version information.
Recipe Editor 257

Building a Recipe Procedure


A Recipe Procedure defines the sequence in which operations and phases will be
executed when the recipe is scheduled and executed by the batch management
system. Use the Recipe Editor window to create the recipe’s sequence of events.
An overview of the Recipe Editor window and all of the major components is
shown below. Each of these items is described in more detail in the this section.

Procedure Layout
The Recipe Editor Procedure window is divided into three re-sizeable panes: Unit
Procedures, Operations and Phases.

Unit Procedures
The Unit Procedures pane is used to layout the sequence of user-defined unit
procedures that are executed when the recipe is scheduled as part of a batch. Each
unit procedure should contain at least one phase. The operation sequence can be
constructed using any of the procedure objects described later.

Sequence of Operations
The Sequence of Operations pane is used to create a sequence of user-defined
operations that are executed when the recipe is scheduled as part of a batch. Each
operation should contain at least one phase. The operation sequence can be
constructed using any of the procedure objects described later.
258 Chapter 7

Sequence of Phases
The Sequence of Phases section of the Procedure window is used to create a
sequence of phases that are executed within an operation. The phases are defined in
the process modeling editor. The phase sequence can be constructed using any of
the procedure objects described later.

Procedure Objects
Recipe procedures are constructed using one or more of the various objects that are
available within the editor. These objects are accessed from one of the dockable
toolbars.

Unit Procedures Toolbar

Add Unit Procedures


The Add Unit Procedures icon is used to enter a user-defined unit procedure. The
unit procedure name and the associated process instance name are displayed on the
object.

Load Unit Procedure


The Load Unit Procedures icon is used to load a pre-defined unit procedure from
the Unit Procedures Library.

Add Unit Procedure Transition


The Add Unit Procedures Transition icon is used to enter a transition logic object.

Add Unit Procedure Branch


The Add Unit Procedures Branch icon is used to enter a branch object.

Add Unit Procedure Loop


The Add Unit Procedures Loop icon is used to enter a loop object.
Recipe Editor 259

Cut Unit Procedure


The Cut Unit Procedure Object icon is used to remove an object from the Unit
Procedure pane and store it in the Windows clip board.

Copy Unit Procedure


The Copy Unit Procedure Object icon is used to copy an object.

Paste Unit Procedure


The Copy Unit Procedure Object icon is used to paste an object.

Delete Unit Procedure Object


The Delete Operation Object icon is used to delete an object.

Undo
The Undo icon is used to undo the most recent change.

Note There is only one level of undo available. Undo is only applicable to the
creation and deletion of objects.

Zoom In
The Zoom In icon is used to enlarge the Unit Procedure pane. There are 10 levels
of magnification available.

Zoom Out
The Zoom Out icon is used to reduce the sequence of operations display. There are
10 levels of reduction available.
260 Chapter 7

Operations Toolbar

Add Operation
The Add Operation icon is used to enter a user-defined operation. The operation
name is displayed on the object.

Load Operation
The Load Operation icon is used to load a pre-defined operation from the Operation
Library.

Add Operation Transition


The Add Operation Transition icon is used to enter a transition logic object into the
sequence of operations.

Add Operation Branch


The Add Operation Branch icon is used to enter a branch object into the sequence
of operations.

Add Operation Loop


The Add Operation Loop icon is used to enter a loop object into the sequence of
operations.

Cut Operation
The Cut Operation Object icon is used to remove an object from the Operations
pane and store it in the Windows clip board.
Recipe Editor 261

Copy Operation
The Copy Operation Object icon is used to copy an object.

Paste Operation
The Paste Operation Object icon is used to paste an object.

Delete Operation Object


The Delete Operation Object icon is used to delete an object.

Undo
The Undo icon is used to undo the most recent change.

Note There is only one level of undo available. Undo is only applicable to the
creation and deletion of objects.

Zoom In
The Zoom In icon is used to enlarge the sequence of operations display. There are
10 levels of magnification available.

Zoom Out
The Zoom Out icon is used to reduce the sequence of operations display. There are
10 levels of reduction available.
262 Chapter 7

Phases Toolbar

Add Phase
The Add Phase icon is used to add a phase to the procedure. The phases that are
available are read from the process model. The phase name and the associated
process or transfer instance name are displayed on the object.

Add Phase Transition


The Add Phase Transition icon is used to enter a transition logic object into the
sequence of phases.

Add Phase Branch


The Add Phase Branch icon is used to enter a branch object into the
sequence of phases.

Add Phase Loop


The Add Phase Loop icon is used to enter a loop object into the sequence of
phases.

Cut Phase
The Cut Phase Object icon is used to remove an object from the Phase pane and
store it in the Windows clip board.

Copy Phase
The Copy Phase Object icon is used to copy a object.
Recipe Editor 263

Paste Operation
The Paste Phase Object icon is used to paste an object.

Delete Phase Object


The Delete Phase Object icon is used to delete an object.

Undo
The Undo icon is used to undo the most recent change.

Note There is only one level of undo available. Undo is only applicable to the
creation and deletion of objects.

Zoom In
The Zoom In icon is used to enlarge the sequence of phases display. There are 10
levels of magnification available.

Zoom Out
The Zoom Out icon is used to reduce the sequence of phases display. There are 10
levels of reduction available.

Storing Unit Procedures


As you create your recipe you can use one of two methods to store a unit procedure
in the library.
1. You can double-click the target operation to display the Unit Procedures
Properties window and use it’s Save Unit Procedures button to store the
operation.
2. The second way to store an existing operation, is to click the Unit Procedures
Library icon on the toolbar to open the Unit Procedures Library window.
You can then drag the target unit procedure into the library dialog.
264 Chapter 7

The unit procedure will be added to the library list along with the Process Class,
Process Instance, the Date the unit procedure was added, and all phases and
configuration information.

Note Unit Procedures in the library may have the same name. However, each
operation is individually maintained. Also, the unit procedure in the library can be
sorted according to each field by clicking the appropriate column header.

Loading a Unit Procedure


As you create your recipe you can use one of two methods to load a unit procedure
from the main toolbar.

To Load an Operation:
1. On the Unit Procedures toolbar, click the Load Unit Procedure icon.

2. The Load Unit Procedure window will appear.Select the Unit Procedure
that you want to load from the list.
3. Click OK.
The unit procedure will be added to the procedure beneath the location of the
cursor.
You can also add an operation by clicking the Unit Procedures Library icon
and then dragging the target operation into the recipe procedure.

Unit Procedure Validity


When you attempt to load a unit procedure into a recipe procedure, the following
checks are performed to ensure the validity of the unit procedure.
• The Process Class assigned to the unit procedure must exist in the Equipment
Requirements Editor. If the class does not exist, an error message will be
displayed and the load will fail.
• If the process class exists, the process instance is automatically added to the
recipe equipment requirements. A message must be acknowledged for each
instance.
• Materials included in the unit procedure definition can optionally be added to
the recipe formula. A message must be acknowledged for each material.
Recipe Editor 265

Note Remember that adding unit procedures from the library may result in the
addition of process and transfer instances to the recipe equipment requirements.
You must ensure sure that the recipe equipment requirements have only the
required instances defined. When the recipe is scheduled as a batch, the train must
have equipment for each instance regardless of whether the instance is called in the
procedure. If not, the batch cannot be initialized

Storing Operations
As you create your recipe you can use one of two methods to store the operation in
the library.
1. You can double-click the target operation to display the Operation Properties
window and use it’s Save Operation button to store the operation.

2. The second way to store an existing operation, is to click the Operations


Library icon on the toolbar to open the Operations Library window. You can
then drag the target operation into the library dialog.
266 Chapter 7

The operation will be added to the library list along with the Process Class,
Process Instance, the Date the operation is added, and all phases and configuration
information.

Note Operations in the library may have the same name. However, each operation
will be individually maintained. Also, the operations in the library can be sorted
according to each field by clicking the appropriate column header.

Loading an Operation
As you create your recipe you can use one of two methods to load an operation
from the main toolbar.

To Load an Operation:
1. On the Operations toolbar, click the Load Operation icon.

2. The Load Operation window will appear.


Recipe Editor 267

3. Select the Operation that you want to load from the list.
4. Click OK.
The operation will be added to the procedure beneath the location of the cursor.
You can also add an operation by clicking the Operations Library icon and
then dragging the target operation into the recipe procedure.

Operation Validity
When you attempt to load an operation into a recipe procedure, the following
checks are performed to ensure the validity of the operation.
• The Process Class assigned to the operation must exist in the Equipment
Requirements Editor. If the class does not exist, an error message will be
displayed and the load will fail.
• If the process class exists, the process instance is automatically added to the
recipe equipment requirements. A message must be acknowledged for each
instance.
• Materials included in the operation definition can optionally be added to the
recipe formula. A message must be acknowledged for each material.
268 Chapter 7

Note Remember that adding operations from the library may result in the addition
of process and transfer instances to the recipe equipment requirements. You must
ensure sure that the recipe equipment requirements have only the required instances
defined. When the recipe is scheduled as a batch, the train must have equipment for
each instance regardless of whether the instance is called in the procedure. If not,
the batch cannot be initialized

Recipe Procedure Mechanics


The following section describes the general steps for creating a recipe procedure.

Inserting Procedure Objects


The Unit Procedures, Operations and Phases panes of the Recipe Editor window
utilize a cursor which is displayed as a grey rectangle. Whenever you add an object,
it is always inserted below the cursor. When you insert an object always position
the cursor immediately above the location of where the object is to be inserted. The
only exception to this guideline occurs when a Branch is expanded beyond the
default size. In this case, the insertion of the additional branches is made to the right
of the last leg of the branch.

To Insert a Unit Procedure:


1. On the Unit Procedure toolbar, click the Add Unit Procedure icon.

2. The Add Unit Procedure window will appear.

The Process Instances in the list correspond to the process class selections and
instance definitions that you defined using the Equipment Requirements
Editor.
Recipe Editor 269

For more information on Equipment Requirements, see “Equipment


Requirements Editor” earlier in this section.
3. Select a Process Instance from the list.
4. Enter a Name (16-char max).
5. Click OK to insert the operation object into to the sequence of operations.

To Insert an Operation:
1. On the Operations toolbar, click the Add Operation icon.

2. The Add Operation window will appear.

3. Enter a Name (16-char max).


4. Click OK to insert the operation object into to the sequence of operations.

To Insert a Phase:
1. On the main toolbar, click the Add Phase icon.

2. The Add Phases window will appear.


270 Chapter 7

All of the Phases for the selected Type are listed.


3. Click the Type drop-down arrow and select a phase type from the list. The
available. The Phase Type corresponds to the process class instance selection
made for the corresponding unit procedure. There are six types of phases
available which are described in the following table.

Phase Type Description


Process This option displays the process phases defined in the Process Modeling Editor
for the process instance that was assigned to the operation currently being
defined.
Transfer This option displays the transfer phases from the Process Modeling Editor in
which the assigned process instance for this operation is either a source instance
or a destination instance.
Allocate Process This option displays and allows the user to Recipe Allocate any process instance
defined in the recipe Equipment Requirements Editor.
Release Process This option displays and allows the user to Recipe Release any process instance
defined in the recipe Equipment Requirements Editor.
Allocate Transfer This option displays and allows the user to Recipe Allocate any transfer instance
defined in the recipe Equipment Requirements Editor.
Release Transfer This option displays and allows the user to Recipe Release any transfer instance
defined in the recipe Equipment Requirements Editor.

4. Click OK to add the phase object.

Transition Objects
Use the Add Unit Procedure Transition, Add Operation Transition and Add
Phase Transition icons to insert a transition object into the respective procedure
sequence beneath the current location of the cursor.

Transition objects control the execution of a procedure. Transition Logic consists of


an expression that is evaluated by the batch management system when the object is
encountered. The result of an expression is Boolean. If the result is FALSE, then
execution stops at the transition. If the result is TRUE, then the operations or phases
following the transition are executed. There is no limit on the number or transition
objects in a procedure.

To Insert a Transition Object:


1. In the Recipe Editor window click the Operation or Phase to which you want
to add a transition.
2. Click the Add Unit Procedure Transition, Add Operation Transition or
Add Phase Transition icon for the Unit Procedure, Operation or Phase that
you selected earlier.

The Transition will be added to the procedure.


Recipe Editor 271

3. Double-click the Transition object.


The Transition Properties window will appear.
You can also insert an operation by double-clicking the operation or phase
object, and then clicking the Add Unit Procedure Transition, Add
Operation Transition or Add Phase Transition icon. This will insert the
transition object and then immediately open the Transition Properties window.

4. On the Transition tab, enter a Label (8 char max), Name (16 char max) and
optional Description (120 char max).
When a transition is added, it is automatically assigned a unique Label
(numeric value). The Name is initially the same as the Label. You can edit
these as required. The Label however, must be unique. If it is not, a warning
message will be displayed.
5. On the Expression tab, click the Expression button.
6. The Expression Editor window will appear.
272 Chapter 7

Use the Expression Editor to construct transition expressions. You can build
expressions using process and transfer instance tags, mathematical operators,
and pre-defined functions. Several examples of valid expressions are shown in
the following tables.
For more information on building expressions, see Chapter 14, "Expression
Editor."
7. After you have entered the required expression, close the Expression Editor
window.
8. On the Transition Properties window, click Close.

Transition Expression Examples

Expression Result
{TAG A} TRUE if TAG A is greater than 0.
FALSE if TAG A is 0.
Not({TAG A}) TRUE if TAG A is 0.
FALSE if TAG A is greater than 0.
{TAG A}>100 TRUE if TAG A is greater than 100.
FALSE if TAG A is less than 101.
{TAG A}&{TAG B} TRUE if TAG A and TAG B are both greater than 0.
FALSE if TAG A or TAG B is 0.
Recipe Editor 273

Expression Result
Ask(“Continue?”) A question will be displayed to the operator. The result is TRUE if the
Operator answers Yes. The result is FALSE if the Operator answers No.
AskDoneBy(“Continue?”) Same as the Ask question except that the question can only be answered by
a user with the proper security clearance.
AskCheckBy(“Continue?”) Same as the Ask question except that the question can only be answered by
a user with the proper security clearance, and the question must be verified
by another qualified user.
WaitSec(s) Batch execution will be delayed the specified amount of seconds.
WaitMin(m) Batch execution will be delayed the specified amount of minutes.
WaitHour(h) Batch execution will be delayed the specified amount of hours.

Note When entering questions, you are limited to 40 characters. The Expression
Editor will allow you to enter more than 40 characters. However, during execution,
the entry will be truncated and only the first 40 characters will be displayed.

Branch Objects
The Add Unit Procedure Branch, Add Operation Branch and Add Phase
Branch icons insert a branch object into the respective procedure sequence beneath
the current location of the cursor.

Branch objects are used to execute multiple operations or phases at the same time,
or to make a choice between running one of several operation or phases. There is no
limit to the number of branch objects that you can use in a procedure.
: All and One.

To Insert a Branch Object:


1. In the Recipe Editor window click the Unit Procedure, Operation or Phase to
which you want to add a branch.
2. Click the Add Unit Procedure Branch, Add Operation Branch or Add
Phase Branch icon for the Unit Procedure, Operation or Phase that you
selected above.

The branch will be added to the procedure.


3. Double-click the Branch.
The Branch Properties window will appear.
You can also insert a branch by double-clicking an operation or phase object,
and then clicking the Add Unit Procedure Branch, Add Branch Transition
or Add Branch Transition icon. This will insert the branch object and then
immediately open the Branch Properties window.
274 Chapter 7

4. In the Branch Size text box, enter the number of branches you want to add
(max of 20).
While you are limited to 20 branches, you can nest branches for added
flexibility. By default, the Branch Size is 2.
5. Click the Execute Type drop-down arrow and select All or One.
For more information on Branch Types, see “Branch Execute Types” on
page 274 later in this section.
6. Click Change and then Close.
7. The branch will be inserted into the recipe procedure.

Note Branches cannot be added around an existing unit procedure, operation or


phase. However, you can add a branch object and then drag-and-drop objects into a
branch object.

Branch Execute Types

Use the Execute Type: All branch object when simultaneous execution of
operations or phases is required. The batch management system evaluates the
branch beginning with the left-most leg. If the transition logic is TRUE or if there is
no transition logic, operations or phases in the leg will be executed. Any transitions
that are not on the first iteration, are continuously evaluated until their state
becomes TRUE and all legs are executed. The batch management system will not
continue beyond the Branch Return object until all of the legs have been executed.
Recipe Editor 275

The Execute All Branch object is graphically displayed as two parallel horizontal
lines.

Note Batch Manager will not continue past the Branch Return object until all
transition logic and operations or phases in all of the legs are executed. Therefore,
when constructing procedures you must ensure that all of the legs associated with
the Execute Type: All branch can be executed.

Execute Type - One


Use the Execute Type: One branch object when the execution of a single leg of a
branch is required. The batch management system evaluates the branch beginning
with the left-most leg. If the transition logic is TRUE or there is no transition logic,
operations or phases in the branch will be executed. All other branches will be
ignored. If all of the legs of a branch have transition logic that is FALSE, the batch
management system will continue the evaluation of each transition until one of the
legs changes to a state of TRUE.
The Execute One Branch Object is graphically displayed as a single horizontal line.
276 Chapter 7

Loop Objects
The Add Unit Procedure Branch, Add Operation Loop and Add Phase Loop
icons insert a loop object into the respective procedure sequence beneath the current
location of the cursor.

Loop objects are used to re-execute unit procedures, operations or phases that are
built inside of the object. Any procedure object, including other loops, can be
placed inside a loop structure
Objects are inserted within the loop by positioning the cursor on the top portion of
the object and following the normal insertion directions described earlier. The
bottom portion of the loop object contains a transition object that must be defined
with the Expression Editor. The result of the evaluation of the expression
determines whether the objects contained within the loop are re-executed or not. If
the expression is TRUE, loop execution returns to the top of the loop. If the
expression is FALSE, then execution proceeds below the loop.

To Insert a Loop Object:


1. In the Recipe Editor window click the Unit Procedure, Operation or Phase to
which you want to add a branch.
2. Click the Add Unit Procedure Loop, Add Operation Loop or Add Phase
Loop icon for the Operation or Phase that you selected above.

The loop will be added to the procedure.


3. Double-click the lower portion (transition) of the loop object.
4. The Transition Properties window will appear.
For more information on using the Transition Properties window, see
“Transition Objects” on page 270 earlier in this section.
5. Define the transition using a unique Label (8-char max), Name (16-char max),
an optional description (120-char max), and an Expression.
By default, all new loop objects are assigned an automatically-defined Label
(numeric value). Also, a default name is defined which is the same as the label.
You can edit these as required.
For more information on building expressions, see Chapter 14, "Expression
Editor."

Note You cannot add a loop around an existing operation or phase. However, you
can drag-and-drop existing objects into a loop object.
Recipe Editor 277

Cutting and Copying Procedure Objects


Use the Cut Unit Procedure Object, Cut Operation Object and Cut Phase
Object icons to cut objects from the respective procedure sequence. Cutting a unit
procedure, operation, or phase object is done by simply selecting the object and
then clicking the cut icon. When you cut or copy a branch, ensure that you properly
select the appropriate leg. When you cut or copy a loop, ensure that you properly
select the transition object or exit point of the loop. Otherwise you may not achieve
the intended result.

To Cut or Copy a Procedure Object:


1. Single-click the procedure object that you want to cut or copy.
2. Click the Cut or Copy icon.

To Cut or Copy a Loop including its Procedure Object:


1. Single-click the transition object (lower portion) of the loop that you want to
cut or copy.
2. Click the Cut or Copy icon.
The loop itself, including all transition logic, and any other objects within the
loop are included.

To Cut or Copy a Loop without its Procedure Object:


1. Single-click the entry point of the loop (denoted by arrowhead) that you want
to cut or copy.
2. Click the Cut or Copy icon.
Only the loop (including the transition object and any associated transition
logic) is copied. If you performed a Cut, the object that was previously
associated with the loop remains in the procedure, but no longer has transition
logic associated with it.

To Cut or Copy a Branch:


1. Single-click the top of the leg of the branch that you want to cut or copy.
2. Click the Cut or Copy icon.
All of the procedure objects, loops, transition logic and other branches that are
in the selected leg are included.

Pasting Procedure Objects


Use the Paste Unit Procedure Object, Paste Operation Object and Paste Phase
Object icons to paste objects into the respective procedure sequence. Pasting
objects into a unit procedure, operation, or phase object is done by simply selecting
the insertion point within the procedure and then clicking the paste icon. When you
paste objects into a branch, ensure that you properly select the appropriate leg.
When you paste objects into a loop, ensure that you select the appropriate entry or
exit point of the loop before you paste. Otherwise you may not achieve the result
that you expected.
278 Chapter 7

To Paste a Procedure Object:


1. Single-click the point in the procedure where you want to insert the object.
2. Click the Paste icon.

To Paste Objects into a Loop:


1. Single-click the entry point (top) of the loop you want to paste into.
2. Click the Paste icon.

To Paste Objects after a Loop:


1. Single-click the transition object (bottom) of the loop you want to paste into.
2. Click the Paste icon.

To Paste Objects into a Branch:


1. Single-click the leg of the branch or existing object within the branch in which
you want to paste.
2. Click the Paste icon.

To Paste Objects after a Branch:


1. Single-click the exit point of the branch.
2. Click the Paste icon.

Deleting Procedure Objects


Use the Delete Unit Procedure Object, Delete Operation Object and Delete
Phase Object icons to remove objects from the respective procedure sequence.
Deleting a unit procedure, operation, phase, branch, loop, or transition object is
done by selecting the object and then clicking the delete icon. The Undo icon can be
used to undo the most recent deletion.

Use the examples provided to understand the effects of deleting objects.

Note Use the Undo icon to undo the most recent deletion. Only one level of undo
is provided.

To Delete a Unit Procedure, Operation, Phase, or Transition Object:


1. Single-click the object that you want to delete.
2. Click the Delete icon.
Recipe Editor 279

This example shows the deletion of the Heat Phase.


280 Chapter 7

To Delete a Branch Leg:


1. Single-click the top of the branch object that you want to delete.
2. Click the Delete icon.

This example shows the deletion of ManAdd Phase.


Recipe Editor 281
282 Chapter 7

To Delete the Entire Branch


1. Single-click the bottom of the branch object that you want to delete.
2. Click the Delete icon.

This example shows the deletion of an entire branch that includes one BulkAdd
and two ManAdd Phases.
Recipe Editor 283

To Delete a Loop
1. Position the cursor on the Loop Return object of the loop that is to be deleted.
2. Click the Delete icon.
284 Chapter 7

This example shows the deletion of loop which includes a Heat phase, an
Agitate phase, and two phase transitions.

Moving and Nesting Procedure Objects


Unit Procedure, Operation, Phase, and Transition objects can be dragged-and-
dropped into the procedure. This enables recipe procedure changes to be made
quickly and easily. For example, if you forget to add a branch, simply add a new
branch and then drag any existing unit procedures, operations or phases into the
appropriate legs. The Recipe Editor also allows you to nest Branch and Loop
objects to create very complex procedures.

Unit Procedure Properties


Use the Unit Procedure Properties window to edit the properties of any unit
procedure object.
Recipe Editor 285

To Edit Unit Procedure Properties:


1. Double-click an the unit procedure object.
2. The Unit Procedure Properties window will appear.

To Change an Unit Procedure Name:


The Unit Procedure Name can be changed by typing the new name in the text box
and then clicking the Change button.

To Save a Unit Procedure in the Unit Procedure Library:


1. On the Unit Procedure Properties window, click the Save Unit Procedure
button.
2. The Save Unit Procedure window is displayed.
286 Chapter 7

3. Enter a Unit Procedure Name (16-char max) and an optional Comments


(unlimited length).
For more information on the use of the operation library, see “Unit Procedure
Library” earlier in this section.

Operation Properties
Use the Operation Properties window to edit the properties of any operation
object.

To Edit Operation Properties:


1. Double-click an the operation object.
2. The Operation Properties window will appear.

To Change an Operation Name:


The Operation Name can be changed by typing the new name in the text box and
then clicking the Change button.

To Save an Operation in the Operations Library:


1. On the Operation Properties window, click the Save Operation button.
2. The Save Operation window is displayed.
Recipe Editor 287

3. Enter an Operation Name (16-char max) and an optional Comments


(unlimited length).
For more information on the use of the operation library, see “Operation
Library” earlier in this section.

Phase Properties
Use the Phase Properties window to edit specific elements of the phase including
its Phase definition, Instructions, Parameters and Document properties.

To Open the Phase Properties Window:


1. In the Recipe Editor’s phase display, double-click the phase that you want to
edit
2. The Phase Properties window will appear.
288 Chapter 7

The Phase Properties window is initially displays the Phase tab.

Phase Tab
Use the Phase Tab to configure how the phase will interact with the batch system
and operators.

To Edit Phase Configuration:


1. On the Phase Properties window, click the Phase tab.
2. The Phase tab will appear.
Recipe Editor 289

3. In the Label field, enter a unique name.


By default, the Label is automatically assigned (as a unique numeric value)
when the phase is created.
4. If you want to generate an end of phase report, click the Report button, and
select a report from the list. If it was entered, a description will be displayed in
the Desc box.

Note You can select one report.

Reports that appear in the list are located on the Information Server. You can
manually enter the name of a report in the Report text box; however, you must
ensure that the report exists on the Information Server. Report names are not
validated as a part of the recipe validation.

For more information on reports, see Chapter 11, "Reporting System."

When an Information Server is installed, all reports are (by default) are located in
C:\Program Files\FactorySuite\InBatch\BatchInfoServer\Crystal folder. If the
Information Server is installed on a different drive, then the report path must be
edited using the Administration Web page. Users must take this into consideration
as recipes which include reports are created and edited. Otherwise, report execution
may fail at run time.

For more information on changing the report path, see Chapter 24, "System
Administration."
290 Chapter 7

5. In the On Entry pane, enable the Acknowledge, Done By and Check By


check boxes as required.
Acknowledge – Enable this check box if you want to require an operator to
press the acknowledge button.
For more information on the Batch Display, see Chapter 9, "Batch
Management System."
Done By - Enable this check box if you want to require an operator, or person
with a comparable security level, to verify the start of the phase. During recipe
execution, the option requires the operator to press the acknowledge button on
the Batch Display and then enter their security identification number and
password before the phase is started. Enabling Done By automatically enables
the Acknowledge check box. Configuration of the appropriate Done By
security levels is performed in the Security Editor.
Check By - Enable this check box if you want to require an operator and the
supervisor, or person with a comparable security level, to verify and confirm
the start of the phase. During recipe execution, the option requires the operator
to press the acknowledge button on the Batch Display and then enter their
security identification number and password, and the security identification
and password of a supervisor, before the phase is started. Enabling Done By
automatically enables the Acknowledge check box. Configuration of the
appropriate Check By security levels is performed in the Security Editor.
For more information on the configuring security, see Chapter 13, "Security
System."
6. In the On Exit pane, enable the Acknowledge, Done By and Check By check
boxes is required.
Acknowledge - Enable this check box if you want to require an operator to
press the acknowledge button prior to the end of a phase. The Acknowledge
command button is part of the Batch Display.
For more information on the Batch Display, see Chapter 9, "Batch
Management System."
Done By - Enable this check box if you want to require an operator, or person
with a comparable security level, to verify the end of the phase. During recipe
execution, the option requires the operator to press the acknowledge button on
the Batch Display and then enter their security identification number and
password before the phase can end. Enabling Done By automatically enables
the Acknowledge check box. Configuration of the appropriate Done By
security levels is performed in the Security Editor.
Check By - Enable this check box if you want to require an operator and the
supervisor, or person with a comparable security level, to verify and confirm
the end of the phase. During recipe execution, the option requires the operator
to press the acknowledge button on the Batch Display and then enter their
security identification number and password, and the security identification
and password of a supervisor, before the phase ends. Enabling Done By
automatically enables the Acknowledge check box. Configuration of the
appropriate Check By security levels is performed in the Security Editor.
For more information on the configuring security, see Chapter 13, "Security
System."
Recipe Editor 291

7. In the Comment pane, enable the Required check box if you want to require
the entry of operator comments during phase execution.
This will cause the Edit Comment button to be displayed on the Batch Display
and will pause recipe execution until the entry is completed.
For more information on the Batch Display, see Chapter 9, "Batch
Management System."
8. In the Execution pane, enable the Continue Mode check box if you want the
batch management system to allow recipe execution to continue when a Run
status is received from the phase.
If Continue Mode is disabled, recipe execution will not continue until a Done
status is received from the phase.
For more information on the batch management, see Chapter 9, "Batch
Management System."
9. Click Change and then Close.

Instructions Tab
Use the Instructions tab to enter specific work instructions that will be displayed to
an operator as part of phase execution.

To Edit Phase Instructions:


1. On the Phase Properties window, click the Instructions tab.
2. The Instructions tab will appear.

3. Enter Instructions as required.


292 Chapter 7

The instructions that you enter will be displayed to an operator when the phase
is executed.
4. Enable the Append Unit/Connection Description check box if you want to
append the description of the unit or connection (as found in the process
model) to the instruction display when the phase is executed. This feature is
important when there are may manual type connections in that it allows you to
define all of the instructions in the model instead of having to enter the
instruction into the procedure for each recipe.
5. Click Change and then Close.

Parameters Tab
Use the Parameters tab to display and define specific formula parameter values.
These parameters were initially defined using the Process Modeling Editor.
There are three types of formula parameters: Input, Output, and Process Variable.
Process Variable parameters require the assignment of a value if the default value is
not acceptable. In addition, if the phase is used more than once in the procedure, the
parameter name may be changed in order to associate each parameter with its
respective phase. Input and Output parameters require a material assignment.

To Edit Phase Parameters:


1. On the Phase Properties window, click the Parameters tab.
2. The Parameters tab will appear.
The specific Parameter tab display will vary according to the type (Input,
Output or Process Variable) of phase that you are editing. Use the Sort By
Name check box to sort the parameter list. An example of each type is
provided in the following sections.
Recipe Editor 293

Input Phase Parameters:

For more information on Input Parameters, see “Edit/Formula Inputs” earlier in this
section.
294 Chapter 7

Output Phase Parameters:

For more information on Output Parameters, see “Edit/Formula Outputs” earlier in


this section.
Recipe Editor 295

Process Variable Parameters:

For more information on Process Variable Parameters, see “Edit/Process Variables”


earlier in this section.

Document Tab
Use the Document tab to assign the file name of a document or program that you
want operators to view and optionally acknowledge as part of a phase’s execution.
Acknowledgment can be specified to occur at the start of the phase (On Entry) or
as the last step (On Exit) of the phase. When the phase executes, Windows will
launch a program based on the file extension. For example, if the extension is
“.html,” Windows could launch a browser.

Note The program that is launched is based on Windows settings.

For more information on associating file extensions with programs see your
Windows user references.
An example of how you might implement the Document Viewing feature could be
based on a requirement that operators must view material safety data and then
acknowledge the action. Furthermore, you might have the material safety data
stored in an HTML document on a network at the address
“http://Material_Safety.html.”
296 Chapter 7

Note If you are using batch clients in your system, and intend to execute a recipe
that uses the Document Viewing feature, make certain that each client is properly
configured to access the document. One way to ensure this is to place all of your
document files in a folder that is shared for your client systems.

Actual document viewing and acknowledgment is a function of the View Doc and
View Doc Ack buttons on Batch Display.
For more information on the Batch Display, see Chapter 9, "Batch Management
System."
On Entry - Enable this radio button if you want to require an operator and/or
supervisor, or person with a comparable security level, to verify and confirm
viewing of the document as the first step of the phase. During recipe execution, the
option requires the operator to press the View Doc and View Doc Ack buttons on
the Batch Display. You can configure the buttons to require the entry of security
identification numbers and passwords as the first step of the phase. Configuration
of the appropriate Done By and Check By security levels is performed in the
Security Editor.
Prior To Edit - Enable this radio button if you want to require an operator and/or
supervisor, or person with a comparable security level, to verify and confirm
viewing of the document as the last step of the phase. During recipe execution, the
option requires the operator to press the View Doc and View Doc Ack button on the
Batch Display. You can configure the buttons to require the entry of security
identification numbers and passwords as the first step of the phase. Configuration
of the appropriate Done By and Check By security levels is performed in the
Security Editor.
For more information on the configuring security, see Chapter 13, "Security
System."

Viewing Documents on Clients


If you are using batch clients in your system, and intend to execute a recipe that
uses the Document Viewing feature, make certain that each client is properly
configured to the document. One way to ensure this is to place all of your document
files in a folder that is shared for each of your client systems.

Building Recipes in a Connectionless Process


Model
Constructing recipes from a connectionless process model requires more attention
to details on the part of the recipe builder when defining the sequence of operations
and phases. Connectionless transfers require complementary process phases
coordinated in the recipe and by the operator or the control system to move material
from one unit to another. Parallel operations must be constructed in the procedure
with the source and destination instances assigned to the appropriate operation.
Within each operation, the appropriate discharge or charge phase must be defined.
If multiple units are available for the source instance, manual unit selection must be
defined in the recipe equipment requirements and the recipe allocate process
instance phase must be included in the phase procedure in order to have the
operator manually select the appropriate source unit for the transfer.
Recipe Editor 297

If material tracking is required, any input material being transferred must be


assigned to a parameter of the source process phase and any output material being
transferred must be assigned to a parameter of the destination process class phase.
The following example shows a material transfer operation and phase procedure
from a bulk tank to a reactor. The Discharge BulkTks phase has an input parameter
defined for the phase that is not shown in the diagram. This parameter is used to
track the amount of material transferred from the manually allocated bulk tank to
the automatically allocated reactor.
298 Chapter 7
Train Editor 299

C H A P T E R 8

Train Editor

Use Train Editor to create and edit lines of production that will be used when you
schedule batches.

Contents
• Overview
• Using Train Editor
• Assigning Units to Trains
• Assigning Attributes to Trains

Overview
Use the Train Editor to create lines of production that are assigned to scheduled
batches. The batch management system is responsible for scheduling and executing
batches. Batches include a recipe and a train assignment. A recipe is typically
equipment independent. The train provides a list of potential equipment to the batch
engine for dynamic selection during batch execution. If a unit is not in the assigned
train, then it is not available to be used for the scheduled batch.
A train can contain one or more units, and a unit can be a part of multiple trains.
Trains provide a way to represent various paths through the process.
The train data is maintained in the process model database. The Train Editor writes
to both the configuration process model database and the runtime process model
database. Trains can be added at any time during batch system execution.
300 Chapter 8

Using Train Editor


Use Train Editor to create the trains that are available to the batch scheduling
system. A train consists of one or more units. The batch system does not impose a
limit on the number of trains that you can create, or the number of units that you can
assign to a train. Also, a unit can belong to more than one train. A train consists of a
Name (16-char max) and an optional Description (120-char max). The editor
verifies all new train names to ensure uniqueness. You can also assign Attributes to
further define a Train. Attributes consist of a Name (16-char max), a Value (16-
char max) and a predefined Unit of Measure. Attributes can be used by Advanced
Planning and Scheduling (APS) interfaces for train scheduling.

To Start Train Editor


1. In the Environment Display, double-click the TrainEdit icon.

The Train Editor window will appear.


Train Editor 301

Note Only one instance of the Train Editor can be running. You cannot start Train
Editor if the Process Modeling Editor or Tag Linker application is running.
302 Chapter 8

File Menu
Use the File menu to access system functions for Train Editor.

File/Print
Use this command to display the Print window. The Print window contains a
Select Reports list box with several pre-formatted reports. It also allows you to
output to a printer or a file, as well as select the number of copies that you want to
print.

File/Print Preview
Use this command to display the Select Reports window.
Train Editor 303

Select the report(s) that you want in the list. If you want to preview several reports,
press and hold the Control (or shift) key while selecting.

File/Print Setup
Use this command to display the Print Setup window. Refer to your Windows
documentation for more information.

File/Exit
This command is used to close the Train Editor.

Note All of your work is saved in the configuration process model database and
the runtime process model database as you edit and make changes to the trains.
Therefore, you do not have to be concerned with saving your work.

Help Menu
The Train Editor Help menu contains the commands that are used to access the
main help screen, and information about the version and licensing of the
application.

Help/Help Topics
Use this command to display online help for Train Editor.

Help/About Train Editor


Use this command to view version and license information.

Assigning Units to Trains


A train can be created at any time during the execution of the batch system. The
following steps are necessary to create trains.

To create a Train or Add Units to a Train:


1. In the Train Editor window, define a train Name (16-char max) and an
optional Description (120-char max).
2. Click Add.
The train will be added to the Trains list.
3. Click Assign Units.
The Assign Units to Train window will appear.
304 Chapter 8

4. Select the appropriate units from the list and then click OK or Apply to add the
units to the train.

To Delete Units from a Train:


Click Assign Units and then de-select the unit(s) that you want to remove.

Assigning Attributes to Trains


You can assign attributes to a train to facilitate the scheduling of trains using an
external Advanced Planning and Scheduling (APS) system.

To add Train Attributes:


1. In the Train Editor window, select the Train that you want to assign
Attributes to.
2. In the Attributes pane, click Add.
The Add Attribute window will appear.

3. Select or enter an attribute Name (16-char max).


4. Enter a Value (16-char max)
5. Select a Value Type.
Train Editor 305

6. Select a Unit of Measure (optional) from the drop down list.


Each Unit of Measure in the list is assigned using the Process Modeling
Editor.
7. Click Add.
The train attribute will be added to the Trains list.
306 Chapter 8
Batch Management System 307

C H A P T E R 9

Batch Management System

The Batch Management System consists of scheduling, initializing, coordinating


the execution of batches with the control system, interfacing with operators, and
directing batch activity to the historical database. The functions that are provided
by the Batch Management System are available through the Batch Scheduler, Batch
Display and Batch Manager applications. By applying these applications, you will
achieve a flexible, reliable, and intuitive solution to managing all of your batch
processes.

Contents
• Overview
• Using Batch Scheduler
• Using Batch Display
• Batch Manager
• Batch Execution
• Warm Restart
308 Chapter 9

Overview
Scheduling: Batch Scheduler prepares the batches to be executed. Scheduling
involves the manual entry of the batch identification, master recipe identification,
quantity to be produced, and Train identification into the schedule window. Once
entered, the batch can be initialized.
Initialization: Each batch must be initialized before it can be executed. The
initialization process involves validation of the recipe, verifying that the Train
exists, the bulk materials defined in the recipe are found in the Materials database,
the recipe equipment requirements are satisfied by the Train, and the Process Model
database is compatible with the recipe. Initialization is performed using Batch
Scheduler.
Batch and Unit Management: Batch Manager directs and supervises the
execution of each batch. Batch Manager is a recipe interpreter and control system
enabler. Based on the recipe procedure, blocks of control software, referred to as
phases, are signaled to execute by Batch Manager. Automatic and semi-automatic
phases are programmed logic blocks existing in the control system. They are
responsible for controlling functions associated with a unit or a connection. Prior to
enabling each phase, Batch Manager verifies that the phase is ready to be executed.
If so, phase parameter values are downloaded to the phase, and the phase is started.
Batch Manager also interfaces with the Batch Display application. Batch Display
provides operators with information on all batches running in the system. Using this
display, operators can put a batch or phase in hold, restart and abort batches or
phases, and change the batch execution mode. Batch Manager also has a Jump
Mode that allows the execution point of a an active batch that is in hold to be
changed. Operators can use this feature to either jump ahead during recipe
execution or repeat phases that have already executed. In addition, operators can
change phase parameter values, acknowledge the execution of phases, review phase
interlock status, and enter comments. All of these can be done while a batch is
executing.
Batch Manager coordinates the usage of process units for each batch. Each batch is
a separate entity and contends along with other batches to own the process unit(s) it
needs. Batch Manager assigns (Allocates) ownership of units to batches as units
become available and releases (Releases) units when no longer required by the
batch.
Flexible batch control systems must be designed with the supervisory workstation
being an active participant in the execution of a batch. The reason for this is that
unit management is very sophisticated in a flexible batch system. Most control
systems do not have the ability to program a unit manager capable of interpreting
and executing complex recipe procedures.
A Master Recipe uses classes of process units, not specific units. This means phases
pertain to a class of units, not a specific unit. When Batch Manager executes a
Master Recipe, each phase encountered is converted into a unit or connection
specific phase. This process is called Master Recipe to Partial Control Recipe
conversion. The Train assigned to produce the batch contains all the units that can
be used. Batch Manager automatically converts the Master Recipe to a Control
Recipe based on the units in the Train and whether or not they are available.
Batch Management System 309

Once a batch is done, the operator has the option of saving the As-Built recipe to
the recipe database. All final formula targets, and optionally all the specific
equipment used for the recipe, can be saved. These capabilities allow the recipe,
which may have produced a high quality batch, to be re-executed at a later date.
History: Batch Manager captures all batch execution events and operator activity
during the execution of a batch and sends this information to the historical database.
For more information on the data that is stored and the format in which it is stored,
see Chapter 10, "History System."
Only one instance of Batch Manager can be active in your batch management
system. There are no restrictions on the number of Batch Runtime Clients that you
can have in a system. Batch Manager interfaces with several databases as well as
with the clients. The interaction is described below.
• Master Recipes are retrieved from the Recipe Database (RecipeDB) when a
batch is initialized.
• The Process Model Database is used to transform the Master Recipe to a
Control Recipe.
• The Materials Database is used to retrieve the location and Tracking IDs of
materials that are stored in units. The Materials Database is updated by Batch
Manager when materials are used and when materials are produced.
• All batch execution events and operator activity are logged to the Historical
Database.
• Batch Scheduler manipulates the Batch Database through Batch Manager.
Several Batch Schedulers can be running in a system, but there is only one
schedule database.
• Batch Runtime Clients and Batch Display provide a window into Batch
Manager. From these, operators can select a batch, start a batch, put a batch in
hold, restart a batch, and abort a batch. All information needed to monitor and
interact with the process during the execution of a batch is provided.
• Batch Manager interacts with Phase Logic (Phases) located in the control
system. As each phase is to be executed, Batch Manager checks if the phase is
ready. If the phase status is ready, any configured phase parameter values are
written to the phase, then the phase is started. When the phase completes its
task, it informs Batch Manager by setting the Done status. Batch Manager
responds by enabling the Reset command and returning the phase to Ready.
310 Chapter 9

Batch Management Diagram

Using Batch Scheduler


Use Batch Scheduler to manually schedule and dispatch batches that will be
executed by Batch Manager. Batch Scheduler is not designed to optimize a
schedule. The batch database can be accessed by external scheduling applications
such as those that utilize the Batch ActiveX controls.

Note Batch Manager must be running prior to the start of Batch Scheduler.

Starting Batch Scheduler


Batch Scheduler is started from the Batch Server Environment Display or from a
runtime client. The runtime operation is the same regardless from where Batch
Scheduler is started.
1. From the Environment Display, double click the BatchSched icon

The Batch Scheduler window will appear.


Batch Management System 311

Use this window to schedule, initialize and monitor batches. Use the menu or the
toolbar to access system functions and options for Batch Scheduler.

File Menu
Use this menu to access system functions for Batch Scheduler.

File/Print
Use this command to display the Print window which allows you to setup your
print device, assign one or more reports, and then print to the selected device.
312 Chapter 9

File/Print Preview
Use this command to select one or more reports and then preview the report(s) on
the screen will cause the Select Reports window box to appear.

File/Print Setup
Use this command to setup your print. Refer to your Windows documentation for
more information.

File/Exit
Use this command to close Batch Scheduler.

Edit Menu
Use this menu to access commands that you can use to modify the schedule list in
Batch Scheduler. Complementary toolbar buttons also provide the same capability
as the menu item. The toolbar button icons are shown below.

Edit/Delete
Use this command to removes the selected batch from the schedule. Only batches
with a status of Open, Ready, Done, or Aborted can be deleted. A message box will
be displayed requiring confirmation of the deletion.
This option is also available from the Delete button in the toolbar.
Batch Management System 313

Edit/Cleanup
Use this command to remove all of the batches from the schedule list that have a
status of Done or Aborted. It is recommended that you use this command on a
regular basis, to minimize the size of the Batch Scheduler list.
This option is also available from the Cleanup button in the toolbar.

Edit/Move Up
Use the Move Up command to move the selected batch one row toward the top of
the schedule list. This option is typically used in conjunction with the Execute in
Order option to sequence the scheduled batches for production.
This option is also available from the Move Up button in the toolbar.

Note If you sorted the Batch Schedule list using the Filter option, batches will be
executed in the order defined by your sort preferences. In this case, Move Up
option is not available.

Edit/Move Down
The Move Down command will move the selected batch one row toward the
bottom of the schedule list. This option is typically used in conjunction with the
Execute in Order option to sequence the scheduled batches for production.

This option is also available from the Move Down button in the toolbar.

Note If you sorted the Batch Schedule list using the Filter option, batches will be
executed in the order defined by your sort preferences. In this case, the Move
Down option is not available.

View Menu
Use this menu to access the commands that allow you to sort the batch schedule list,
display error messages, and enable or disable Batch Scheduler's status bar.

View/Batch Editor
Use this command to edit existing batches or to add new batches to the schedule
list.
314 Chapter 9

View/Undo Sorting
Use this command to undo any sorting that you applied to the Batch Schedule list.
By default, batches are listed in the order that they were initially scheduled.

View/Filters
Use this command to display the Schedule Filters window.

The Schedule Filters window will appear.

CLB
Use the CLB tab to sort the list of scheduled batches based on any combination of
campaign, lot and batch.

Recipe
Use the Recipe tab to sort the list of scheduled batches based on any combination
of Recipe IDs, Types and States.
Batch Management System 315

Train
Use the Train tab to sort the list of scheduled batches based on one or more train
assignments.

Mode/Status
Use the Mode/Status tab to sort the list of scheduled batches based on any
combination of batch execution mode and status.
316 Chapter 9

View/Errors
Use this command to view the Errors window. The Errors lists all of the batch
errors that are associated with the list of scheduled batches.

View/Toolbar
Use this command to enable or disable Batch Scheduler’s toolbar.

View/Status Bar
Use this command to enable or disable Batch Scheduler’s status bar.
Batch Management System 317

Initialize Menu
The Batch Scheduler Initialize menu contains the commands that you will use to
prepare the scheduled batches for execution.

Initialize/Batch
Use this command to initialize the selected batch. The command is not available
unless the selected batch has an Open status.

Initialize/All
Use this command to initialize all of the batches in the schedule that have an Open
status.
The initialization process performs the following checks to ensure that the batch
can be properly executed.

Recipe Verification
Verifies that the recipe assigned to the batch exists. If the recipe does not exist, an
error is displayed. The recipe must be created or another recipe must be assigned to
the batch.

Recipe Validation
The recipe assigned to the batch is validated with the process model database and
the materials database. If the recipe is not valid, an error is displayed. The recipe
must be changed, or the process model database and/or the materials database must
be checked and corrected.

Train Verification
Verifies that the train assigned to the batch exists. If the train does not exist, an error
is displayed. The train must be added using the Train Editor or another train must
be assigned to the batch.

Recipe Equipment Requirements Verification


Verifies that units defined in the recipe equipment requirements are in the assigned
train. This includes having at least one unit in the train for each process instance, as
well as having at least one unit in the train that satisfies the required attribute range.
Errors are displayed if either of these conditions is not satisfied. The train must be
altered using the Train Editor or another train must be assigned to the batch. If the
attribute range is not satisfied, the recipe equipment requirements must be changed
or the value of the unit attribute in the process model must be changed.
318 Chapter 9

Quantity Verification
Verifies that the quantity assigned to the scheduled batch is greater than the recipe
minimum batch size specification, and less than the recipe maximum batch size
specification. If the quantity is less than the minimum batch size, an error is
displayed. The quantity assigned to the batch or the recipe minimum batch size
must be changed.
When the batch has been successfully initialized, the status will change from Open
to Ready. A selected batch can be “un-initialized” by clicking on the Change
button. The batch status will change from Ready to Open. This can only be done to
batches that are Ready.

WARNING! Batch Manager verifies that all units required by the recipe are
available in the train. Connections and possible paths through the train are not
verified. Thus, if a connection is not available in the train, it is possible to take a
path through a train that results in a dead-end situation.

In this example, the recipe requires a transfer from Process Class A to Process Class
C. The recipe will initialize properly on either Train 1 or Train 2, but will not
execute properly on Train 2. The reason for this is that although Train 2 has the
correct unit, it does not have the connections needed to execute the recipe.

Process Class A
Unit 1 Unit 4

Process Class B
Unit 2 Unit 5

Process Class C
Unit 3 Unit 6

Train 1 Train 2

Therefore, it is extremely important, when multiple paths are possible through a


train, to determine if the recipe will execute properly for all possible paths. If not, a
change in the train must be made.
Batch Management System 319

Options Menu
Use the Batch Scheduler Options menu to access commands that you can use to
modify the execution of batches in the schedule list.

Options/Execute in Order
Use this command to enable or disable the Execute in Order mode. When
disabled, batches can be randomly selected and started. When enabled, batches can
only be started for each train in the order in which they are displayed in the
schedule.

Note If you sorted the Batch Schedule list using the Filter option, batches will be
executed in the order defined by your sort preferences. In this case, the Execute in
Order option is not available.

Help Menu
The Batch Scheduler Help menu contains the commands that are used to access the
main help screen, and information about the version and licensing of the
application.

Help/Help Topics
Use this command to access Batch Scheduler’s online help system.

Help/About Batch Scheduler


This command is used to view version information.

Defining a Batch
A batch is defined by a Campaign ID (16-chars max), Lot ID (16-char max),
Batch ID (16-char max), Recipe, Quantity (8-char max), Train, and Mode of
operation. The scheduler will verify all new batch names to ensure validity and
uniqueness.

Batch Identification
Each batch is identified by a unique three-part hierarchical name. The highest level
is the Campaign ID, followed by the Lot ID, and finally the Batch ID. The Batch ID
must be entered manually by an operator. It is not necessary to use all three of the
identification fields. The Campaign field is required. The Lot and Batch fields are
optional.
320 Chapter 9

All historical information about a batch is logged to history using the batch
identification. If the batch identification is not unique, duplicates can exist in the
historical database. Batch Scheduler will only verify that the batch identification is
unique among the batches currently in the schedule window. Batch Scheduler does
not verify that the identification for a batch is unique throughout the history
database.

Recipe Assignment
The Recipe button displays the Recipes window.

A recipe can be selected by double-clicking a list item. The list contains the recipes
in the recipe database that have been Approved For Production or Approved For
Test. You can use the Find button to search for a specific recipe in the database.
The find options allow you to search All of the recipes, or select a recipe based on
Recipe ID, Name, State or Type. Use the Filter button to filter recipes based on
their ID, Name, State or Type. After you select a recipe, it appears in the Recipe
field of the Batch Scheduler window.
Recipe filtering is only applied when the Recipes window is open, and you have
defined specific filtering criteria. When you close the Recipes window, any
previous filtering criteria is no longer applicable.

Quantity Assignment
The Quantity field defines the size of the batch to be produced. The Quantity must
be manually entered by the user. Input and Output quantities that have been
specified as percentages in the selected recipe are automatically scaled to the
appropriate actual quantities based on the batch size entered.

Train Assignment
The Train button displays the Trains window. A train can be selected by double-
clicking on the desired entry in the list. The selected train name will be displayed in
the train field of the Batch Scheduler window.
Batch Management System 321

Batch Execution Mode


Use the Mode combo-box to define the mode of batch operation when the batch is
started. There are three modes of execution available for starting batches:
Automatic, Semi-Automatic, and Manual. The mode can be changed at any time
during batch execution from the Batch Display application. More information
concerning changing batch modes is presented in a later section.

Mode Description
Automatic The recipe procedure is executed exactly as defined in the recipe.
Semi-Automatic Each phase must be acknowledged by the operator before it is executed.
Prior to acknowledging the phase, phase parameter values can be edited.
Manual Any phase in the recipe defined for equipment that is allocated to the batch
can be manually executed.

For more information on dynamically changing the batch mode, see “Batch
Execution Modes” on page 347 in this section.

Status
Each batch in the schedule list has a Status. The status shows the current state of
the batch. There are nine possible statuses as shown here.

Status Description
Open Batch has been added to the schedule list, but has not been initialized.
Ready Batch has been successfully initialized.
Run Batch has been started and is running.
Held Batch has been held.
Done Batch has completed normally.
Aborting Batch is in the process of being aborted.
Aborted Batch has been aborted.
Locking Batch is in the process of aborting phases and entering Jump Mode.
322 Chapter 9

Status Description
Locked Batch has been successfully locked and Jump Mode is enabled.

Changing the Batch Schedule List


Use the buttons on the bottom of the Batch Scheduler editor window to alter the
list of scheduled batches.

Add
The Add button places an entry in the schedule list with the defined batch
information. The batch will be displayed in the list of scheduled batches with a
status of Open. When a batch is added in which the quantity is greater than the
recipe maximum batch size, the Scheduler will display a window asking the
operator to confirm the addition of multiple batches each with the recipe default
value as its quantity assignment. If Yes is selected, the number of batches needed to
produce the entered quantity is automatically generated, and all of the batches will
be added to the list. If No is selected, no batches will be added to the list. If no
quantity is specified, the default batch size is used.

Change
The Change button is used to record modifications that are made to any of the
fields for the selected batch. Only batches with a status of Open or Ready can have
their schedule information changed. Batches that are Ready and are changed will
return to an Open status and will require re-initialization.

Clear All
The Clear All button is used to clear all of the schedule edit fields.

Using Batch Display


Batch Display is a batch server and runtime client application that provides an
operator interface to Batch Manager. Batch Manager is responsible for managing
the execution of recipes and also provides information, instructions, and the
statuses of all batch activity in the system. It also allows users to monitor the
execution of the procedure, enter comments and parameter values, acknowledge the
start or completion of phases, review phase interlocks, display and execute
instructions, and answer questions pertaining to the batch. Batch Display also
provides the necessary interface for external document viewing and
acknowledgement.
Batch Management System 323

Batch execution data is accessible to external applications by way of ActiveX


controls and the Toolkit.

Note Batch Manager must be running prior to the start of Batch Display. The
batch system supports the operation of multiple instances of Batch Display. This
requires you to configure multiple instances of Batch Scheduler using Environment
Editor.

For more information on setting up multiple Batch Scheduler instances, see Chapter
3, "Environment Management System."

To Start Batch Display:

1. On Environment Display, double-click the BatchDspl icon.


The Batch Display window will appear.

2. Use the Batch Display window to monitor and modify batch execution. Batch
Display displays the execution of a single batch.
3. Use the menu bar to access system functions for Batch Display.

File Menu
The File menu provides system functions for Batch Display.
324 Chapter 9

File/Exit
Use this command to close Batch Display.

Actions Menu
The Batch Display Actions menu contains the commands that are used to access
Batch Display options.

Actions/Manual Operation
Use this command to initiate the scheduling of the selected batch in a fully-manual
operation mode. This type of batch is called a phantom batch. Within the batch
management system, a phantom batch is identified as follows.

Field Value
Campaign ID <MANUAL OPER>
Lot ID <MANUAL OPER>
Batch ID <MANUAL OPER>
Mode Manual

Manual Operation provides the capability to execute the phases for all of the units
and connections in the process model. Manual Operation is especially helpful
during startup and system verification. Manual Operation option is available only
when is configured to use the Manual Operations application parameter is
configured for Batch Display using the Environment Editor.
The execution mode for a phantom batch is always Manual.
When the phantom batch is selected, all of the phases for any allocated units can be
executed. Units must be manually allocated from the Equipment Allocation
window in order to have phases to execute. There is no history of activity
associated with the phantom batch. A phantom batch is removed from the schedule
by putting the Batch in Hold and then selecting Abort.
For more information on Manual Operation, see ‘Manual Operation’ later in this
section.

Actions/Save Control Recipe


Use this command to display the Save Control Recipe window.
Batch Management System 325

This window allows you to save the recipe associated with a completed batch to be
saved to the recipe database. All final target values for formula parameters will be
saved. The user also has the option to save the recipe as an equipment dependent
recipe by enabling the Save Runtime Equipment check box. Additionally, recipe
approvals can be retained by enabling the Retain Recipe Approvals check box.
This allows the recipe to be immediately scheduled. The operator also has the
option of overwriting the existing recipe or changing the Recipe ID and saving it as
a new recipe. If the existing recipe is overwritten the version number is
incremented. Regardless of the options selected, the operator must enter their name
in the Author field and optionally enter a comment. The comment is saved as part
of the version history.

Note If the Recipe was created as read-only, you will not be able to save it with the
same Recipe ID. You can however, save it using a different Recipe ID.

Actions/Activate Jump Mode


Use this command to activate the Jump Mode for an active batch. The Jump Mode
allows an operator to move the procedure execution pointer for a batch and then
restart the batch at the selected execution point. Security can also be configured for
the Jump Mode to limit access to specific operators.
For more information on Jump Mode, see ‘Runtime Recipe Procedure Jumps’ later
in this section.

To use Jump Mode:


1. On the Batch Display window, click Batch Hold.
This places an active batch into Held.
2. Activate Jump Mode from the Action menu, or by clicking the Jump Mode

icon in the Batch Display Toolbar.


326 Chapter 9

Note A message will be displayed advising you that all Held phases will be
aborted if you continue. Interrupting recipe execution using this feature should be
carefully planned to avoid undesirable results.

3. Click Yes to enter Jump Mode.


The mouse pointer is replaced with a Jump Mode cursor.
4. Position the cursor to the unit procedure, operation or phase that you want
recipe execution to restart at.
5. Click the Jump Mode button to complete the repositioning.
The Jump Mode cursor is replaced with the normal mouse pointer.
6. Click the Restart Batch button.
When the batch restarts, recipe execution will begin at the point you selected.
Batch Management System 327

Windows Menu
Use the Batch Display Windows menu to access the batch configuration windows.

Windows/Schedule
Use this command to display the Schedule window. The Schedule window
provides a list of all batches that are scheduled and active in the system. Any batch
with a status of Ready, Run, Held, Done, Aborting or Aborted is considered active.
The list also indicates which batch requires action by displaying double-asterisks
(**) in the Action column of the list. Double-clicking a batch in the Schedule list
changes the Batch Display to show information for the selected batch.

This option is also available from the Schedule icon in the Batch Display
Toolbar.

Windows/Batch Messages
Use this command to display the Batch Messages window.

The Batch Messages window contains all messages associated with the batch that
you are currently viewing. It also displays messages to alert operators of other
batches that require operator action. The messages are summarized in the following
section.
• Waiting for the operator to answer a transition logic question.
• Waiting for a transition logic expression or wait function to conclude.
• Waiting for the operator to manually select a unit to allocate to an instance. The
instance name is provided in the message.
328 Chapter 9

• Waiting for equipment to become available for allocation to the current batch.
The instance name is provided in the message.
• Waiting for the operator to acknowledge the beginning of a phase. The
equipment, operation, and phase requiring the acknowledge is provided in the
message.
• Waiting for the operator to acknowledge the end of a phase. The equipment,
operation, and phase requiring the acknowledge is provided in the message.
• Waiting for the operator to edit one or more phase parameters. The equipment,
operation, and phase requiring the parameter editing is provided in the
message.
• Waiting for the operator to enter a comment for a phase. The equipment,
operation, and phase requiring the comment is provided in the message.
• Waiting for an operator action on another batch. The campaign, lot, and batch
identification information is provided for the batch requiring the action.

This option is also available from the Batch Messages icon in the Batch
Display Toolbar.

Windows/Equipment Allocation
Use this command to display the Equipment Allocation window. This option is
also available from the Equipment Allocation icon in the Batch Display
Toolbar.
Batch Management System 329

Use this window to view the status and availability of the units and/or connections
in the train assigned to the selected batch. The Equipment Allocation window is
only available for batches that have status of Run, Held, or Aborting.
Each unit in the train will have a Status corresponding to one of the statuses
defined in the Process Modeling Editor. Each connection in the train will have a
status of Available or Unavailable. This status corresponds to the status of any
segments that were assigned to the connection in the process model. If segments
were not assigned to a connection, the status of the connection will always be
Available. The status of a connection will be Unavailable if any one of the segments
assigned to the connection has an equipment status that has not been marked as
Available in the process model.
The Allocation of a unit or connection relates to the ability of the unit or
connection to be allocated by Batch Manager. The Ready allocation value means
that the unit or connection is available to be allocated. The Allocated value means
that the unit or connection is allocated by a batch. A Busy value indicates that the
unit or connection has been allocated by another batch.
Any unit or connection in the Train, if Ready, can be manually allocated by
selecting the unit or connection, selecting the proper instance, and then clicking on
the Allocate button. The instance names correspond to those defined in the recipe
assigned to the selected batch. This will allocate the chosen instance to the selected
unit or connection. Any unit or connection in the Train, if Allocated, can be
manually released by selecting the unit or connection and clicking on the Release
button. Manual allocation and release overrides automatic and recipe allocation.
330 Chapter 9

The Allocation Queue button allows you to display a list of the batches that are
waiting for the selected equipment. The list is displayed in the order that the batch
will execute in the unit. Using the arrow buttons provided in the Equipment
Allocation Queue window, a user can, after selecting a batch from the list, move it
up or down in the queue. The batch at the top of the list is the next batch to execute.
The View Filter options allow you to enable and disable the display of Units and/or
Connections in the equipment list.
The Unit Control options enable the particular Unit Control tags for the selected
unit. This provides individual control over each unit in the process. There are two
Hold Propagation Modes available. In addition to the Hold Propagation modes,
Unit Control can be further enhanced by using Unit State system tags.

Note Hold Propagation Mode 1 is enabled by default. In order to enable Hold


Propagation Mode 2, you must enable the Phase/Batch Status parameter name
using Environment Editor. In order use Unit State system tags, you must enable the
Unit States parameter using Environment Editor.

Hold Propagation Mode 1 - Unit State Enabled


This mode is the default mode of operation and allows a unit to be allocated only if
it is Unallocated, has an Available Status and has a Ready state. During normal
execution, if unit state goes to Alarm or Held or if the batch is held by the operator,
then the Unit Hold is set for all units allocated by the batch. The batch state goes to
Held when all allocated units transition to either the Held or the Alarm state. The
operator can Restart the batch only if all allocated units are in the Held state. If any
units are in the Alarm state, they must transition to the Held state before the batch
Restart command is available. After a Restart command is written and all allocated
units transition to either the Run or Ready state, the batch status returns to Run.

Note There is an assumption that a Unit in a Held state can be restarted and will
then immediately change to a Run or Alarm state. If this mode does not appear to
function as described, you should review the Restart logic that you are utilizing.

Hold Propagation Mode 1 - Unit State Disabled


This mode allows unit allocation only if it is Unallocated, has an Available Status.
During normal execution, if the batch is held by the operator, then the Unit Hold is
set for all units allocated by the batch. The batch state goes to Held. The operator
can Restart at any time. After a Restart command is written the batch status returns
to Run.
Batch Management System 331

Hold Propagation Mode 2 - Unit State Enabled


This mode allows unit allocation only if it is Unallocated, has an Available Status
and has a Ready state. During normal execution, if the unit state changes to Alarm
or Held, or if any phase changes status from Run to Held, or if the batch is placed in
Held by the operator, then the Unit Hold is set for all units allocated by the batch.
Additionally, the phase Hold is set for all phase with a Run status. The batch state
goes to Held when all allocated units transition to either the Held or the Alarm state.
The operator can Restart the batch only if all allocated units are in the Held state. If
any units are in the Alarm state, they must transition to the Held state before the
batch Restart command is available. After a Restart command is written and all
allocated units transition to either the Run or Ready state, the batch status returns to
Run.

Hold Propagation Mode 2 - Unit State Disabled


This mode allows unit allocation only if it is Unallocated, has an Available Status.
During normal execution, if any running phase changes to Held, or if the batch is
held by the operator, then Unit Hold is set for all units allocated by the batch and
phase Hold is set for all running phases. The batch state goes to Held. The operator
can Restart the batch at any time. After a Restart command is written the batch
status returns to Run.

Note There is an assumption that a Unit in a Held state can be restarted and will
immediately change to a Run or Alarm state. If this mode does not appear to
function as described, you should review the Restart logic that you are utilizing.

Windows/Phase Parameter Editor


Use this command to display the Phase Parameter Editor window.
For more information on dynamically changing phase parameter information, see
“Phase Parameter Editor” on page 342 in this section.

This option is also available from the Offline Phase Editor icon in the Batch
Display Toolbar.

Windows/Transition Logic
Use this command to display the Active Transitions window.
For more information on viewing active transitions, see “Active Transition
Objects” on page 344 in this section.

This option is also available from the Active Transitions icon in the Batch
Display Toolbar.

View Menu
The Batch Display View menu contains the commands that are used to toggle the
display of the application toolbars and status bar, as well as to change the focus of
the unit procedure, operations and phases displays. The menu options are described
below.
332 Chapter 9

View/Errors
Use this command to display the Errors window. All batch errors will be contained
in this list.

This option is also available from the Errors icon in the Batch Display
Toolbar.

View/Main Toolbar
To view the Main Toolbar:
Click View and then enable the Main Toolbar menu item.

View/SFC Toolbar
To view the SFC Toolbar:
Click View and then enable the SFC Toolbar menu item.

View/Status Bar
To view the Status Bar:
Click View and then enable the Status Bar menu item.

View/Unit Procedure View


Use the View/Unit Procedure View menu item to show or hide the Unit
Procedures pane.

View/Unit Procedure Zoom In


To Zoom In on Unit Procedures:
Click View and then select Unit Procedure Zoom In to increase the displayed
size of objects in the unit procedure pane.
You can also use the Unit Procedure Zoom In icon in the Unit Procedures
Toolbar.

View/Unit Procedure Zoom Out


To Zoom Out on Unit Procedures:
Click View and then select Unit Procedure Zoom Out to increase the
displayed size of objects in the unit procedure pane.
You can also use the Unit Procedure Zoom Out icon in the Unit Procedures
Toolbar.
Batch Management System 333

View/Operation View
Use the View/Operation View menu item to show or hide the Operations pane.

View/Operation Zoom In
To Zoom In on Operations:
Click View and then select Operation Zoom In to increase the displayed size
of objects in the operation pane.
You can also use the Operation Zoom In icon in the Main Toolbar.

View/Operation Zoom Out


To Zoom Out of Recipe Operations:
Click View and then select Operation Zoom Out command to decrease the
displayed size of objects in the operation pane.
You can also use the Operations Zoom Out icon in the Main Toolbar.

View/Phase View
Use the View/Phase View menu item to show or hide the Phases pane.

View/Phase Zoom In
To Zoom In on Recipe Phases:
• Click View and then select Phase Zoom In command to increase the displayed
size of phases in the phase pane.
You can also use the Phase Zoom In icon in the Main Toolbar.

View/Phase Zoom Out


To Zoom Out of Recipe Phases:
• Click View and then select Phase Zoom Out command to decrease the
displayed size of phases in the recipe phase pane.
You can also use the Phase Zoom Out icon in the Main Toolbar.
334 Chapter 9

View/Large Icons
To View Large Icons:
• Click View and then enable the Large Icons menu item to increase the size of
the icons on the toolbars.

Help Menu
The Batch Display Help menu contains the commands that are used to access the
main help screen, and information about the version and licensing of the
application.

Help/Help Topics
Use this command to display the online help for Batch Display.

Help/About Batch Display


Use this command to view Version information.

Batch Display Layout


The Batch Display window is divided into several functional areas as shown.
Batch Management System 335

Batch
Control
Buttons
Phase Batch Phase
Parameter Phase Display Batch Question Control
List List Toolbar SFC Toolbar Identification List Buttons

Instruction List View/Ack


Sequence of Unit Procedures Sequence of Phases
Document
Sequence of Operations Viewing

Batch Display Toolbar

Manual Operation
The Manual Operation icon is used to display a phantom batch.

Save Recipe
The Save Recipe icon is used to display the Save Control Recipe window.
336 Chapter 9

Schedule
The Schedule icon is used to display the Schedule window.

Batch Messages
The Batch Messages icon is used to display the Batch Messages window.

Equipment Allocation
The Equipment Allocation icon is used to display the Equipment Allocation
window.

Offline Phase Editor


The Offline Phase Editor icon is used to display the Phase Parameter Editor
window.

Active Transitions
The Active Transitions icon is used to display the Active Transitions
window.

Errors
The Errors icon is used to display the Errors window.

Jump Mode
The Jump Mode icon is used to activate the Jump Mode.

SFC Toolbar

Unit Procedure View


The Unit Procedure View icon is used to show or hide the unit procedures
pane

Unit Procedure Zoom In


The Unit Procedure Zoom In icon is used to enlarge the sequence of unit
procedures display. There are 10 levels of magnification available.

Unit Procedure Zoom Out


The Unit Procedure Zoom Out icon is used to reduce the sequence of unit
procedures display. There are 10 levels of reduction available.

Operation View
The Operation View icon is used to show or hide the operations pane
Batch Management System 337

Operations Zoom In
The Operation Zoom In icon is used to enlarge the sequence of operations
display. There are 10 levels of magnification available.

Operations Zoom Out


The Operation Zoom Out icon is used to reduce the sequence of operations
display. There are 10 levels of reduction available.

Phase View
The Phase View icon is used to show or hide the phases pane

Phases Zoom In
The Phase Zoom In icon is used to enlarge the sequence of phases display.
There are 10 levels of magnification available.

Phases Zoom Out


The Phase Zoom Out icon is used to reduce the sequence of phases display.
There are 10 levels of reduction available.

Batch Identification
Across the top of the Batch Display main window is the batch identification
information. Included here are the Campaign ID, Lot ID, Batch ID, Mode, Status
and Action.

Phase List
The Phase List contains a dynamic list of active phases. The equipment allocated
for each phase and the status of each phase is also included in the list.

Question List
The Question List contains a dynamic list of active questions. Answering a question
requires the selection of the question and the appropriate answer button.

Batch Control Buttons


The Batch Control Buttons give the user the ability to start the batch, hold the
batch, restart the batch, abort the batch, and change the batch mode.

Phase Parameter List


The Phase Parameter List provides a dynamic list of all formula parameters for
active phases, as well as the ability to change parameter values.

Instruction List
The Instruction List provides a list of instructions associated with the phase
selected in the Phase List.
338 Chapter 9

View Doc/Ack Doc Button


The View Doc button provides the necessary operator interface to view a document
that is specified as part of a phase. Once the document is viewed, the button label
changes to Ack Doc, requiring operator acknowledgement in order to continue
execution.

Phase Control Buttons


The Batch Control Buttons give the user the ability to start a phase, hold a phase,
restart a phase, abort a phase, acknowledge a phase, satisfy phase control buttons,
enter a phase or batch comment, view phase interlocks, and manually select
equipment for phase execution.

Sequence of Unit Procedures and Operations


The Sequence of Procedures and Operations dynamically show the current
Procedure and Operation that are executing in the selected batch. The status of each
unit procedure and operation in the SFC is represented with colors.

Color Description
Cyan Continue Mode Execution
Gray Inactive
Green Active
Yellow Completed

Sequence of Phases
The Sequence of Phases dynamically shows the current phases executing in the
selected batch for the selected operation. The status of each phase in the SFC is
represented with colors.

Color Description
Gray Inactive
Green Active
Red Interlocked, Held, or Waiting for Operator Action
Yellow Completed

Batch Display Functionality


Batch Display is used by operators to monitor and control the execution of batches.
Batch Display's main window provides the functionality described in the following
text. More detailed information on many of these features is described later in this
section.
• A list of all active batches in the schedule can be viewed at any time. An active
batch is any batch that has a status of Ready, Run, Held, Done or Aborted.
• A list of all phases for the selected batch can be viewed.
Batch Management System 339

• The recipe procedure can be viewed for each batch, showing the status of each
phase.
• Batch control buttons including Start, Hold, Restart, and Abort.
• Phase control buttons including Start, Hold, Restart, and Abort.
• View and control of current Phase Status, Parameters, and Instructions.
• Ability to enter Comments associated with a phase or with the batch.
• Ability to View and Acknowledge external documents.
• Ability to view Interlocks for each phase.
• A list of Transition Logic Questions and the ability to answer the questions.
• A Message Line displays Operator commands.
• View Transition Logic Status
• Force Transition Logic
• Edit phase parameter values when a batch is active.
• Edit phase parameter values when a batch is not active (Phase Parameter Editor
window).

Batch Control
Batches that are initialized have a status of Ready. If a batch is Ready, it can be
selected from the Schedules window and started using the Batch Start button.
Batches that are running have a status of Run. If a batch has a status of Run, the
batch can be put in Held. If a batch has a status of Held, the batch can be Restarted
or Aborted.

Batch Status Description Active Button(s)


Ready Batch is ready to be Started. Batch Start
Run Batch is executing; Batch can be put in Hold. Batch Hold
Held Batch is in Hold; Batch can be Re-started or Batch Restart
Aborted. Batch Abort
Aborting Batch is being aborted. N/A
Aborted Batch was aborted. N/A
Done Batch is finished. N/A
Locking Batch is aborting phases to enter into Jump Mode. N/A
Locked Batch is locked and in Jump Mode. N/A

Batch Execution Mode


The Edit Mode button displays the Batch Mode window. Selecting the desired
mode with the combo box changes the Batch Execution Mode.
340 Chapter 9

For more information on dynamically changing the batch mode, see “Batch
Execution Modes” on page 347 in this section.

Phase Comments
The Edit Comment button displays the Comment window.

While a phase is executing, a comment associated with the selected phase can be
entered. The comment is stored in the historical database. If phases are not
executing and a comment is entered, it is stored as a general comment associated
with the batch. If a phase is active, the operator can change the comment type to
Batch if the comment is not related to the phase.

Note A batch must be initialized in order for comments to be written to history.

After a batch is initialized, but before it is started, the user can enter batch
comments. However, the unique batch identification record is not created until the
batch is started. Thus, if a batch is added, comments are entered, and then the batch
is changed or deleted, unrecoverable comment records will be created that will have
a batch key field that does not point to a valid batch ID log record. Therefore,
comments should be entered only after starting a batch.

Phase Interlocks
The Interlocks button displays the Interlocks window. This is used to view the
status of the interlock tags for any active phase in the procedure.

Equipment Selection
The Select Equipment button displays the Equipment Selection window.
Batch Management System 341

This window contains a list of possible units that can be allocated for a particular
recipe instance. Whenever Manual Unit Selection is configured for a process
instance in the recipe Equipment Requirements Editor, the operator must select the
equipment that will be allocated and used by the current batch. In the Equipment
Selection window shown, the operator must choose from two units which one is to
be allocated for the first reactor process instance.
The Equipment Selection window is dynamic. The current status of units that are
available for selection is displayed in the window. If the status of any equipment
changes while the window is displayed, the status displayed will update
accordingly. The status of units displayed in the Equipment Selection window
corresponds to those statuses defined in the process model. As long as the new unit
status represents an available status, the unit will remain displayed in the list.

Phase Control and Status


All active phases and their current statuses will be displayed in the Phase List. Any
phase that requires operator action will be displayed with ** in the Action column.
Any active phase can be selected in order to display its parameters, instructions,
and interlocks. In addition, the phase can be Held, Restarted, and Aborted with the
Phase Control Buttons if the phase has been properly configured in the process
model. Shown below are the various phase statuses and an explanation of operation.
342 Chapter 9

Phase
Status Description Action
Wait Phase is waiting for operator action. Message line will Acknowledge or Edit
indicate whether a comment or an acknowledge is required. Comment.
Wait Phase is currently running. Phase can be run after Acknowledge “Unexpected
acknowledging the message. Batch Manager will wait until Status Window.”
the phase is Ready.
Run Phase is executing. Phase Hold
Held Phase is in Hold; Phase can be Re-started or Aborted. Phase Restart or Phase Abort
Done Phase execution is complete. N/A
Interlocked Interlocks are preventing the phase from executing. Select Interlocks button.
Aborted Phase has been Aborted. N/A

Edit Formula Parameters


Any phase that has parameters configured in the Process Model with Edit Allowed
or Edit Required may be altered during the execution of the phase. The operator
must first select the desired phase in the Phase List, select the parameter in the
Phase Parameter List, click within the text entry field (adjacent to the Change
button) and enter an appropriate value, and then click the Change button. The edit
field and Change button are not available when the selected parameter cannot be
edited.

Answering Questions
Transition objects that have been configured in the recipe to ask a question of the
operator are in the Questions List box. The operator must select the question that is
to be answered and click the Yes button.
Depending on the recipe, there may only be one question or there may be several.
For an Execute All branch, all of the questions must be answered. If the branch is
an Execute One, then only one question must be answered.
If the question applies to a loop object, then the question is a Yes or No question. If
the answer is Yes, then the loop back will be executed.

Phase Acknowledgment
Any phase in the recipe that has been configured with an Acknowledge On Entry or
Acknowledge On Exit option, as well as all semi-automatic phases will require the
operator to acknowledge the phase when executed. A message will be displayed in
the Message box when an acknowledge is required. The Acknowledge button must
be selected when required.

Phase Parameter Editor


The Inactive Phase Parameter Editor is used to edit or modify phase execution
and phase parameters anytime a batch has a status of Ready, Done or Aborted. The
editor provides the following capabilities.
• Add an Instruction to a phase.
Batch Management System 343

• Enable or Disable Acknowledge on Entry configuration for a phase.


• Enable or Disable Acknowledge on Exit configuration for a phase.
• Enable or Disable Comment Required for a phase.
• Enable or Disable batch Execution Continue Mode.
• Modify Parameter Target Values for a phase.

Note Phase parameter changes are dynamic and will be used during the execution
of the batch if made for a phase that has not yet executed. Phases that are not
running are displayed in the list.
344 Chapter 9

Active Transition Objects


Use the Active Transitions window to view the expressions associated with all
active transition objects. The display lists each Active Transition and includes the
label and Wait (time remaining) for the transition.

When a transition is selected, its expression is displayed and if tags are associated
with the expression, they are displayed along with their current value.
Any active transition object must have a result of False. The Transition can be
forced to True by selecting the active transition and selecting the Force to True
button.

Batch Manager
Batch Manager is the most fundamental and integral part of the batch management
system. The execution of every batch is controlled and monitored by Batch
Manager. Another of its responsibilities is the management of multiple batch
execution and the dissemination of all of the batch information to Batch Scheduler
and Batch Display. Each batch server supports a single instance of Batch Manager.

Starting Batch Manager


Batch Manager is started by the Environment Manager when the runtime
applications are initiated. There is no icon displayed for Batch Manager. Batch
Manager executes as an operating system service.
Batch Management System 345

Batch Execution
Batch Manager is responsible for the execution of all of the batches running in the
system at any point in time. There are many different areas of functionality that
Batch Manager must coordinate while executing batches. These include allocation
of equipment, batch execution modes and mode changes, unit selection, process
phase execution, and transfer phase execution.
There are three types of equipment allocation that are available: Automatic, Recipe,
and Manual. There are three modes of batch execution: Automatic, Semi-
Automatic, and Manual. There are two methods for selecting units for a batch:
Automatic and Manual. There are two categories of phases: Transfer and Process.
There are three types of phases: Automatic, Semi-Automatic, and Manual. Each of
the batches may have any combination of the above options. Each of the areas is
described below.

Equipment Allocation
In order to execute any phase as part of a batch, equipment must be allocated to the
batch. If suitable equipment had been previously allocated to the batch, then that
equipment is used. If equipment has was not been previously allocated, then the
batch management system must allocate suitable equipment to the batch before
proceeding with phase execution. There are three approaches to allocating
equipment for a batch. They are, Automatic Allocation, Recipe Allocation, and
Manual Allocation. Each allocation approach is described below.

Automatic Allocation and Release


Automatic Allocation is performed by default by Batch Manager. Automatic
Allocation occurs whenever a phase needs to be executed and appropriate
equipment (unit and/or connection) is not currently allocated to the batch. Batch
Manager allocates the equipment required and releases the equipment automatically
when it thinks it no longer needs the equipment. For process phases, only the unit is
allocated. For transfer phases, both the destination unit and the connection are
allocated. Source units are NEVER automatically allocated when a transfer phase is
executed.
As part of the evaluation criteria for unit allocation, Batch Manager uses the
equipment status (i.e. Clean, Dirty, etc.), equipment availability (i.e. in use by
another batch, etc.), train definition (i.e. is the unit in the train assigned to the
batch), equipment attribute requirements (i.e. capacity, material of construction,
etc.), and the equipment state (i.e. Ready, Run, Held, Alarm). When there are
multiple units from which to select, Batch Manager will make the selection based
on the manner in which unit selection has been defined in the recipe. If no units are
available, Batch Manager will continuously evaluate the possible units and wait
until one becomes available.
346 Chapter 9

Connection allocation is a result of source and destination unit allocation. When


multiple connections are available between two units, Batch Manager selects the
first connection encountered. For cases when the source unit has not been allocated,
either a material is used for connection selection or Batch Manager selects the first
connection encountered. Connection allocation is also influenced by any segments
that are assigned to the connection in the process model. Segments with an
unavailable status render all connections to which the segments are assigned
unavailable for allocation.
Segment allocation occurs when a connection to which the segment is assigned is
allocated to execute a transfer phase.
Allocated equipment is automatically released when no longer needed or at the end
of the batch. Therefore, units are automatically released after a transfer phase in
which the unit is the source is complete or at the end of the batch. Connections and
segments are automatically released after the transfer phase on the connection and
segment(s) is complete.

Recipe Allocation and Release


Recipe Allocation takes precedence over Automatic Allocation. Recipe Allocation
refers to the allocation of units or connections by way of the inclusion of an
Allocate Process Instance or Allocate Transfer Instance phase in the recipe
procedure.
With recipe allocation, equipment (unit and/or connection) is reserved for exclusive
use by the batch in which the phase is executed. The recipe Allocate Process
Instance phase allocates and reserves a unit. The recipe Allocate Transfer Instance
phase allocates both a destination unit and a connection, but it only reserves the
connection. The destination unit is allocated using the rules of automatic allocation.
If it is required to also reserve the destination unit, then the Allocate Process
Instance phase must be used in conjunction with the Allocate Transfer Instance
phase in the recipe procedure. In addition, source units are never recipe-allocated
when an Allocate Transfer Instance phase is executed.
The same selection criteria defined for automatic allocation is true for recipe
allocation with the additional requirement that recipe allocated equipment remains
allocated to the batch until a corresponding recipe release phase is encountered in
the recipe procedure or until the batch is complete.
Recipe allocation phases are treated the same as other phases in a recipe. Recipe
execution will not proceed until a unit or connection defined by the Allocate Phase
is assigned to the batch.

Manual Allocation and Release


Manual Allocation takes precedence over Automatic Allocation and Recipe
Allocation. Manual Allocation refers to the allocation of equipment (unit and/or
connection) by a user by way of the Equipment Allocation window within Batch
Display. Any unit or connection defined in the train assigned to the batch can be
allocated using this window. However only equipment that has an available
equipment status (i.e. Clean, Dirty, etc.), an available equipment state (i.e. Ready),
and is not allocated to another batch can be manually allocated.
Batch Management System 347

Manually allocating a unit allocates and reserves only the selected unit. Manually
allocating a connection allocates and reserves only the selected connection. Neither
the source nor the destination unit is allocated when a connection is manually
allocated. Units and connections that are manually allocated are released when the
operator manually releases the unit or connection from the Equipment Allocation
window or when the batch is complete.
Manual Allocation is especially important when executing batches in Manual
Mode. Only the phases associated with manually allocated units and/or connections
can be executed. Furthermore, if a batch is started in Manual Mode, there are no
units or connections allocated. Units and/or connections must be allocated
manually before any phases are available for execution.

Batch Execution Modes


There are three different modes of batch execution: Automatic, Semi-Automatic,
and Manual. Batch Manager responds to batch control commands differently
depending on the mode. Each option is presented below.

Automatic Batch Mode


Start a Batch
When the Batch Start button is selected, recipe procedure execution begins.
Equipment must be allocated in order to execute phases. The allocation takes place
according to the rules defined in the allocation section. If the required equipment
cannot be allocated, the phase(s) will go to the Wait status. While in Wait, the
availability of the equipment is continually monitored. As soon as equipment is
available, it is allocated to the batch and the phase(s) are started. Only the
equipment in the assigned train is available to Batch Manager for allocation.
Once the correct equipment is allocated, the status of the phase to be executed is
evaluated. If the phase status is Ready, Batch Manager downloads the values of the
formula parameters to the control system and sets the phase Start tag. If the phase
status is Interlocked, Batch Manager monitors the phase until the status becomes
Ready before proceeding. If the phase status is Held or Run, an “Unexpected
Status” Error window is displayed. The operator must acknowledge the error, and
Batch Manager will wait for the phase status to become Ready before proceeding.
If the phase status is Done or Aborted, the phase Reset tag is set by Batch Manager,
and Batch Manager waits for the Ready status before proceeding.
If the IBCli service encounters a failure while attempting to read or write to a tag in
the control system, the batch that is associated with the failure will be placed on
hold by the Batch Manager and an error message will be displayed. Examples of
conditions that can cause tag read and write failures include BAD IO points or the
unintentional deletion of a block parameter in the control system. When failures
occur, the operator will need to take the necessary action to correct the problem and
then initiate a Batch Restart to resume operation. If the failure cannot be resolved,
but the operator wants to batch execution to continue, the phase associated with the
failed tag can be Aborted by the operator, and then a Batch Restart can be initiated
to resume batch execution.
348 Chapter 9

Hold a Batch
When the Batch Hold button is selected, Batch Manager will put the batch in Held.
The actions taken in response to a Batch Hold depend on the way in which Batch
Manager is configured in the Environment Editor. If configured by default (that is
without any application parameters in the Environment Editor), when the Hold is
initiated, the batch status will change to Held and the Unit Hold tag for each unit
allocated to the batch will be set. It is the responsibility of the control system logic
to alter the status of the phases associated with the unit(s). Typically, the phases are
put in the Held status. However, the results of a batch hold can be unique for each
phase.

Note When the Batch Hold button is clicked it is possible that the Batch Abort
will become available before all the phases are in the Held status. If a user quickly
presses the Batch Abort button before all the phases are in the Held status, any
phase, not in the Held state, will not respond to the Phase Abort command issued by
the Batch Abort command. In this situation the phases will remain in Held or the
last status. The Batch status will remain Aborting until all phases have completed.
Phases in Run will completed normally, or can be manually held and aborted. To
resolve this situation, verify all phases are in Held before pressing the Batch Abort,
manually abort all phases in Held, or assign security to the Batch Abort button. In
most cases this will allow enough time for all phases to go to the Held state.

If Batch Manager is started with the Phase/Batch Status application parameter


defined in the Environment Editor, Batch Manager manages all phase hold activity.
As above, when a Batch Hold is triggered the batch status will change to Held and
the Unit Hold tag for each allocated unit is set. In addition, a phase hold signal is
sent to any phase in the batch that has a status of Run. Also, if any phase becomes
held during the execution of a batch, Batch Manager places the batch in held and
sends a phase hold signal to all other phases in the batch that are in run. This applies
whether the held condition was the result of an operator initiated hold or generated
internally to the phase logic.
The batch hold concept is further advanced if the Unit States application parameter
is defined for Batch Manager in the Environment Editor. If this parameter is defined
by itself without also defining the Phase/Batch Status application parameter, Batch
Manager monitors the unit state tags for each allocated unit. If any unit state tag
changes to the Held or Alarm state, Batch Manager puts the batch that has the unit
allocated in Held. No other units or phases are held by Batch Manager, and the
response of the phases to the unit state change is the responsibility of the control
system. If both the Unit States and Phase/Batch Status application parameters are
defined, Batch Manager will use the unit states to determine when to propagate
phase hold commands. In this case, if a unit goes into the Held or Alarm state,
Batch Manager recognizes this and sets the Unit Hold tag and Phase Hold tags for
each unit and phase associated to the batch. Whenever the Unit States parameter is
defined, a batch cannot be restarted until the unit state returns to Run.
Regardless of the manner in which Batch Manager is configured, transition logic
Wait functions will not be put in held. The Wait function will continue to execute
and time out if the held time exceeds the time of the function. When a Wait function
times out, execution continues to the next phase but the phase will not be started
until the batch is restarted.
Batch Management System 349

Restart a Batch
When the Batch Restart button is selected, Batch Manager will restart the batch.
The actions taken in response to a Batch Restart depend on the way in which Batch
Manager is configured in the Environment Editor. If configured by default (that is
without any application parameters in the Environment Editor), when the Restart is
initiated, the batch status will change to Run and the Unit Restart tag for each unit
allocated to the batch will be set. It is the responsibility of the control system logic
to alter the status of the phases associated with the unit(s). Typically, the phases are
put in the Run status. However, the results of a batch restart can be unique for each
phase.
If Batch Manager is started with the Phase/Batch Status application parameter
defined in the Environment Editor, Batch Manager manages all phase restart
activity. As above, when a Batch Restart is triggered, the batch status will change to
Run and the Unit Restart tag for each allocated unit is set. In addition, a phase
restart signal is sent to any phase in the batch that has a status of Held. However,
unlike with hold commands, an individual phase restart will not cause the batch and
all other phases to restart.
The batch restart concept is further advanced if the Unit States application
parameter is defined for Batch Manager in the Environment Editor. If this
parameter is defined by itself without also defining the Phase/Batch Status
application parameter, Batch Manager monitors the unit state tags for each
allocated unit. Batch Manager will not permit a Batch Restart for any batch which
has allocated units and these units are in a state other than Held (i.e. the Alarm state
must be cleared). Typically, units will be in the Held state from the Batch Hold
command. All allocated units must be changed to Held in order to restart the batch.
Unit state changes are the responsibility of the control system. Once the required
unit states are in Held, the Unit Restart tag is set for each allocated unit. If both the
Unit States and Phase/Batch Status application parameters are defined, Batch
Manager will use the unit states to determine when to propagate phase restart
commands. In this case, a batch and all held phases will not be automatically
restarted if any unit is in a state other than Held.

Abort a Batch
When the Batch Abort button is selected, Batch Manager will abort the batch. The
actions taken in response to a Batch Abort depend on the way in which Batch
Manager is configured in the Environment Editor. If configured by default (that is
without any application parameters in the Environment Editor), when the Abort is
initiated, the batch status will change to Aborting and the Unit Abort tag for each
unit allocated to the batch will be set. It is the responsibility of the control system
logic to alter the status of the phases associated with the unit(s). Typically, the
phases are put in the Aborted status. However, the results of a batch abort can be
unique for each phase. Once all phases have completed or aborted, the batch status
will change to Aborted. The batch status will remain Aborting as long as phases are
active.

Note When Batch Abort is selected, a window appears prompting the user to
confirm the Abort. When Yes is clicked, Batch Manager will abort the batch.
350 Chapter 9

If Batch Manager is started with the Phase/Batch Status application parameter


defined in the Environment Editor, Batch Manager manages all phase abort activity.
As above, when a Batch Abort is triggered, the batch status will change to Aborting
and the Unit Abort tag for each allocated unit is set. In addition, a phase abort signal
is sent to any phase in the batch that has a status of Held. However, unlike with hold
commands, an individual phase abort will not cause the batch and all other phases
to abort. Also, once all phases have completed or aborted, the batch status will
change to Aborted.
The batch abort concept is not as affected as the hold and restart if the Unit States
application parameter is defined for Batch Manager in the Environment Editor. If
this parameter is defined by itself without also defining the Phase/Batch Status
application parameter, Batch Manager monitors the unit state tags for each
allocated unit. However, Batch Manager does not require a particular unit state in
order to abort a batch. The Unit Abort tag is set for each allocated unit regardless of
its state. If both the Unit States and Phase/Batch Status application parameters are
defined, Batch Manager will propagate phase abort commands regardless of the
state of the allocated units.

Note Error messages are not displayed when unexpected unit states are received
when one of the following conditions apply.
If a unit is not allocated and has an Available status, the unit should have a state of
Ready. A unit state of Run, Held, or Alarm is not permitted.

If a unit is allocated and phases for that unit are active, the unit should have a state
of Run, Held, or Alarm. A unit state of Ready is not permitted.

It is the responsibility of the user to avoid the conditions that are described. If either
condition exists, you must manually change the unit state.

Semi-Automatic Batch Mode


When Batch Manager is executing in semi-automatic mode, operation is exactly the
same as automatic mode, except that the operator is required to Acknowledge the
start of each phase.

Manual Batch Mode


When Batch Manager is executing in manual mode, any phase in the recipe for any
unit or connection allocated to the batch can be executed. When a batch is started in
Manual Mode, no equipment will be allocated to the batch. The operator must
manually allocate the desired units and/or connections using the Equipment
Allocation window. Any manually allocated equipment must be released manually
or will remain allocated to the batch until the batch is complete.
When equipment is allocated, the phases associated with the instance of that
equipment that is used in the recipe procedure will be available for execution. For
process phases, only the specific unit must be allocated. For transfer phases, the
source unit, destination unit, and connection must be allocated. The operator must
select the desired phase, change the parameter values if desired, and manually start
the phase. Several phases can be run simultaneously, if desired.
Batch Management System 351

Batch Execution Mode Changes


Automatic to Semi-automatic
Operation will continue normally except that any new phase encountered will
require the operator to Acknowledge the start of the phase.
Batch Manager can be configured to switch from Automatic to Semi-automatic
after a phase is aborted. The batch will then continue to execute in Semi-Automatic
Mode. To enable this feature you must use Environment Editor to assign the “Semi-
Auto On Abort“ parameter to Batch Manager. If this feature is enabled, both the
phase abort and the mode change from Automatic to Semi-automatic are logged to
history.
For more information on configuring the Environment Editor, see Chapter 3,
"Environment Management System."

Automatic to Manual
Any active phases will continue to run to completion. Batch Manager will monitor
these phases and will Reset the phases when they are Done. No new phases will be
executed. Batch Manager will maintain its position in the recipe procedure, and the
operator may manually execute any of the phases associated with allocated
equipment.

Semi-automatic to Manual Mode


Any active phases will continue to run to completion. Batch Manager will monitor
these phases and will Reset the phases when they are Done. No new phases will be
executed. Batch Manager will maintain its position in the recipe procedure, and the
operator may manually execute any of the phases associated with allocated
equipment.

Semi-automatic to Automatic
Any phases that are running will continue to run. Any phase waiting for an operator
Acknowledgment or any new phase encountered will automatically start. This
assumes that the phase is not configured for Acknowledge on Entry in the recipe
procedure. If this is the case, the Acknowledge will still be required.

Manual to Automatic
Execution of the recipe will begin from the point where Manual Mode was started.
Phases will start as configured in the recipe procedure. Any phases started in
Manual Mode will complete and will be Reset by Batch Manager. Any equipment
that was manually allocated will stay allocated until a Release phase for the
equipment is encountered or the batch completes.

Manual to Semi-automatic
Execution of the recipe will begin from the point where Manual Mode was started.
Phases will require an Acknowledge before they can be started. Any phases started
in Manual Mode will complete and will be Reset by Batch Manager. Any
equipment that was manually allocated will stay allocated until a Release phase for
the equipment is encountered or the batch completes.
352 Chapter 9

Unit Selection Modes


The Unit Selection definition defines how a unit is selected by Batch Manager
when there is more than one unit from which to choose. There are two Unit
Selection options. They are Automatic and Manual. The selection mode is defined
for a process instance in the Recipe Editor. Each selection mode option is described
below.

Automatic Unit Selection


Using Automatic Unit Selection, Batch Manager will select the first unit
encountered in the assigned train that satisfies the recipe equipment requirements,
has a Ready allocation status, has an available equipment status, and has a Ready
unit state (if defined). If all the possible units are not available, Batch Manager will
re-evaluate potential units as they become available and wait until the availability
of one of the units changes.

Manual Unit Selection


Using Manual Unit Selection, a list of available units and their current equipment
status are presented to the operator. Unit statuses correspond to those defined in the
process model. The operator must select one unit. The list is populated using the
criteria defined for automatic unit selection.
The only time that Manual Unit Selection is not enforced, is when one of the
available units is already allocated to the batch or when only one unit that satisfies
the recipe equipment requirements is located in the train. Batch Manager will either
use the unit that is allocated or use the only unit in the train that satisfies the
requirements.

Process Phases
The following section describes how to configure a process phase.

Automatic Phases
When an automatic process phase is encountered, Batch Manager will first check if
a suitable unit is allocated. If so, Batch Manager will evaluate the status of the
phase. If the phase is Ready, the formula parameter values are downloaded to the
control system and the phase is started. Typically, the phase status will change to
Run. Batch Manager will monitor the status of the phase waiting for it to change.
Under normal circumstances, the phase status will eventually go to Done. Upon
seeing the Done, Batch Manager will Reset the phase. The phase status will return
to Ready. When Batch Manager evaluates the phase and finds a status of
Interlocked, Batch Manager will wait indefinitely until the interlock has cleared.
When Batch Manager finds a status of Run, Held, Done, or Aborted, Batch
Manager will display an error message for an unexpected phase status.
Batch Management System 353

Manual Phases
Manual Type Process Phases require unit allocation and also require the operator to
Acknowledge the completion of the phase. Manual Process Phases typically
include instructions which the operator must perform. When the instructions have
been performed, the operator Acknowledges the phase.
Manual phases can also be used to write data to the control system. This is
accomplished by assigning a tag to the Target element in the process model. When
the phase is executed, Batch Manager will write the Target Value, that was assigned
in the recipe, to the control system.

Process Phases with Material Input Parameters


Automatic Process Phases
When an automatic process phase with an input parameter is encountered in a
recipe, Batch Manager evaluates the units available in the train and allocates a unit
using the rules of allocation. The phase status is then evaluated and executed when
possible. The material information is stored in the historical database, but Batch
Manager does not interact with the materials database for lot tracking information.

Manual Process Phases


When a manual process phase is encountered, Batch Manager is responsible for the
execution of the phase. The phase does not execute in the control system, although
Batch Manager may use information, such as the Actual Value as measured by the
control system in executing the phase. The material information is stored in the
historical database, but Batch Manager does not interact with the materials database
for lot tracking information. Depending on how the phase is configured in the
process model, operator interaction with the phase will vary. Listed below are
various approaches that can be configured in the process model for manual process
phases.

Manual Addition using a connected Scale


Material is weighed by a scale that is attached to the control system. The operator is
required to enter the material lot code for the material if configured in process
model. When the weight is within the material deviations, the operator
Acknowledges the completion of the phase. Batch Manager logs the material id,
target quantity, actual quantity, and lot code to history.
When the addition requires multiple lots of the same material, the operator must
enter the lot code for the first lot and Acknowledge the completion of the phase.
Batch Manager will decrement the actual quantity from the target, recalculate the
target quantity, and re-execute the phase. This will occur until the original target is
achieved.

Manual Addition using an unconnected Scale


Material is weighed on a scale that is not attached to the control system. The
Operator is required to enter the material lot code if configured in the process
model, the actual weight, then Acknowledge the completion of the phase.
354 Chapter 9

When the addition requires multiple lots of same material, the operator must enter
the lot code for the first lot and Acknowledge the completion of the phase. Batch
Manager will decrement the actual quantity from the target, recalculate the target
quantity, and re-execute the phase. This will occur until the original target is
achieved.

Acknowledge Addition of Material


In this approach, materials are pre-weighed prior to the final production. As
materials are added, the operator Acknowledges the addition of the material. Batch
Manager records the material usage by using the target quantity as the actual
quantity.

Manual Addition - with Scale and without Scale


The addition may have two parts (for example 60 pounds of salt must be added. Salt
comes in 50 pound bags). A scale is attached to the control system. A 50 pound bag
is added to the batch. The operator enters 50 as the actual quantity and the material
lot code then Acknowledges the completion of the phase. Batch Manager will
decrement the actual quantity from the target, recalculate the target quantity, and re-
execute the phase. The remaining material (10 pounds) is weighed on the scale.
When the weight is within tolerances, the Operator must enter the material lot code
and then acknowledge the completion of the phase.
In order for the above manual addition to function properly, control system logic
must be designed to disable the scale input when the operator enters the actual bag
weights. A Control Button could be assigned to do this. The Control Button would
disable the scale from overwriting the entered value.

Process Phases with Material Output Parameters


When Batch Manager encounters a process phase that has an output type parameter,
the appropriate unit will be allocated. The actual quantity of product transferred
may or may not be measured automatically. In some cases it is desirable for the
operator to enter in the actual quantity. Either of these situations can be handled and
is determined by how the phase is configured in the process model. Batch Manager
will log to history the target and measured or operator entered actual value, if the
phase is configured as such. If the actual is not measured or the operator is not
required to enter the actual, Batch Manager will assume the actual is equal to the
target and both are logged.
For automatic process phases, Batch Manager will assign the unit to the material
and increment the material quantity in the materials database. The quantity
produced and the associated batch identification (Campaign ID, Lot ID, and Batch
ID) are logged to history.

Transfer Phases
The following section describes how to configure a transfer phase.
Batch Management System 355

Automatic Transfer Phases


When an automatic transfer phase is encountered, Batch Manager will first check if
a suitable destination unit is allocated. Once the destination unit is decided, Batch
Manager must determine the source of the transfer. If material input parameters are
defined, Batch Manager uses the material database configuration for the required
source unit. For non-material transfer phases, either a previously allocated source
unit is used or the first source unit encountered in the model is selected. In both
cases, the source unit is not automatically allocated. Once the source and
destination units have been determined, the connection is allocated. Following
allocation, Batch Manager will evaluate the status of the phase. If the phase is
Ready, the formula parameter values are downloaded to the control system and the
phase is started. Typically, the phase status will change to Run. Batch Manager will
monitor the status of the phase waiting for it to change. Under normal
circumstances, the phase status will eventually go to Done. Upon seeing the Done,
Batch Manager will Reset the phase. The phase status will return to Ready. When
Batch Manager evaluates the phase and finds a status of Interlocked, Batch
Manager will wait indefinitely until the interlock has cleared. When Batch Manager
finds a status of Run, Held, Done, or Aborted, Batch Manager will display an error
message for an unexpected phase status.

Manual Transfer Phases


Manual Type Transfer Phases require unit and connection allocation and also
require the operator to Acknowledge the completion of the phase. Manual Transfer
Phases typically include instructions which the operator must perform. When the
instructions have been performed, the operator Acknowledges the phase.

Transfer Phases with Material Input Parameters


Automatic Transfer Phases
When an automatic transfer phase with an input parameter is encountered in a
recipe, Batch Manager performs a search of the Materials database in order to find
the unit containing the material to be transferred. The connection phase that will be
executed has a source unit corresponding to the unit found in the materials database
and the allocated unit as the destination.
When the material transfer is complete, Batch Manager will decrement the material
quantity from the materials database if material tracking information has been
defined. The quantity used and the associated lot number(s) are logged to history.
When the material has multiple tracking lots defined, it is possible to use material
from more than one lot in a batch. When this occurs, Batch Manager will use a first-
in, first-out (FIFO) approach and decrement the first lot to zero, remove the lot
from the material database and decrement the remaining quantity from the second
lot. Both quantities and their respective lot numbers are logged to history.

Note The FIFO approach can be changed to last-in, first-out (LIFO) by using the
LIFO Materials application parameter for Batch Manager in the Environment
Editor.
356 Chapter 9

Semi-automatic Transfer Phases


When a semi-automatic transfer phase is encountered, Batch Manager will require
an Acknowledge from the operator before the “automatic” part of the phase is
executed. However, Batch Manager does not search the Materials database for the
location of the material. A common semi-automatic transfer phase is a Drum
Addition. Typically, the phase requires the operator to prepare the drum and
delivery system before the “automatic” part of the phase can be executed. Also, the
operator may be required to enter a material lot code before recipe execution
continues. The lot code requirement is set when the phase is defined in the process
model.

Manual Transfer Phases


When a manual transfer phase is encountered, Batch Manager is responsible for the
execution of the phase. The phase does not execute in the control system, although
Batch Manager may use information, such as the Actual Value as measured by the
control system in executing the phase. The material information is stored in the
historical database, but Batch Manager does not interact with the materials database
for lot tracking information. Additionally, Batch Manager will write the Target
Value to the control system if a tag is assigned to the Target element in the process
model.
By default, when a phase executes, material information is stored in the historical
database whenever the Lot Code tag is enabled in the process model. In this case,
Batch Manager does not interact with the materials database for lot tracking
information.
If a material is assigned to a unit in the Material Location Assignment Editor, then
the associated lot tracking information will be stored to the historical database.
Depending on how the phase is configured in the process model, operator
interaction with the phase will vary. Listed below are various approaches that can
be configured in the process model for manual transfers.

Manual Addition using a connected Scale


Material is weighed by a scale that is attached to the control system. The operator is
required to enter the material lot code for the material if configured in process
model. When the weight is within the material deviations, the operator
Acknowledges the completion of the phase. Batch Manager logs the material id,
target quantity, actual quantity, and lot code to history.
When the addition requires multiple lots of the same material, the operator must
enter the lot code for the first lot and Acknowledge the completion of the phase.
Batch Manager will decrement the actual quantity from the target, recalculate the
target quantity, and re-execute the phase. This will occur until the original target is
achieved.

Manual Addition using an unconnected Scale


Material is weighed on a scale that is not attached to the control system. The
Operator is required to enter the material lot code if configured in the process
model, the actual weight, then Acknowledge the completion of the phase.
Batch Management System 357

When the addition requires multiple lots of same material, the operator must enter
the lot code for the first lot and Acknowledge the completion of the phase. Batch
Manager will decrement the actual quantity from the target, recalculate the target
quantity, and re-execute the phase. This will occur until the original target is
achieved.

Acknowledge Addition of Material


In this approach, materials are pre-weighed prior to the final production. As
materials are added, the operator Acknowledges the addition of the material. Batch
Manager records the material usage by using the target quantity as the actual
quantity.

Manual Addition - with Scale and without Scale


The addition may have two parts, For example, 60 pounds of salt must be added.
Salt comes in 50 pound bags. A scale is attached to the control system. A 50 pound
bag is added to the batch. The operator enters 50 as the actual quantity and the
material lot code then Acknowledges the completion of the phase. Batch Manager
will decrement the actual quantity from the target, recalculate the target quantity,
and re-execute the phase. The remaining material (10 pounds) is weighed on the
scale. When the weight is within tolerances, the Operator must enter the material lot
code and then acknowledge the completion of the phase.
In order for the above manual addition to function properly, control system logic
must be designed to disable the scale input when the operator enters the actual bag
weights. A Control Button could be assigned to do this. The Control Button would
disable the scale from overwriting the entered value.

Transfer Phases with Material Output Parameters


When Batch Manager encounters a transfer phase that has an output type parameter,
the appropriate destination unit and connection will be allocated. The actual
quantity of product transferred may or may not be measured automatically. In some
cases it is desirable for the operator to enter in the actual quantity. Either of these
situations can be handled and is determined by how the phase is configured in the
process model. Batch Manager will log to history the target and measured or
operator entered actual value, if the phase is configured as such. If the actual is not
measured or the operator is not required to enter the actual, Batch Manager will
assume the actual is equal to the target and both are logged.
For automatic transfer phases, Batch Manager will assign the unit to the material
and increment the material quantity in the materials database. The quantity
produced and the associated batch identification (Campaign ID, Lot ID, and Batch
ID) are logged to history.
358 Chapter 9

Continue Mode Execution


As described previously, under normal circumstances Batch Manager will wait
until a process or transfer phase becomes Done or Aborted before executing the
next phase in the recipe. This behavior can be changed by enabling the Continue
Mode property for a phase in the recipe. When encountered in a batch, Batch
Manager will start the phase as it normally does. However, Batch Manager will not
wait for the phase to complete before moving on in the batch. As soon as the phase
returns a status of Run or Held, Batch Manager will continue on in the recipe. Any
phase with the continue mode property enabled and executing will remain in the
active Phase List and can be monitored and controlled just as any other active
phase. If the recipe execution has moved on to a subsequent operation or unit
procedure, the operation and/or unit procedure with a phase running with the
continue mode property enabled will be displayed in cyan. This allows the operator
to easily identify unfinished operations.

Note Use caution when enabling the continue mode property for any phase within
a loop object. Because of the risk of re-executing an active phase, batch execution
will not proceed into the loop in which a phase with the continue mode property
enabled is active. As soon as the phase completes, batch execution will proceed into
the loop.

Because the phase is executing normally, it will also have to finish just like a
normal phase. Batch execution will not end until all phases have completed.
Therefore, any phase with the continue mode property enabled is required to
complete either normally according to the internal phase logic or based upon some
external signal. An example of the use of the continue mode is vessel agitation. It is
not unusual for agitation to span multiple operations. When this is required, the
recipe builder is forced to use "one-shot" phases that start the agitator and then
complete, or to use complex branching to keep the agitator running throughout the
course of the multiple operations. Using one-shot phases is undesirable because
even though the agitator remains running, the phase is no longer active and cannot
be controlled. The branching option is also undesirable if the recipe builder does
not have experience with the process. The continue mode option allows the
agitation phase to be placed in the recipe as required without complex branching
and will remain active until it ends on its own or until another phase or external
signal tells the phase to end. Thus, it is always visible and can be controlled.

Contention for Shared Equipment


In most plants, there are situations where one piece of equipment is shared by many
units. In the example process shown below, Pump 1 is used to transfer product from
Unit 1 to Unit 3, Unit 1 to Unit 4, Unit 2 to Unit 3, and Unit 2 to Unit 4.
Batch Management System 359

Unit 1 Unit 2

Pump 1

Unit 3 Unit 4

There are several methods for managing the contention of the use of the pump. One
of the methods defines each source unit - destination unit combination as a
connection in the process model. With this method only one of the transfers (one
connection) can be functioning at any one time because there is only one Pump. For
this method in the above example, there will be one connection phase for each
connection. Therefore, in our example, there will be four phase logic blocks in the
control system. Since there is only one pump to handle all four connections, the
four phase logic blocks must be interlocked with one another.
Using this method, contention for use of the pump is handled as follows. When the
batch in Unit 1 or Unit 2 is ready to transfer to either Unit 3 or Unit 4 and the
destination unit is Ready, then Batch Manager will allocate the destination unit.
Knowing the source unit and the destination unit, Batch Manager can determine
which phase logic block to enable to execute the transfer. If a transfer phase is
executing between Unit 1 and Unit 3, the phase blocks associated with the three
other connections are inhibited because of the interlocking done in the control
system. If Batch Manager needs to execute a transfer between Unit 2 and Unit 4, it
will wait until the Unit 1 to Unit 3 transfer is complete. When the transfer is
complete, the interlocks will be released on the three other connection phases. The
phase status will change from Interlocked to Ready, and Batch Manager will then
be able to proceed with the transfer.
Another method requires defining segments, as well as connections, in the Process
Modeling Editor. The segments would assume one of the statuses defined in the
model. The availability of each of the connections would correspond to the status of
all of the segments that have been assigned to the connection. Batch Manager
would only be able to utilize connections that were available.
Using this method, contention for use of the pump is handled as follows. When the
batch in Unit 1 or Unit 2 is ready to transfer to either Unit 3 or Unit 4 and the
destination unit is Ready, then Batch Manager will evaluate the availability of the
connection from the status of each segment assigned to the connection. If an
available connection is found, the destination unit and connection are allocated, and
the proper connection phase is enabled. This method requires no extra control
system interlocking. When the transfer is complete, the segment statuses will
change accordingly, and the availability of the connection will be automatically
updated.
360 Chapter 9

If connections and/or segments are not defined in the process model and transfers
are performed by coordinating the simultaneous execution of multiple process
phases, Batch Manager evaluation process is different. Batch Manager will insure
that a suitable source unit and destination unit are allocated. However, the control
system will be responsible for interlocking the remaining process phases from
executing until the transfer of material has been completed.

Runtime Recipe Procedure Jumps - Jump Mode


Runtime recipe procedure jumps, or the Jump Mode, is a feature of the batch
management system that offers the flexibility to allow an operator to reposition the
execution pointer within a batch and then restart it at that point. The Jump Mode is
available in Batch Display. This feature, along with the flexibility it provides, can
also produce undesired results without careful consideration. The following
selection describes the actions taking place within the batch management system
related to the Jump Mode.
When a batch is put in Held, Batch Manager sets the Hold bit for all units allocated
to the batch and all phases that are executing in the batch. Therefore, all allocated
Units and all active phases will be in Held. When the Jump Mode is initiated, the
user is notified by a dialog that all Held phases will be aborted. Upon
acknowledgement, the Batch Status changes from Held to Locking, and then to
Locked. What essentially occurs when a batch changes from Held to Locking is a
batch Abort. Specifically, all of the phases associated with the batch are aborting.
When the status changes from Locking to Locked, all phases are aborted and all
activity is logged to History.
When the batch status is ‘Locked', the batch no longer has an execution pointer. If,
at this point, a user would attempt to close Batch Display or View or exit Jump
Mode an error message will be displayed disallowing the action. If Jump Mode had
been entered and an abnormal termination of the Batch Display or Batch View
occurs, the batch will be placed in Held (as if Jump Mode had not yet been
initiated) and a message indicating that the batch does not have and execution
pointer is displayed. In this case, if a user attempts to Restart the batch (which has
no execution pointer) a message is displayed of the fact advising the user to go to
Jump Mode, define a pointer, and then Restart the batch.
Abnormal termination of a batch that has not been Started will result in the batch
changing from a Locked to Ready status. Under these circumstances, the execution
pointer will be at the start of the recipe procedure and will allow a batch to Start. A
batch that does not have an execution pointer can be Aborted. The execution
pointer is always at the start of the recipe procedure for a batch with a Ready status.

Jump Mode Security


The Jump Mode can be implemented using batch system security. Configuring
security for the Jump Mode can help prevent untrained or unauthorized operators
from unknowingly entering the Jump Mode and causing undesired results to recipe
execution. Using the Security Editor, you can configure the Done_By and
Check_By security levels to limit access to the Jump Mode. In this case, the entry
of an operator name and password as well as a supervisor name and password
would be required in order to access the Jump Mode.
Batch Management System 361

If Done_By security is configured, a security dialog will be displayed when the


operator attempts to enter Jump Mode. If a valid ID and Password are entered, the
operator is allowed to use the mode. If both Done_By and Check_By security are
enabled, then the operator and a second user (perhaps a supervisor) will be required
to enter a valid ID and Password.
All Done_By and Check_By security information is logged to History.
For more information on the Security Editor, see Chapter 13, "Security System."

Report Triggering
Reports can be linked to any phase in a recipe procedure. The report will be
triggered when the phase is complete. Also, if an end of batch report was defined,
Batch Manager will signal the Information Server upon completion of the batch.
Batch Manager will pass the name of the report, the Campaign ID, Lot ID, and
Batch ID.

End Of Batch Operation


When the recipe procedure has executed to completion or a batch is Aborted, Batch
Manager will release any allocated units and will trigger an End of Batch Report if
configured.

Batch Runtime Errors


The following errors may be displayed during batch execution. In all cases, when
an error occurs, an error message is displayed.

Error: Cannot change mode of <MANUAL OPERATION> batch!


Reason: Manual Mode is the only valid Batch Execution Mode when in Manual Operation.
Corrective Action: Acknowledge Error Window.
Error: Unexpected phase status of READY!
Error: Unexpected phase status of RUN!
Error: Unexpected phase status of HELD!
Error: Unexpected phase status of DONE/ABORTED!
Error: Unexpected phase status of INTERLOCK!
Reason: #1 - You are trying to execute the same phase in parallel in your recipe procedure, or
there is a problem with the phase logic.
Corrective Action: Correct the recipe procedure or the phase logic.
Reason: #2 - Batch Manager was shutdown and phase logic has been left in an improper state.
Corrective Action: Manually reset the phase and restart Batch Manager.
Error: Cannot access material “material id”! - Hold Batch; Correct Problem; Restart.
Reason: Phase is an Automatic Transfer. Batch Manager cannot find the material in the Train
assigned to the batch.
Corrective Action: Put the batch in Hold, correct the problem, then Restart the batch. The problem may
require one or both of the following corrections.
1. Change the Train to include the appropriate units containing the material in question.
362 Chapter 9

2. Make the appropriate material-unit assignment using the Material Editor.


Error: Cannot access transfer “transfer name”! - Hold Batch; Correct Problem; Restart.
Reason: #1 - A connection associated with the transfer cannot be found in the train.
Corrective Action: Put the batch in Hold. Modify the Train to include the appropriate unit that would
support the transfer. Restart the batch.
Reason: #2 - The batch is assigned to a train that cannot properly execute the recipe.
Corrective Action: Make sure the batch is assigned to a train that can properly execute the recipe.
Reason: #3 - The connection has not been entered in the process model.
Corrective Action: Abort the batch. Stop execution of the Batch Management System. Add and assign the
connection to the appropriated transfer class using the Process Model Editor. Restart the
Batch Management System.
Error: Cannot access process “process name”! - Hold Batch; Correct Problem; Restart.
Reason: A unit associated with the process cannot be found in the train. The unit needed for the
process was most likely deleted from the train after the batch was started.
Corrective Action: Put the batch in Hold. Modify the Train to include the appropriate unit that would
support the transfer. Restart the batch.
Error: Invalid Query Data
Reason: An InBatch database is incompatible or corrupt. This error is related to the security
system.
Corrective Action: Verify/correct database.
Error: Phase param tag read timeout (Note: Error is reported in the Batch Logger)
Timeout exceeded allowable value! for param tag read at end of phase - only when
using remote IO Server.
Reason: MemTagMngr is local; therefore, the memory tag parameter uses the local server’s
time. The phase done tag is a remote tag and may have a different time (perhaps several
minutes or more). When BatchMngr compares the time difference between the two, it
will wait MemTag's time stamp to match that of the remote tag timestamp.
Corrective Action: Synchronize the system time settings on the server and the remote system.

Batch Schedule Errors


The following errors may be displayed during batch scheduling. In all cases, when
an error occurs, an error window will be displayed. Corrective action must be taken
and the window acknowledged by the operator before the batch execution will
return to normal.

Error: Entry is not next in schedule!


Reason: Schedule Execution mode is set for Execute in Order and the selected batch is
not the next READY batch in the schedule.
Corrective Action: Select the next batch that is READY in the schedule.
Error: Cannot find entry!
Reason: The batch that was selected from the schedule was deleted by another operator
using the Batch Scheduler just prior to selection.
Corrective Action: Select another batch.
Error: Batch Status is not READY!
Batch Management System 363

Reason: You are attempting to Start a batch that appears to have a status of READY.
Just prior to starting the batch, another operator either Started it from another
Batch Display or the status of the batch was changed to OPEN, using the Batch
Scheduler.
Corrective Action: Select another batch.
Error: Cannot find recipe!
Reason: You are attempting to Start a batch whose recipe has been deleted from the
recipe database.
Corrective Action: Re-schedule the batch with a valid recipe.

Warm Restart
Batch Manager has the capability to recover from abnormal events such as system
shutdowns due to hardware failures and other unanticipated failures. This
functionality is known as Warm Restart. As the batch management system executes
batches, all batch execution and equipment allocation information is written to
multiple data files. In the event of a system failure, these files will be read by the
batch management system when restarted. The data in these files allows the batch
management system to resume batch operation.

Starting Batch Manager with Warm Restart Function


Batch Manager is started in the usual manner to enable the Warm Restart
functionality. There are no special start-up commands necessary. The only
requirement for Warm Restart is the presence of a .BatchWR folder located in the
configuration folder (config_A). The .BatchWR folder is automatically loaded in
the configuration directory following system installation
(…\Batch\cfg\config_A\.BatchWR).
364 Chapter 9

Batch Execution
As the batch management system executes batches and allocates equipment, Batch
Manager stores each event in data files residing in the .BatchWR folder. By
retaining all of the batch execution and equipment allocation actions, Batch
Manager can resume batch execution following a system failure. In the event of a
failure, the sequence of operation in the following list will occur. Operator
interaction is denoted where applicable.
1. Upon the occurrence of a system failure, the batch control system must be
completely shutdown if the failure did not automatically accomplish this.
2. The batch control system must then be restarted.
3. All equipment allocated by any of the previously active batches will remain
allocated.
4. All batches previously in the Batch Scheduler will be returned to the scheduler
with their previous status. The exceptions to this are that the Execute in Order
option in the Batch Scheduler will not be set upon restarting the system and all
batches that were in the run state prior to the failure will be in the held state
when the system is restarted.
For more information on changing the mode in which batches are resumed, see
“Batch Restart Mode” on page 364.
5. The statuses of all phases are unchanged during a system failure that does not
involve the control system. In other words, phases that were executing before
the failure will continue to execute during the failure. However, phases that
previously had or change to a status of held, done, or aborted will remain in
that state until the batch management system is restarted. Batch Manager
resumes the batches controlling these phases, and upon resuming these
batches, Batch Manager restarts or resets the affected phases.
6. The mode of all batches and the value of all phase parameters will be
unchanged following the restart of a failed system.

Batch Restart Mode


The default action of the batch management system upon restarting the system after
a failure is to resume all previously active batches with a status of held. This will
ensure that all unit allocation is resolved properly and that no new phases are
started automatically and causing a possible operator safety issue. However, this
default batch-held state may be overridden when Batch Manager is restarted. If it is
the intention of the personnel with the proper authority to resume system operation
with all batches retaining the state each was in when the failure occurred, then
Batch Manager application must be configured with the Restarting Batches
application parameter in the Environment Editor.
For more information on configuring the Environment Editor, see Chapter 3,
"Environment Management System."
When Batch Manager is started with the Restarting Batches option, all batches that
were in run resume with a status of run. This applies for all possible batch states.
Batch Management System 365

WARNING! It is strongly recommended that the Restarting Batches option be


used only by personnel that are very familiar with the operation of the batch system,
the operation of the control system, and the process itself.

Control System Synchronization


In cases where the control system phase logic is reset or executed manually during
a failure of the batch control system, it is possible for the two systems to disagree
on a phase status when the batch control system is restarted. In most situations, the
batch management system is able to recover from such a failure. However, there are
times when the batch management system is unable to resolve the phase transition,
or it is unsafe for the phase to be initiated.
The table below provides a summary of the possible states that could be
experienced by a system shutdown. The rows refer to the current status of the phase
in the control system following a shutdown and restart. The columns refer to the
status of the phase in the batch control system following a shutdown and restart.
Valid entries correspond to situations from which the batch management system
can recover. Re-Sync entries correspond to situations from which the batch
management system receives an unexpected status from the control system and
must re-sync itself. In the re-sync cases, Batch Manager assumes the status of the
control system phase status is correct and will re-sync with the control system and
continue operation.

Last Known Phase Status as Viewed by Batch Manager

Current Control System


Phase Status Ready Run Held Interlock None
Ready Valid Re-Sync Re-Sync Valid Valid
Interlock Valid Re-Sync Re-Sync Valid Valid
Run Valid Valid Valid Re-Sync Re-Sync
Held Valid Valid Valid Re-Sync Re-Sync
Done Valid Valid Valid Re-Sync Valid
Aborted Valid Valid Valid Re-Sync Valid

For example, suppose the batch management system was controlling a phase that
was previously in a status of Run. If the batch control system is shutdown and the
phase in the control system continues execution and becomes Done before the batch
control system is restarted, the batch management system recognizes this as a valid
status transition, updates the status of the phase to Done, and initiates a phase Reset.
However, if the control system is also shutdown and the status of the phase
becomes Ready, then Batch Manager assumes the control system and possible
human intervention caused the phase to go to Ready. Batch Manager assumes the
phase is done and continues on to the next phase.
366 Chapter 9

Manual Operation
The flexibility that Manual Operation provides does present the possibility of some
unusual phase states. This section describes the precautions and considerations that
you should be aware of when using phantom batches. If you need to access Manual
Operation, you must be aware of the phases that are executing manually, and must
be able to resume or abort the phases after a system failure. You should also be
aware of how Batch Manager initializes Batch Display for Target, Hi Dev and Lo
Dev values when tags are assigned to them.
If Manual Operation is being utilized and a system failure occurs, the following
sequence of events will occur. Operator actions are required to rectify the manual
operation status.
1. All equipment that had been manually allocated in order to execute phases
through the manual operation batch will not be allocated when the system is
restarted.
2. All phases that were active prior to the system shutdown will be active while
the system is shutdown. However, the state of the phases will be unknown to
the system when it is restarted.
3. The operator using manual operation is responsible for returning to the manual
operation batch, manually allocating the equipment that had been previously
manually allocated, and starting the phases that had been previously active.
4. Upon re-starting the previously active phases, the status of the phase will be the
current status of the phase in the control system. Thus, the phase may go to run,
held, done, or aborted depending on the actual state of the phase in the control
system.
5. The operator can continue manual operation as normal.

Note Manual Operation can be made accessible only by personnel with the proper
security clearance. Therefore, it is their responsibility to clean up the manual
operation phases following a system failure. Failure to properly clean up the
manually operating phases can cause problems when scheduled batches require the
use of the “stray” phases. It is also recommended that when Manual Operation is in
use and a system failure occurs, that Batch Manager be restarted without the
Restarting Batches option. This will ensure that all batches are resumed in held and
that none of these batches can automatically allocate equipment that is needed to
clean up any phase executed using manual operation.

Batch Display Attribute Considerations


If you are using Manual Operation and have created and configured tags for the
Target, Hi Dev, and/or Low Dev elements in your process model, you must be
aware that the elements displayed in Batch Display, regardless of how they are
configured in the process model database may not appear as you expect. For
example, in your process model, you may have created a tag for an analog data
class. For the ‘Hi Dev’ element, you may have disabled the ‘Edit Allowed’
attribute. When you schedule and execute a phantom batch, the ‘Edit Allowed’
attribute of the tag will be enabled. Batch Display will therefore allow the ‘Hi Dev’
value to be edited even though your process model was configured to disable it.
Batch Management System 367

The following table shows the relationship between each tag data class and
element, and how the Enable Display and Edit Allowed attributes are forced in
Batch Display.

Tag Display Attribute


Tag Data Class and Element Enable Display Edit Allowed
Analog Target Hi Dev Low Dev Always Always
Discrete Target N/A N/A Always Always
String Target N/A N/A Always Always
Enumeration Target N/A N/A Always Always
368 Chapter 9
History System 369

C H A P T E R 1 0

History System

The History System databases are located on a Batch Information Server. The
Information Server uses Microsoft SQL Server which stores and archives all
information related to the production of a batch. This includes events, process data,
production information, material usage, operator comments, operator actions,
equipment used, etc. Historical data can be accessed with Seagate Crystal Reports
to develop comprehensive reports for your batch system requirements.

Contents
• Overview
• History Database Tables

Overview
Historical batch information is stored on a Batch Information Server. The
Information Server uses Microsoft SQL Server, and is dedicated to the task of
providing all of the historical database requirements for the batch system. At the
Batch Server, a message queue mechanism guarantees that data is transmitted to the
Information Server. This “guaranteed delivery” is accomplished by maintaining the
data locally in the case of a disconnection and then retransmitting the data when the
connection is restored. All data is time stamped by the Batch Server so that if data
communications to the Information Server is interrupted, the time and date stamps
are still valid. Data transmission to the Information Server is the responsibility of
the History Queue Manager (HistQMngr) which runs on the Batch Server.
This User’s Guide is not intended to describe how to use Microsoft SQL Server.
However, you may want to use such tools as Microsoft Enterprise Manager for
maintaining and viewing information about the historical databases. For more
information on using Microsoft SQL Server refer to the appropriate user references.
For more information on maintaining your history databases, including History
Archiving procedures, see Chapter 24, "System Administration."
For more information regarding the Information Server and how to use Seagate
Crystal Reports, see Chapter 11, "Reporting System."
370 Chapter 10

History Database Tables


Use the following tables to understand the history data structure and facilitate
custom report generation using Crystal Reports.
For more information on reporting, see Chapter 11, "Reporting System."

Archive History
This table provides a history of archive activity.

Field Allow Null Type Length


Archive_ID No int 4
Archive_Device Yes varchar 30
Archive_Filename Yes varchar 254
Archive_IND Yes char 1
Description Yes varchar 512
HistoryDataEnd_DT Yes datetime 8
HistoryDataStart_DT Yes datetime 8
Job_Name No varchar 8
JobEnd_DT Yes datetime 8
JobStart_DT No datetime 8
Purge_IND Yes char 1
Restore_IND Yes char 1
Status_CD Yes char 1
Status_Description Yes varchar 256
Target_DB Yes varchar 30
History System 371

AuditEvent
The AuditEvent table contains one record for every security system event that is
generated during batch execution.

Field Allow Null Type Length


App_Name No varchar 16
Audit_Event_ID No uniqueidentifier 16
DateTime No datetime 8
Func_Lvl No varchar 8
Func_Name No varchar 16
Op_Station No varchar 16
Reason No varchar 4
Recipe_ID No varchar 16
User_Name No varchar 30
PassFail No smallint 2

BatchAdmin
The BatchAdmin table contains records for archive tasks defined in History
Archive. History Archive is responsible for the data in this table. The structure of
this table is presented below.

Field Allow Null Type Length


Archive_Desc No varchar 64
Archive_Device No varchar 30
Archive_Filename No varchar 254
Archive_IND No char 1
BatchAdmin_ID No char 10
Completion_CD No char 1
Completion_DT Yes datetime 8
Create_DT No datetime 8
End_DT No datetime 8
Purge_IND No char 1
Restore_IND No char 1
Schedule_DT No datetime 8
Scheduled_by_User No varchar 16
Start_DT No datetime 8
Status_CD No char 1
Status_Desc No varchar 255
Target_DB No varchar 30
372 Chapter 10

BatchDetail
The BatchDetail table contains a record for every event in the execution of a batch.
Events are defined using an Action Code. The Action Codes are defined in the
CodeTable table. Batch Manager is responsible for the data in this table. The
structure of this table is presented below.

Field Allow Null Type Length


Action_CD No smallint 2
Batch_Log_ID No char 10
CheckBy_User_ID No varchar 16
DateTime No datetime 8
DoneBy_User_ID No varchar 16
Operation_ID No varchar 16
Phase_ID No varchar 16
Phase_Instance_ID No char 10
PhaseLabel No varchar 8
UnitOrConnection No varchar 16
UnitProcedure_ID No varchar 16

BatchIdLog
The BatchIdLog table contains a record for each batch produced. Batch Manager is
responsible for the data in this table. The structure of this table is presented below.

Field Allow Null Type Length


Archive_CD No char 1
Batch_ID No varchar 16
Batch_Log_ID No char 10
Batch_Size No int 4
Campaign_ID No varchar 16
Log_Close_DT Yes datetime 8
Log_Open_DT No datetime 8
Lot_ID No varchar 16
Product_ID No varchar 16
Product_Name No varchar 16
Recipe_Approval_CD No smallint 2
Recipe_ID No varchar 16
Recipe_Name No varchar 16
Recipe_State No varchar 16
Recipe_Type No varchar 16
Recipe_Version No varchar 8
Train_ID No varchar 16
History System 373

BatchQuestion
The BatchQuestion table contains a record for every question displayed and
answered by the operator during the execution of a batch. Batch Manager is
responsible for the data in this table. The structure of this table is presented below.

Field Allow Null Type Length


Answer No smallint 2
Batch_Log_ID No char 10
CheckBy_User_ID No varchar 16
DateTime No datetime 8
DoneBy_User_ID No varchar 16
Question No varchar 40

CodeTable
CodeTable contains the codes and descriptions that are used in as part of other
history tables. This table is a permanent part of the history database and is not
modified during batch execution. The structure of this table as well as the codes are
presented below.

Field Allow Null Type Length


Code No smallint 2
Description No varchar 64

Code Description
201 Batch received Start
202 Batch received Hold
203 Batch received Restart
204 Batch received Abort
205 Batch set Done
206 Batch set Closed
207 Batch Warm Restart
208 Batch Redundancy Switchover
209 Batch Set Aborted
210 Allocate
211 Release
221 Wait for Allocate
222 Received Allocate
223 Wait for Entry Ack
224 Received Entry Ack
225 Received Interlock
226 Received Ready
374 Chapter 10

Code Description
227 Set Start
228 Received Run
229 Set Hold
230 Received Held
231 Set Restart
232 Set Abort
233 Received Aborted
234 Received Done
235 Set Reset
236 Received Bad Ready
237 Received Bad Run
238 Received Bad Held
239 Received Bad Done Aborted
240 Received Bad Interlock
241 Wait for Req Edits
242 Received Req Edits
243 Wait for Req Cmmt
244 Received Req Cmmt
245 Wait for Exit Ack
246 Received Exit Ack
247 Wait for Start
248 Received Start
249 Resync
250 Wait for Entry Doc View
251 Received Entry Doc Ack
252 Wait for Entry Doc Ack
253 Received Entry Doc Ack
254 Wait for Exit Doc View
255 Received Exit Doc View
256 Wait for Exit Doc Ack
257 Received Exit Doc Ack
260 Batch mode changed to Automatic
261 Batch mode changed to Semi-Automatic
262 Batch mode changed to Manual
265 Set Control Button1
266 Set Control Button2
270 Unit Hold set
271 Unit Restart set
272 Unit Abort set
273 Force Transition True
275 Transition Stop
History System 375

Code Description
276 Transition Start
277 Transition Stop
278 Transition True
279 Transition False
300 Yes
301 No
305 Approved for Production
306 Approved for Test
400 Batch set Run
401 Batch set Held
402 Batch set Aborting
403 Batch received Lock
404 Batch received locking
405 Batch received Locked
406 Batch received Unlock
410 Unit received Ready
411 Unit received Run
412 Unit received Held
413 Unit received Alarm
414 Skip
415 Done

Config
This table is used by the reporting system to hold configuration settings.

Field Allow Null Type Length


Tag No varchar 256
Value No varchar 256

DocViewEvent
The DocViewEvent table contains one record for each event that is generated when
batch execution requires a user to view and acknowledge an external document.

Field Allow Null Type Length


Batch_Log_ID No char 10
CheckBy_User_ID No varchar 16
DateTime No datetime 8
Doc_Desc No varchar 120
Doc_Loc No varchar 254
DoneBy_User_ID No varchar 16
376 Chapter 10

Field Allow Null Type Length


Operation_ID No varchar 16
Phase_ID No varchar 16
Phase_Instance_ID No char 10
Phase_Label No varchar 8
UnitORConnection_ID No varchar 16
UnitProcedure_ID No varchar 16

EquipStatus
The EquipStatus table contains a record for every unit or segment status transition.
Batch Manager is responsible for the data in this table. The structure of this table is
presented below.

Field Allow Null Type Length


CheckBy_User_ID No varchar 16
DateTime No datetime 8
DoneBy_User_ID No varchar 16
ESField1 No varchar 16
ESField2 No varchar 16
ESField3 No varchar 16
ESField4 No varchar 16
ESField5 No varchar 16
ESField6 No varchar 16
ESField7 No varchar 16
ESField8 No varchar 16
Last_Recipe_ID No varchar 16
New_Status No varchar 16
Old_Status No varchar 16
Operator_Comment No varchar 40
Recipe_ID No varchar 16
UnitOrSegment No varchar 16

ErrorQ
The ErrorQ table is used by the History Queue.

Field Allow Null Type Length


ErrorDescription No varchar 1024
ErrorID No int 4
LastAttempt No datetime 8
Message No varchar 1024
RetryCount No int 4
History System 377

Event
The Event table stores all InTouch Alarms and Events that the batch system can
associate to specific batches.

Field Allow Null Type Length


Alarm_State No varchar 10
Alarm_Type No varchar 4
Batch_Log_ID No char 10
DateTime No datetime 8
Engineering_Units No varchar 16
Event_CD No char 3
Event_Comment No varchar 50
Group_Name No varchar 32
Operator_ID No varchar 16
Priority No smallint 2
Tag_Name No varchar 84
Tag_Value No varchar 16
Tag_Value_Limit No varchar 16
UnitOrConnection No varchar 16

MaterialChar
The MaterialChar table contains a record for every characteristic defined for a
material used in a batch. Batch Manager is responsible for the data in this table. The
structure of this table is presented below.

Field Allow Null Type Length


Batch_Log_ID No char 10
Material_Char_Value No varchar 16
Material_Characteric No varchar 16
Material_ID No varchar 16
Material_Instance_ID No varchar 16
378 Chapter 10

MaterialInput
The MaterialInput table contains a record for every material consumed in a batch.
Batch Manager is responsible for the data in this table. The structure of this table is
presented below.

Field Allow Null Type Length


Actual_Qty No float 8
Batch_Log_ID No char 10
DateTime No datetime 8
Material_ID No varchar 16
Material_Instance_ID No varchar 16
Material_Name No varchar 40
Material_Parameter No varchar 16
Mtrl_Batch_ID No varchar 16
Mtrl_Campaign_ID No varchar 16
Mtrl_Lot_ID No varchar 16
Operation_ID No varchar 16
Phase_ID No varchar 16
Phase_Instance_ID No char 10
Phase_Label No varchar 8
Target_Qty No float 8
UnitOfMeasure No varchar 12
UnitOrConnection No varchar 16
UnitProcedure_ID No varchar 16

MaterialInputChange
The MaterialInputChange table contains a record for every quantity change made
by an operator for a material consumed in a batch. Batch Manager is responsible for
the data in this table. The structure of this table is presented below.

Field Allow Null Type Length


Batch_Log_ID No char 10
CheckBy_User_ID No varchar 16
DateTime No datetime 8
DoneBy_User_ID No varchar 16
Material_ID No varchar 16
Material_Parameter No varchar 16
New_Target_Qty No float 8
Old_Target_Qty No float 8
Operation_ID No varchar 16
Phase_ID No varchar 16
Phase_Instance_ID varchar 16
History System 379

Field Allow Null Type Length


Phase_Label No varchar 8
UnitOrConnection No varchar 16
UnitProcedure_ID No varchar 16

MaterialOutput
The MaterialOutput table contains a record for every material produced in a batch.
Batch Manager is responsible for the data in this table. The structure of this table is
presented below.

Field Allow Null Type Length


Actual_Qty No float 8
Batch_Log_ID No char 10
DateTime No datetime 8
Material_ID No varchar 16
Material_Name No varchar 40
Material_Parameter No varchar 16
Operation_ID No varchar 16
Phase_ID No varchar 16
Phase_Instance_ID No char 10
Phase_Label No varchar 8
Target_Qty No float 8
UnitOfMeasure No varchar 12
UnitOrConnection No varchar 16
UnitProcedure_ID No varchar 16

OperatorComment
The OperatorComment table contains a group of one or more records for every
comment entered by an operator during a batch. Each record contains a portion (40
characters) of the comment. The SeqNum field defines the comment sequence.
Batch Manager is responsible for the data in this table. The structure of this table is
presented below.

Field Allow Null Type Length


Batch_Log_ID No char 10
CheckBy_User_ID No varchar 16
DateTime No datetime 8
DoneBy_User_ID No varchar 16
Operation_ID No varchar 16
Operator_Comment No varchar 40
Phase_ID No varchar 16
Phase_Instance_ID No char 10
380 Chapter 10

Field Allow Null Type Length


Phase_Label No varchar 8
SeqNum No int 4
UnitOrConnection No varchar 16
UnitProcedure_ID No varchar 16

PhaseInstruction
The PhaseInstruction table contains a group of one or more records for every phase
instruction presented to an operator during a batch. Each record contains a portion
(40 characters) of the instruction. The SeqNum field defines the instruction
sequence. Batch Manager is responsible for the data in this table. The structure of
this table is presented below.

Field Allow Null Type Length


Batch_Log_ID No char 10
DateTime No datetime 8
Instruction No varchar 40
Operation_ID No varchar 16
Phase_ID No varchar 16
Phase_Instance_ID No char 10
Phase_Label No varchar 8
SeqNum No int 4
UnitOrConnection No varchar 16
UnitProcedure_ID No varchar 16

ProcessLog
The ProcessLog table contains a record for every data sample logged. Process Log
Manager is responsible for the data in this table. The structure of this table is
presented below.

Field Allow Null Type Length


Batch_Log_ID No char 10
Data_Class No varchar 12
DateTime No datetime 4
Tag_Name N varchar 84
Tag_Value No varchar 16
UnitOrConnection No varchar 16

ProcessVar
The ProcessVar table contains a record for the value of every phase process variable
parameter associated with a batch. Batch Manager is responsible for the data in this
table. The structure of this table is presented below.
History System 381

Field Allow Null Type Length


Actual_Value No varchar 80
Batch_Log_ID No char 10
DateTime No datetime 8
Operation_ID No varchar 16
Parameter_ID No varchar 16
Phase_ID No varchar 16
Phase_Instance_ID No char 10
Phase_Label No varchar 9
Target_Value No varchar 81
UnitOfMeasure No varchar 16
UnitOrConnection No varchar 16
UnitProcedure_ID No varchar 16

ProcessVarChange
The ProcessVarChange table contains a record for every change made to a phase
process variable parameter by an operator during a batch. Batch Manager is
responsible for the data in this table.

Field Allow Null Type Length


Batch_Log_ID No char 10
CheckBy_User_ID No varchar 16
DateTime No datetime 8
DoneBy_User_ID No varchar 16
New_Target_Value No varchar 80
Old_Target_Value No varchar 80
Operation_ID No varchar 16
Parameter_ID No varchar 16
Phase_ID No varchar 16
Phase_Instance_ID No varchar 10
Phase_Label No char 8
UnitOfMeasure No varchar 16
UnitOrConnection No varchar 16
UnitProcedure_ID No varchar 16

ReportDef

Field Allow Null Type Length


ID No int 4
AutoBatchEnd No int 4
382 Chapter 10

Field Allow Null Type Length


CrystalRpt No varchar 260
Description No varchar 120
Name No varchar 32
OutputPath Yes varchar 260
OutputToFile No int 4
OutputToPrinter No int 4
OutputType Yes int 4
Printer Yes varchar 260

ReportLog

Field Allow Null Type Length


ID No int 4
Filename No varchar 260
ReportName No varchar 32
TimeStamp No datetime 8

ReportOutputTypes

Field Allow Null Type Length


FilenameExtension No varchar 10
MimeType Yes varchar 50
Name No varchar 32
Value No int 4

ReportPrinters

Field Allow Null Type Length


Driver No varchar 252
Name No varchar 252
Port No varchar 252

ReportQueue

Field Allow Null Type Length


ID No uniqueidentifier 16
BeingProcessed No bit 1
FilenamePrefix No varchar 128
History System 383

Field Allow Null Type Length


Name No varchar 32
NumAttempts No int 4

ReportQueueParams

Field Allow Null Type Length


ReportQID No uniqueidentifier 16
Name No varchar 32
Value No varchar 8000

ReportViewers

Field Allow Null Type Length


Name No varchar 50

Transition
The Transition table contains a record for every transition event. The events are:
Start Transition, Transition False, Transition True and Transition Forced. Batch
Manager is responsible for the data in this table.

Field Allow Null Type Length


Batch_Log_ID No char 10
DateTime No datetime 8
Operation_ID No varchar 16
Transition_Desc No varchar 120
Transition_ID No varchar 16
Transition_Instance_ID No char 10
Transition_Label No varchar 8
UnitProcedure_ID No varchar 16

TransitionExpression
The TransitionExpression table contains a record for each Transition Expression
that is encountered during batch execution.

Field Allow Null Type Length


Batch_Log_ID No char 10
DateTime No datetime 8
Expression_Text No varchar 40
Operation_ID No varchar 16
384 Chapter 10

Field Allow Null Type Length


SeqNum No int 4
Transition_ID No varchar 16
Transition_Instance_ID No char 10
Transition_Label No varchar 8
UnitProcedure_ID No varchar 16

UserProfile
The UserProfile table contains a record that describes a user's identification.

Field Allow Null Type Length


Effective_TS No datetime 8
User_ID No varchar 16
User_Name No varchar 30
Reporting System 385

C H A P T E R 1 1

Reporting System

The reporting system provides users with the ability to schedule, view and print
reports relating to the batch history that is stored on the Batch Information
Server (BIS). The user interface for the reporting system is a web browser which
functions as a reporting client by way of an HTTP connection. Accesses to all
report configurations and batch history on the Batch Information Server is
established using a Microsoft Internet Information Server (IIS).

Contents
• Reporting System Components
• Reporting System Architecture
• Reporting System Security
• Using The Batch Reporting System
• Creating Reports

Reporting System Components


The reporting system utilizes a variety of software components. Some are industry
standard components and others are unique to the batch system. This section
describes the primary components of the reporting system. It is recommended that
you familiarize yourself with the components as this will enable you to more
clearly understand how to deploy the reporting system.

Information Server
The Information Server is an Intel-based PC, running under Windows NT 4.0 or
Windows 2000, that is dedicated to batch information management. The Batch
Information Server contains Microsoft SQL Server, a History Queue, History
Queue Reader Service, Report Queue, Report Queue Reader Service, and the Web
Server (IIS) components.
386 Chapter 11

History Queue
The History Queue is a first-in-first-out (FIFO) queue which is located on the
Information Server that is responsible for transferring all historical data from the
Batch Manager on the Batch Server to the Batch History Database on the
Information Server. The History Queue is also responsible for notifying the report
queue of End-of-Batch and End-of-Phase events which trigger reports.

History Queue Reader


The History Queue Reader is a background executing task (service) which runs on
the Batch Information Server and is responsible for reading report requests from the
history queue and queuing report jobs to the SQL Server database.

Microsoft Internet Information Server (IIS)


IIS is a Microsoft application for publishing documents to an intranet or the
internet.

Report Client
A Report Client is a Microsoft Internet Explorer (5.x or higher) that accesses the
Information Server by way of an HTTP connection (internet or intranet). The
Microsoft IIS on the Information Server contains the Active Server Page (ASP)
content for all Report Configuration, Report Scheduling and Report Viewing.

Report Configuration
Report Configuration is accomplished using ASP content that is hosted on the
Information Server and accessed using a Report Client. Report Configuration
allows users to create the mapping between the named report and the actual Crystal
Reports report file (.rpt) on disk. This tool also allows users to define the
Information Server’s report output printer and/or report file output path.

Report Queue
The Report Queue is a First-In-First-Out (FIFO) queue located on the Information
Server that handles all requests for reporting activity. The queue also contains all
parameter data necessary for the execution of the report.

Report Queue Reader


A background executing task (service) which coordinates the generation of reports
as directed from the report queue.

Report Schedule
Report Scheduling is accomplished using ASP content that is hosted on the
Information Server and accessed using a web browser on a client PC. It also allows
users to define schedules for the reports. Users can schedule reports on a one-shot
basis or a repeating basis.
Reporting System 387

Report View
Report Viewing is accomplished using ASP content that is hosted on the
Information Server and accessed using a web browser on a client PC. Report
Viewing allows users to run and view reports on demand. It also provides the ability
to save reports to disk and/or print them.

Reporting System Architecture


The following diagram is a high level overview of the reporting system.

Reporting Portal
Web Page

ReportSchedule

ReportConfig

ReportView

Report
Output

REPORTING CLIENT

HTTP
Web Browser

Batch Reporting
Web Server (IIS)
Server Components:
- Define
Crystal Server - Schedule
Component - Demand
- Security Intrface

SQL Server 7.0

Report Config
Crystal Reports Table
Directory

History
Tables

SQL Job
Table
BATCH INFORMATION
SERVER
388 Chapter 11

Reporting System Security


When the Information Server is installed, security is disabled. You can configure
security for the reporting system using the Security Editor to modify the parameters
for the ReportWeb application. When you enable security for the ReportWeb
application, the user will be required to enter a User ID and Password before the
system can be accessed.
For more information on configuring security, see Chapter 13, "Security System."

Using The Batch Reporting System


The Batch Reporting web page provides access to the Report Configuration, Report
Schedule and Report View options.
If you have upgraded from an earlier version of InBatch, and have created or
customized Crystal Reports (*.rpt files), it is recommended that you review them
before using them with the latest software. In most cases, editing the reports based
on the newer software will result in faster performance. Also, depending on your
specific implementation, older Crystal Report files may not work.

Note When the Information Server is installed, the Report Path is


C:\BatchInfoServer\Crystal by default. The default Report Path is always
associated with the C: drive even if the Information Server is installed on a different
drive. If the Information Server is installed on a different drive, then the Report
Path must be edited using the Config button on the Information Server's AdminWeb
page. If you change the Report Path, the InBatch_ReportQReader service must be
restarted. Users should consider this when creating and editing recipes that include
reports. For more information on using the AdminWeb page, see Chapter 24,
"System Administration."

Note InBatch 8.0 does not support expression triggered reports. If you were using
expression triggered reports in a previous version, they are converted when you
upgrade the databases and will appear in the list of configured reports on the
ReportWeb web page. The report names will exist in the ReportDef table in batch
history. However, these reports will not be generated.

Batch Reporting
To open the Batch Reporting web page:
On the Environment Display, click the BatchReport icon.
Reporting System 389

If you want to access the Batch Reporting web page from a different computer on
your network, you will need to use the following URL address: http://<computer
name>/ReportWeb, where <computer name> is name of the computer on which the
Information Server is installed.
390 Chapter 11

Report Configuration
The Report Configuration web pages allow you to view, edit, delete, and add report
configurations to the reporting system.

To open the Report Config web page:


1. Click the Report Config button on the Batch Reporting web page.
If security is enabled, enter a valid User ID and Password and click Login.
For more information on managing User IDs and Passwords, see Reporting
System Security later in this section.

2. All of the reports that have been previously configured will appear in the
Configured Reports list.
Reporting System 391

To Add a Report Configuration:


1. On the Report Config page, click the Add Report button to display the Add
Report Config page.

2. Enter the Report Configuration parameters described in items described in the


following table.
392 Chapter 11

Report Configuration Parameters


Parameter Description
Name The name of the report.
Description (optional) Optional text that describes the report.
Crystal Report Template The name of the Crystal Reports Template that will be used
for the actual report layout and content.
Auto Batch End Enable this check box to have the report generated
automatically at the end of a batch.
Output To Printer Enable this check box if you want the report to be printed on a
printer.

NOTE: To use this option you must modify the


InBatch_ReportQReader service logon to use the account
which was used to logon to the Information Server machine.
Printer The printer to which reports will be sent.
Output To File Enable this check box if you want to retain a file copy of the
report.
Output Path The name of folder on the Information Server where the
configured report will be printed.
Output Type The available report options are Crystal Report, CSV, Excel,
Text and Word. To view these reports, you must have the
appropriate application installed on the Report Client.
Reporting System 393

3. When you have finished entering the required configuration data, click the
Add Report button.

To View or Edit a Report Configuration:


1. On the Report Config page, in the Configured Reports list, click the Edit
icon for the Name of the report that you want to edit.
394 Chapter 11

2. Edit the report configuration using the Report Configuration Parameters table
shown earlier.
3. When you have completed your editing, click the Update Report button.

To Delete a Report Configuration:


1. On the Edit Report Config page, select the Delete button that corresponds to
the Name of the report that you want to delete.
2. When you delete the report, it is removed from the system and its name is
removed from the Information Server database.

Note Before you delete any reports, it is recommended that perform a back up.

Report Scheduling
The Report Schedule web pages allow you to define schedules for the reports that
you have configured. Reports can be schedule for one-shot execution or on a
recurring basis. The schedules are stored on the Information Server and can be
edited as your specific application requires.

To open the Report Schedule web page:


1. Click the Report Schedule button on the Batch Reporting web page.
If security is enabled, enter a valid User ID and Password and click Login. For
more information on managing User IDs and Passwords, see Reporting System
Security later in this section.
Reporting System 395

2. All report schedules that have been previously defined will appear in the
Report Schedule list.
396 Chapter 11

To Add a Report Schedule:


1. On the Report Schedule page, click the Schedule New Report button to
display the Add Report page.

2. Enter the parameters described in items described in the following table.


Reporting System 397

Report Schedule Properties


Parameter Description
Name The name assigned for the scheduled report.
Options Enable this check box if you want to enable the report. If the box is not enabled, then
the report will not be executed.
Report Selection Select the name of the Report Configuration from drop-down list. The list contains the
report configurations that you have defined using the Report Configuration pages.
Report Duration Allows you to set the amount of batch data you want to include by specifying a period
of elapsed time.

Preset Duration - Fifteen Minutes, Thirty Minutes, One Hour, Two Hours, Four Hours,
Eight Hours, One Day (24 Hours), and One Week

Custom Duration - Enter the duration in minutes


Description Optional text that describes the Report Schedule.

3. The Edit Report Schedules page shows all of the details of the schedules that
have just been defined.
4. When you have finished entering the required schedule data, click the Save
Report Data button.
398 Chapter 11

5. On the Report Schedule - Report Detail page, select the report schedule
interval at which the report recurs. The options are as follows.
• Add One Time Schedule
• Add Daily Schedule
• Add Weekly Schedule
• Add Monthly Schedule
Reporting System 399

Add One Time Schedule


Use this option if you want the report to execute one time.

Parameter Description
Name The name of the report.
Options Enable this check box if you want to enable the report. If the box is not enabled, then
the report will not be executed.
Run Date/Time Date and the Time that you want the report to execute.

Add Daily Schedule


Use this option if you want to schedule the report for daily execution.

Parameter Description
Name The name of the report.
Options Enable this check box if you want to enable the report. If the box is not enabled, then
the report will not be executed.
Occurs The frequency of recurrence (in days).
Daily Frequency The time and recurrence of the report. The options are:

Occurs Once At - Enter the specified time at which you want the report to execute.

Occurs Every - Enter the interval (in Hours or Minutes), and start and ending time at
which you want report execution to occur.
Duration The length of time during which you want the report to execute. The options are:

Start Date - The date of first execution.

No End Date - Use this option if you want report execution to occur on a recurring
basis (no stop date).

End Date - Use this option in conjunction with the Start Date to specify the duration of
the reporting period.

Add Weekly Schedule


Use this option if you want to schedule the report for weekly execution.

Parameter Description
Name The name of the report.
Options Enable this check box if you want to enable the report. If the box is not enabled, then
the report will not be executed.
Occurs The frequency of recurrence (in weeks). Check boxes are provided so that you can
select the day(s) of the week on which you want the report to occur.
400 Chapter 11

Parameter Description
Daily Frequency The time and recurrence of the report for selected day. The options are:

Occurs Once At - Enter the specified time at which you want the report to execute.

Occurs Every - Enter the interval (in Hours or Minutes), and start and ending time
(hh:mm am/pm) that you want report execution to occur.
Duration The length of time during which you want the report to execute. The options are:

Start Date - The date of first execution.

No End Date - Use this option if you want report execution to occur on a recurring
basis (no stop date).

End Date - Use this option in conjunction with the Start Date to specify the duration of
the reporting period.

Add Monthly Schedule


Use this option if you want to schedule the report for monthly execution.

Parameter Description
Name The name of the report.
Options Enable this check box if you want to enable the report. If the box is not enabled, then
the report will not be executed.
Occurs The frequency of recurrence (in months). The options are:

Specify the Day of the Month on which you want the report to occur.

Specify the day of the week and the monthly recurrence of the report.

Example 1: The 2nd Friday of every 6 months.


Example 2: The Last Day of every 1 month.
Example 3: The 1st Day of every 12 months.
Daily Frequency The time and recurrence of the report. The options are:

Occurs Once At - Enter the specified time at which you want the report to execute.

Occurs Every - Enter the interval (in Hours or Minutes), and start and ending time that
you want report execution to occur.
Duration The length of time during which you want the report to execute. The options are:

Start Date - The date of first execution.

No End Date - Use this option if you want report execution to occur on a recurring
basis (no stop date).

End Date - Use this option in conjunction with the Start Date to specify the duration of
the reporting period.
Reporting System 401

6. After you have defined the required Report Schedule, click Add Schedule on
the Edit Report Schedules page.

To View or Edit Report Properties and Schedules:


1. On the Report Schedule page, click the Name of the schedule that you want to
view or edit. This will display the Report Detail for the selected report.

2. To edit the Report Properties, click the here link.

3. Edit the Report Properties as required. Refer to the Report Schedule Properties
described earlier for more information. After you have completed your
changes, click the Save Report Data button to apply the changes.
402 Chapter 11

4. To edit a Report Schedule, click the Name of the schedule that you want to
edit.

5. Refer to the Report Schedule Properties described earlier for more information.

6. After you have completed your changes, click the Edit Schedule button to
apply the changes. The content of the page will vary depending on the type of
schedule that you have defined.

To Delete a Report Schedule:


1. On the Edit Report Schedule page, in the Report Schedules list, locate the
Name of the schedule that you want to delete and then click Delete.
The report schedule will be deleted from the Report Schedules list.

Report Viewing
The Report View web pages allow you to Run and View reports that have been
defined in your system.

To open the Report View web page:


1. Click the Report View button on the Batch Reporting page.
If security is enabled, enter a valid User ID and Password and click Login.
For more information on managing User IDs and Passwords, see Reporting
System Security later in this section.
Reporting System 403

2. All of the reports that have been previously defined will appear in the Reports
list.
404 Chapter 11

To Run a Report:
1. On the Report View page, click the Run button associated with the report that
you want to view. This displays the Report View - Run Report page.

2. The contents of the Run Report page will vary depending on the type of report
that you have defined.
3. After entering the required information, click the Run button.
The specific output for a report depends upon the configuration defined earlier
in this section. Running a report may result in an output to a browser window, a
file on disk, a printer device and so on.
Reporting System 405

To View a Report:
1. On the Report View page, click the View button associated with the report that
you want to view. This displays the View Report page.
All instances for the selected report that have been printed to a disk file are
listed.
2. Identify the instance (as determined by Date/Time) and then click the
corresponding View button.
Report formats are defined when you configure a report and include: Crystal
Report, CSV, Excel, Text and Word.

Note Viewing a report requires installation of the appropriate application on the


system on which you intend to view the report.

Creating Reports
The reporting system provides a Batch Journal report template which consists of a
comprehensive journal of batch history for a specific batch. Other report templates
are provided with the software; however, they are not supported and should only be
used as examples which you can use to design your own custom templates.

Unsupported Report Templates


The following report templates are intended only to be used as examples for the
development of custom reports. These templates are stored on the Information
Server (BatchInfoServer/Crystal folder) and are accessed using Seagate Crystal
Reports. A summary of each template is provided.

Report Name Description


BatchDetail Provides a summary of all batch execution activity for a batch.
BatchesByMaterial Provides a list of batches that used a specific material or material from a
specific vendor.
BatchListing Provides a summary report of all batches produced.
BatchQuestions Provides a summary of all questions for a batch.
DocumentViewEvents Provides a listing of the Documentation Review events for a recipe.
EquipmentStatus Provides a listing of all Equipment Status changes that occurred during
batch execution.
MaterialChar Provides a summary of all material characteristics for a campaign, lot
and batch.
MaterialInputChanges Provides a summary of the changes made by operators to the original
formula inputs quantities for a batch.
MaterialInputs Provides a summary of all materials consumed in a batch.
MaterialOutputs Provides a summary of all materials produced by a batch.
MaterialOutputTotals Totals all materials produced for a batch.
OperatorComments Provides a summary of all operator comments for a batch.
PhaseInstructions Provides a summary of all recipe phase instructions for a batch.
406 Chapter 11

Report Name Description


ProcessLog1 Provides a summary of all process log values for a batch.
ProcessLog2 Provides statistical information of all process log values recorded for a
specific tag.
ProcessLog3 Provides a graphical representation of all process log values recorded for
a specific tag.
ProccessVariables Provides a summary of all process variable target and actual values for a
batch.
ProccessVariablesChanges Provides a summary of changes made by operators to the original
formula process variables for a batch.
ProductByLot Provides a summary of all finished products produced.
ProductionReport Provides a summary report that includes number of finished products
produced, number of lots, number of batches and total quantity
produced.
SecurityListing Provides a summary report of all security related activity for a batch.
Process Logging 407

C H A P T E R 1 2

Process Logging

The Process Logging system captures data at periodic time intervals or based on the
occurrence of events, and then logs the data to a printer or to the history database
for storage.

Contents
• Overview
• Process Log Criteria
• Using Process Log Editor
• Creating a Process Log Group
• Using Process Log Manager

Overview
Use Process Log Editor to create Process Log Configurations and store them in the
Process Log Database. A Process Log Configuration consists of one or more groups
of tags with each group having its own logging criteria. The criteria specify how the
groups of tags and their respective values will be sampled and logged at runtime by
the Process Log Manager.
408 Chapter 12

Process Log Criteria


Each Process Log Configuration consists of one or more groups of tags. Each group
specifies its own general logging criteria, consisting of a Log Trigger, Log Event
and Data Destination. All of the tags that are a part of the process model are
available for selection.

General Logging Criteria


The following section describes how to configure process logging criteria.

Log Trigger
The Log Trigger defines the condition(s) that initiate logging for the group. The
Log Trigger options are Always and On Event. If Always is selected, logging will
begin as soon as the run-time Process Log Manager is started. If On Event is
selected, a true/false Boolean expression is evaluated. If the result of the expression
is true, logging occurs.
Expressions are defined using the Expression Editor. The Expression Editor is
used to create a true/false Boolean expression using any of the tags in the process
model. A Boolean expression, for example, could simply be a discrete tag. When
the tag is true (value of 1), logging for the group will begin. When the tag is false
(value of 0), logging will stop. An example is provided later in this section.
For more information on building expressions, see Chapter 14, "Expression Editor."

Log Interval
The Log Interval defines the frequency of sampling for each tag in the group. The
interval options are On Event, 2 seconds, 5 seconds, 10 seconds, 30 seconds, 1
minute, 5 minutes, 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, and 24
hours. If On Event is selected, a true/false Boolean expression must be defined.
The Expression Editor is used to create a true/false Boolean expression using any
tag in the process model. Each time the expression is true, the data values for each
of the tags in the group will be logged.

Note Logging only takes place when the trigger and interval settings are satisfied.
Process Logging 409

This example shows a simple Boolean expression that initiates logging whenever
ReactorA is allocated.
For more information on building expressions, see Chapter 14, "Expression Editor."

Data Destination
The data destination defines where the logged data will be directed during run-time
execution. Data can be logged to the Historian, a Printer, or both.

Tags
Tags that are logged as part of the group are assigned from the Tag Selection
window which is accessed from the Process Logger Group Editor. All analog and
discrete tags in the process model database are available for selection. You can
select as many tags as you want.
410 Chapter 12

Using Process Log Editor


Use Process Log Editor to create and edit configurations for logging. A
configuration consists of one or more groups of tags. The criteria for each group
can be uniquely configured. You can create an unlimited number of groups, each of
which may contain an unlimited number of tags.

To Start the Process Log Editor:


1. Double-click the LogEdit icon in the Environment Display.
2. The Process Log Editor window will appear.

3. Enter a Configuration Name (16-char max) and optionally, a Description


(120-char max).

Note If you modify a Process Log Configuration that is in use by the runtime
system, you should stop and then restart the Process Log Manager so that your
changes take effect.

File Menu
Use the File menu to access system functions for your process log configurations.

File/New
Use the File/New command to create a new process log configuration.

To Create a Process Log Configuration


1. Click File and then select New.
2. The Process Log Editor window will appear.

Note If you have edited a configuration and do not save it, you will be prompted to
save or discard it prior to the creation of a new configuration.

3. Enter a Configuration Name (16-char max) and optionally, a Description


(120-char max).
Process Logging 411

File/Open
Use the File/Open command to open an existing process log configuration.

To Open a Configuration:
1. On the menu bar, click File and select Open.
2. The Configurations window will appear.

Note If you have edited a configuration and did not save it, you will be prompted
to save or discard it prior to opening a different one.

3. From the Configurations window, select the configuration that you want to
open.
4. Click Open.

File/Save
Use the File/Save command to save a process log configuration.

To Save a Configuration:
1. On the menu bar, click File and select Save.
2. The Configurations window will appear.

Note The save option is unavailable if you have opened a configuration but have
not made any changes,.

File/Validate
Use the File/Validate command to validate a process log configuration. The
validation process verifies that all of the tagnames assigned in the configuration are
available in the process model.

To Validate a Configuration:
1. On the menu bar, click File and select Validate.
412 Chapter 12

2. The Validate window will appear. If the validation is successful, the window
will display the message: “Process Log configuration is valid.” If the
configuration contains errors, all invalid tagnames will be listed.

File/Delete
Use the File/Delete command to delete a process log configuration from the
database.

To Delete a Configuration
1. On the menu bar, click File and select Delete.
2. The Delete window will appear, requiring you to confirm the deletion.

Note When you delete a process log configuration, it is removed from the
database. However, Process Log Editor will still display the Configuration Name
and Description of the deleted configuration. To clear these fields, you must use
the File/New command.

File/Print
Use the File/Print command to select from one or more pre-formatted reports, and
then print the process log configuration. The print window also provides standard
Windows printer options.

To Print a Configuration:
1. On the menu bar, click File and select Print.
2. The Print window will appear.
Process Logging 413

3. In the Select Reports list, select item(s) that you want.


4. Select other printer options as required.
5. Click OK to print the report and close the window.

Note If you want to print several reports, press and hold the control or shift key,
while selecting from the list with the left mouse button.

File/Print Preview
Use the File/Print Preview command to select one or more formatted reports, and
then view the report(s) on the screen.

To Preview a Configuration Report:


1. On the menu bar, click File and select Print Preview.
2. The Select Reports window will appear.

3. Select the report(s) from the list


4. Click OK.

Note If you want to preview several reports, press and hold the control or shift
key, while selecting from the list with the left mouse button.

File/Print Setup
Use the File/Print Setup command to select and configure a printer. Refer to your
printer manufacturer’s documentation for more information.

To Setup your Printer:


1. On the menu bar, click File and select Print Setup.
2. The Print Setup window will appear.
414 Chapter 12

File/Exit
Use the File/Exit command to close the Process Log Editor.

To Close the Process Log Editor:


On the menu bar, click File and select Exit.

Note If you have edited a configuration and did not save it, you will be prompted
to save or discard the changes prior to closing the Process Log Editor.

Edit Menu
Use the Edit menu to access system functions to define the criteria for your process
log configuration.

Edit/Groups
Use the Edit/Groups menu to define the criteria for your process log
configurations. For each group that you define, you must configure the general
logging criteria and tags. General logging criteria consists of configuring a Log
Trigger, Log Interval, and a destination for the logged data. The tags that are
available for selection are those that exist in the process model.
Process Logging 415

Creating a Process Log Group


The steps involved in the creation of a Process Log Group are summarized below.
• Create a Process Log Configuration
• Create a Process Log Group
• Define Trigger and Event
• Select Data Destination
• Select Tags

To Create a Process Log Configuration:


1. On the menu bar, click File and then select New.

2. Enter a Configuration Name (16-char max) and an optional Description


(120-char max).
3. Click Edit and then select Groups.
The Process Logger Group Editor window will appear.
416 Chapter 12

4. Enter a Group Name, Name (16-char max) and an optional Description


(120-char max).
5. Click Add.
6. The Group Name that you entered will appear in the Process Logger Group
Editor Group Names list.

Note All Group Names are verified for uniqueness when you click Add or
Change.

To select a Log Trigger and a Log Interval:


1. Click Log Trigger and then select On Event.
When you select the On Event option, you must also provide an expression,
using the Expression Editor, for the event.
2. Click the Expression button to open the Expression Editor.
Process Logging 417

3. Enter an expression. In this example, the Boolean expression,


{ReactorA---BATSZ.Value}>1000, initiates logging when the batch size in
ReactorA is greater than 1000.

4. Click OK to close the Expression Editor.


5. The expression that you entered will appear in the expression field of the
Process Logger Group Editor.

6. Select a Log Interval by repeating repeat steps 1 through 4.


For more information on building expressions, see Chapter 14, "Expression Editor."
For more information on configuring logging criteria, see “General Logging
Criteria” on page 408 in this section.

To Select a Data Destination (Printer and/or Historian):


1. If you want to log process data to the history database, enable the Historian
check box in the Process Logger Group Editor.
2. If you want to log process data to a printer, enable the Printer check box in the
Process Logger Group Editor and then click the Printer button.
The Printer Selection dialog appears.
418 Chapter 12

3. Select the printer that you want from the list and then click OK.

To Select Tags:
1. On the Process Logger Group Editor, click Select Tags.
2. The Tag Selection window will appear.
Process Logging 419

3. From the list, select the tags that you want to include in the process log.

Note You can sort the list by clicking a column heading. For example, to sort the
list by parameter, click the Parameter heading. If you want to select multiple tags,
press and hold the control or shift key, while selecting from the list.

4. Click OK.
5. The Tag Selection window will close and the tags that you selected will appear
in the Process Logger Group Editor.
420 Chapter 12

6. On the Process Logger Group Editor, click Close.

To Validate and Save the Configuration:


1. On the Process Log Editor, click File and then select Validate.
2. The Validate window will appear.
3. Ensure that the window does not indicate an error, and then click Close.
4. Click File and then select Save.

Note If you have not entered a Configuration name, you will be prompted to do
so. If you have made changes to an existing configuration, you will be prompted to
overwrite the configuration. If you have not made any changes to the configuration,
the Save option is unavailable.
Process Logging 421

Using Process Log Manager


Process Log Manager (LogMngr) is a runtime program that is responsible for
retrieving and passing the data to the historian or the printer. Data is sampled and
stored only when the conditions specified for the log triggers and log intervals are
met.
Process Log Manager continuously monitors all of the log triggers and log intervals
in order to provide the required logging for each group.

Starting Process Log Manager


Process Log Manager is a runtime application that is configured using the
Environment Editor It is started from the Runtime Application Display window in
Environment Display. A Configuration application parameter corresponding to the
configuration name defined in the Process Log Editor is required.

WARNING! If you stop the Process Log Manager while it is in the process of
logging data at a fast interval, or if there is batch activity that will result in data
logging, data loss can result. It is strongly recommended that you only stop Process
Log Manager when logging activity is minimal.

Runtime Logging Criteria


Process Log Manager logs tag values to the history database. Logging occurs only
when a batch is active for the associated unit or connection. The name of the unit or
connection can be found in the first field of the tagname. Batch information is
obtained from Information Manager (InfoMngr) application at runtime and
recorded with the tag value in history.
For example, the ReactorA-Heat-Temp-ACT tag would only be logged if there were
a batch active in the ReactorA unit.

Note If a batch is not active within the unit or connection, the value is not logged.
422 Chapter 12
Security System 423

C H A P T E R 1 3

Security System

The Security System provides a high level of protection for all recipe and batch
management applications, functions, operator stations, and products. System design
is open and completely configurable allowing external applications to be easily
interfaced
Configuration of the system consists of defining system security parameters,
security levels, operator stations, user accounts, application access security levels,
and application function security levels.

Contents
• Overview
• Using Security Editor
• Security System Configuration
• Security Levels
• Operator Stations
• User Accounts
• Applications-Functions

Overview
The security system consists of the Security Editor, Security Manager, and a
Security Application Program Interface (API).
The Security Editor is used to edit the system security configuration. All of the
batch management system applications and functions are provided with the system.
All applications utilize the Security API when security clearance is required. When
needed, the application prompts the operator for their ID and password. The
information is compiled into a security request message and sent to the Security
Manager along with the application and/or function name, the operator station from
where the request was made, and if applicable, the recipe identification code. The
Security Manager compares the security request with the information defined in the
security database and returns an OK or NOT OK result to the application making
the request. The application acts on the result accordingly.
424 Chapter 13

Using Security Editor


Use Security Editor to manage security configuration for the batch management
system. This includes adding, deleting, or changing security levels, operator
stations, user accounts, applications, functions, and security level assignments.

Note The InBatch security system is independently licensed for the FlexFormula
and Premier Edition. Unlicensed users see a license error in the Wonderware
Logger when trying to launch Security Editor. This will occur whether you are
using a Batch Server or a Development Client.

To Start Security Editor:


1. In the Environment Display, double-click the SecEdit icon.

The Security Editor window will appear.


Security System 425

Note If security has been enabled for accessing Security Editor, the Security
Clearance Request window will be displayed and you will be prompted to enter a
valid User ID and Password.

Using Security Editor for the First Time


If you are using Security Editor for the first time, you will be required to enter the
default User ID (system) and Password (system) in the Security Clearance
Request window. You will then be required to enter and verify a new password in
the New Password window.
Passwords must be at least six characters in length.
426 Chapter 13

File Menu
Use the Security Editor File menu to access system functions for Security Editor.

File/Validate
Use this command to validate security configuration. Validation consists of
verifying that all the recipes assigned to users exist in the recipe database and that
the Password Timeout and Password Reuse values are non-negative.
If the validation is successful, the validation window will indicate that the
configuration is valid. If validation errors exist, the associated tags will be
displayed along with a validation error message.

File/Print
Use this command to display the Print window.

Use the Select Reports list box to select one or more formatted reports.
Security System 427

File/Print Preview
Use this command to display the Select Reports window. You can select the
report(s) that you want and then preview them on the screen.

File/Print Setup
Use this command to setup up your printer devices. Refer to your Windows
documentation for more information.

File/Exit
Use this command to close Security Editor.

Note All of your work is saved in the security database as you edit and make
changes to the security configuration.

Edit Menu
Use the Security Editor Edit menu to access security configuration windows.

Edit/Security Levels
Use this command to access the Security Levels Editor.

Edit/Operator Stations
Use this command to access the Operator Stations Editor.

Edit/User Accounts
Use this command to access the User Accounts Editor.

Edit/Applications-Functions
Use this command to access the Applications-Functions Editor.
428 Chapter 13

Help Menu
Use the Security Editor Help menu to display online help and view version
information for Security Editor.

Help/Help Topics
Use this command to display online help for Security Editor.

Help/About Security Editor


Use this command to view version information.

Security System Configuration


Use the Security Editor window to configure the overall operation of the security
system. Proper security system operation is dependant upon the options described
below.

Security Enabled
Use the Security Enabled check box to enable or disable the entire security system.
Disabling the system may be desirable during start-up or when maintenance is
required on the process.

Retries
The Retries entry is associated with the number of requests a user is permitted to
attempt in order to obtain a security clearance. If the number of retries is exceeded,
an error message shall be displayed and access will be denied. For example, if the
retries value is set to 2, the error message is displayed following the third invalid
entry. If desired, the operator may immediately re-attempt to obtain security
clearance.

Password Timeout
The Password Timeout specifies the time period, in days, that a password is valid.
Any passwords older than the set period will automatically expire. After a timeout,
the user will be required to enter their old User ID and Password before security
clearance is granted. The user will then be required to change their password when
security clearance is requested

Password Reuse
The Password Reuse specifies the time period, in days, which must pass before a
password can be re-used. This feature prevents operators from repeatedly using the
same password.
Security System 429

Comment
This optional field can be used to document or comment on the security system
configuration.

Security Levels
Use the Security Levels Editor window to add, delete, and change security levels
in the system. Security level names are verified to ensure uniqueness. New security
levels can be added to the security system at any time. There is no restriction placed
on the number of security levels that you can assign.

To Edit a Security Level:


1. In the Name field, enter a security level (16-chars max). You can also
optionally enter a Description (120-chars max) in the Description field.
2. Click Add if you are entering a new Name, or click Change if you are editing
an existing Security Level.

To Delete a Security Level:


1. Select the Security Level that you want to delete from the list.
2. Click Delete.

Note When a security level is deleted, all users that are assigned that level will
have their security level assignment deleted. If a user does not have a security level,
the user will not be able to obtain security clearance.
430 Chapter 13

Operator Stations
The Operator Stations Editor dialog is used to add, delete, and change operator
stations in the system.

New operator stations can be added to the security system at any time, and there is
no limit to the number of stations that can be defined.
An operator station can be any computer that is a part of your system. The name
defined for the Batch Server or a Batch Development Client corresponds to the
network host name assigned to the node. The name defined for the Batch Runtime
Client corresponds to the Client Type Instance.

Note Both the network host name and the client type instance name must be
defined for nodes that function as both a batch server and a runtime client.

To Edit an Operator Station:


1. In the Name field, enter an operator station (16-chars max). You can also
optionally enter a Description (120-chars max) in the Description field.
2. Click Add if you are entering a new Name, or click Change if you are editing
an existing Operator Station.

To Delete a Security Level:


1. Select the Operator Station that you want to delete from the list.
2. Click Delete.
Security System 431

User Accounts
Use the User Accounts window to add, delete, and change users in the system.

User account names are verified to ensure uniqueness. New users can be added to
the security system at any time, and there is no limit to the number of user accounts
that can be defined.
You can assign passwords to a user and select specific recipes and operator stations
on which the operator is authorized. These account configuration options are
described in the following section.

To Edit a User Account:


1. Enter a User Name (30-chars max).
2. Enter a User ID field (12-chars max).
3. Use the Security Level, Password, Recipes and Op Stations buttons to assign
additional security parameters to the account. Additional information on these
buttons is provided immediately following this section.
4. Click Add if you are entering a new User Account, or click Change if you are
editing an existing User Account.

To Delete a User Account:


1. Select the User Name that you want to delete from the list.
2. Click Delete.
432 Chapter 13

Security Level
Security Levels typically define a user’s job function, such as Operator, Supervisor,
Lab Technician, Mixer Operator, Boiler Operator, Control Engineer, etc.
Assign security levels by clicking Security Level button.

You can only assign one security level to a user.

Password
A password can be assigned to a user be selecting the Password button. A
password must contain between 6 and 12 characters.
Because the combination of user ID and password will always be unique in the
system, duplicate passwords are permitted. Passwords expire when the Password
Timeout period defined for the system is reached. User passwords are
independently maintained.
If an invalid password is entered or the new and verified passwords are not the
same, an error message is displayed.
All passwords in the system are stored and transmitted in an encrypted format.
Security System 433

Recipes
Use the Recipe Access window to assign recipes to a user. You can assign as many
recipes to a user as required. If you do not want an operator to have recipe access,
you do not have to grant it. Recipe assignments provide protection against operators
working on products for which they have not been trained.
Recipes can be assigned to a user by selecting the Recipes button.

All of the recipes that have been approved for production or approved for test in the
Recipe Editor are available for assignment. In addition, all recipes can be assigned
by enabling the All Recipe Access check box.

Note Security for the Delete Recipe Function does not restrict the user to a
specific number of recipes to access when the recipe access list is intended to be
restricted. This allows the user to delete any recipe in the list, not just the ones he is
restricted to. RecipeEdit does not use Security Editor's list of recipes assigned to a
user. Recipes that are available for configuration in the Security Editor restrict
runtime access only. That is, the configuration that you are changing is applicable
when the listed recipes are executed as part of a batch. There is no real correlation
between recipe definition in the security editor and the Recipe Editor. To more
appropriately manage these types of requirements, you may want to configure each
user's security model (That is, the definition and configuration of users, levels,
operator stations, etc.). When you are setting up the accounts, you can configure
each for unauthorized recipe deletion, saving, etc.
434 Chapter 13

Operator Stations
Use the Operator Stations window to assign specific operator stations to users.
You can assign as many operator stations to a user as required. If you do not want
an operator to have access to an operator station, you do not have to grant it.
Operator station assignments provide protection against operators working at
operator stations for which they have not been trained or should not have access.
Operator stations can be assigned to a user by selecting the Op Stations button.

All operator stations that have been defined using the Operator Stations Editor are
available. You can assign all stations by enabling the All Station Access check box.
Security System 435

Applications-Functions
Use the Applications-Functions Editor to add, delete, and change applications or
functions defined for an application, assign security levels to restrict access to
applications, and assign security levels required for the done-by and check-by
functions. A description of the applications and their associated functions is
described later in this section.
436 Chapter 13

Adding a New Application


New applications can be added at any time. An application consists of a numeric
identification (ID) between 1 and 999, a Name (16-chars max), an optional 120-
character description,. Use the Security Enabled check box to enable or disable the
need for at application startup security.

Note When designing a new application, make sure that you use the same
application ID when making security clearance requests through the Security API.

The Security System is provided with the standard batch management system
applications. Each application has a pre-defined ID and name. The ID is used
whenever a security clearance request is sent to the Security Manager. The default
application ID and name cannot be changed. If the ID and/or name information is
altered, an error message is displayed.

Enabling Application Security


Application security should be defined if access to starting an application needs to
be restricted. Each application can be assigned one or more security access levels if
security is enabled and more than one level of user is permitted to access the
application.
Access security levels can be assigned to an application by selecting the Access
command button.
This displays the Assign Security Levels assignment dialog.

All security levels that have been defined in the Security Levels Editor are
available.

Note To properly enable security, you must enable the check box in the
Applications-Functions Editor and define at least one level of security Access.
Security System 437

WARNING! There is one exception to defining application security. You cannot


enable security for a Batch Client application. This application is the basis for all
Batch Display and Batch Scheduler security. Security may be configured for any or
all of the functions defined for a Batch Client, but not for the application itself. If
security is defined for the Batch Client application, none of its functions will pass a
security request.

Adding a New Function


New functions can be added at any time. A function consists of a numeric
identification (ID) between 1 and 999, a Name (16-chars max), an optional 120-
character description, a Security Enabled check box that is used to enable or
disable security to perform and verify the function, and security levels permitted to
perform and verify the function.

Note When designing a new function, make sure to use the same application ID
when making security clearance requests through the Security API.

The Security System is provided with a standard set of appropriate functions for
each Batch management system application. Each function has a pre-defined ID
and name. The ID is used whenever a security clearance request is sent to the
Security Manager. The default function ID and name cannot be changed. If the ID
and/or name information is altered, an error message is displayed.

Enabling Function Security


Function security should be defined if access to executing any function needs to be
restricted. Each function can be assigned one or more Done By and Checked By
security levels if function security is enabled and more than one level of user is
permitted to perform or verify the function. Function Done By and Checked By
security levels are assigned by selecting the Done By and Checked By buttons
respectively. Each displays the Access Security Levels assignment dialog. All
security levels that have been defined in the Security Levels Editor are available.

Note Security is not enabled unless the appropriate check box has been set and
one or more Done By security levels have been defined. Also, Checked By security
is not enabled unless there is also Done By security defined. If the Done By security
levels are removed and there are Checked By security levels assigned, an error
message is displayed notifying the user that Done By levels cannot be removed.
Finally, security can be enabled for functions even if security is not enabled for the
parent application.
438 Chapter 13

Application - Function Descriptions


The following table describes the available Applications (default) and the
associated (default) Function descriptions for each. The Function Names and
Descriptions shown in the table can be edited as required for your application.

Application Function Description


Batch Client Abort Batch Enables a batch client to abort an active batch.
Abort Phase Enables a batch client to abort an active phase.
Ack to Enter Enables a batch client to require an Acknowledge after the entry
of batch information.
Ack to Exit Enables a batch client to require an Acknowledge in order to
Allocate Equip
Answer Question
Chg Batch Mode
Control Buttons
Edit Phase Param
Enter Comment
Hold Batch
Hold Phase
Jump Batch
Launch FoxSCF
Manual Operation
Release Equip
Restart Batch
Restart Phase
Selecet Equip
Unit Abort
Unit Hold
Unit Restart
Access Schedule
Save Recipe
Save Recipe
Edit Phase
Force Transition
View Doc
View Doc Ack
Security System 439

Application Function Description


Environmenmt Start/Stop Apps Enables the startup and stopping of the Environment Display
Display batch runtime applications.
Update Envnmt Enables the Update Environment feature on Environment Display.
Update Model Enables the Update Configuration feature on Environment
Display.
Exit & Shutdown Enables Exit and Shutdown of the batch system from
Environment Display.
Force Master For Redundant Systems Only - Enables the Force Master feature.
Envnmnt Editor Edit System Apps
Add New Apps
Edit New Apps
Materials Editor Location Editor
Material Editor
Recipe Editor Author
Approval#2
Approval#3
Approval#4
Approval#5
Approval Test
Delete Recipe
Assign States
Edit States
Assign States
Edit Types

Runtime Security
The runtime security system interfaces with the security database and the security
API to permit or deny requests for security clearance that are received from the
batch control applications.

Starting the Security Manager


If the installation instructions are performed correctly, the Security Manager will be
running as long as the Batch Server node is turned on and operating correctly. This
can be verified by selecting the View/Status… menu option from the Environment
Display. The System Application Status dialog will indicate the current status of
the security system.
440 Chapter 13

Changing Passwords
Use the Change Password (ChgPwd) window to change user passwords whenever
required.

The window prompts the user for their User ID, Current Password, New
Password, and to Verify Password. If all of the information has been entered
correctly, the user has successfully changed their password.
If an invalid user identification or current password is entered or the new and
verified passwords are not the same, an error message will be displayed.

Application Security Requests


When the overall security system has been enabled and an application is started that
has security enabled and one or more security levels configured, the Security
Manager will display the Security Clearance Request window.

The user must enter their User ID and Password. If the user is permitted to access
the application, the application will start when OK is clicked.
If the user is not permitted to access the application, an error message will be
displayed notifying the user that permission has been denied. The error message
will also provide some information as to why access was denied.
If the user’s password has not yet been defined or the password has expired, the
New Password window will be displayed. This will require the user to enter their
current User ID and Password, and then enter and verify a new password.
Security System 441

Function Security Requests


When a function within an application is encountered that has security enabled, and
one or more security levels configured for either the Done By and/or Checked By
options, the Security Manager will display the Done By (or Check By) Security
Clearance Request window.

The user must enter their User ID and Password. If the user is permitted to perform
or verify the function, the function will execute when OK is clicked.
If the user is not permitted to access the function, an error message will be
displayed notifying the user that permission has been denied. The error message
will also provide some information as to why access was denied.
If the user’s password has not yet been defined or the password has expired, the
user will be required to enter User ID and Password as explained earlier in this
section.

Note When a user-defined application or function is executed, the code for the
application and/or function must transmit the required security request to the
Security Manager through the Security API. As with the default applications and
function, the user must enter their ID number and password. If the user is permitted
to use the application or function, it will be performed. If the user is not permitted
to access the application or function, one of the above error messages will be
displayed notifying the user that permission has been denied.
442 Chapter 13
Expression Editor 443

C H A P T E R 1 4

Expression Editor

The Expression Editor is used within the Recipe Editor and Process Log Editor to
construct expressions. An expression consists of predefined functions. For each
application, the expression normally returns a logical true or false result.
Expressions are entered when recipes or other configurations are defined.
Expressions are stored as part of the configuration. Each application uses the
Expression Editor for different reasons. The Recipe Editor uses the Expression
Editor to construct true/false Boolean expressions for transition logic and loop-back
logic. The Process Log Editor uses the Expression Editor for defining a Log Trigger
and a Log Interval. In all cases, the Expression Editor functionality is the same.

Contents
• Using Expression Editor
• Expression Elements
• Expression Building Rules
• Expression Examples

Using Expression Editor


The Expression Editor functions similar to a calculator, except that results are not
calculated immediately. Instead, expressions are evaluated and results returned
whenever the application needs them.
Expressions are constructed in an Edit Area using the Formatting Commands,
Numeric Keypad, Operators, Delimiters, Tags, and Functions. Expressions can be
entered by using the mouse or the computer keyboard.

Starting the Expression Editor


The Expression Editor is displayed whenever an application requires you to define
an expression.
When the Expression Editor is invoked, the Expression Editor window is
displayed. From this window, an appropriate expression can be defined.
444 Chapter 14

Editing an Expression
Expressions are defined in the Edit Area. The Edit Area functions very similar to a
word processor. All entries are automatically inserted to the right of the cursor.
Therefore, each time a numeric key, operand, or delimiter key is selected, the
character will be inserted. Your computer keyboard can also be used to enter an
expression.
After the expression is completed, click OK or Apply to save the expression to the
target object. If the expression is not valid, an error message will be displayed
indicating the nature of the error. The cursor will be positioned near or immediately
after the error.

Numeric
Formatting
Edit Area Keypad Operators
Commands
Delimiters

Formatting
Functions Commands

Edit Buttons
The Formatting Commands (Space, Back Space, New Line, Tab, Store, Recall,
Clear, and Reset) are available to assist you in constructing expressions. The Store
and Recall are two buttons that are especially helpful for reusing expressions.
Expression Editor 445

Whenever the Store button is selected, the expression displayed in the Edit Area
will be stored. The Recall button is used to retrieve and re-display the stored
expression. This feature is extremely helpful when there are several expressions
that are similar. The Store and Recall buttons would be used as follows.
1. After completing the first expression, save the expression to the target object
(for example, a recipe transition object or a report expression trigger) by
clicking Apply, and then clicking Store to store the expression.
2. Next, select the new target object. Upon selecting, the Edit Area will be
cleared.
3. Click Recall to retrieve the expression.
4. Modify the expression as needed, then Apply the expression to the new object.
Functions can be entered by typing them in or they can be automatically inserted
into the expression using the selection dialogs. The details of each function are
described in the following pages.

To Insert a Function:
1. Click inside the Edit Area at the desired position.
2. Click Functions. The Functions window will appear.

3. Select the desired function. This will insert the function, with the appropriate
delimiters, into the Edit Area.

Expression Elements
The following sections describe, in detail, the elements available for constructing
expressions.

Operators
An operator is a symbol used to manipulate the value of one or more operands.
Below is a list of valid operators from highest precedence to lowest.
446 Chapter 14

Operator Symbol Description


Negate - Negates value of next operand.
Multiply * Multiplies values of previous and next operands.
Divide / Divides value of previous operand by next operand.
Modulus % Remainder of division between previous operand and next operand.
Add + Adds values of previous and next operands.
Subtract - Subtracts value of previous operand by next operand.
Less Than < TRUE if previous operand is less than next operand; else FALSE.
Less Than or <= TRUE if previous operand is less than or equal to next operand; else FALSE.
Equal To
Greater Than > TRUE if previous operand is greater than next operand; else FALSE.
Greater Than or >= TRUE if previous operand is greater than or equal to next operand; else FALSE.
Equal To
Equal To = TRUE if previous operand is equal to next operand; else FALSE.
Not Equal To <> TRUE if previous operand is not equal to next operand; else FALSE.
And & TRUE if previous operand and next operand are TRUE; else FALSE.
Or | TRUE if previous operand or next operand is TRUE; else FALSE.
Assignment := No usable return value. Writes next operand to previous operand.

Operands
Operands can be of type Boolean (True or False; also referred to as Discrete),
Numeric (any positive or negative number) and String (alpha-numeric string of any
length). Below is a list of valid operands.

Operand Type Description


Numeric Constant Numeric Numeric Values. (e.g. 123.456)
String Constant String String of characters within double quotes. (e.g. “Allocated”)

Functions
There are seven functions currently available. All of the functions are available in
the Recipe Editor. However, only the Not function is available in the Process Log
Editor applications.

Function Example Description


Ask Ask (“Continue?”) Used only in the Recipe Editor to ask yes/no type questions of
operators.
AskDoneBy AskDoneBy Used only in the Recipe Editor to ask yes/no type questions that
(“Continue?”) require confirmation that the question has been answered.
AskCheckBy AskCheckBy Used only in the Recipe Editor to ask yes/no type questions that
(“Continue?”) require confirmation and verification that the question has been
answered.
Expression Editor 447

Function Example Description


Not Not(Ask("OK?")) Negates the result of the Boolean expression within the
parenthesis. Converts a numeric result of value greater than 1 to 0.
Converts a numeric result of value 0 to 1.
WaitSec WaitSec(10) Used only in the Recipe Editor. When encountered, execution will
be delayed the specified number of seconds.
WaitMin WaitMin(30) Used only in the Recipe Editor. When encountered, execution will
be delayed the specified number of minutes.
WaitHour WaitHour(1) Used only in the Recipe Editor. When encountered, execution will
be delayed the specified number of hours.

Delimiters
There are five delimiters that are used to identify operands and to build expressions
within expressions (recursive expressions).

Delimiter Example(s) Description


Parentheses - (...) ((10 + 1) * 20) Used for setting precedence.
Ask("OK?") Used to define a function argument.
Not(Ask("OK?")) Used to nest expressions.
Quotes – “...” ‘Text String” Quotes are used to identify a string.
Comma - , N/A Used to separate function parameters which can be
operands or expressions.

Expression Building Rules


The following rules must be followed when defining expressions.
1. Dividing by zero will return a result of zero.
2. Negate is only valid on numeric operands.
3. Add, Subtract, Multiply, and Divide are valid only when used with numeric
operands.
4. Modulus can only be used with numeric integer values.
5. Less Than, Greater Than, Less Than or Equal To, Greater Than or Equal To,
Equal To, and Not Equal To are valid only when evaluating non-Boolean
operands and/or expressions that have a non-Boolean result.
6. AND and OR operators are only valid when evaluating Boolean operands
and/or expressions that have a Boolean result.
448 Chapter 14

Expression Examples
The following examples are included to illustrate the types of expressions that can
be created as well as expressions that are invalid.

Expression Result Description


Ask("Ready?") Valid Operator is asked Question. Ask function does not evaluate TRUE or
FALSE until it is answered.
WaitSec(10) Valid 10 second delay. WaitSec function does not evaluate to TRUE until the
10 seconds has expired. (Note: It has No state TRUE or FALSE before
the 10 seconds is up)
5<3 Valid Evaluates FALSE
WaitMin(5 + 5) Valid 10 minute delay. Evaluates TRUE after 10 minutes. (Unitl then it is
neither TRUE nor FALSE.)
Ask("OK?") | WaitSec(10) Valid This is a valid expression but may not yeild the expected results. Since
BOTH functions must evaluate in order for the expression to evaluate,
the expression acts more like an AND than an OR.
Ask("OK?") & Valid Though not obvious, this expression has exactly the same end result as
WaitSec(10) the one above.
WaitSec(10) Or Invalid The "Or" operator is invalid. Use the | character.
WaitSec(5)
Phase Logic Development and Testing 449

C H A P T E R 1 5

Phase Logic Development and


Testing

The batch management system controls and monitors the execution of batches
through equipment phases. A phase is an independent processing action that can
reside in the server or client platform, a PLC, a DCS, or other control system used
to evaluate logic and/or interface with manufacturing equipment. Even though
phases can reside in many different locations, the interface between the batch
management system and the phase is the same and must follow certain guidelines.
This section is intended to provide the control engineer with information on how to
design and test phase logic blocks. A phase block testing tool is provided and is
described later in this section.

Note This information is written in a very generic manner in order to address the
overall use of phase logic, and is intended to be used strictly as a guide. The
concepts can be applied regardless of the control system in which the phases are
being written.

For more information on implementing unit and phase logic in various control
systems refer to Chapter 5, "Tag Linker."

Contents
• Phase Block Design Guideline
• Using the Phase Logic Testing Tool
• Exercising Phases

Phase Block Design Guideline


The following section describes the general design of a phase block.
450 Chapter 15

Definition of a Phase Block


The basic building block used for coordinating the control system communication
with the batch system is the phase block. Also called a phase, the phase block is a
small portion of control system logic that conducts an independent action within a
process or transfer class associated with a batch. Some examples of phase blocks
are ramp heat, ramp cool, soak, and bulk add. Phase blocks are associated with each
unit or connection in a particular modeling class. Therefore, there could be an
agitator phase block corresponding to a reactor, as well as an agitator phase block
corresponding to a receiving tank.
It is recommended that phase blocks be designed as self-contained as possible. This
will allow the phase blocks to be moved from one control system to another with
minimum alterations. Thus, a large library of phase blocks can exist that could be
altered and used on an individual basis as new equipment or new systems are
installed.
The following list provides some of the ultimate goals of phase block logic. While
it is likely that processes will exist that prevent satisfying all of these goals
simultaneously, achieving the goals should always be the primary objective.
• Phase logic should be modular for easy duplication and transferability.
• Phase logic must utilize the standard interface between the control system and
the supervisory computer.
• Phase blocks can be written independently of one another.
• Phase blocks should be control system independent.
• The control system memory map should not be confining.
• The addition of process equipment should be done easily with little code
revision.
• Phase logic structure should be standardized for ease of troubleshooting.
• Phase logic should be available for multiple use within the operational
program.
• Phase logic should consist of a minimum amount of code without
compromising functionality or safety.
• Phase logic complexity should be geared to the level of the technical support
staff.

Phase Block Rules of Operation


This section summarizes the general rules to be followed when planning and
constructing the operation of a phase block and/or complete process program.
These rules will be discussed in greater detail throughout the remainder of this
document.
• All items, except outputs, specific to a particular phase block should reside
within that phase block.
• An interlock is a pre-run condition of a phase block that prevents the phase
block from being operated.
• An alarm is generated by either a runtime conditional error or a device failure.
Phase Logic Development and Testing 451

• Critical alarms put the corresponding phase block(s) on hold if they are
currently executing.
• On an initial control system power on sequence, the status of all phase blocks
should be ready or interlocked, and all of the outputs must be in a de-energized
state.
• In the event of a batch system to control system communications error, any
phase in the run state should continue until done, and the control system should
wait for communications to be restored for the next command.
• The manual operation of output devices must be addressed with regard to the
status of the phase logic blocks that utilize the outputs.
• It is the responsibility of the control system logic to recognize and react to unit
control bits. These control bits include Unit Hold, Unit Restart, and Unit Abort.

Function Block Diagram


There are eight main components to a phase block. These include the phase control
bits, phase status bits, control inputs, control outputs, formula parameters, control
buttons, interlocks, and alarms. These items are transmitted between the control
system and the batch control system via tags. The phase block acts on this
information to control the process equipment. Each of the components will be
discussed in greater detail later in this section.
452 Chapter 15

Operational Flow Chart


There is a logical progression that the phase block logic should follow. As can be
seen in the flow chart, the phase block uses the phase control bits to proceed
through the code as long as the particular phase status bits are satisfied. Code must
also be written to provide the phase block with interlock and alarm conditions.
The following is a brief explanation of the sequence of events for a typical phase
block. When a phase block is inactive, the phase status is ready. The only way this
is not true is when the phase block is interlocked. When the block is required to
operate, the batch control system sends any required formula parameters followed
by a start command. When the start is received, the phase block enters the run state
and executes the block logic. During the remainder of this operation, the block can
be put into the held state via the batch control system phase control hold command,
or by the occurrence of a critical alarm condition. From the held state, the phase
block can either be restarted or aborted. The restart command will resume the phase
block operation. The abort will put the phase block in the aborted state and end the
block operation. The batch control system monitors this aborted status, and sends a
phase reset command to return the block to the ready state. If the phase block
continues to completion, the status becomes done. The batch control system
monitors this done status, and similar to the aborted, sends a phase reset command
to return the block to the ready state. This sequence of events is followed each time
the phase block is included in the current batch control system recipe configuration.
Phase Logic Development and Testing 453
454 Chapter 15

Control System Memory Configuration


One of the most difficult decisions to make during the process of planning for a new
system is the manner in which the memory of a control system is configured. All
control systems contain a specific amount of memory. In many of these control
systems, the memory can be configured. In this section, some general guidelines are
presented to help allocate the available memory into specific portions that minimize
memory problems associated with system installation and expansion.
As an overview, there are some memory concepts that are similar for all control
systems.
• Most control systems have different types of memory that correspond to
different aspects of the overall program.
• The most sophisticated control systems allow the memory to be configured by
the user.
• There exists a finite number of analog and discrete memory available within
each control system.
• There is a limit to the number of inputs and outputs a certain control system is
capable of supporting.

Phase Block Memory Guidelines


In the phase block concept, some memory rules and constraints have been
established to make phase blocks consistent and portable. These guidelines are
described below.
• Determine the number of phase blocks needed for the entire system and
increase this number by 20% to allow for expansion.
• Determine the number of global interlocks needed for the entire system and
increase this number by 20% to allow for expansion. This will be the number
of discrete data points to allocate for global interlocks.
• Determine the number of global alarms needed for the entire system and
increase this number by 20% to allow for expansion. This will be the number
of discrete data points to allocate for global alarms.
• Determine the number of outputs needed for the entire system and increase this
number by 20% to allow for expansion. This will be the number of discrete
data points to allocate for manual operation of global outputs.
• Should future expansion beyond the 20% cushion become necessary, the
memory guidelines should be followed within each expansion section and
added to the end of the previous section.
• If the control system memory can be configured by the user, determine all
phase block logic requirements (timers, counters, etc.), then allocate memory
accordingly while also allowing for expansion.
• Whenever possible, phase control and status bits should be packed within
words to make more efficient use of control system memory.

Control System Code Structure


The following section describes the general design of control system code.
Phase Logic Development and Testing 455

General
In order to achieve goals of modular, self-sufficient, independent phase blocks, the
structure of the control system code for each phase block and for entire processes
must be consistent. This is necessary so that phase blocks can easily be placed in
other processes with little reprogramming. The following sections provide a
guidelines that has been established for structuring individual phase blocks and
complete process programs. It is recognized that alterations of a plant's processing
capabilities may occur after the initial program structuring that will disrupt the
program sequence. However, if all additions are structured in a similar manner and
added to the end of the code, then the complete program will consist of smaller
programs, all with the same consistent structure.

Phase Block
A template has been created to assist in the structuring of a phase block. As can be
seen from the diagram on the following page, the phase block code consists of six
sections. This diagram shows the components in a distinct order. This order is
recommended for sequential processing control systems. For control systems that
are capable of parallel processing, the flow of information would be different.
• Phase Control
This section of the phase block handles the manipulation of the phase control
bits needed to operate the phase logic. The batch management system enables
the appropriate control word within the control system associated with a
particular phase block. The phase logic must be written to interpret this word
and resolve the individual control bits of the word to the start, restart, hold,
abort, and reset commands. It is recommended that the phase logic reset the
control word so that the next requested function can be recognized. Thus, the
control bits are essentially one-shot commands. This section must be included
for every automatic and semi-automatic phase block.
• Control Buttons
The section of the phase block corresponding to the control buttons is
constructed similarly to the phase control section. The batch management
system will enable any defined control buttons in the control system, and the
control system will interpret the control button request and perform the
appropriate function. This section can be used in automatic, semi-automatic,
and manual phases, but is optional and depends on the function of the phase.
• Interlocks
The interlock section of the phase block defines only the specific interlock
conditions associated with that phase block. Each interlock condition is
assigned to a discrete memory point and to a tag if the batch control system is
to display the interlocks to the user. This section will appear only if there are
specific interlocks associated with the phase block.
• Alarms
The alarm section handles all error conditions specifically associated with the
phase block. All of the alarms appropriate to the phase are placed in parallel
with each other to engage a single discrete point that is used through the
remainder of the phase logic to affect the operation of the block. This section
will appear only if there are alarms associated with the phase block.
456 Chapter 15

• Phase Status
The phase status section includes the logic necessary to place the phase block
into any one of the possible states. The possible phase status values are ready,
run, held, done, interlocked, and aborted. Only one of these modes may be
enabled at any time. When all of the status control logic has been evaluated, the
results are transferred to the phase block status word that is monitored by the
batch management system. This section must be included for every automatic
and semi-automatic phase block.
• Functional Logic
The remainder of the phase block is used to write the logic that is necessary to
perform the required process or transfer action. This section will vary in size
and complexity depending on the phase block operation, and will contain the
computational, comparison, and timing functions required by the phase block.
This section will also include code that is associated with any formula
parameters that may be assigned to the phase block, as well as logic necessary
to energize process outputs.
Phase Logic Development and Testing 457

Complete Program
A template has been created to assist in the structuring of the complete control
system program structure. As can be seen from the diagram below on the facing
page, the complete program consists of multiple sections depending on the
complexity of the system. Also, the control system code is structured in a manner
similar to the batch control system process model. The diagram shows the
components in a distinct order. This order is recommended for sequential
processing control systems. For control systems that are capable of parallel
processing, the flow of information would be different.
• Processes
Each defined process in the process model will have a corresponding process
section in the control system program. The code for this section will be located
between any transfer classes defined in the model that use this process class.
Within each process section will be the control logic for the units associated
with the process in the model.
• Units
Within each process section of the control system program will be the logic
corresponding to the units defined for the process class in the process model.
Within each of these units, there will exist the control system code for all of the
phases defined for the unit.
• Transfers
Each defined transfer in the process model will have a corresponding transfer
section in the control system program. This section will be located just prior to
the transfer’s destination process class section of the control system program.
Within each transfer section will be the connections associated with the
transfer in the model.
• Connections
Within each transfer section of the control system program will be the logic
corresponding to the connections defined for the transfer class in the process
model. Within each of these connections, there will exist the control system
code for all of the phases defined for the connection.
• Phases
The control system code for the phase blocks assigned to each of the defined
units and connections will appear after the appropriate unit or connection
section of the program. The number of phase blocks will vary with the
sophistication of the system.
• Unit Control and Status Words
The code for the unit control and status words is typically kept together in one
section of the program. This code will receive all of the relevant batch hold,
restart, and abort commands from batch control system and perform the
requested action on each of the phases associated with this unit.
• System alarms
All of the logic generating control system alarms will appear in one section of
the program. The specific alarms can then be referenced in the various phase
logic to affect the operation of a phase as desired.
458 Chapter 15

• System Outputs
All of the logic required to exercise the control system outputs are contained in
one section of the program. This logic would contain references from the phase
logic necessary to manipulate the outputs. Also, any manual device operation
logic would be present in this section.

Unit Control
The following section describes the principals of unit control.
Phase Logic Development and Testing 459

General
The batch control system transmits its batch requests to the control system through
a series of tags that are mapped to the memory of the control system. One group of
these requests is for handling the unit control commands. The control bits used for
each unit are hold, restart, and abort. When the batch control system desires to alter
the status of a recipe, it writes to a tag in the control system that corresponds to the
particular unit control bit. Similar to the phase control bits, these commands are
typically packed into a word in order to maximize control system memory. In the
control system program, the unit control word can be monitored continuously or
upon a change of status. Each of the commands is read as a one-shot action, and
only one request is transmitted at a time. The particular control bits are utilized
within each phase block associated with the particular unit and the phase operation
responds accordingly. Transfer phases that utilize a unit that is being placed on hold
will act according to customer specifications. Usually, when the unit is the source of
the transfer, the phase will hold, and when the unit is the destination of the transfer,
the phase will continue to completion. It is recommended that the control system
also contain unit status bits. These status bits are not monitored by the batch
management system, but are very useful within the operation of the control system
program. The defined unit control bits and recommended unit status bits are
described in this section.
The batch control system provides an enhanced Unit Control option which consists
of two Hold Propagation modes that can be used to propagate a phase Hold during
batch execution. These Hold Propagation modes are described later in this section.
• Hold
The unit hold command is enabled by the batch management system for all
units that are allocated when a batch hold command is executed. The phase
blocks associated with the unit will respond according to the user specification.
When the unit hold bit is enabled, none of the remaining unit control bits will
be set.
• Restart
The unit restart command is enabled by the batch management system for all
units that are allocated when a batch restart command is executed. The phase
blocks associated with the unit will respond according to the user specification.
When the unit restart bit is enabled, none of the remaining unit control bits will
be set.
• Abort
The unit abort command is enabled by the batch management system for all
units that are allocated when a batch abort command is executed. The phase
blocks associated with the unit will respond according to the user specification.
When the unit abort bit is enabled, none of the remaining unit control bits will
be set.
• Ready
The ready bit is an optional status value that can be generated and used within
the control system to keep track of the status of a particular unit. Generally, the
ready status bit will be set when there is no execution of any of the phase
blocks associated with the unit and all of the phases have been reset and are
ready for execution. When the ready status control relay is enabled, none of the
remaining unit status bits should be set. This status bit is only used within the
control system program, and is not monitored by batch control system.
460 Chapter 15

• Run
The run bit is an optional status value that can be generated and used within the
control system to keep track of the status of a particular unit. Generally, the run
status bit will be set when any of the phase blocks associated with the unit have
been started and everything in the phase blocks is executing normally. When
the run status control relay is enabled, none of the remaining unit status bits
should be set. This status bit is only used within the control system program,
and is not monitored by batch control system.
• Held
The held bit is an optional status value that can be generated and used within
the control system to keep track of the status of a particular unit. Generally, the
held status bit will be enabled only after the unit hold bit has been received
from the batch management system. When the held status control relay is
enabled, none of the remaining unit status bits should be set. This status bit is
only used within the control system program, and is not monitored by batch
control system.
• Aborted
The aborted bit is an optional status value that can be generated and used
within the control system to keep track of the status of a particular unit.
Generally, the aborted status bit will be set only after the unit abort bit has been
received from batch management system. When the aborted status control
relay is enabled, none of the remaining unit status bits should be set. This status
bit is only used within the control system program, and is not monitored by
batch control system.
Phase Logic Development and Testing 461

Unit Status
The following figure shows the unit block interface between the batch management
system and the control system logic. Note that there is no START control signal in
the following figure as there is for phases in the Phase Block Control State
Diagram.

Before allocating a unit, the batch management system checks the unit status. If it is
an acceptable value, it allocates the unit.

On Batch Client displays, when a batch (not a phase) Hold, Restart, or Abort action
is initiated, the Batch Manager sends the corresponding unit control signal to all of
the units allocated for the corresponding batch. The Batch Manager does not verify
that these unit control signals are used.
Control System logic is responsible for setting the unit status, which is monitored
by the Batch Manager for a satisfactory status before allocating the particular unit.
During batch execution, the Batch Manager sends batch status information (Run,
Held, and Aborting) to all of the unit blocks associated with the batch.
462 Chapter 15

Note Batch Manager generates unexpected status error messages during phase
logic execution if the status change is against the rules for phase logic. (For
example, the phase status goes from Held to Ready.) These messages will not be
generated for the following scenarios:

1) A unit is not allocated, has an Available status, but has Run, Held, or Alarm state.

2) A unit state goes to Ready while phases for that unit are still active.

Caution! Use caution when creating unit control and state control logic to ensure
that these improper state transitions do not occur.

Hold Propagation
The batch system provides two Hold Propagation modes which can be used to
propagate a phase Hold during batch execution. Hold Mode functionality is
enhanced when you use the Unit Control option since the Unit State is included in
the unit control logic. A brief description of the Hold Modes is described below. For
more information on Hold Propagation and enabling the Unit Control option, see
Chapter 9, "Batch Management System."

Mode 1
The Batch Manager will set the Unit Hold tags whenever an operator puts a batch in
Hold and control system logic is responsible for putting all its phases in Hold.
Using this mode, if a unit or phase goes to Held state, no action is taken by the
Batch Manager.

Mode 2
The Batch Manager monitors all phases and if any phase goes to Held state or if the
operator puts the batch in Held state then all other phases associated with the batch
are issued a Hold command.

Phase Control
The following section describes the principals of phase control.
Phase Logic Development and Testing 463

General
The batch control system transmits its phase requests to the control system through
a series of tags that are mapped to the memory of the control system. One group of
these requests is for handling the phase control commands. The control bits
available for each phase are start, hold, restart, abort, and reset. Only the start and
reset bits are required. When the batch control system desires to alter the status of a
phase block, it writes to a tag in the control system that corresponds to the particular
phase control bit. These commands are typically packed into a word in order to
maximize control system memory. In the phase logic, the phase control word can be
monitored continuously or upon a change of status. Each of the commands is read
as a one-shot action, and only one request is transmitted at a time. The particular
control bits are utilized within the phase block, and the phase operation responds
accordingly. The phase control bits are described below.
• Start
The phase start command is enabled by the batch management system for a
phase as it is encountered in a batch. Generally, the start command will begin
the execution of the requested phase and put the phase status in the run state.
When the phase start bit is enabled, none of the remaining phase control bits
will be set. Finally, the batch management system cannot send a request to start
a phase block unless the phase block status is in the ready state.
• Hold
The phase hold command is enabled by the batch management system for a
phase whenever the hold command button is selected. Generally, the hold
command will suspend the execution of the particular phase. When the phase
hold bit is enabled, none of the remaining phase control bits will be set. Finally,
the batch management system cannot send a request to hold a phase block
unless the phase block status is in the run state.
• Restart
The phase restart command is enabled by the batch management system for a
phase whenever the restart command button is selected. Generally, the restart
command will resume the execution of the requested phase, and return the
status of the phase block to the run state. When the phase restart bit is enabled,
none of the remaining phase control bits will be set. Finally, the batch
management system cannot send a request to restart a phase block unless the
phase block status is in the held state.
• Abort
The phase abort command is enabled by the batch management system for a
phase whenever the abort command button is selected. Generally, the abort
command will end the execution of the requested phase and put the phase
status in the aborted state. When the phase abort bit is enabled, none of the
remaining phase control bits will be set. Finally, the batch management system
cannot send a request to abort a phase block unless the phase block status is in
the held state.
464 Chapter 15

• Reset
The phase reset command is enabled by the batch management system for a
phase whenever the phase has completed normally or been aborted. Generally,
the reset command will return all of the phase logic to its original state and put
the phase status in the ready state. When the phase reset bit is enabled, none of
the remaining phase control bits will be set. Finally, the batch management
system cannot send a request to reset a phase block unless the phase block
status is in either the done or aborted state.

Phase Status
The following section describes the principals of phase status.

General
The batch control system recognizes the current status of a phase block through a
series of tags that are mapped to the memory of the control system. One group of
these requests is for monitoring the status of each phase. The status bits available
for each phase are ready, run, held, done, interlocked, and aborted. Only the ready
and done bits are required. When the phase block status changes, either via the
phase logic or from a request from the batch management system, the phase status
word is set accordingly. In the phase block, the phase status word can be
continuously written or written only when the status changes. When a phase status
changes in the control system, the bit associated with that status in the phase status
word is altered. All phase status changes must be transmitted to the batch
management system through the phase status word. It is required that the phase
block be in only one state at a time. The phase status bits are described below.
• Ready
The ready status bit is enabled by the control system for all phases ready to run.
Generally, the ready status bit will be set when there is no execution of the
phase block and everything in the block has been reset and is ready for
execution. When the ready status bit is enabled, none of the remaining phase
status bits may be set. Finally, the batch management system cannot send a
request to start a phase block unless the phase block status is in the ready state.
• Run
The run status bit is enabled by the control system for all executing phases.
Generally, the run status bit will be set when the phase block has been started
or restarted and everything in the block is executing normally. When the run
status bit is enabled, none of the remaining phase status bits may be set.
Finally, the batch management system cannot send a request to hold a phase
block unless the phase block status is in the run state.
• Held
The held status bit is enabled by the control system for all phases that have
been put on hold either by the batch management system or from the
occurrence of a critical alarm. Generally, the phase logic freezes the current
operation in progress, and places the block in the held state. However, the
actual operation of the phase logic while in the held state is application
specific. When the held status bit is enabled, none of the remaining phase
status bits may be set. Finally, the batch management system cannot send a
request to restart or abort a phase block unless the phase block status is in the
held state.
Phase Logic Development and Testing 465

• Done
The done status bit is enabled by the control system for all phases that have
finished their execution. When the done status bit is enabled, none of the
remaining phase status bits may be set. Finally, the batch management system
cannot send a request to reset a phase block unless the phase block status is in
the done, or as will be seen below, the aborted state.
• Interlocked
The interlocked status bit is enabled by the control system for all phases in
which a condition prevents their safe execution. Generally, the interlocked
status bit will be set before the start of execution of the phase block. The
interlocked status represents a condition of the process which prevents proper
operation of the phase block. When the interlocked status bit is enabled, none
of the remaining phase status bits may be set. Finally, the batch management
system cannot send a request to start a phase block if the phase block status is
in the interlocked state.
• Aborted
The aborted status bit is enabled by the control system for all phases that have
been aborted. The only way this bit can be turned on is by placing the phase
block on hold and then selecting the abort option. Therefore, it is impossible to
abort a phase without first placing the phase in hold. When the aborted status
bit is enabled, none of the remaining phase status bits may be set. Finally, the
batch management system cannot send a request to reset a phase block unless
the phase block status is in aborted, or the done state.

Formula Parameters
The following section describes the configuration of formula parameters.
466 Chapter 15

General
The phase block parameters correspond to the temperatures, times, speeds, rates,
quantities, and alarm settings configured in a particular formula for a recipe in the
batch control system. The formula parameters are downloaded to the control system
just prior to the phase start command. The control system receives the desired
values and returns any corresponding actual values. Phase blocks can have no
parameters, or they can have many parameters.

Parameter Types
There are three types of parameters: Input, Output, and Process Variable.
Input parameters are used to define and monitor the addition (input) of a material
to a batch. A common Input parameter is Quantity.
Output parameters are used to define and monitor the production (output) of a
material from a batch. A common Output parameter is Quantity.
Process Variable parameters are used to define how a phase should function when
the phase is executing. Common Process Variable parameters are Temperature,
Speed, Flow Rate, Mix Time, Cook Time, React Time, Hi-Hi Temp Alarm, Hi
Temp Alarm, and Rate of Change Alarm.

Parameter Type Extensions


Each type of parameter has a set of extensions that may or may not be used,
depending on the use of the parameter. Further discussion on how extensions
should be used is presented below.
• Input Parameter Extensions
Target
Actual
High Deviation
Low Deviation
Preact
Lot Code
Material ID
• Output Parameter Extensions
Target
Actual
Material ID
• Process Variable Extensions
Target
Actual
High Deviation
Low Deviation
Phase Logic Development and Testing 467

High Limit
Low Limit

Definition of Parameter Extensions


The following section describes parameter extensions.

Target Value
The target value extension is used by the batch control system to transfer a specific
numerical value to the particular phase block that is in operation. This value is one
that has been configured within the batch control system and is specific to the
current recipe as well as the phase block. Generally, the target value parameters will
consist of process temperatures, timer values, and transfer quantities.

Actual Value
The actual value extension consists of a specific numerical value that originates
within the phase block logic and is transferred to batch control system. This value
corresponds with a target value that has been passed to the phase block from the
batch control system, and is usually monitored and displayed in the batch control
system. The values also generally consist of process temperatures, timer values, and
transfer quantities. The comparisons between the target values and corresponding
actual values are used to determine the completion of the respective phase block.
An example of an actual value would be the time remaining as the soak phase block
is operating.

High Deviation
The high deviation extension is a batch control system configured value that
corresponds to a high tolerance limit for the actual value. Generally, should the
actual value become greater than the high deviation value while the phase block is
in the run state, an alarm will be generated.

Low Deviation
The low deviation extension is a batch control system configured value that
corresponds to a low tolerance limit for the actual values. Generally, should the
actual value become less than the low deviation value while the phase block is in
the run state, an alarm will be generated.

High Limit
The high limit extension is a batch control system configured value that
corresponds to the maximum value that can be entered in the recipe for a parameter
target.

Low Limit
The low limit extension is a batch control system configured value that corresponds
to the minimum value that can be entered in the recipe for a parameter target.
468 Chapter 15

Preact
The preact extension value corresponds to the addition of bulk ingredients, and it is
defined as the amount of an ingredient that is discharged from a source after the
command has been given to stop the flow. An example of a preact would be the
extra quantity of an ingredient that is being fed to a scale from a conveyor. When
the desired weight is reached and the conveyor is turned off, there remains some
extra quantity of the ingredient that falls from the conveyor to the scale. The
quantity of this extra amount of an ingredient is called the preact. Automatic
adjustments of the preact must be done in the control system.

Lot Code
The lot code extension is a batch control system configured value that corresponds
to the lot code entered by the operator for an input material.

Material ID
The material id extension is a batch control system configured value that
corresponds to the identification code of the input or output material being moved
by the operator. The material id is assigned in the recipe, but may be changed by the
operator.

Control Buttons
Each phase block may contain two control buttons that are available for whatever
functions the phase block desires. These control buttons are operated from the batch
control system display screen and are transferred to the control system via tags that
are associated with control system memory locations. Examples of control buttons
are the scale reset and tare buttons used during a weighing operation.

Interlocks
Interlocks are conditional statements that are used to prevent the start of a particular
phase block. Phase blocks can have any number of interlocks, as well as share
interlock conditions with multiple phase blocks. The interlocks are found in the
interlock section of the program corresponding to the unit or connection with which
they are associated. Usually, the interlocks correspond to an output device. If a
particular interlock condition exists, the respective interlock bit is set, the phase
status interlock bit is set, and the phase block is unable to be started. Interlock
conditions must be changed for the interlock to clear and the block to become
ready. Also, interlock conditions are disabled if the phase block is in operation.
Some examples of phase block interlocks are listed below.
• Reactor discharge valve open prevents the operation of any phase block that
adds bulk ingredients to the reactor.
• The level in a reactor must be a certain height before the agitator phase block
can be started.
Phase Logic Development and Testing 469

Alarms
Alarms are conditional statements that can be enabled at any time and can alter the
status of a particular phase block. Phase blocks can have any number of alarms. The
alarms are found in the alarm section of the program corresponding to the unit or
connection with which they are associated. Usually, the alarms correspond to an
output device. There are usually two levels of severity associated with alarms for a
given set of conditions. One is an advisory alarm. This alarm may require an
acknowledgment by the operator. However, the advisory alarm does not require an
operator reset, and usually, the phase block does not require a restart command. The
block operation continues as normal. The other alarm is a critical alarm. This alarm
condition usually requires the operator to acknowledge the alarm, reset the alarm,
and restart the phase block. If a particular alarm condition exists, the respective
discrete memory location is enabled, the phase block alarm is set, and if it is a
critical alarm, the phase block status may be altered.

Note It is recommended that, for the safety of process personnel, alarms are
configured as critical alarms whenever possible so that the phase block must be
manually restarted.

Some examples of phase block alarms are listed below.


• Reactor discharge valve fails to open or close and disrupts the operation of a
transfer phase block, setting an alarm bit that is read by batch control system,
and putting the transfer phase block in held.
• The agitator does not turn on within a predetermined length of time after the
signal to turn on is sent to the starter. This also sets an alarm bit that must be
addressed by the operator.
• The actual temperature within a reactor exceeds a predetermined value.

Input and Output Control


In the complete process control system program there will exist inputs and outputs
corresponding to the process equipment. These I/O points should be treated
differently within the control system code. The inputs should appear wherever they
are needed throughout the code. The outputs, however, will be located in the
appropriate unit or connection section of the program, and demand a more formal
structure.
Because a particular output may be referenced in more than one phase block within
a unit or connection, a conflict could arise if the direct output address is used in
multiple places of the program. Therefore, it is strongly suggested that all outputs,
no matter how many times they are used, be placed in the global output section.
Any phase block requiring the output would energize an intermediate discrete
memory location that would then be placed in the appropriate location of the output
section. Thus, an output used by more than one phase block would contain multiple
discrete locations connected in parallel, each of which would independently turn on
the particular output. Also, all manual device operation logic will exist in this
section. The reasons behind placing all outputs in the global output section are
consistency and ease of troubleshooting. Finally, for safety reasons, alarms that
disable one or many outputs should exist in the global output code and not scattered
throughout the phase logic. This ensures that the outputs are disengaged.
470 Chapter 15

Using the Phase Logic Testing Tool


The Phase Logic testing tool can be used to take the place of the batch management
system and exercise the handshaking interface that is expected between a phase
logic block and the Batch Manager. Each and every phase in a control system can
be tested using the Phase Logic testing tool.

Starting the Phase Logic Testing Tool


The following section describes how to use the phase logic testing tool.

To Start the Phase Logic Testing Tool:


In the Environment Display, double-click the PhaseLogic icon.

Note The Phase Logic testing tool is not included in the Environment Display by
default. You must add the application using Environment Editor.

For more information on editing the environment system, see Chapter 3,


"Environment Management System."
The Phase Logic window will appear.
Phase Logic Development and Testing 471

From this window, phases for any unit or connection can be selected and
executed using the Start, Hold, Restart, Abort, and Reset buttons. You can
also exercise Control buttons and review interlock operation.

File Menu
Use the Phase Logic testing tool File to access system functions for the Phase Logic
testing tool.

File/Exit
Use this command to close the Phase Logic testing tool.

WARNING! It is the responsibility of the user to end and reset all phases before
exiting the Phase Logic testing tool. If a phase is not properly reset, the batch
management system will be unable to successfully use that phase in a batch.
472 Chapter 15

Help Menu
Use the Phase Logic testing tool Help menu to access online help and information
about product version.

Help/Help Topics
Use this command to display help for the Phase Logic testing tool.

Help/About Phase Logic


Use this command to view Version information.

Exercising Phases
A phase can be executed very easily from the Phase Logic testing tool. The
following steps are necessary to generate, export, refresh, and print a report.
1. Select the unit or connection that contains the phase that you want to execute
from the Units/Connections list.
The Phases list will update to show the process or transfer phases available for
the selected unit or connection.
2. Select the phase to be executed from the Phases list.
The Parameter list updates to show any formula parameters defined for the
selected phase.

Note Phases are not required to have formula parameters.

3. To modify any formula parameter value, select the parameter extension in the
Parameter list, enter the new value in the text entry field, and select the
Change button.
The new formula parameter value will be displayed in the Parameter list.
4. Use the buttons at the bottom of the window to send control signals to the
phase.
The Status signals will change to show the current state of the phase.
For more information on the handshaking between the phase control and status
commands, see “Operational Flow Chart” on page 452.

Note It is very important to Reset each phase when the state of the phase is either
Done or Aborted.

5. Click the Interlocks button to view any interlock tags assigned to the phase.
The Interlocks window will display all of the interlock tags and their current
values.
Active-X GUI Controls 473

C H A P T E R 1 6

Active-X GUI Controls

InBatch Active-X GUI Controls can be used in any compliant Active-X container
to quickly and easily create custom InBatch runtime client interfaces. Suitable
Active-X containers include InTouch WindowMaker and Microsoft Visual Basic.
The GUI controls are new for InBatch 8.0 and take the place of the old InTouch
wizards.
For more information on using WindowMaker, see your online InTouch User's
Guide.

Note You must have the appropriate client licensing in order to successfully use
the InBatch Active-X GUI Controls.

Contents
• Overview
• Configuring InTouch WindowMaker to use InBatch Active-X GUI controls
• Using InBatch GUI Controls
• InBatch GUI Control Descriptions
• Building a Simple Batch Scheduler
• Using the BatchSecurity Control

Overview
Active-X controls are graphical components with built-in execution logic which
can be embedded in any Active-X container application. InTouch Window Maker
and Visual Basic are examples of Active-X containers. The InBatch Active-X GUI
controls connect to the InBatch server and display batch related information to the
user.
Using the GUI controls will help to greatly reduce application development time.
This chapter describes how to use the Active-X GUI controls in the InTouch
WindowMaker environment, but many of the concepts discussed here apply to
Visual Basic or Visual C++ usage as well.
474 Chapter 16

Configuring InTouch WindowMaker to use


InBatch Active-X GUI controls
You must first add the Active-X controls to the WindowMaker environment by
selecting Wizard/Active-X Configuration from the Configure tree node or
from the menu system under Special\Configure. This displays the
Wizard/Active-X Installation dialog. Select the four InBatch GUI control
classes. These are:
• Wonderware BatchButton Class
• Wonderware BatchField Class
• Wonderware BatchGuiConfig Class
• Wonderware BatchList Class
Click the Install button to make the control classes available to WindowMaker.

Note The four classes are provided in a single ocx library. In Visual Basic the
single component name to add is "Wonderware InBatch GUI Controls".

Using InBatch GUI Controls


Clicking the Wizards icon from the InTouch toolbar accesses the installed Active-X
controls.
Active-X GUI Controls 475

To insert a control into an application, click the appropriate wizard and then click
OK. Move the mouse pointer to the required insertion point in the InTouch
application and then single-click the left mouse button.
Sizing of the controls is based on the control type configuration and font selection.
When an InBatch GUI control is double-clicked, a property configuration dialog is
displayed indicating the current configuration.

InBatch GUI Control Descriptions


The four classes of InBatch GUI controls perform different functions and each has a
different set of properties to configure.

BatchGuiConfig

Provides central administration of all Batch GUI controls for an application. The
BatchGuiConfig control is invisible at runtime. It has no graphical component. This
control is where the connection to the InBatch Batch Server is configured.
476 Chapter 16

Note The BatchGuiConfig control sets up the connection information that is used
by all Batch GUI controls for an entire application. Once this is done, the
BatchGuiConfig control is no longer required and can actually be removed from
memory without affecting the other controls.

Properties
Host1
Set this property to the host name of the InBatch Batch Server. In a redundant
server architecture, this is the host name of the Primary Batch Server.

Host2
This property is only used with redundant server architectures. Set this to the host
name of the Redundant Batch Server.

AutoInit
When set to 1 (or checked on the property page) this property initializes the
connection to the Batch Server automatically when the control is loaded in a
running application, or the application is switched from design mode to run mode
(e.g. WindowMaker to WindowViewer).

Unit
This is a string set to the unit to focus on when running in Unit-Centric mode. If
this property is left blank, the Batch GUI controls run in Batch-Centric mode.

ServerConnected
Available at Runtime Only. (Not available at design time). Set to 1 when there is an
active connection to the Batch Server.
Active-X GUI Controls 477

PortBatchMngr These properties define the tcp/ip port


PortEnvMngr definitions for the connection to the Batch
Server. The port definitions are pre-defined
PortInfoMngr
with the default numbers used on the Batch
PortRedMngr Server. These must match the port definitions
PortSecMngr used on the Batch Server in order for
PortUnilinkMngr communications to be successful. Only
change these properties if you have changed
the port definitions on the Batch Server
because of a system conflict.

Methods
AltSetCancelMsgBox
An alternate method to cancel a Msg Box raised by the ActionError event. (see
ActionError event below). This method has no arguments.

GetOcxBatchObject
Returns a reference to the underlying OcxBatch control. This allows for more
custom control of the interface in VB or VC++ environments. Since this method
returns an object reference, it cannot be used by InTouch. This method has no
arguments.

Init
Initializes the connection to the Batch Server. This is only needed when the
connection is lost if the AutoInit property is set. This method has no arguments.

Term
Terminates the connection to Batch Server. This method has no arguments.

Events
ActionError
Called when a non-server generated error occurs during a batch action. Arguments:
ErrorCode: an integer error code, and CancelMsgBox: an integer reference. Return
1 to the CancelMsgBox argument to prevent the error message box from
displaying.

LostServerConnection
Called when the connection to Batch Server is lost. No arguments

SystemShuttingDown
Called when the Batch Server is shutting down. No arguments
478 Chapter 16

BatchList

Displays live list data. The BatchList control can be configured to be a schedule
list, active batch list, active phase list, parameter list, etc. Any list found on Batch
Display or Batch Scheduler can be configured with the BatchList control.

The BatchList control can be configured to be any of the following:

BatchView:
• Batch (Active Batch List)
• Message List
• Question List
• Transition:
• Transition List
• Tag List
• Allocation Queue List
• Phase Edit:
• Phase List
• Parameter List
• Equipment Allocation:
• Equipment
Active-X GUI Controls 479

• Instance
• Select Equipment:
• Instance
• Equipment
• Phase List (Active Phases)
• Parameter List
• Interlock List

ScheduleEdit:
• Schedule List
• Train List
• Recipe List

Error List

Properties
ColumnHeaders
A comma-separated string to define the column heading names shown on the list
control.

Columns
Available at runtime only. Returns the number of columns in the list. Read Only.

ColumnWidths
A comma-separated string. Defines the widths (in characters) of each column in the
list.

Grid
Sets/returns a value indicating if grid lines are displayed on the control.

Rows
Available at runtime only. Returns the number of rows in the list. Read only.

SelectedRow
Available at runtime only. Sets/returns the currently selected row number. Row
numbers start at 0. -1 indicates no selection.

BackColor
Sets/returns the background color of the list.

ForeColor
Sets/returns the foreground (text) color of the list.
480 Chapter 16

Font
Sets/returns the character font used for the list. This property affects the size of the
control.

Methods
AltSetBusyMessage
Alternate method for setting the list busy message from within the BeforeListBusy
event. (See BeforeListBusy event below)

GetItemColumnValue
Returns the string contained in any cell of the list. Arguments are Row and Column
numbers.

Events
AfterClick
Event called when the control is clicked and after any batch-specific processing is
performed. Passes arguments Row number and Result. The Result value indicates if
it was a double or single click.

AllItemsDeleted
Called after the list has been cleared.

BeforeListBusy
Called before the list is about to indicate that it is busy.

Click
Called when a list item is clicked but before any batch-specific processing is
performed. The row number clicked is passed as an argument.

DblClick
Called when a list item is double clicked but before any batch-specific processing is
performed. The row number double clicked is passed as an argument.

ItemAdded
Called after a list item (row) has been added to the list. The row number of the
added row is passed as an argument.

ItemChanged
Called after a list item (row) has been changed. The row number of the changed
row is passed as an argument.
Active-X GUI Controls 481

ItemDeleted
Called after a list item (row) has been deleted from the list. The old row number of
the deleted line is passed as an argument.

ItemSelected
Called after a list item (row) has been selected. The row number selected is passed
as an argument.

BatchField

The BatchField control is a data field that is linked to a BatchList control. The
BatchField control can be configured very similarly to the BatchList control. The
same hierarchical list of types is available as in the BatchList control, but with an
extra level of detail. Choose the list in the Property page and then the data field of
the list desired. Different BatchField controls have different visual appearances.
While most types look like a simple textbox control, some appear as dropdown
lists, combo boxes, multi-line textboxes, or even checkboxes.

In each case, the node directly above the selected Field type in the property page,
indicates the type of BatchList that the BatchFeild control is associated with. The
linking of the BatchField to the parent BatchList control is automatic. The
BatchField control has been designed to work with the BatchList controls so that no
programming or scripting is required for basic batch functionality. Additional
functionality can be added to the control by using scripting or programming.
482 Chapter 16

Properties
AutoEnabled
Returns the current enabled state of the control. This is read only at runtime. The
internal logic of the control enables and disables the BatchField control
automatically.

Editable
Sets/returns a value indicating if the user may write to the control.

Label
Specifies the text label to display for checkbox-style BatchField controls.

Static
When set to true, the BatchField will display as a label (no surrounding box).

ValueText
Sets/returns the current text value of the control.

BackColor
Sets/returns the background color of the control.

ForeColor
Sets/returns the foreground (text) color of the control.

Font
Sets/returns the font used by the control. Read-Only at runtime. This property
influences the size of the control.

Methods
AltSetCancel
Alternate way to cancel a field value change action from within the BeforeExecute
event

Events
AfterExecute
Called after any action occurs from a field value change

BeforeExecute
Called before any action occurs from a field value change
Active-X GUI Controls 483

StateChanged
Called after the control’s value or enabled state is updated. The Change Type is
passed as an argument.

BatchButton

The BatchButton is a configurable batch action button. Like the BatchField control,
the batchButton control is tied to a BatchList control or in some cases it is linked to
a BatchField control.

The behavior of the BatchButton control is determined by it’s type configuration


which is done through the property page. The BatchButton types are grouped
functionally by the BatchList or BatchField controls they are associated with. Drop
the control onto the screen and configure the type of BatchButton desired. The
functionality of the button is built in to the internal logic of the control. No scripting
or programming is necessary for the designed batch function. Other functionality
can optionally be added with scripting or programming.

Properties
Appearance
Specifies wether the button should be displayed flat or 3-D.
484 Chapter 16

AutoEnabled
Returns the current enabled state of the button. This property is Read-Only. The
internal logic of the control automatically enables and disables the control.

Caption
Specifies an alternate caption text for the button. A default caption based on the
selected button type is used if this property is left blank. The default caption is in
English.

BackColor
Specifies the background color for the button.

ForeColor
Specifies the foreground (text) color for the button.

Font
Specifies the font for the button caption.

Methods
AltSetCancel
Alternate way to cancel a button action from within the BeforeExecute event.

Execute
Forces the buttons action to execute without having the user click it.

Events
AfterExecute
Called after any action occurs from a button click.

BeforeExecute
Called before any action occurs from a button click.

StateChanged
Called after a button’s caption or enabled state is updated. The Change Type is
passed as an argument.

Building a Simple Batch Scheduler


This section will describe how to build a very simple batch scheduler, much like the
BatchSched application supplied with the InBatch Server.
Active-X GUI Controls 485

Create the InTouch Window


First, configure InTouch WindowMaker with the ActiveX controls as described
previously in this chapter. Create a window and drop on a BatchGuiConfig control.

Tip BatchGuiConfig buttons may appear very large on the screen. Once you
determine a usable size by resizing the control, you can use the InTouch "duplicate"
feature to create additional instances of the button and then configure each as the
button type you require.

If you are running InTouch on the InBatch server, you do not need to configure the
control for the host name. If the InBatch Server is running on another machine, you
must configure the Host1 property of the BatchGuiConfig control to the node name
of the Batch Server. If the Host1 property is left blank, then the local node is
assumed to be the Batch Server.

Add the Schedule BatchList Control


Drop a BatchList control onto the window and double click on it to bring up the
property page. Select the BatchList tab and open the ScheduleEdit folder in the
treeview. Select the Schedule list and click the Apply button at the bottom of the
property page.
486 Chapter 16

The BatchList control will configure itself as a Schedule list, complete with column
headings.

Add the BatchField Controls


We will need a way to enter information into the schedule list, so we need some
BatchField controls to go with it. Drop a BatchField control onto the screen below
the list and double click it to bring up its property page.
Active-X GUI Controls 487

Select the Batch Field tab and open the ScheduleEdit folder in the treeview.
You will notice the schedule list is now a folder and it contains all the BatchField
types associated with the schedule list. Choose the Campaign entry and click the
Apply button at the bottom of the property page.
Now copy this control and configure the copies to be the Lot, Batch, Recipe, Size,
Train, Mode, Status, and ExecuteInOrder fields. Notice that the Mode field will
appear as a dropdown list, the Status is not Editable since this is a Read Only field,
and the ExecuteInOrder BatchField becomes a checkbox control.

Adding BatchButton Controls


In order to manipulate this list, we will need some buttons to tell it what to do. So
we will add some BatchButton controls to our window.
Drop a BatchButton control onto the window at the lower left.
Double Click the control to display the property page.
Select the Batch Button tab and open the Schedule Edit node of the treeview.
Again the Schedule list appears as a folder. Open it.
Select the Add button and click Apply at the bottom of the property page.
488 Chapter 16

Copy this control seven (7) more times and configure the copies as the Delete,
Change, CleanUp, Initialize Batch, Initialize All, Move Up, and Move
Down buttons as shown.

You are now ready to test the scheduler.

Running the Scheduler


In order to run the schedule application, first make sure that you have a valid model
and you have defined some materials and at least one recipe. Then start the InBatch
runtime applications on the Batch Server.
Active-X GUI Controls 489

Start the Batch Server


This is the minimum set of runtime services that you must run on the Batch server
in order for our InTouch Scheduler to work correctly:

UnilinkMngr
Always required.

MemTagMngr
Creates the InBatch Memory Tags

SimMngr
(or IBCli)
SimMngr simulates the phases. IBCli is hooked up to real I/O.

InfoMngr
Required for ActiveX client controls: OcxBatch, BatchSFC, and BatchGUI.

BatchMngr
The Batch Engine. Always Required.

Note By default the IBServ application is also in the runtime list and while not
required, it won’t hurt by being there. IBServ is responsible for serving up InBatch
tag information to DDE or SuiteLink clients. The BatchGUI controls do not use tag
communications, so IBServ is not required. You may wish to use some of the
InBatch system tags elsewhere in your InTouch client application however, so then
IBServ would be required.

Bring up the Runtime Application Display and click the Start All button.
490 Chapter 16

Run the InTouch Application


Once all the InBatch runtime services have been started, you can switch the
InTouch application to Runtime. If you have the AutoInit property of the
BatchGuiConfig control set (it is set by default), then the application will
automatically initialize (connect) to the InBatch Server. If there are already batches
scheduled on the server, you should see them in the schedule list.

Note The Recipe and Train fields can be populated from the Recipe List and Train
List BatchList controls respectively. These can be added on this window or as a
separate pop-up window, etc.

Using the BatchSecurity Control


Another useful user interface control is the BatchSecurity control. This allows the
user application access to the InBatch security system so that applications and
functions can be secured. The InBatch security system can be extended to include
your own custom applications and functions.
For more information about configuring InBatch security, see Chapter 13, "Security
System."
You must first add the Active-X controls to the WindowMaker environment by
selecting Wizard/Active-X Configuration from the Configure tree node or
from the menu system under Special\Configure. This displays the
Wizard/Active-X Installation dialog. Select the Wonderware BatchSecurity
class and click Install.
Active-X GUI Controls 491

Clicking the Wizards icon from the InTouch toolbar accesses the installed Active-X
controls.

To insert the control into an application, click the BatchSec icon and then click OK.
Move the mouse pointer to the desired window in the InTouch application and then
single-click the left mouse button to drop the control onto the window.
The BatchSecurity control will not be visible at runtime, but it is best to keep it out
of the way of other controls in the application by placing it in a remote corner.

Note It is very important that the BatchSecurity control be available to the


application at all times. Therefore, it is best to locate it on a window that never gets
closed, for example a header window.
492 Chapter 16

Configuring the BatchSecurity Control


Double click on the control to display the property pages.

Properties
AutoInit
When set to 1 (or checked on the property page) this property initializes the
connection to the Batch Server automatically when the control is loaded in a
running application, or the application is switched from design mode to run mode
(e.g. WindowMaker to WindowViewer). The Security Manager service on the
Batch Server must be running in order for the control to connect.

CheckByPassword
Set this string property to the password for the Check-By user. This property is used
for the windowless function clearance checks. It’s use is described later in this
chapter

CheckByUserID
Set this string property to the User ID for the Check-By user. This property is used
for the windowless function clearance checks. It’s use is described later in this
chapter

DoneByPassword
Set this string property to the password for the Done-By user. This property is used
for the windowless function clearance checks. It’s use is described later in this
chapter
Active-X GUI Controls 493

DoneByUserID
Set this string property to the User ID for the Done-By user. This property is used
for the windowless function clearance checks. It’s use is described later in this
chapter

Host1
Set this property to the host name of the InBatch Batch Server. In a redundant
server architecture, this is the host name of the Primary Batch Server.

Host2
This property is only used with redundant server architectures. Set this to the host
name of the Redundant Batch Server.

LastErrorCode
Returns the error code (integer) of the most recent security request. A zero (0)
indicates no error.

LastErrorMessage
Returns the error message (string) of the most recent security request.

LastErrorRetriesExceeded
Returns the retries exceeded status (integer) of the most recent security request. The
value is 1 if the retry limit has been exceeded. Otherwise, it is 0. Retries exceeded
status can be cleared with the ResetRetries() method (see below).

SecurityPending
Returns a value (integer) indicating if a security request is pending. A non-zero
value indicates a pending request. A zero (0) indicates no requests are pending. Any
pending requests can be cancelled with the AbortPendingSecurity() method (see
below).

PortRedMngr
This property is the user setting for the tcp application port definition used by the
Redundancy Manager (RedMngr) on the batch server. It defaults to 9006 and
should be the same as the tcp port definition for RedMngr on the batch server. This
definition is found in the WINNT\system32\drivers\etc\services file on the batch
server.

PortSecMngr
This property is the user setting for the tcp application port definition used by the
Security Manager (SecMngr) on the batch server. It defaults to 9004 and should be
the same as the tcp port definition for SecMngr on the batch server. This definition
is found in the WINNT\system32\drivers\etc\services file on the batch server.
494 Chapter 16

Methods
AbortPendingSecurity()
This method aborts any pending security requests. If a security dialog is open, it
will close it. There is no return code.

ApplicationClearance(ApplicationID, WinType, UserData)


Checks for user application clearance. The ApplicationID (string) identifies the
application to check for security configuration. The WinType (secWindowType)
argument determines the dialog behavior for the security check. UserData (long) is
a place to store a user-defined number that will be passed through to any events
raised by the clearance check. See explanation of Window Types later in this
chapter. The function returns an integer Result code (secResultType).

ChangeUserPassword(UserID, OrigPassword,
NewPassword)
This method allows a user, identified by UserID (string), to change their password.
They must supply their valid, current password in the OrigPassword (string)
argument in order for the change to take effect. The password is set to
NewPassword (string). The function returns an integer Result code
(secResultType).

FunctionClearance(ApplicationID, FunctionID, RecipeID,


WinType, UserData)
This method authenticates a user for functional security. The function attempted is
identified by the ApplicationID (long) and the FunctionID (long). The RecipeID
(string) identifies the recipe affected as users may be configured to only interact
with certain recipes. The WinType (secWindowType) determines the behavior of the
security dialogs (see "Window Types" later in this section) and the UserData (long)
argument contains user-defined data that will be passed to an events raised in
connection with the security check. The function returns an integer Result code
(secResultType).

GetApplicationName(ApplicationID)
Returns the name (string) of the secutiry application identified by the
ApplicationID (long) argument.

GetFunctionName(ApplicationID, FunctionID)
Returns the name (string) of the security function identified by the ApplicationID
(long) and FunctionID (long) arguments.

GetUserName(UserID)
Returns the name (string) of the user identified by the UserID (string) argument.
Active-X GUI Controls 495

Init()
Initializes a connection to the Security Manager service running on the Batch
Server identified by the Host1 or Host2 property. The Init method first attempts to
connect to the batch server on Host1, and then attempts Host2. (See Host1 and
Host2 properties above). The security manager service must be running in order to
be successful.

QueryApplicationSecurity(ApplicationID)
Returns an integer (secRequestType) indicating if security is required for the
application identified by ApplicationID (long). The return value is 0 if no security
is required to access the application, and 3 if security is required.

QueryFunctionSecurity(ApplicationID, FunctionID)
Returns an ineteger (secRequestType) indicating what security is required for the
function identified by ApplicationID (long) and FunctionID (long). The return
value is 0 if no security is required to access the function, 1 if DoneBy security is
required

ResetRetries()
Resets the retry count for authentication attempts. The limit for retries is configured
in the InBatch security system. When the limit is reached, an error results.

Term()
Terminates the connection to the InBatch Security Manager.

Events
ApplicationClearanceComplete(Result, ApplicationID,
UserData)
This event is raised after a ApplicationClearance method has been called and any
security dialogs or other information has been provided to the security system. The
Result (secResultType) argument contains the result code: 0 if the clearance request
was successful, 1 if not.

FunctionClearanceComplete(Result, ApplicationID,
FunctionID, UserData)
This event is raised after a FunctionClearance method has been called and all
security dialogs or other information has been provided to the security system. The
Result (secResultType) argument contains the result code: 0 if the clearance request
was successful, 1 if not.
496 Chapter 16

RequestNewPassword(RequestType, UserID, UserData)


This event will be called when you are using a secWindowType of
secWindowlessEvent with the ApplicationClearance or FunctionClearance
methods. It is called when a clearance request fails due to the user’s password
expiring and it will automatically try to change their password based on the new
password you return. If RequestType is secRequestApplication or
secRequestDoneBy, you need to set the DoneByPassword property with a new
password before returning from this event. If RequestType (secRequestType) is
secRequestCheckBy, you need to set the CheckByPassword property with a new
password before returning. This event may be called repeatedly until you have
returned a valid new password. You may call the AbortPendingSecurity method
within this event to cancel the security request. You may also use the
LastErrorCode and/or LastErrorMessage properties to determine if there is a
previous access error to report to the user. The UserID argument specifies the ID for
the user whose password must be changed. The UserData argument is the value that
was passed into the original ApplicationClearance or FunctionClearance method.

RequestUserInfo(RequestType, ApplicationID,
ApplicationName, FunctionID, FunctionName, UserData)
This event will be called when you are using a secWindowType of
secWindowlessEvent with the ApplicationClearance or FunctionClearance
methods. It is called when the clearance request needs some information. If
RequestType is secRequestApplication or secRequestDoneBy, you need to set the
DoneByUserID and DoneByPassword properties before returning from this event.
If RequestType is secRequestCheckBy, you need to set the CheckByUserID and
CheckByPassword properties before returning. This event may be called repeatedly
until you have returned proper credentials. You may call the AbortPendingSecurity
method within this event to cancel the security request. You may also use the
LastErrorCode and/or LastErrorMessage properties to determine if there is a
previous access error to report to the user. The other arguments passed into this
event are the values passed into the ApplicationClearance or FunctionClearance
method, except for the ApplicationName and FunctionName arguments, which are
useful if you need to prompt the user for the information.

Enumerations
The following enumeration sets are used by the BatchSecurity control.

secWindowType
This value is used as an argument to the ApplicationClearance and
FunctionClearance methods. The value of the WinType argument determines the
behavior of the security dialogs and how the user must interact with the security
system.

secWindowModal (0)
This type will prompt the user for information as required using a Modal security
dialog. Therefore, the clearance call will not return until a result has been
determined
Active-X GUI Controls 497

secWindowModeless (1)
This type will prompt the user for information as required using a Modeless
security dialog. Therefore, the clearance call will return immediately with a result
of secResultPending, and the actual result will be returned through a
*ClearanceComplete event.

secWindowlessEvent (2)
This type will request information as required by firing RequestUserInfo and/or
RequestNewPassword events. The program can then provide the required
information by setting various properties on the control from within the event. It is
a modal interface, meaning the clearance call will not return until a result has been
determined. However, there is no built-in security dialog presented to the user. This
window type is designed to allow the designer to create their own security dialog(s)
which would be invoked when the RequestUserInfo and RequestNewPassword
events are raised.

secWindowlessCheck (3)
This type will perform a simple one-shot access check, using information provided
before the clearance method is called. It can be used when you already know the
level of security required and the clearance information. The result of the clearance
request will be known upon return. When using this type of clearance check, you
will need to set the DoneByUserID, DoneByPassword, CheckByUserID, and
CheckByPassword properties (as needed) before calling the clearance method. You
can determine which ones are required by calling the QueryApplicationSecurity
and/or QueryFunctionSecurity methods.

secResultType
Many of the functions return one of the following result types. The
LastErrorMessage and LastErrorCode properties can be used to dig deeper into
what a specific problem was.

secResultOk (0)
Clearance was granted OR the method succeeded

secResultFail (1)
Clearance was not granted OR the method had some other failure

secResultPending (2)
Clearance was not yet granted and the result will be returned later OR another
security request is pending, so you cannot perform this action at this time.

secRequestType
This type is mainly used when the control is requesting information through one of
the Request* events. It specifies what information the security clearance is
currently requesting.
498 Chapter 16

secRequestNone (0)
This type is never passed into the Request events, but can be returned by the
Query* methods to specify that no security is required for the queried
application/function.

secRequestDoneBy (1)
This type is passed into the Request* events when DoneBy information is required
to complete a function security clearance request. It can also be returned by the
QueryFunctionSecurity method to specify that DoneBy security is required for the
queried function.

secRequestCheckBy (2)
This type is passed into the Request* events when CheckBy information is required
to complete a function security clearance request. It can also be returned by the
QueryFunctionSecurity method to specify that DoneBy and CheckBy security is
required for the queried function.

secRequestApplication (3)
This type is passed into the Request* events when DoneBy information is required
to complete an application security clearance request. It can also be returned by the
QueryApplicationSecurity method to specify that DoneBy security is required for
the queried application.

Security Control Examples


The following InTouch script is secured by InBatch security. The example starts
with the configuration of a custom security application and function in the InBatch
security editor.

To Configure InBatch Security


1. Add a custom application to the InBatch security system called "InTouch".
2. Then add a function to that application called "Open Valve".
Active-X GUI Controls 499

3. Set the function to require Done By security.

Example 1: WinType = secWindowModal


The following InTouch script will act to manually force a valve only if InBatch
security is passed. This is the easiest way to implement the BatchSecurity control.
{Script to open valve XV101 manually}
{Check InBatch for Security Clearance (Modal Window)}
IF #BatchSec3.FunctionClearance( 99, 1, "", 0, 0) == 0 THEN
{0 means it's OK, open the valve}
XV101_MAN = 1;
ELSE
{There's a problem, show the error message.}
OPR_MESSAGE = #BatchSec3.LastErrorMessage;
ENDIF;

Example 2: WinType = secWindowModeless


The following scripts show how this same function is accomplished with a
modeless window (script continues even while security dialog is up) The first script
is on the valve icon or button on the graphical display.
{Check InBatch Security (Modeless Window)}
500 Chapter 16

{Use 101 to identify the valve in the UserData argument}


#BatchSec3.FunctionClearance( 99, 1, "", 1, 101);
{END OF SCRIPT (user is still answering security dialog(s)}

A second script is required for a modeless dialog. Its an event script on the
BatchSec control FunctionClearanceComplete Event. It gets called when the
security information is finally filled out by the operator.

{{ActiveX Script: FunctionClearanceComplete}


IF #ThisEvent.FunctionClearanceCompleteResult == 0 THEN

{ Security Test Passed. User data tells me what was


requested. }
IF #ThisEvent.FunctionClearanceCompleteUserData == 100
THEN
XV100_MAN = 1;
ENDIF;

IF #ThisEvent.FunctionClearanceCompleteUserData == 101
THEN
XV101_MAN = 1;
ENDIF;

IF #ThisEvent.FunctionClearanceCompleteUserData == 102
THEN
XV102_MAN = 1;
ENDIF;

ELSE

{ Security failed. Display error message }


OPR_MESSAGE = #ThisControl.LastErrorMessage;

ENDIF;

Example 3: WinType = secWindowlessEvent


This is the most complicated case. The WindowlessEvent interface was designed to
allow users to create their own security dialogs. These dialogs would be displayed
to the user when the RequestUserInfo and RequestNewPassowrd events are raised.
The dialog(s) needs to be modal since the user information must be supplied to the
interface before the event handling routine terminates. Therefore, this window type
should not be used by InTouch, since InTouch cannot (and should not) display
modal dialogs.
Active-X GUI Controls 501

Note The WindowlessEvent window type should not be used with InTouch.

The following code sample is of a Visual basic application wishing to use InBatch
security. The command button, Command1 has some secured functionality.
Private Sub Command1_Click()
BatchSec1.FunctionClearance MyApp, MyFunc, "", _
secWindowlessEvent, MyUserData
End Sub

Private Sub BatchSec1_FunctionClearanceComplete(ByVal Result


As BATCHSECCTRLLibCtl.secResultType, ByVal ApplicationID As
Long, ByVal FunctionID As Long, ByVal UserData As Long)
If Result = secResultOk Then
' Security is OK.
' Do originally requested action encoded in UserData...
Select Case UserData
Case 1
' Do Case 1
Case 2
' Do Case 2
'...
End Select
Else
MsgBox BatchSec1.LastErrorMessage, , _
"Security Error Code " & Str(BatchSec1.LastErrorCode)
End If
End Sub

Private Sub BatchSec1_RequestNewPassword( _


ByVal RequestType As BATCHSECCTRLLibCtl.secRequestType, _
ByVal UserID As String, ByVal UserData As Long)
frmNewPasswordDlg.UserID.Text = UserID
frmNewPasswordDlg.Show vbModal
End Sub

Private Sub BatchSec1_RequestUserInfo( _


ByVal RequestType As BATCHSECCTRLLibCtl.secRequestType, _
ByVal ApplicationID As Long, _
ByVal ApplicationName As String, _
ByVal FunctionID As Long, ByVal FunctionName As String, _
ByVal UserData As Long)
502 Chapter 16

frmSecDialog.lblApplication.Caption = ApplicationName
frmSecDislog.lblFunction.Caption = FunctionName
Select Case RequestType
Case secRequestType.secRequestApplication
frmSecDialog.lblLevel.Caption = "Application"
frmSecDialog.Show vbModal
BatchSec1.DoneByUserID = frmSecDialog.UserID.Text
BatchSec1.DoneByPassword = _
frmSecDialog.Password.Text
Case secRequestType.secRequestDoneBy
frmSecDialog.lblLevel.Caption = "Done By"
frmSecDialog.Show vbModal
BatchSec1.DoneByUserID = frmSecDialog.UserID.Text
BatchSec1.DoneByPassword = _
frmSecDialog.Password.Text
Case secRequestType.secRequestCheckBy
frmSecDialog.lblLevel.Caption = "Check By"
frmSecDialog.Show vbModal
BatchSec1.CheckByUserID = frmSecDialog.UserID.Text
BatchSec1.CheckByPassword = _
frmSecDialog.Password.Text
End Select
End Sub

Example 4: WinType = secWindowlessCheck


This type of window assumes that some scripting or code will provide the UserID
and password information directly into the security object properties before the
FunctionClearance or ApplicationClearance method is called. This window type
can be used in conjunction with the QueryApplicationSecurity and/or
QueryFunctionSecurity methods in order to detemrine which if any dialogs would
need to be displayed. Since the call to the FunctionClearance or Application
Clearance method occurs after the information is supplied, this wondowtype can be
used by InTouch, since the security dialogs to execute in this mode can be
modeless.

{InTouch script to open XV101 in manual mode}


{On XV101 icon click}
SEC_APPLICATION = 99;
SEC_FUNCTION = 1;
SEC_USERDATA = 101;
SEC_LEVEL = BatchSec3.QueryFunctionSecurity(SEC_APPLICATION,
SEC_FUNCTION);
IF SEC_LEVEL == 0 THEN
Active-X GUI Controls 503

{No security required. Grant permission.}


SEC_GRANTED = SEC_USERDATA;
ELSE
SEC_REQUEST = "Done By"; {Ask for Done By Check}
Show "Security Check"
ENDIF;

{Data Change Script on SEC_GRANTED}


IF SEC_GRANTED == 100 THEN
XV100_MAN = 1;
ENDIF;
IF SEC_GRANTED = 101 THEN
XV101_MAN = 1;
ENDIF;
IF SEC_GRANTED = 102 THEN
XV102_MAN = 1;
ENDIF;
{Reset}
SEC_GRANTED = 0;

{OK Button Click Script on "Security Check" Window}


IF SEC_REQUEST == "Done By" THEN
BatchSec3.DoneByUserID = SEC_USERID;
BatchSec3.DoneByPassword = SEC_PASSWORD;
IF SEC_LEVEL = 1 THEN
BatchSec3.FunctionClearance( SEC_APPLICATION,
SEC_FUNCTION, "", 3, SEC_USERDATA );
HideSelf;
ELSE
{Reset Window to accept entries for Check By}
SEC_REQUEST = "Check By";
ENDIF;
ELSE
{SEC_REQUEST = "Check By"}
BatchSec3.CheckByUserID = SEC_USERID;
BatchSec3.CheckByPassword = SEC_PASSWORD;
BatchSec3.FunctionClearance( SEC_APPLICATION,
SEC_FUNCTION, "", 3, SEC_USERDATA );
HideSelf;
504 Chapter 16

ENDIF;
{Reset Security Check Window fields}
SEC_USERID = "";
SEC_PASSWORD = "";

{{ActiveX Script: FunctionClearanceComplete}


IF #ThisEvent.FunctionClearanceCompleteResult == 0 THEN
{ Security Test Passed. User data tells me what was
requested. }
SEC_GRANTED = #ThisEvent.FunctionClearanceCompleteUserData;
ELSE
{ Security failed. Display error message }
OPR_MESSAGE = #ThisControl.LastErrorMessage;
ENDIF;
InTouch Batch Wizards 505

C H A P T E R 1 7

InTouch Batch Wizards

InBatch Wizards give InTouch users the ability to create their own customized
batch displays. The InBatch Wizards are installed in the InTouch directory during
InBatch Batch Runtime Client installation. They are accessible from InTouch
WindowMaker.
For more information on using WindowMaker, see your online InTouch User's
Guide.

Note You must have the appropriate client licensing in order to successfully use
the InBatch wizards.

Contents
• Overview
• InBatch Wizard Access Names and Support Tags
• Using InBatch Wizards
• InBatch Wizard Descriptions
• InBatch Wizard Data Change Script

Overview
An InBatch Wizard is a predefined set of graphical objects and animation links that
provide InTouch applications with the ability to perform batch control and
monitoring.
Wizards help reduce application development time. Wizards are inserted into an
InTouch application window by selecting the Wizards icon from the WindowMaker
toolbar. When a wizard is placed on a window, graphical objects are drawn,
animation links are created and all of the tags required for the wizard are generated
in the InTouch Tagname Dictionary. When a wizard is double-clicked, a
configuration dialog box appears. A list of the properties that can be configured is
displayed.
When a wizard is selected, large control handles surround it. A wizard can be scaled
by clicking and dragging one of the control handles. Wizards can be separated into
individual, ungrouped graphical components by selecting it then choosing the
WindowMaker Arrange/Break Cell menu option. Once broken, a wizard simply
becomes a set of InTouch graphical objects with their respective animation links.
506 Chapter 17

Note Wonderware has taken great care in organizing each wizard so that the
graphical objects within it are proportionately sized and spaced for visual appeal.
The Wizards often contain complex action scripts and expressions to ensure proper
functionality. A thorough understanding of the Tag Interface Management (TIM)
subsystem is recommended when breaking apart InBatch Wizards.

InBatch Wizard Access Names and Support Tags


One Access Name is added to the application and three tags are added to the
Tagname Dictionary when an InBatch wizard is placed on a window.
The Access Name, IB_TIM_TAGS, is used to refer InTouch to the InBatch Server
(IBServ) application on the batch server node. By default, the Node Name,
Application Name, and Topic Name are undefined. These must be properly
configured for wizards to function. The Node Name must contain the name of the
batch server if on a separate machine. The Application Name must point to
"IBServ." The Topic Name should be the Client Type instance as defined in the Tag
Linker application. The SuiteLink protocol must also be used.

Note With the exception of the Topic Name, this information will be defined
automatically if the exported csv file from the Tag Linker application is loaded into
the InTouch application using the DBLOAD utility.

For more information on using the Tag Linker application, see Chapter 5, "Tag
Linker."
The tags automatically created when an InBatch wizard is used are listed below
along with a description of each.
InTouch Batch Wizards 507

Tag Description
IB_TIM_ACCESS_TAG Used by the TIM tags in the InTouch application. Initial value should
refer to the InBatch Server, "\\batchserver\IBServ|View1".
IB_SEC_DIALOG_TAG Used to enable client security.
IB_RESULT_TAG Contains results of using the batch script-add-on functions.

For more information on configuring client security, see Chapter 20, "InTouch
Client Security."
For more information on using the batch script add-on functions, see Chapter 18,
"InTouch Script Add-On Functions."

Using InBatch Wizards


Clicking the Wizards icon from the InTouch toolbar accesses InBatch wizards.

To insert a wizard into an application, click the appropriate wizard and then click
OK. Move the mouse pointer to the required insertion point in the InTouch
application and then single-click the left mouse button.
InBatch wizard scaling is based on font properties. The relative positioning of all
text and graphics within the InBatch wizard is font dependent. Wizards can also be
scaled by selecting the wizard and then dragging the large control handles. When a
wizard is initially placed on an application window, it is assigned (by default) an 10
point bold, Courier New font style. Courier New is a fixed pitch font, that is; the
width of all characters, including spaces, is the same. This is necessary for proper
list alignment within the InBatch wizard. Use of non-proportional fonts is not
recommended and can result in misalignment of graphical objects and text.
508 Chapter 17

Note Use the control handle dragging method to change the width and height of a
wizard. If you want to change the overall size of the InBatch wizard, change the
font size. If a different font style is selected, all previous wizard scaling is lost.

When an InBatch wizard is double-clicked, a wizard configuration dialog is


displayed indicating the current configuration. (The InBatch button wizard has a
special configuration window that is discussed in "Button" on page 512.) The list of
properties is based on the complexity of the wizard. Therefore, the options will vary
for different wizards. The example shown includes all of the possible properties and
the parameters for each.

InBatch Wizard Descriptions


During InBatch Batch Runtime Client installation, 20 InBatch wizards are added to
InTouch. The button wizard has 57 possible configurations. The operations and
functions of the wizards are very similar to InBatch Batch Display and Batch
Scheduler applications.
Some wizards require more than simply placing the wizard in the application. Refer
to any notes associated with each wizard for more information.

Batch Scheduler/Dispatcher

Provides the necessary tags and user interface for batch scheduling and
initialization.
InTouch Batch Wizards 509

Note The InBatch server Batch Scheduler application provides the capability to
view lists of Recipes and Trains when making modifications to the schedule list.
These lists have not been added to the Batch Scheduler/Dispatcher wizard, but the
information is available in the Tag Interface Management (TIM) System and can be
incorporated into the InTouch application.

For more information on using the TIM System, see Chapter 22, "Tag Interface
Management (TIM) System."

Active Batch List

Displays a list of all active batches. Campaign, Lot, Batch, Recipe, Status and
Action information is provided. Use this wizard in conjunction with all wizards for
which batch-centric focus (information concerning a single selected batch) is
required. Refer to each wizard description and associated notes.
510 Chapter 17

Note The Active Batch List wizard must be used in conjunction with other
wizards as noted in this section. This wizard is used to select batches and (in
conjunction with the other wizard(s) and data change script) update all windows to
reflect the currently selected batch.

Batch Messages

Displays batch specific messages that require user acknowledgement.

Note At runtime, the information displayed by this wizard is dependent upon the
item selected from the active batch list. You must use the Active Batch List Wizard
and the data change script in order for these wizards to properly function.

Change Batch Mode

Allows the user to change the current batch mode. Batch mode can be set to
Automatic, Semi-Automatic or Manual.
InTouch Batch Wizards 511

Batch Questions with Close

Displays a list of all batch questions and provides the ability to close the window.

Note At runtime, the information displayed by this wizard is dependent upon the
item selected from the active batch list. You must use the Active Batch List Wizard
and the data change script in order for these wizards to properly function.

Batch Questions

Displays a list of all batch questions.

Note At runtime, the information displayed by this wizard is dependent upon the
item selected from the active batch list. You must use the Active Batch List Wizard
and the data change script in order for these wizards to properly function.
512 Chapter 17

Button

The button wizard can be configured for all phase, batch and miscellaneous type
actions. The button wizard provides 57 functions. The table that follows describes
the possible configurations and the required parameters for each. To activate the
InBatch Wizard dialog, double-click the button wizard.
For more information on the Batch Action script add-on function, see Chapter 18,
"InTouch Script Add-On Functions."
InTouch Batch Wizards 513

Button Configuration
Batch
Name Parameters Action
Batch Abort *Animation When Inactive 19
Batch Comment * 38
Batch Hold *Animation When Inactive 20
Batch Mode: Set to Automatic *Animation When Inactive 23
Batch Mode: Set to Manual *Animation When Inactive 25
Batch Mode: *Animation When Inactive 24
Set to Semi-Automatic
Batch Restart *Animation When Inactive 21
Batch Start *Animation When Inactive 22
Edit Phase and Parameter: *Animation When Inactive 44
Change Parameter
Edit Phase and Parameter: *Animation When Inactive 43
Change Phase
Equipment: Allocate *Animation When Inactive 13
Equipment: Release *Animation When Inactive 14
Equipment: Select *Animation When Inactive 39
Equipment: Unit Abort *Animation When Inactive 15
Equipment: Unit Hold *Animation When Inactive 16
Equipment: Unit Restart *Animation When Inactive 17
Errors: Clear 12
Focus Change: Batch Messages 27
Focus Change: Batch Schedule 26
Focus Change: 42
Edit Phase and Parameter
Focus Change: Equipment 18
Focus Change: Recipe 28
Focus Change: 47
View/Force Transition Logic
Phase Abort *Animation When Inactive 29
Phase Comment *Animation When Active or Inactive 34
Phase Hold *Animation When Inactive 30
Phase Restart *Animation When Inactive 31
Phase Start *Animation When Inactive 32
Phase: Ack Document *Animation When Active or Inactive 50
Phase: Ack On Entry *Animation When Inactive 33
Phase: Ack On Exit *Animation When Active or Inactive 33
Phase: Change Parameter *Animation When Inactive 37
Phase: Set Control Button #1 *Animation When Inactive 35
Phase: Set Control Button #2 *Animation When Inactive 36
Phase: View Document *Animation When Active or Inactive 49
514 Chapter 17

Batch
Name Parameters Action
Question: Answer No *Animation When Inactive 41
Question: Answer Yes *Animation When Inactive 40
Save Recipe: Overwrite 46
Save Recipe: Verify 45
Schedule Edit: Add 1
Schedule Edit: Change Animation When Inactive 3
Schedule Edit: Clean-up 5
Schedule Edit: Delete Animation When Inactive 4
Schedule Edit: Initialize 6
Schedule Edit: Initialize All 7
Schedule Edit: Move Down Animation When Inactive 9
Schedule Edit: Move Up Animation When Inactive 8
Schedule Edit: Multi-Add 2
Schedule Edit: Set Animation When Inactive 11
Execute In Order Mode OFF
Schedule Edit: Set Animation When Inactive 10
Execute In Order Mode ON
Transition Logic: Force Animation When Inactive 48
Window Hide: HideSelf
Window Show: Window Name Required,
Batch Messages Wizard Animation When Active
Window Show: Window Name Required,
Batch Questions Wizard Animation When Active
Window Show: Window Name Required,
Equipment Selection Wizard Animation When Active
Window Show: Window Name Required,
Error Wizard Animation When Active
Window Show: Window Name Required
Phase Comment Wizard
Window Show: Window Name Required
Phase Interlocks Wizard
Window Show: Window Name (optional)
Show "Window Name"

* - Indicates that information displayed at runtime is dependent upon the current


item selected from the Active Batch List. Use this wizard in conjunction with the
data change script.
InTouch Batch Wizards 515

Batch Comments

Provides a means for the entry of user comments related to a batch.

Note At runtime, the information displayed by this wizard is dependent upon the
item selected from the active batch list. You must use the Active Batch List Wizard
and the data change script in order for these wizards to properly function.

View/Force Transition Logic

Allows pending batch phase logic to be viewed. Also provides the ability to force
the state of transition logic expressions.
516 Chapter 17

Note At runtime, the information displayed by this wizard is dependent upon the
item selected from the active batch list. You must use the Active Batch List Wizard
and the data change script in order for these wizards to properly function.

Active Phase List

Displays a list of all active phases

Note At runtime, the information displayed by this wizard is dependent upon the
item selected from the active batch list. You must use the Active Batch List Wizard
and the data change script in order for these wizards to properly function.

Phase Parameter List

List of parameters for the active phase. A button to change values is provided.

Note At runtime, the information displayed by this wizard is dependent upon the
item selected from the active batch list. You must use the Active Batch List Wizard
and the data change script in order for these wizards to properly function.
InTouch Batch Wizards 517

Phase and Parameter Editor

An editor which allows editing of phases and parameters either before or after the
execution of a phase.

Note At runtime, the information displayed by this wizard is dependent upon the
item selected from the active batch list. You must use the Active Batch List Wizard
and the data change script in order for these wizards to properly function.
518 Chapter 17

Phase Instructions

Displays a list of user instructions required for a phase.

Note At runtime, the information displayed by this wizard is dependent upon the
item selected from the active batch list. You must use the Active Batch List Wizard
and the data change script in order for these wizards to properly function.

Phase Interlocks

Displays the value of all phase interlock tags.

Note At runtime, the information displayed by this wizard is dependent upon the
item selected from the active batch list. You must use the Active Batch List Wizard
and the data change script in order for these wizards to properly function.
InTouch Batch Wizards 519

Phase Comments

Provides a means for the entry of user comments related to a phase.

Note At runtime, the information displayed by this wizard is dependent upon the
item selected from the active batch list. You must use the Active Batch List Wizard
and the data change script in order for these wizards to properly function.

Phase Message Information

Displays information pertinent to phase execution only.

Note At runtime, the information displayed by this wizard is dependent upon the
item selected from the active batch list. You must use the Active Batch List Wizard
and the data change script in order for these wizards to properly function.
520 Chapter 17

Equipment Allocation

Provides the capability to view status and manually allocate and release units and
connections. Also provides the capability to issue Unit Hold, Unit Restart, and Unit
Abort commands on the selected unit.

Note At runtime, the information displayed by this wizard is dependent upon the
item selected from the active batch list. You must use the Active Batch List Wizard
and the data change script in order for these wizards to properly function.
InTouch Batch Wizards 521

Equipment Selection

Displays a list of available equipment and allows manual selection.

Note At runtime, the information displayed by this wizard is dependent upon the
item selected from the active batch list. You must use the Active Batch List Wizard
and the data change script in order for these wizards to properly function.

Save Control Recipe

Saves a control recipe to the recipe database. Provides radio buttons to optionally
Save Runtime Equipment and Retain Recipe Approvals.

For more information, see Chapter 7, "Recipe Editor."


522 Chapter 17

Batch Errors

Displays all batch errors.

Note This wizard does not automatically activate when an error(s) occurs.
Wonderware recommends that you configure your InTouch application to provide a
means of alerting the operator of the error(s). This could be a button which flashes
when an error(s) occur and then when clicked, shows the window containing the
Batch Errors Wizard.

InBatch Wizard Data Change Script


The following data change script must be added to your InTouch application(s) for
the tag BTB-SEL-SCHFOCUSOK in order for InBatch Wizards to function
properly.

Note The BTB-SEL-SCHFOCUSOK tag will automatically be included in the


InTouch Tagname Dictionary if the csv file created using the Tag Linker application
is loaded into the InTouch application. If not, the BTB-SEL-SCHFOCUSOK tag
must be manually created as an I/O Integer or remotely referenced.

The purpose of the script is to update the contents of all displayed information on
the active window to reflect the selected batch in the Active Batch List wizard. The
comments provided describe how the script functions.
For more information on the batch script add-on functions, see Chapter 18,
"InTouch Script Add-On Functions."

Data Change Script on BTB-SEL-SCHFOCUSOK


IF BTB-SEL-SCHFOCUSOK > 0 THEN
{Define SCHCLB as a Memory Message tag}

SCHCLB = ibRequestStr(IB_TIM_ACCESS_TAG, "BTB-SEL-SCHCLB",


IB_RESULT_TAG);

ibPokeStr(IB_TIM_ACCESS_TAG, "BTR-FOCUS-CLB", SCHCLB,


IB_RESULT_TAG);
InTouch Batch Wizards 523

ibPokeStr(IB_TIM_ACCESS_TAG, "BTR-FOCUS-UNIT", "",


IB_RESULT_TAG);

ibBatchAction(IB_TIM_ACCESS_TAG, 28, IB_SEC_DIALOG_TAG,


IB_RESULT_TAG);

{Batch Messages Focus}

ibPokeStr(IB_TIM_ACCESS_TAG, "BTM-FOCUS-CLB", SCHCLB,


IB_RESULT_TAG);

ibPokeStr(IB_TIM_ACCESS_TAG, "BTM-FOCUS-UNIT", "",


IB_RESULT_TAG);

ibBatchAction(IB_TIM_ACCESS_TAG, 27, IB_SEC_DIALOG_TAG,


IB_RESULT_TAG);

{Equipment Allocation Focus}

ibPokeStr(IB_TIM_ACCESS_TAG, "BTE-FOCUS-CLB", SCHCLB,


IB_RESULT_TAG);

ibPokeStr(IB_TIM_ACCESS_TAG, "BTE-FOCUS-UNIT", "",


IB_RESULT_TAG);

ibBatchAction(IB_TIM_ACCESS_TAG, 18, IB_SEC_DIALOG_TAG,


IB_RESULT_TAG);

{Edit Phase and Parameter Focus (optional)}

ibPokeStr(IB_TIM_ACCESS_TAG, "BTPE-FOCUS-CLB", SCHCLB,


IB_RESULT_TAG);

ibBatchAction(IB_TIM_ACCESS_TAG, 42, IB_SEC_DIALOG_TAG,


IB_RESULT_TAG);

{View/Force Transition Logic Focus}

IF IB_TIM_TAGS:SCHFOCUSOK > 2 THEN

{only change the focus when the batch is RUN, HELD,


ABORTING}

ibPokeStr(IB_TIM_ACCESS_TAG, "BTVT-FOCUS-CLB", SCHCLB,


IB_RESULT_TAG);

ibBatchAction(IB_TIM_ACCESS_TAG, 47, IB_SEC_DIALOG_TAG,


IB_RESULT_TAG);

ENDIF;

ENDIF;
524 Chapter 17

Data Change Scripts - Using List Boxes


By default, none of the items in a List Box are selected. Some lists have a parent-
child relationship. That is, whenever a selection is made within a parent list box, the
same item in a corresponding child list box is updated. Since this is NOT the default
behavior, child lists remain empty. It may, however, be desirable to have these child
list boxes update automatically. For example, the following script will
automatically select the first item in a phase list box.

Data Change Script on BTRP-PHASE-NUMITEMS

Note This script can be used for any TIM list. Just replace the "numitems" and
"select" tag with corresponding tags from any other TIM list.

IF BTRP-PHASE-NUMITEMS > 0 AND BTRP-SEL-PHASEITEM == 0 THEN

ibPokeInt (IB_TIM_ACCESS_TAG, "BTRP-SEL-PHASEITEM" ,1,


IB_RESULT_TAG);
ENDIF;
InTouch Script Add-On Functions 525

C H A P T E R 1 8

InTouch Script Add-On


Functions

There are several InTouch Script Add-On Functions included with the InBatch
system. These functions provide the capability to enable the alarm and event
interface, as well as read and write (request and poke) InBatch tags from within
InTouch. These functions are faster than the standard WWPoke and WWRequest
functions and should be used for all pokes and requests to InBatch Tag Interface
Management (TIM) tags. Eighteen Script Add-On Functions are added to InTouch
during the Batch Runtime Client installation. Eleven of these are specific to the
current release of InBatch. The other seven are included for backward
compatibility.
For more information on InTouch scripting, see your InTouch User's Guide.

Contents
• Overview
• Script Add-On Function Descriptions
• Obsolete DDE Script Add-On Functions
• Script Add-On Function Error Reference
526 Chapter 18

Overview
Script Functions are InTouch commands which can be used to perform various
string, math, file, and communications actions. There are also add-on functions that
can be included within InTouch to work with external applications. InBatch
provides several of these add-on functions for enabling alarming and
communication between InTouch and InBatch. The InBatch enabled
communication add-on functions provide the same capability as the built-in
WWPoke and WWRequest functions but will keep the conversation open between
successive calls. The functions are therefore faster when doing multiple pokes
and/or requests to the same application/topic.

Using Script Add-On Functions


The conversation necessary to perform a function is established on the first function
call (except for ibTermTopic). Subsequent function calls utilize the established
conversation. This conversation is applicable to all of the functions.
For example, once a conversation is established during an ibBatchAction function
call, a subsequent ibPokeDisc function call uses the same conversation.
Conversations terminate normally when an InTouch WindowViewer application
terminates. The ibTermTopic function can also be used to terminate any
conversation established by ibBatchAction, ibPoke or ibRequest function calls.

Caution! The Script Add-On Functions can be used in all types of InTouch
scripts, but should not be used in expressions for InTouch animation links.

Protocol Usage
By default, the script add-on functions provided by InBatch use a proprietary
protocol and communicate with the InBatch Information Manager (InfoMngr)
application. Therefore, by default, these functions cannot be used to communicate
with external applications using the DDE protocol. This protocol can be changed to
DDE by using the ibConfig add-on function.

Note Wonderware recommends that the default protocol be used for all
communication between InTouch and InBatch.

Script Add-On Function Descriptions


The following section describes how to use the InBatch Script Add-On Functions
with InTouch.
InTouch Script Add-On Functions 527

ibAlarmEventHost
This function allows the user to specify the host name of the primary InBatch server
to log the alarm and event data. The function is useful for switching the host in the
event of a redundant batch server fail-over.

Syntax
ibAlarmEventnHost(HostName);

where:

HostName (String value or message tag)


Specifies the InBatch server host name.

Example
{Set host name to "IBSERV2"}
ibAlarmEventHost("IBSERV2");

ibAlarmEventInit
This function initializes the batch-oriented alarm and event logging of a client node.
Before this function is called, any alarms or events that occur will be cached. They
will be logged after initialization has been done. Alarms and events that occur after
initialization are also cached and written to history on a timer. This routine does let
you set the behavior of the cache but this feature should be used with care. You can
enter a 0 value for the Timer, Write, Warning, and Toss arguments to get the default
cache behavior. The Event_Mask argument allows you to selectively determine
which events will be logged. SYS events are never logged.
For more information on the InBatch and InTouch alarm/event interface, see
Chapter 21, "Client Alarm/Event Interface."

Syntax
ibAlarmEventInit( Host, Obsolete, Alarm_Node, Timer, Write,
Warning, Toss, Event_Mask );
where:

Host (Literal string in quotes or message tag)


Contains the host name where the Batch Server is running. The alarming system will
connect to this Batch Server to get required batch information.
Obsolete (Literal string in quotes or message tag)
The value of this field is no longer used by the alarming system. It's old purpose was
to set the hostname of the backup Batch Server. This functionality is now under the
client applications control using ibAlarmEventHost .
Alarm_Node (Discrete value or discrete tag)
TRUE enables alarm logging. FALSE disables alarm logging. This value can also be
set using ibAlarmNode.
528 Chapter 18

Timer (Integer value or integer tag)


Number of seconds between alarm and event cache flush. This value should normally
be set to 0, which uses the default of 10 seconds.
Write (Integer value or integer tag)
Number of alarms and events to be written each time the cache is flushed. This value
should normally be set to 0, which specifies that the entire cache should be logged.
Warning (Integer value or integer tag)
Number of alarms and events that can exist in the cache before a warning message is
dumped to the Wonderware Logger. This value should normally be set to 0, which
uses the default of 100 entries.
Toss (Integer value or integer tag)
Number of alarms and events that can exist in the cache before new alarms and events
will be thrown away. This value should normally be set to 0, which uses the default of
1000 entries.
Event_Mask (Integer value or integer tag)
If value is 1, all events are logged. If value is 0, only operator (OPR) events are
logged. These values are compatible with older versions of this function. To
selectively choose the events you want logged, you can pass a bit mask which uses
bits 2, 3, and 4. If bit 2 is set, operator (OPR) events are logged. If bit 3 is set, logic
(LGC) events are logged. If bit 4 is set, DDE (DDE) events are logged. For example,
passing a value of 6 will set bits 2 and 3 and cause OPR and LGC events to be logged.

Example
The following script initializes alarm and event logging for the node:
ibAlarmEventInit( "hostA", "", 0, 0, 0, 0, 0 );

ibAlarmNode
This function enables/disables alarm logging for a node. Typically, only one client
node will enable alarm logging. However, if you have several alarm sources then
you may want to enable alarm logging on several client nodes. Even with alarm
logging disabled, operator action events are still be logged to history.

Syntax
ibAlarmNode(Yes_No);
where:

Yes_No (Discrete value or discrete tag)


Enables or disables alarm logging. A value of True enables alarm logging. A value of
False disables alarm logging.

Example
{Enable alarm logging for the node}
ibAlarmNode(1);
InTouch Script Add-On Functions 529

ibBatchAction
Performs a specific batch action. Refer to the Batch Action Reference table for
batch action values.

Syntax
ibBatchAction(App_Topic_Text, Action_Num, SecurityFlag,
ResultTag);

where:

App_Topic_Text (Literal string in quotes or message tag)


Contains application and topic information in the form "\\node\application|topic".
The tag IB_TIM_ACCESS_TAG used by the InBatch wizards is placed in this
field by default when the function is inserted into a script. Any message tag or
literal string in quotes may be substituted.
Action_Num (Integer value or integer tag)
Contains the number of the Batch Action to perform. Refer to the Batch Action
Reference table.
SecurityFlag (Discrete value or discrete tag)
Enables or Disables Security. The tag IB_SEC_DIALOG_TAG used by the
InBatch wizards is placed in this field by default when the function is inserted into
a script. Any discrete tag or value may be substituted. A value of one (True)
enables security. A value of zero (False) disables security. If security is enabled
and the corresponding function of the Batch Client application is configured for
security, a security dialog is displayed which prompts the user for user name and
password information.

For more information on defining InBatch client security, see Chapter 20,
"InTouch Client Security."
ResultTag (Integer tag)
Contains the result code of the function call. A negative value indicates an error.
A Value of one indicates security is enabled for this action and a security check is
pending. In this case, the operator will be presented with a security dialog box to
enter their user name and password information.
Once the user enters this information or clicks Cancel on the security dialog,
InBatch will again update this tag. A value of zero (0) indicated the security check
is successful. A value of two (2) indicates the operator pressed the Cancel button.
A negative value (<0) indicates an error.
The tag IB_RESULT_TAG used by the InBatch wizards is placed in this field by
default when the function is inserted into a script. If security is not enabled, a
different integer tag may be substituted, otherwise IB_RESULT_TAG must be
used.

Important! This function will return immediately and InTouch script processing
will continue even if a security check is needed for the batch action.

Example
{Start the Selected Batch}
530 Chapter 18

ibBatchAction("IBSERV|View1", 22, 1, ResultTag);


InTouch Script Add-On Functions 531

Batch Action Reference

Action # Batch Action Description Batch Client Function


1 Schedule Edit: Add Access Schedule
2 Schedule Edit: Multi-Add Access Schedule
3 Schedule Edit: Change Access Schedule
4 Schedule Edit: Delete Access Schedule
5 Schedule Edit: Clean-Up Access Schedule
6 Schedule Edit: Initialize Access Schedule
7 Schedule Edit: Initialize All Access Schedule
8 Schedule Edit: Move Up Access Schedule
9 Schedule Edit: Move Down Access Schedule
10 Schedule Edit: Exec In Order On Access Schedule
11 Schedule Edit: Exec In Order Off Access Schedule
12 Errors: Clear <none>
13 Equipment: Allocate Allocate Equip
14 Equipment: Release Release Equip
15 Equipment: Unit Abort Unit Abort
16 Equipment: Unit Hold Unit Hold
17 Equipment: Unit Restart Unit Restart
18 Focus Change: Equipment <none>
19 Batch Abort Abort Batch
20 Batch Hold Hold Batch
21 Batch Restart Restart Batch
22 Batch Start Start Batch
23 Batch Mode: Set to Auto Chg Batch Mode
24 Batch Mode: Set to Semi-Auto Chg Batch Mode
25 Batch Mode: Set to Manual Chg Batch Mode
26 Focus Change: Batch Schedule <none>
27 Focus Change: Batch Messages <none>
28 Focus Change: Recipe <none>
29 Phase Abort Abort Phase
30 Phase Hold Hold Phase
31 Phase Restart Restart Phase
32 Phase Start Start Phase
33 Phase: Ack on Entry Ack to Enter
Phase: Ack on Exit Ack to Exit
34 Phase Comment Enter Comment
35 Phase: Set Control Button #1 Control Buttons
36 Phase: Set Control Button #2 Control Buttons
37 Phase: Change Parameter Edit Phase Param
38 Batch Comment Enter Comment
532 Chapter 18

Action # Batch Action Description Batch Client Function


39 Equipment: Select Select Equipment
40 Question: Answer Yes Answer Question
41 Question: Answer No Answer Question
42 Focus Chg: Edit Phase and Parm <none>
43 Edit Phase and Parm: Chg Phase Edit Phase
44 Edit Phase and Parm: Chg Parm Edit Phase
45 Save Recipe: Verify Save Recipe
46 Save Recipe: Overwrite Save Recipe
47 Focus Chg: View/Force Trans Logic <none>
48 Transition Logic: Force Force Transition
49 Document View: Button Enabled <none>
50 Document View: Button Acknowledged <none>

ibConfig
This function allows you to choose the protocol to use for the communications
functions (i.e. ibPokeStr, etc.). By default, an internal InBatch proprietary protocol
is used and all communications go to the Information Manager (InfoMngr)
application on the Batch Server. This is a very reliable communications interface
and was implemented to provide an option to the DDE interface.

Note Wonderware recommends that the add-on script functions utilize the default
protocol and be used to communicate with InBatch only. However, for backward
compatibility, this function can be used to change to the DDE protocol.

Syntax
ibConfig(Protocol_Num);
where:

Protocol_Num (Integer value or integer tag)


Represents the protocol choice. A value of 0 enables the DDE interface. A value of
1 enables the InBatch internal protocol. The default is the InBatch internal protocol.

Example
{Enable the DDE protocol}
ibConfig(0);
InTouch Script Add-On Functions 533

ibPokeDisc
This function pokes a discrete ( 0 or 1 ) value into the specified item.

Note By default, this function can only be used to communicate with InBatch. The
default protocol must be changed to DDE using the ibConfig function to
communicate with other tag servers (i.e. IO Servers, Excel, etc.).

Syntax
ibPokeDisc(App_Topic_Text, ItemName_Text, Value_Disc,
ResultTag);
where:

App_Topic_Text (Literal string in quotes or message tag)


Contains application and topic information in the form "\\node\application|topic".
The tag IB_TIM_ACCESS_TAG used by the InBatch wizards is placed in this
field by default when the function is inserted into a script. Any message tag or
literal string in quotes may be substituted.
ItemName_Text (Literal string in quotes or message tag)
Contains the item name on which to perform the poke.
Value_Disc (Discrete value or discrete tag)
Contains a discrete value to poke to the ItemName_Text item.
ResultTag (Integer tag)
Contains the result code of the function call. A value of zero (0) indicates success.
A negative value (<0) indicates an error. The tag IB_RESULT_TAG used by the
InBatch wizards is placed in this field by default when the function is inserted into
a script. A different integer tag may be substituted.

Example
{Poke a value of 0 to a discrete tag}
ibPokeDisc("IBSERV|View1", "MyDiscreteTag", 0, IB_RESULT_TAG);

ibPokeInt
This function pokes an integer value into the specified item.

Note By default, this function can only be used to communicate with InBatch. The
default protocol must be changed to DDE using the ibConfig function to
communicate with other tag servers (i.e. IO Servers, Excel, etc.).

Syntax
ibPokeInt(App_Topic_Text, ItemName_Text, Value_Int,
ResultTag);
where:
534 Chapter 18

App_Topic_Text (Literal string or message tag)


Contains application and topic information in the form "\\node\application|topic".
The tag IB_TIM_ACCESS_TAG used by the InBatch wizards is placed in this
field by default when the function is inserted into a script. Any message tag or
literal string in quotes may be substituted.
ItemName_Text (Literal string in quotes or message tag)
Contains the item name on which to perform the poke.
Value_Int (Integer value or integer tag)
Contains an integer value to poke to the ItemName_Text item.
ResultTag (Integer tag)
Contains the result code of the function call. A value of zero (0) indicates success.
A negative value (<0) indicates an error. The tag IB_RESULT_TAG used by the
InBatch wizards is placed in this field by default when the function is inserted into
a script. A different integer tag may be substituted.

Example
{Poke a value of 5 to an integer tag}
ibPokeInt("IBSERV|View1", "MyIntegerTag", 5, IB_RESULT_TAG);

ibPokeStr
This function pokes a string value into the specified item.

Syntax
ibPokeStr(App_Topic_Text, ItemName_Text, Value_Text,
ResultTag);
where:

App_Topic_Text (Literal string or message tag)


Contains application and topic information in the form "\\node\application|topic".
The tag IB_TIM_ACCESS_TAG used by the InBatch wizards is placed in this
field by default when the function is inserted into a script. Any message tag or
literal string in quotes may be substituted.
ItemName_Text (Literal string in quotes or message tag)
Contains the item name on which to perform the poke.
Value_Text (Literal string in quotes or message tag)
Contains a string value to poke to the ItemName_Text item.
ResultTag (Integer tag)
Contains the result code of the function call. A value of zero (0) indicates success.
A negative value (<0) indicates an error. The tag IB_RESULT_TAG used by the
InBatch wizards is placed in this field by default when the function is inserted into
a script. A different integer tag may be substituted.

Example
{Poke a value of "Hi There!" to a string tag}
ibPokeStr("IBSERV|View1", "MyStringTag", "Hi There!",
IB_RESULT_TAG);
InTouch Script Add-On Functions 535

ibRequestDisc
This function returns the discrete data value of the specified item.

Syntax
DiscreteTag = ibRequestDisc(App_Topic_Text, ItemName_Text,
ResultTag);
where:

App_Topic_Text (Literal string in quotes or message tag)


Contains application and topic information in the form "\\node\application|topic".
The tag IB_TIM_ACCESS_TAG used by the InBatch wizards is placed in this
field by default when the function is inserted into a script. Any message tag or
literal string in quotes may be substituted.
ItemName_Text (Literal string in quotes or message tag)
Contains the item name for the requested discrete data.
ResultTag (Integer tag)
Contains the result code of the function call. A value of zero (0) indicates success.
A negative value (<0) indicates an error. The tag IB_RESULT_TAG used by the
InBatch wizards is placed in this field by default when the function is inserted into
a script. A different integer tag may be substituted.

Example
{Read a discrete tag value and write to another discrete tag}
AnotherDiscreteTag = ibRequestDisc("IBSERV|View1",
"MyDiscreteTag", IB_RESULT_TAG);

ibRequestInt
This function returns the integer data value of the specified item.

Syntax
IntegerTag = ibRequestInt(App_Topic_Text, ItemName_Text,
ResultTag);
where:

App_Topic_Text (Literal string in quotes or message tag)


Contains application and topic information in the form "\\node\application|topic".
The tag IB_TIM_ACCESS_TAG used by the InBatch wizards is placed in this
field by default when the function is inserted into a script. Any message tag or
literal string in quotes may be substituted.
536 Chapter 18

ItemName_Text (Literal string in quotes or message tag)


Contains the item name for the requested integer data.
ResultTag (Integer tag)
Contains the result code of the function call. A value of zero (0) indicates success.
A negative value (<0) indicates an error. The tag IB_RESULT_TAG used by the
InBatch wizards is placed in this field by default when the function is inserted into
a script. A different integer tag may be substituted.

Example
{Read an integer tag value and write to another integer tag}
AnotherIntegerTag = ibRequestInt("IBSERV|View1",
"MyIntegerTag", IB_RESULT_TAG);

ibRequestStr
This function returns the string data value of the specified item.

Syntax
MessageTag = ibRequestStr(App_Topic_Text, ItemName_Text,
ResultTag);

where:

App_Topic_Text (Literal string in quotes or message tag)


Contains application and topic information in the form "\\node\application|topic".
The tag IB_TIM_ACCESS_TAG used by the InBatch wizards is placed in this
field by default when the function is inserted into a script. Any message tag or
literal string in quotes may be substituted.
ItemName_Text (Literal string in quotes or message tag)
Contains the item name for the requested string data.
ResultTag (Integer tag)
Contains the result code of the function call. A value of zero (0) indicates success.
A negative value (<0) indicates an error. The tag IB_RESULT_TAG used by the
InBatch wizards is placed in this field by default when the function is inserted into
a script. A different integer tag may be substituted.

Example
{Read a string tag value and write to another string tag}
AnotherStringTag = ibRequestStr( "IBSERV|View1",
"MyStringTag", IB_RESULT_TAG);

ibTermTopic
This function terminates a connection.

Syntax
ibTermTopic(App_Topic_Text, ResultTag);
where:
InTouch Script Add-On Functions 537

App_Topic_Text (Literal string in quotes or message tag)


Contains application and topic information in the form "\\node\application|topic".
The tag IB_TIM_ACCESS_TAG used by the InBatch wizards is placed in this
field by default when the function is inserted into a script. Any message tag or
literal string in quotes may be substituted.
ResultTag (Integer tag)
Contains the result code of the function call. A value of zero (0) indicates success.
A negative value (<0) indicates an error. The tag IB_RESULT_TAG used by the
InBatch wizards is placed in this field by default when the function is inserted into
a script. A different integer tag may be substituted.

Example
{Terminate a connection}
ibTermTopic("IBSERV|View1", IB_RESULT_TAG);

Obsolete DDE Script Add-On Functions


The following functions are considered obsolete and are being maintained for
backward compatibility only. They are simply stub functions which call directly
into the newer corresponding functions.

Note The DDE in the name does not mean the function is using DDE as its
communications protocol. These functions will still use the protocol defined by the
ibConfig function.

ibDdePokeDisc
Please refer to ibPokeDisc.

ibDdePokeInt
Please refer to ibPokeInt.

ibDdePokeStr
Please refer to ibPokeStr.

ibDdeRequestDisc
Please refer to ibRequestDisc.

ibDdeRequestInt
Please refer to ibRequestInt.
538 Chapter 18

ibDdeRequestStr
Please refer to ibRequestStr.

ibDdeTermTopic
Please refer to ibTermTopic.

Script Add-On Function Error Reference


Error # Error Description
0 No Error
1 No Error - Security Pending
2 No Error - Action Canceled
-10 DDE System Error
-11 DDE Post Message Error
-12 DDE Register Class Error
-13 DDE Create Window Error
-20 DDE Response: None
-21 DDE Response: No Acknowledge
-22 DDE Connection Response: None
-23 DDE Connection Response: Terminate
-30 DDE Unknown Application and/or Topic
-31 DDE Maximum Windows Exceeded
-101 Invalid Batch Action Number
-102 Invalid Interface
-103 Invalid Security Query
-111 Invalid Application|Topic string (check syntax)
-121 Security Dialog is active (displayed)
-122 Error Creating Security Dialog
-123 Invalid Security Function
-131 Error Creating Timer
-132 No Security Key
-133 Invalid Security Key
-201 IO Connection failed
-203 IO Poke failed
-204 IO Request failed
-300 General System Error
InTouch Batch Tag Browsing and Referencing 539

C H A P T E R 1 9

InTouch Batch Tag Browsing


and Referencing

InTouch client applications frequently utilize InBatch information. The InBatch


data is accessed by way of tags. These tags typically exist in the InTouch Tagname
Dictionary and are used in the appropriate scripts and animation links. This can
result in a large number of batch tags in the InTouch application.
There is an alternative to maintaining the batch tags in the InTouch Tagname
Dictionary. InBatch tags can be remotely referenced within the InTouch
application. All InBatch tags can be browsed from InTouch and do not have to be
defined in the local tagname dictionary. This results in smaller and easier to manage
InBatch client applications.

Note Batch Runtime Client software must be installed on an InTouch client in


order to browse and reference batch tags.

Contents
• Overview
• Define Batch Tag Sources
• Remote Referencing Batch Tags
540 Chapter 19

Overview
There are three general categories of InBatch tags: Equipment Tags, TIM Tags, and
Batch Function Tags. The equipment tags refer to the phase control and status tags
and the phase formula parameter tags. The TIM tags are used by the InBatch
wizards to provide batch management information on the client. The batch function
tags provide access to the batch management system hooks. In order to use any of
these tags in an InTouch client application, the tag must be accessible to the
application.
There are three methods available for making these tags available in the InTouch
application.
1. Manually define the tags in InTouch.
2. Use the Tag Linker to export a .csv file that is imported into InTouch using the
DBLOAD utility.
For more information on exporting tags using Tag Linker, see Chapter 5, "Tag
Linker."
3. Use the InTouch browsing capability to reference the batch tags without having
to create the tags in the InTouch Tagname Dictionary.
This section describes the steps that are required to enable browsing of InBatch tags
from InTouch and remotely reference the tags in InTouch without having to
maintain the tags in the tagname dictionary.
There are only two required steps.
1. Define the batch tag sources in InTouch.
2. Use the batch tags in the InTouch application.

Note Batch Function Tags are not accessible through the InTouch tag browser.
InTouch Batch Tag Browsing and Referencing 541

Define Batch Tag Sources


The first step required to browse and reference batch tags in the InTouch
application is to define the batch tag sources.

To Define Batch Tag Sources:


1. Double-click any blank animation link Tagname or Expression input box.
The Tag Browser will appear.

2. Select the Define Tag Sources button. The Define Tag Sources dialog box
appears.

3. Click New. The Define Tag Source dialog box appears


542 Chapter 19

A tag source consists of the following items.


• Tag Source Name
The tag source name can be any user-defined name.
• Access Name
The access name corresponds to those defined for the InTouch application.
InBatch access names can be defined manually or loaded from the export
file from Tag Linker. The following table contains the two default InBatch
accesses.

Access Application Topic


IB_TIM_TAGS IBSERV Client Type Instance (e.g.
View1)
IB_CTRLSYS_TAGS IBSERV IB_TAGS

• Tag Source Type


The tag sources for InBatch tags are InBatch - TIM and InBatch - Control
System. These sources are created by the Batch Runtime Client
installation program.
• Location
The location points to the directory containing the InBatch databases
(…\InBatch\cfg\config_A).
4. Define the following tag sources. These sources are for the default accesses.
The source names are examples only. Any name can be substituted. The
location for each is the InBatch configuration directory (config_A).

Tag Source Name Access Tag Source Type


TIMTags IB_TIM_TAGS InBatch - TIM
EquipmentTags IB_CTRLSYS_TAGS InBatch - Control System
InTouch Batch Tag Browsing and Referencing 543

5. Use the tags from each source in the InTouch application as required. Change
the Tag Source to view the different batch tags available.
544 Chapter 19

Remote Referencing Batch Tags


The second step required is to use the batch tags in an application. When a batch tag
from one of the defined sources is used in the InTouch application, the complete
reference is used. This reference includes the access name and the tag name.
InTouch Client Security 545

C H A P T E R 2 0

InTouch Client Security

The InBatch Security System can be used to define security for InBatch server
applications. Also, included in this security system is an application and the related
functions required for defining security from an InBatch client.
For more information on using the InBatch Security System, see Chapter 13,
"Security System."

Contents
• Overview
• Configuring InBatch Client Security
• InBatch Client Security Operation

Overview
The InBatch Security System defines security for InBatch server applications and
InBatch client applications. All security requests performed from clients are
evaluated by the InBatch security system. Function clearance is granted or denied
based on the user and password information provided from the client and the
security configuration defined in InBatch.
546 Chapter 20

Batch Runtime Client

InTouch
WindowViewer
(ibdde.dll)

Batch Server
InBatch Server
(IBServ)

TIM Security TIM Batch


Interface Interface

Security Manager Batch Manager

Security
Database

Configuring InBatch Client Security


In order to successfully enable Batch Runtime Client security, configuration must
be done on the batch the Batch Server and the Batch Runtime Client(s) systems.

Batch Server Security Configuration


Several configuration steps are required for the Batch Server.
1. Using Tag Linker, select the Edit/Export menu option.
This displays the Export Editor window.
2. For the Client Type that represents the Batch Runtime Clients, change the
Number of Clients entry field to correspond to the number of client nodes
requiring security.
3. Perform the appropriate Runtime or Simulation Export from the Tag Linker
File menu to create the required client tags.
For more information on using the InBatch Tag Linker, see Chapter 5, "Tag
Linker."
4. In the InBatch Security Editor, select the Edit/Operator Stations menu option.
This displays the Operator Stations Editor window.
InTouch Client Security 547

5. Define operator stations for each client instance. The Name will consist of the
Client Type defined in the Tag Linker with the appropriate instance number
appended. This will permit independent user security access from each Batch
Runtime Client.

Batch Client Security Configuration


InBatch client security is automatically installed when the Batch Runtime Client
software is installed. However, the following steps are required to enable client
security.
1. Using the InBatch Security Editor, configure the desired security
requirements for the appropriate security functions available within the Batch
Client application. These functions correspond to actions performed from an
InBatch client using either InBatch wizards or the TIM system.

Note Do not enable security for the Batch Client application in the InBatch
Security Editor. Enable security only for the functions within the Batch Client
application.

2. If you are using InBatch wizards in the InTouch environment, set the initial
value of the tag, IB_SEC_DIALOG_TAG, to On. This enables security from
all of the InBatch Wizards and Script Add-On functions.
3. If individual TIM functions and tags are used in an InTouch application that
requires security, always use the ibBatchAction add-on script and either set the
IB_SEC_DIALOG_TAG initial value to On or pass a value of "1" to the
ibBatchAction function.
The following example assumes that the IB_SEC_DIALOG_TAG is enabled.
ibBatchAction( IB_TIM_ACCESS_TAG, 3, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG );
548 Chapter 20

The following example disregards the value of the IB_SEC_DIALOG_TAG.


ibBatchAction( IB_TIM_ACCESS_TAG, 3, 1, IB_RESULT_TAG );

Note If InBatch client security is enabled, always use the ibBatchAction add-on
function instead of writing to the corresponding TIM handshake tag. Security is
built into the ibBatchAction function. If the TIM handshake tags are used, the
InTouch application must provide its own security functionality using the TIM
security interface.

For more information on using the InBatch add-on script functions, see Chapter 18,
"InTouch Script Add-On Functions."

InBatch Client Security Operation


When security has been configured for an InBatch client application, a Security
Clearance Request window will appear. In this window, you must enter appropriate
user and password information. This window will automatically change to inform
the user what action is being performed and what information is required. There are
four general configurations of this window that may appear. Each will contain the
action being performed, a message detailing what is required, and entry fields for
user and password information. A description of each is provided in the subsequent
sections.

DoneBy Security
The DoneBy Security Clearance Request window will appear if the operator
performs a Batch Client function that has been configured with only DoneBy
security in the InBatch Security Editor. The operator must enter a valid User ID and
Password in order to perform the function. If the entered values are correct, the
function will be performed. If the entries are incorrect, the window box will close,
the function will not be performed, and an error message will be displayed in the
InBatch Errors wizard.
InTouch Client Security 549

DoneBy and CheckBy Security


The DoneBy and CheckBy Security Clearance Request window will appear if the
operator performs a Batch Client function that has been configured with both
DoneBy and CheckBy security in the InBatch Security Editor. The operator must
enter a valid User ID and Password for both the DoneBy and CheckBy areas in
order to perform the function. If the entered values are correct, the function will be
performed. If the entries are incorrect, the window box will close, the function will
not be performed, and an error message will be displayed in the InBatch Errors
wizard.

Verify DoneBy Password


The New/Verify DoneBy Password Security Clearance Request window will
appear if the operator that performs the function does not have a password or their
password has expired. The operator must enter a valid new Password and verify
the new password in order to perform the function. If the entered values are correct,
the function will be performed. If the entries are incorrect, the window box will
close, the password will not be changed, and an error message will be displayed in
the InBatch Errors wizard.
550 Chapter 20

Verify CheckBy Password


The New/Verify CheckBy Password Security Clearance Request window will
appear if the operator that checks the function does not have a password or their
password has expired. The operator must enter a valid new Password and verify
the new password in order to check the function. If the entered values are correct,
the function will be performed. If the entries are incorrect, the window box will
close, the password will not be changed, and an error message will be displayed in
the InBatch Errors wizard.
Client Alarm/Event Interface 551

C H A P T E R 2 1

Client Alarm/Event Interface

Within the InBatch and InTouch client/server architecture, all InTouch alarms,
events, and operator actions can be recorded in the InBatch History Database and
included in batch reporting. This section is applicable to InTouch applications only.

Contents
• Overview
• Required Configuration

Overview
The following diagram illustrates the software components that are used to record
InTouch alarms and events in the InBatch history database. When the Batch
Runtime Client installation option is selected, a modified wwextalm.dll and an
ibhist.dll are installed. These files contain programs that receive and filter all
InTouch alarms, event, and operator actions.

Batch Server Node Batch Runtime Client

InTouch
Batch Process Log History
WindowViewer
Manager Manager Administration
(wwextalm.dll)

InTouch
History Queue
Info Manager WindowViewer
Manager
(ibhist.dll)

Batch Info Server HistQueue


InBatch History
Database
History Queue
Reader
552 Chapter 21

The wwextalm.dll acts as a pass through to call the ibhist.dll. The ibhist.dll takes
the event and communicates with the Info Manager (InfoMngr) on the Batch Server
to determine if the event is associated with an active batch. If there is no batch
association, the event is discarded. However, if there is a batch association, the
event is sent to the InBatch History Queue Manager which places the information
on the History Queue for delivery to the history database.
In the event of a communications failure between the Batch Runtime Client and the
InBatch history database, all alarm and event information is stored locally on the
client in a Microsoft Access database located in the configuration directory
(…\cfg\config_A).

Note The Batch Runtime Client installation option loads a modified wwextalm.dll
to enable the historical storage of client alarms and events. If changes have been
made to the wwextalm.dll prior to installing InBatch, these changes will be lost
when the new wwextalm.dll is installed. Please contact Wonderware for appropriate
instructions on how to incorporate the alarm and event logging along with any
previous changes made to the wwextalm.dll.

Required Configuration
The following steps must be performed to enable the passage of InTouch alarms,
events, and operator actions to the InBatch historical database.
1. Install the Batch Runtime Client software. This installs both the wwextalm.dll
and ibhist.dll files in the specified directory. InTouch must be installed prior to
this step.
2. For each client node, use the ibAlarmEventInit script add-on function to
prepare the node for transferring alarm and event information. Typically, this
function is placed in the On Startup Application script. This function permits
defining a connection to a backup batch server as well as some other important
information.
3. For the primary client alarming node, use the ibAlarmNode script add-on
function to enable the alarm and event interface for that node. Typically, this
function is placed in the On Startup Application script. InTouch scripting can
be used to switch to another node upon failure of the primary.
4. For all secondary client alarming nodes, use the ibAlarmNode script add-on
function to disable the alarm and event interface for that node. Typically, this
function is placed in the On Startup Application script. InTouch scripting can
be used to make any backup node primary upon failure of the primary.
For more information on using the script add-on functions provided with
InBatch, see Chapter 18, "InTouch Script Add-On Functions."
5. Configure the alarms and events within InTouch. All tags must adhere to the
InBatch tag structure for mapping units/connections to a batch. Only tags with
a unit or connection name in the first eight characters of the tag can be mapped
to a batch. Tags that cannot be mapped to a batch are not logged to the history
database. Within InTouch, configure one alarm logger to handle batch alarms.
For more information on the InBatch tag structure, see Chapter 4, "Process
Modeling."
Client Alarm/Event Interface 553

Note Note Typically only one InTouch client will be responsible for generating
alarms and events that get recorded in the InBatch history database. Enabling the
alarm and event interface for multiple clients may result in repetitive entries in the
history database. The exception to this is if there are different alarms being
generated on separate client nodes.
554 Chapter 21
Tag Interface Management (TIM) System 555

C H A P T E R 2 2

Tag Interface Management


(TIM) System

The Tag Interface Management (TIM) System is a tag based interface to the Batch
Management System and Security System from a Batch Server or Batch Runtime
Client environment.

Contents
• Overview
• Using TIM
• Batch Management System Interface
• Security System Interface
• Batch Function Interface
• Runtime TIM Operation
556 Chapter 22

Overview
The Batch Management System provides several ways a user can interact with the
scheduling and execution of batches. One option is available that utilizes the Tag
Interface Management (TIM) System. The TIM system is designed to provide a tag
based interface to the functions available in the batch management system and
security system.

Tag Linker Batch Manager Security Manager

DevFunc BatchTalk Security


API API API

TIM DB

TIMFunc TIMBatch TIMSee

Batch
Batch Security
Management
Functions System
System
Interface Interface
Interface

TagView Unilink Manager

InBatch Server
(IBServ)

InTouch Node
Tag Interface Management (TIM) System 557

When to Use the Tag Interface Management (TIM)


System
The TIM System should be used if custom logic is required in the control or HMI
system relative to interfacing with the Batch Manager to:
• Manipulate the Batch Schedule
• Monitor and Control Active Batches
• View and Adjust Allocation Queue
• Manipulate Recipe Focus
• Monitor and Respond to Batch Questions
• Enter Batch Comments
• Monitor and Control Active Phases
• Select Equipment for Allocation
• Monitor Batch Messages
• Edit Phases and Parameters
• Monitor and Control Equipment
• View/Force Transition Logic
• Save Control Recipe
• Monitor and Respond to Errors
• Interact with the Security System
• Phase Prepare/Complete
• Evaluate Equipment for Allocation
• Log Equipment Status
• Equipment Allocation Changes
558 Chapter 22

Using TIM
In order to interface with the batch management and security systems, tags must be
created within both the server and client applications. Within the InBatch server,
TIM tags are created when an export is defined and performed in the Tag Linker
application. There are two check boxes that can be enabled to initiate the creation of
the various TIM tags. Within the InTouch client, TIM tags are available when an
InBatch wizard is used, after the .csv file generated by the Tag Linker has been
loaded, or via remote browsing of InBatch tags.

Once the TIM tags have been created, applications on the server and clients can be
used to manipulate the TIM tags and interface with the runtime InBatch system.
There are specific InBatch runtime applications that are required to properly use the
TIM tags. Also, there are specific rules governing the use of the TIM tags. This use
of the applications and tags is presented in this documentation.
For more information on using the Tag Linker application, see Chapter 5, "Tag
Linker."

Using TIM Tags


InBatch wizards have been designed to remotely reference TIM tags automatically.
However, if the situation arises in which the wizards do not provide the necessary
information or the presentation of the information must be altered, the TIM tags can
be accessed individually.
Tag Interface Management (TIM) System 559

Interfaces
There are three primary interface groups available for interacting with the runtime
InBatch system. Tags are available for providing access to the action groups
included within each interface. The table below summarizes the interface groups
and the action groups within each.

Interface Group Action Groups


Batch Management System Manipulate the Batch Schedule
Monitor and Control Active Batches
Manipulate Recipe Focus
Monitor and Respond to Batch Questions
Enter Batch Comments
Monitor and Control Active Phases
Select Equipment for Allocation
Monitor Batch Messages
Edit Phases and Parameters
Monitor and Control Equipment
View/Force Transition Logic
Save Control Recipe
Monitor and Respond to Errors
Security System Interact with InBatch Security System
Batch Functions Phase Prepare/Complete
Evaluate Equipment for Allocation
Log Equipment Status
Equipment Allocation Changes

Batch Focus Versus Unit Focus


Many of the interface groups allow for two ways to view and manipulate
information. The two methods are referred to as batch-centric and unit-centric. The
batch-centric approach is used to view the information associated with a specific
batch. To enable this view, the user would write the appropriate batch value to the -
FOCUS-CLB tags and write a null string to the -FOCUS-UNIT tags. The unit-
centric approach is used to view the information associated with a specific unit. To
enable this view, the user would write the appropriate unit value to the -FOCUS-
UNIT tags and write a null string to the -FOCUS-CLB tags.

Note It is possible, but not recommended to combine both batch-centric and unit-
centric focusing within the same client. This requires extensive scripting using the
tags presented in this manual.
560 Chapter 22

Working with List Tags


TIM tags provide runtime InBatch information. Most of this information is
provided in lists. For example, the batches contained in the Batch Scheduler are
presented in a list. Also, the active phase display, active parameter display,
instruction display, and active question display all contain lists of data. A large
portion of the TIM tags have been defined to represent these lists of data. The other
TIM tags permit interaction with the data in the lists and allow selection and
alterations of this list data.
There are several list tags that are used to view a list, select an item in the list, and
to determine the attributes of the list. The example shown below illustrates the tags
used to manipulate a list of data in the InBatch Batch Scheduler. For all lists, there
will be tags that denote the number of items contained in the list, the first item
displayed in the list, the item that has been selected in the list, all of the individual
entries in the list, the fields contained in the selected item, and a handshake tag that
is used to communicate with the appropriate runtime TIM application.

BTS-SCH-FIRSTITEM BTS-SCH-ITEM3 BTS-SEL-SCHITEM

BTS-SCH-NUMITEMS

BTS-SEL-SCHMODE

BTS-SEL-SCHCAMP BTS-SEL-SCHRECIPE

BTS-SEL-SCHLOT BTS-SEL-SCHSIZE

BTS-SEL-SCHBATCH BTS-SEL-SCHTRAIN

BTS-SEL-SCHTRAIN

The -NUMITEMS tag value defines the number of items that are in the list. The
value may exceed the number of items that can be displayed using the -ITEM# tags.
If the value is zero, there are no entries in the list.

Note Typically, the Tag Linker creates and exports 16 list tags. However, the client
application does not need to utilize all 16 tags. List tags that are not used in wizards
or manually with TIM may be deleted.

The -FIRSTITEM tag value defines the item number to be displayed first in the list.
Manipulation of this value allows for paging up and down or scrolling up and down
through the list.
The -ITEM# tags contain the data for the display lists. There are 16 item tags
created for each list, except for the Batch Function Interface, which has 99 tags.
Tag Interface Management (TIM) System 561

The -SEL- tag is used to select an item in the list. Whenever an item is selected and
it is not in the display list, the -FIRSTITEM tag value is changed so that the
selected item is brought into view.
The -HANDSHAKE tag is used to communicate with the runtime TIM application.
Values are written to the -HANDSHAKE tag to perform the functions permitted
with the list of data.

Note Wonderware recommends using the ibBatchAction script add-on function in


place of the Handshake option whenever possible. The ibBatchAction function
automatically uses security.

For more information on using the ibBatchAction add-on function, see Chapter 18,
"InTouch Script Add-On Functions."

Actions Requiring Security Clearance


Many actions within InBatch can have security defined for them. When utilizing
these actions from the InTouch client through the InBatch wizards, the security
clearance requests are automatically displayed by another application installed on
the client. Writing to TIM security tags is not required in this case. However, if an
application or function that is accessible from the InTouch client requires security
that has been added to the InBatch security system, there are TIM security tags that
are used to verify that an operator is allowed to perform the action. It is the
responsibility of the client application to obtain the operator's user identification
and password and apply them to the appropriate TIM security tags. If security is not
required for an action, the tags must be left blank. Two levels of security are
available. The DoneBy level by itself records who performed the action and
requires the -DONEBY and -DONEBYPWD tags to be written. The DoneBy and
CheckBy levels used together record who performed the action and who verified
the action was performed properly. This requires the -DONEBY, -DONEBYPWD, -
CHECKBY, and -CHECKBYPWD tags to be written.
For more information on defining the security system, see Chapter 13, "Security
System."

Batch Function Tags


There are several critical points in the execution of the InBatch batch management
system where the user can interact. These points are referred to as Batch Functions
and can be accessed via TIM Batch Function tags. Because of the direct interaction
that these tags allow with the batch management system, the tags are created only
upon demand from within the InBatch Tag Linker application and can only be
enabled as a group. The batch functions are called at the beginning of each phase,
the end of each phase, when equipment is evaluated for allocation, when equipment
allocation changes occur, and when equipment status changes are written to history.
Each function has its own set of TIM tags. After a Function is called the batch
management system waits for a response signal before continuing.

Note Caution must be exercised if the Batch Function Tags option is enabled.
Batch execution activity for all batches is put on hold until client responses are
provided.
562 Chapter 22

Tag Generation
The following table provides a summary of the tags generated for each client type
instance if the TIM Tags option is enabled in the InBatch Tag Linker Export Editor.
There will be a complete set for each of the number of clients defined.

Number of Tags per


TIM Action Group Tag Prefix Lists Node
Manipulate the Batch Schedule BTS- 3 116
Monitor and Control Active Batches BTB- 1 36
Manipulate Recipe Focus BTR- 0 3
View and Adjust Allocation Queue BTAQ- 1 36
Monitor and Respond to Batch Questions BTRQ- 1 27
Enter Batch Comments BTRC- 0 6
Monitor and Control Active Phases BTRP- 4 102
Select Equipment for Allocation BTRS- 2 46
Monitor Batch Messages BTM- 1 23
Edit Phases and Parameters BTPE- 3 76
Monitor and Control Equipment BTE- 2 51
View/Force Transition Logic BTVT- 3 69
Save Control Recipe BTSR- 0 10
Monitor and Respond to Errors BTEE- 1 22
Interact with InBatch Security System SE- 0 10
TOTAL 22 633

The following table provides a summary of the tags generated for each client type if
the Batch Function Tags option is enabled in the InBatch Tag Linker Export Editor.
There will be only one set defined for each InBatch server.

Number of Tags per


Batch Function Action Group Tag Prefix Lists Node
Phase Prepare/Complete FUP- 1 115
Evaluate Equipment for Allocation FUEA- 1 111
Log Equipment Status FULE- 0 17
Equipment Allocation Changes FUAC- 1 110
TOTAL 3 353

Batch Management System Interface


This section describes how to configure TIM tags with the Batch Management
System Interface.
Tag Interface Management (TIM) System 563

Manipulate the Batch Schedule


This action group allows the user to perform all of the functions available from the
InBatch Batch Scheduler through tags. The tags can be used to add, delete, and
change batches in the schedule. Also, batches can be initialized and moved in the
list. The tags in this action group are used by the InBatch Scheduler/Dispatcher
wizard and can be used within a client to create a unique scheduling application.

Tag Name Type Size Access


BTS-SCH-NUMITEMS INTEGER 1 RO
BTS-SCH-FIRSTITEM INTEGER 1 R/W
BTS-SCH-ITEM1 TO BTS-SCH-ITEM16 STRING 91 RO
Each list tag consists of multiple fields separated by two spaces.
CAMPAIGN ID 16
LOT ID 16
BATCH ID 16
RECIPE ID 16
MODE 9
STATUS 8
BTS-RECIPE-NUMITEMS INTEGER 1 RO
BTS-RECIPE-FIRSTITEM INTEGER 1 R/W
BTS-RECIPE-ITEM1 TO BTS-RECIPE-ITEM16 STRING 70 RO
BTS-TRAIN-NUMITEMS INTEGER 1 RO
BTS-TRAIN-FIRSTITEM INTEGER 1 R/W
BTS-TRAIN-ITEM1 TO BTS-TRAIN-ITEM16 STRING 16 RO
BTS-TYPE-NUMITEMS INTEGER 1 RO
BTS-TYPE-FIRSTITEM INTEGER 1 R/W
BTS-TYPE-ITEM1 TO BTS-TYPE-ITEM16 STRING 16 RO
BTS-STATE-NUMITEMS INTEGER 1 RO
BTS-STATE-FIRSTITEM INTEGER 1 R/W
BTS-STATE-ITEM1 TO BTS-STATE-ITEM16 STRING 16 RO
BTS-SCH-EIO INTEGER 1 RO
BTS-SEL-SCHITEM INTEGER 1 R/W
BTS-SEL-SCHCAMP STRING 16 R/W
BTS-SEL-SCHLOT STRING 16 R/W
BTS-SEL-SCHBATCH STRING 16 R/W
BTS-SEL-SCHRECIPE STRING 16 R/W
BTS-SEL-SCHSIZE INTEGER 1 R/W
BTS-SEL-SCHTRAIN STRING 16 R/W
BTS-SEL-SCHMODE INTEGER 1 R/W
BTS-SEL-RECIPEITEM INTEGER 1 R/W
BTS-SEL-RECIPEID STRING 16 R/W
BTS-SEL-RECIPENAME STRING 16 R/W
BTS-SEL-RECIPETYPE STRING 16 R/W
BTS-SEL-RECIPESTATE STRING 16 R/W
564 Chapter 22

Tag Name Type Size Access


BTS-SEL-TRAINITEM INTEGER 1 R/W
BTS-SEL-TRAINNAME STRING 16 R/W
BTS-SEL-TYPEITEM INTEGER 1 R/W
BTS-SEL-TYPENAME STRING 16 R/W
BTS-SEL-STATEITEM INTEGER 1 R/W
BTS-SEL-STATENAME STRING 16 R/W
BTS-SEC-DONEBY STRING 12 R/W
BTS-SEC-DONEBYPWD STRING 12 R/W
BTS-SEC-CHECKBY STRING 12 R/W
BTS-SEC-CHECKBYPWD STRING 12 R/W
BTS-INFO INTEGER 1 RO
BTS-HANDSHAKE INTEGER 1 R/W

Description
1. The BTS-SCH-NUMITEMS tag is an integer tag containing the number of
batches in the schedule.
2. The BTS-SCH-ITEM1 to BTS-SCH-ITEM16 tags are string tags used to
display the list of batches in the schedule. The first item in the list is defined by
the value in tag BTS-SCH-FIRSTITEM.
3. The BTS-RECIPE-NUMITEMS tag is an integer tag containing the number of
approved recipes available to be scheduled.
4. The BTS-RECIPE-ITEM1 to BTS-RECIPE-ITEM16 tags are string tags used
to display the list of recipes available. The first item in the list is defined by the
value in tag BTS-RECIPE-FIRSTITEM.
5. The BTS-TRAIN-NUMITEMS tag is an integer tag containing the number of
trains available on which batches can be scheduled.
6. The BTS-TRAIN-ITEM1 to BTS-TRAIN-ITEM16 tags are string tags used to
display the list of trains available. The first item in the list is defined by the
value in tag BTS-TRAIN-FIRSTITEM.
7. The BTS-TYPE-NUMITEMS tag is an integer tag containing the number of
recipe types defined in the recipe database.
8. The BTS-TYPE-ITEM1 to BTS-TYPE-ITEM16 tags are string tags used to
display the list of recipe types available. The first item in the list is defined by
the value in tag BTS-TYPE-FIRSTITEM.
9. The BTS-STATE-NUMITEMS tag is an integer tag containing the number of
recipe states defined in the recipe database.
10. The BTS-STATE-ITEM1 to BTS-STATE-ITEM16 tags are string tags used to
display the list of recipe states available. The first item in the list is defined by
the value in tag BTS-STATE-FIRSTITEM.
11. The BTS-SCH-EIO tag is an integer tag used to monitor or display the Execute
In Order Mode.
Tag Interface Management (TIM) System 565

Value Execute In Order


0 Off
1 On

12. The BTS-SEL-SCHITEM tag is an integer tag used to select the item in the list
that is the focus of the action being performed. This is equivalent to the
selection of the batch from the list with the mouse.
13. The following tags contain the specific schedule information corresponding to
the selected item from the list. Also, these tags would be written to in order to
add a new batch.
BTS-SEL-SCHCAMP - String tag containing the Campaign ID of the current
batch
BTS-SEL-SCHLOT - String tag containing the Lot ID of the current batch
BTS-SEL-SCHBATCH - String tag containing the Batch ID of the current
batch
BTS-SEL-SCHRECIPE - String tag containing the Recipe ID of the current
batch
BTS-SEL-SCHSIZE - Integer tag containing the Size of the current batch
BTS-SEL-SCHTRAIN - String tag containing the Train of the current batch
BTS-SEL-SCHMODE - Integer tag containing the Mode of the current batch

Value Mode
0 Automatic
1 Semi-Automatic
2 Manual

14. The BTS-SEL-RECIPEITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the recipe from the list with the mouse.
15. The following tags contain the specific recipe information corresponding to the
selected item from the list.
BTS-SEL-RECIPEID - String tag containing the selected Recipe ID
BTS-SEL-RECIPENAME - String tag containing the selected Recipe Name
BTS-SEL-RECIPETYPE - String tag containing the selected Recipe Type
BTS-SEL-RECIPESTATE - String tag containing the selected Recipe State
16. The BTS-SEL-TRAINITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the train from the list with the mouse.
17. The following tags contain the specific train information corresponding to the
selected item from the list.
BTS-SEL-TRAINNAME - String tag containing the selected Train Name
18. The BTS-SEL-TYPEITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the recipe type from the list with the mouse.
566 Chapter 22

19. The following tags contain the specific recipe type information corresponding
to the selected item from the list.
BTS-SEL-TYPENAME - String tag containing the selected Recipe Type
20. The BTS-SEL-STATEITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the recipe state from the list with the mouse.
21. The following tags contain the specific train information corresponding to the
selected item from the list.
BTS-SEL-STATENAME - String tag containing the selected Recipe State
22. The BTS-SEC-DONEBY tag specifies the ID and the BTS-SEC-
DONEBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
23. The BTS-SEC-CHECKBY tag specifies the ID and the BTS-SEC-
CHECKBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
24. The BTS-INFO tag is an integer tag used to monitor the working state of the
batch management system. This tag will be equal to one when the batch system
is busy. New TIM commands will not be immediately processed while this tag
is enabled. Operation can resume when the value of this tag is zero. The BTS-
HANDSHAKE tag will have a value of -118 when the BTS-INFO tag is
enabled.
25. The BTS-HANDSHAKE tag is an integer tag that is written to initiate a
specified action and read to monitor the results of the action. The handshake
values are provided in the table below.

Note Caution should be used when writing to the BTS-HANDSHAKE tag from an
InTouch client in a system with security defined. If security is enabled, use the
BTS-HANDSHAKE tag for monitoring responses only. The ibBatchAction script
add-on function should be utilized to initiate the action.

Handshake
Value ibBatchActionValue Description
1 1 Add the batch defined by the specific selection tags to
the schedule after the batch selected by the BTS-SEL-
SCHITEM tag. If no batch is selected, the new batch is
added to the bottom of the list. Same as the Add button
on the Batch Scheduler/Dispatcher wizard.
Tag Interface Management (TIM) System 567

Handshake
Value ibBatchActionValue Description
2 2 Generate batches starting with batch number defined in
the specific selection tags. This action requires the
BTS-SEL-SCHSIZE tag to be greater than the
maximum batch size defined by the recipe. The default
recipe batch size will be used as the size for all of the
generated batches. Same as the Multi-Add button on
the Batch Scheduler/Dispatcher wizard.
3 3 Change the batch selected by the BTS-SEL-SCHITEM
tag to the batch data defined in specific selection tags.
Same as the Change button on the Batch
Scheduler/Dispatcher wizard.
4 4 Delete the batch selected by the BTS-SEL-SCHITEM
tag. Same as the Delete button on the Batch
Scheduler/Dispatcher wizard.
5 5 Remove all Done and Aborted batches from the
schedule list. Same as the Clean-up button on the Batch
Scheduler/Dispatcher wizard.
6 6 Initialize the batch selected by the BTS-SEL-
SCHITEM tag. Same as Init Batch button on the Batch
Scheduler/Dispatcher wizard.
7 7 Initialize all batches in the schedule. Same as the Init
All button on the Batch Scheduler/Dispatcher wizard.
8 8 Move the batch selected by the BTS-SEL-SCHITEM
tag up one position in the list. Same as the Move Up
button on the Batch Scheduler/Dispatcher wizard.
9 9 Move the batch selected by the BTS-SEL-SCHITEM
tag down one position in the list. Same as the Move
Down button on the Batch Scheduler/Dispatcher
wizard.
10 10 Sets the Execute in Order Mode On. Same as the EIO
On button on the Batch Scheduler/Dispatcher wizard.
11 11 Sets the Execute in Order Mode Off. Same as the EIO
Off button on the Batch Scheduler/Dispatcher wizard.
12 12 Refresh the list of recipes that are approved for
production and available for scheduling.
13 13 Refresh the list of trains that are available for
scheduling.
568 Chapter 22

InTouch Client Examples


The following action scripts provide examples of how to add a batch to the
schedule and how to delete a batch from the schedule from an InTouch client. The
InTouch script add-on functions should be used to preserve the order of the tag
writes.

Add a Batch Below the Second Batch in the List


{Select the appropriate batch}
ibPokeInt(IB_TIM_ACCESS_TAG, "BTS-SEL-SCHITEM", 2,
IB_RESULT_TAG);
{Define the new batch}
ibPokeStr(IB_TIM_ACCESS_TAG, "BTS-SEL-SCHCAMP", "New Camp",
IB_RESULT_TAG);
ibPokeStr(IB_TIM_ACCESS_TAG, "BTS-SEL-SCHLOT", "New Lot",
IB_RESULT_TAG);
ibPokeStr(IB_TIM_ACCESS_TAG, "BTS-SEL-SCHBATCH", "New Batch",
IB_RESULT_TAG);
ibPokeStr(IB_TIM_ACCESS_TAG, "BTS-SEL-SCHRECIPE", "Recipe",
IB_RESULT_TAG);
ibPokeInt(IB_TIM_ACCESS_TAG, "BTS-SEL-SCHSIZE", 1000,
IB_RESULT_TAG);
ibPokeStr(IB_TIM_ACCESS_TAG, "BTS-SEL-SCHTRAIN", "Train Name",
IB_RESULT_TAG);
ibPokeInt(IB_TIM_ACCESS_TAG, "BTS-SEL-SCHMODE", 0,
IB_RESULT_TAG);
{Add the batch}
ibBatchAction(IB_TIM_ACCESS_TAG, 1, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

Delete the Third Batch in the List


{Select the appropriate batch}
ibPokeInt(IB_TIM_ACCESS_TAG, "BTS-SEL-SCHITEM", 3,
IB_RESULT_TAG);
{Delete the batch}
ibBatchAction(IB_TIM_ACCESS_TAG, 4, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

Monitor and Control Active Batches


This action group allows the user to perform all of the batch control functions
available from the InBatch Batch Display through tags. There are tags that can be
used to select and control active batches in the schedule. The tags in this action
group are used by the Active Batch List wizard as well as many of the Button
wizards and can be used within a client to create a unique batch control application.
Tag Interface Management (TIM) System 569

Tag Name Type Size Access


BTB-FOCUS-SCH STRING 128 R/W
This tag consists of multiple fields separated by a "/".
UNIT1 TO UNITn 16
BTB-SCH-NUMITEMS INTEGER 1 RO
BTB-SCH-FIRSTITEM INTEGER 1 R/W
BTB-SCH-ITEM1 TO BTB-SCH-ITEM16 STRING 84 RO
Each list tag consists of multiple fields separated by
two spaces.
CAMPAIGN ID 16
LOT ID 16
BATCH ID 16
RECIPE ID 16
STATUS 8
ACTION 2
BTB-SEL-SCHITEM INTEGER 1 R/W
BTB-SEL-SCHCLB STRING 50 RO
This tag consists of three fields separated by a "/".
CAMPAIGN ID 16
LOT ID 16
BATCH ID 16
BTB-SEL-SCHRECIPE STRING 16 RO
BTB-SEL-SCHSIZE INTEGER 1 RO
BTB-SEL-SCHTRAIN STRING 16 RO
BTB-SEL-SCHMODE INTEGER 1 RO
BTB-SEL-SCHMODESTR STRING 16 RO
BTB-SEL-SCHSTATUS INTEGER 1 RO
BTB-SEL-SCHSTATUSSTR STRING 8 RO
BTB-SEL-SCHMASK INTEGER 1 RO
BTB-SEL-SCHFOCUSOK INTEGER 1 RO
BTB-SEC-DONEBY STRING 12 R/W
BTB-SEC-DONEBYPWD STRING 12 R/W
BTB-SEC-CHECKBY STRING 12 R/W
BTB-SEC-CHECKBYPWD STRING 12 R/W
BTB-INFO INTEGER 1 RO
BTB-HANDSHAKE INTEGER 1 R/W

Description
1. The BTB-FOCUS-SCH tag is a string tag that defines the units that are used to
filter the list of batches and provide the focus for the action. Use of this tag is
optional. The system defaults to all batches in the schedule if no entry is
provided.
570 Chapter 22

2. The BTB-HANDSHAKE tag is an integer tag that is written to initiate an


update of the batches according to the values assigned to the focus tag. The
handshake values are provided in the table at the end of this procedure. There is
also an ibBatchAction command available for setting the appropriate focus.
This function is preferred to the handshake because it is designed to
automatically handle security requests.
3. The BTB-SCH-NUMITEMS tag is an integer tag containing the number of
batches in the schedule.
4. The BTB-SCH-ITEM1 to BTB-SCH-ITEM16 tags are string tags used to
display the list of batches in the schedule. The first item in the list is defined by
the value in tag BTB-SCH-FIRSTITEM.
5. The BTB-SEL-SCHITEM tag is an integer tag used to select the item in the list
that is the focus of the action being performed. This is equivalent to the
selection of the batch from the list with the mouse.
6. The following tags contain the specific schedule information corresponding to
the selected item from the list.
BTB-SEL-SCHCLB - String tag containing the identification of the selected
batch
BTB-SEL-SCHRECIPE - String tag containing the Recipe ID of the selected
batch
BTB-SEL-SCHSIZE - Integer tag containing the Size of the selected batch
BTB-SEL-SCHTRAIN - String tag containing the Train of the selected batch
BTB-SEL-SCHMODE - Integer tag containing the Mode value of the selected
batch

Value Mode
0 Automatic
1 Semi-Automatic
2 Manual

BTB-SEL-SCHMODESTR - String tag containing the Mode of the selected


batch
BTB-SEL-SCHSTATUS - String tag containing the Status value of the selected
batch
Tag Interface Management (TIM) System 571

Value Status
0 Open
1 Ready
2 Wait
3 Run
4 Done
5 Interlock
6 Aborted
7 Held
8 Aborting

BTB-SEL-SCHSTATUSSTR - String tag containing the Status of the selected


batch
BTB-SEL-SCHMASK - Integer tag containing the configuration of the
selected batch

Bit Offset Value Action Permitted


0 1 Batch Start
1 2 Batch Hold
2 4 Batch Restart
3 8 Batch Abort
4 16 Edit Mode
5 32 Operator Action

The BTB-SEL-SCHMASK tag contains the composite value of all of the bit
offsets that pertain to the configuration settings of the selected batch. The value
of this tag will be the sum of all of the values in the table above for each
configuration item selected. For example, if the batch is in Held and can be
restarted or aborted, the tag value will be 12.
BTB-SEL-SCHFOCUSOK - Integer tag containing the focus status of the
selected batch
572 Chapter 22

Value Description
0 There is no batch selected.
1 or 2 The selected batch has not yet been started or has been
completed, and should not be used to manipulate the
recipe focus. If two batches that match this criteria are
selected sequentially, this tag will toggle between one
and two. This will allow the user to define an InTouch
data change script on this value.
3 or 4 The selected batch is running, held, or aborting, and it
is permissible to manipulate the recipe focus. If two
batches that match this criteria are selected
sequentially, this tag will toggle between three and four.
This will allow the user to define an InTouch data
change script on this value.

7. The BTB-SEC-DONEBY tag specifies the ID and the BTB-SEC-


DONEBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
8. The BTB-SEC-CHECKBY tag specifies the ID and the BTB-SEC-
CHECKBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
9. The BTB-INFO tag is an integer tag used to monitor the working state of the
batch management system. This tag will be equal to one when the batch system
is busy. New TIM commands will not be immediately processed while this tag
is enabled. Operation can resume when the value of this tag is zero. The BTB-
HANDSHAKE tag will have a value of -118 when the BTB-INFO tag is
enabled.
10. The BTB-HANDSHAKE tag is an integer tag that is written to initiate a
specified action and read to monitor the results of the action. The handshake
values are provided in the table below.
Tag Interface Management (TIM) System 573

Note Caution should be used when writing to the BTB-HANDSHAKE tag from
an InTouch client in a system with security defined. If security is enabled, used the
BTB-HANDSHAKE tag for monitoring responses only. The ibBatchAction script
add-on function should be utilized to initiate the action.

Handshake ibBatchAction
Value Value Description
1 19 Abort the batch defined by the BTB-SEL-SCHITEM tag. Same as the
Abort button wizard.
2 20 Hold the batch defined by the BTB-SEL-SCHITEM tag. Same as the
Hold button wizard.
3 21 Restart the batch defined by the BTB-SEL-SCHITEM tag. Same as
the Restart button wizard.
4 22 Start the batch defined by the BTB-SEL-SCHITEM tag. Same as the
Start button wizard.
5 23 Change the mode of the batch defined by the BTB-SEL-SCHITEM
tag to Automatic. Same as the Batch Mode: Set to Automatic button
wizard.
6 24 Change the mode of the batch defined by the BTB-SEL-SCHITEM
tag to Semi-Automatic. Same as the Batch Mode: Set to Semi-
Automatic button wizard.
7 25 Change the mode of the batch defined by the BTB-SEL-SCHITEM
tag to Manual. Same as the Batch Mode: Set to Manual button wizard.
8 26 Re-evaluate the units defined in the BTB_FOCUS_SCH tag and
update the list according to the focus change.
9 N/A Starts Manual Operation.

InTouch Client Examples


The following action scripts provide examples of how to define the unit filter focus,
select a batch, and start a batch from an InTouch client. The InTouch script add-on
functions should be used to preserve the order of the tag writes.

Action Script to Set the Focus


{Set the unit focus}
ibPokeStr(IB_TIM_ACCESS_TAG, "BTB-FOCUS-SCH", "UnitA/UnitB",
IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 26, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);
574 Chapter 22

Action Script to Select and Start the Batch


{Select the appropriate batch}
ibPokeInt(IB_TIM_ACCESS_TAG, "BTB-SEL-SCHITEM", 2,
IB_RESULT_TAG);

{Start the batch}


ibBatchAction(IB_TIM_ACCESS_TAG, 22, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

{Two scripts were used because of the delay in setting the focus and the updating of
the list of batches. If this were put into a single script, the correct batch may not be
started.}

View and Adjust Allocation Queue


This action group allows the user to perform the functions associated with the
Equipment Allocation Queue in Batch Display and Batch View through tags. The
tags can be used to move a batch up or down in the allocation queue list.

Tag Name Type Size Access


BTAQ-ALLOC-NUMITEMS INTEGER 1 RO
BTAQ-ALLOC-FIRSTITEM INTEGER 1 R/W
BTAQ-ALLOC-ITEM 1 TO BTAQ- STRING
ALLOC-ITEM 16 16 RO
Each list tag consists of eight fields
separated by two spaces. 16 RO
CAMPAIGN ID 16 RO
LOT ID 16 RO
BATCH ID
INSTANCE NAME 16 RO
RECIPE ID 9 RO
MODE 8 RO
STATUS
ORDER 8 RO

BTAQ-SCH-EIO INTEGER 1 RO
BTAQ-SEL-SCHITEM INTEGER 1 R/W
BTAQ-SEL-SCHCAMP STRING 16 RO

BTAQ-SEL-SCHLOT STRING 16 RO
BTAQ-SEL-SCHBATCH STRING 16 RO
BTAQ-SEL-SCHINSTANCE STRING 16 RO
BTAQ-SEL-SCHRECIPE STRING 16 RO
BTAQ-SEL-SCHSIZE INTEGER 1 RO
BTAQ-SEL-SCHTRAIN STRING 16 RO
BTAQ-SEL-SCHMODE INTEGER 1 RO
Tag Interface Management (TIM) System 575

Tag Name Type Size Access


BTAQ-SEL-SCHSEQ INTEGER 1 RO
BTAQ-SEC-DONEBY STRING 12 R/W
BTAQ-SEC-DONEBYPWD STRING 12 R/W
BTAQ-SEC-CHECKBY STRING 12 R/W
BTAQ-SEC-CHECKBYPWD STRING 12 R/W
BTAQ-FOCUS-EQUIP STRING 16 R/W
BTAQ-INFO INTEGER 1 RO
BTAQ-HANDSHAKE INTEGER 1 R/W

Description
1. The BTAQ-ALLOC-NUMITEMS tag is an integer tag containing the number
of batches in the queue list.
2. The BTAQ-ALLOC-ITEM 1 TO BTAQ-ALLOC-ITEM 16 tags are string tags
used to display the list of batches in the queue list. The first item in the list is
defined by the value in tag BTAQ-ALLOC-FIRSTITEM
3. The BTAQ-SCH-EIO tag is an integer tag used to monitor or display the
Execute In Order mode.

Value Execute In Order


0 Off
1 On

4. The BTB-SEL-SCHITEM tag is an integer tag used to select the item in the list
that is the focus of the action being performed. This is equivalent to the
selection of the batch from the list with the mouse.
5. The following tags contain the specific schedule information corresponding to
the selected item from the list.
6. BTAQ-SEL-SCHCAMP - String tag containing the Campaign ID of the
current batch.
7. BTAQ-SEL-SCHLOT - String tag containing the Lot ID of the current batch.
8. BTAQ-SEL-SCHBATCH - String tag containing the Batch ID of the current
batch.
9. BTAQ-SEL-SCHINSTANCE - String tag containing the instance name of the
current batch.
10. BTAQ-SEL-SCHRECIPE - String tag containing the Recipe ID of the current
batch.
11. BTAQ-SEL-SCHSIZE - Integer tag containing the Size of the current batch.
12. BTAQ-SEL-SCHTRAIN - String tag containing the Train of the current batch.
576 Chapter 22

13. BTAQ-SEL-SCHMODE - Integer tag containing the Mode of the current


batch. Values for the Mode are shown here.

Value Mode
0 Automatic
1 Semi-Automatic
2 Manual

14. The BTAQ-SEL-SCHSEQ tag is an integer tag that contains the order
(sequence) of the batch in the allocation queue.
15. The BTAQ-SEC-DONEBY tag specifies the ID and the BTAQ-SEC-
DONEBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values are required for these tags if
security has been configured for the Batch Client functions in the Security
Editor.
16. The BTAQ-SEC-CHECKBY tag specifies the ID and the BTAQ-SEC-
CHECKBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values are required for these tags if
security has been configured for the Batch Client functions in the Security
Editor.
17. The BTAQ-FOCUS-EQUIP tag is an string tag which contains the name of the
equipment from which the queue is being reviewed (that is, has the focus).
18. The BTAQ-INFO tag is an integer tag used to monitor the working state of the
batch management system. This tag is equal to one when the batch system is
busy. New TIM commands are not immediately processed while this tag is
enabled. Operation can resume when the value of this tag is zero. The BTAQ-
HANDSHAKE tag has a value of -118 when the BTAQ-INFO tag is enabled.
19. The BTAQ-HANDSHAKE tag is an integer tag that is written to initiate a
specified action and read to monitor the results of the action. The handshake
values are provided in the table below.

Handshake Description
Value
5 Move the batch selected by the BTB-SEL-SCHITEM tag up
one row in the list. Same as the Move Up button on the
allocation queue dialog in Batch Display and Batch View
display.
6 Move the batch selected by the BTB-SEL-SCHITEM tag down
one row in the list. Same as the Move Down button on the
allocation queue dialog in Batch Display and Batch View
display.
7 Refresh the allocation queue list.
Tag Interface Management (TIM) System 577

Manipulate Recipe Focus


This is a very important action group that allows the user to define different criteria
that will be used for selecting the batch that will be monitored or changed through
tags. The tags in this action group are not used by any specific wizard, but are
required for getting the batch and phase related wizards to display the proper
information.

Tag Name Type Size Access


BTR-FOCUS-CLB STRING 50 R/W
This tag consists of three fields separated by a "/".
CAMPAIGN ID 16
LOT ID 16
BATCH ID 16
BTR-FOCUS-UNIT STRING 16 R/W
BTR-HANDSHAKE INTEGER 1 R/W

Description
1. The BTR-FOCUS-CLB tag is a string tag that defines the Campaign, Lot, and
Batch combination that is the batch focus for the action.
2. The BTR-FOCUS-UNIT tag is a string tag that defines the unit that is the unit
focus for the action. If an asterisk "*" is written to this tag, then the focus will
be on all equipment associated with the batch defined by the BTR-FOCUS-
CLB tag. If a null string "" is written to this tag, then the focus will be on the
batch defined by the BTR-FOCUS-CLB tag.
3. The BTR-HANDSHAKE tag is an integer tag that is written to initiate an
update of the batch and phase related interface groups according to the values
assigned to the focus tags. The handshake values and affected interface groups
are provided in the tables below.

Note Caution should be used when writing to the BTR-HANDSHAKE tag from
an InTouch client. The BTR-HANDSHAKE tag for monitoring responses only. The
ibBatchAction script add-on function should be utilized to initiate the action.

Handshake ibBatchAction
Value Value Description
1 28 Change focus according to the values defined for the
batch and unit focus tags.

Interface Groups Affected by this Focus Setting:


• Monitor and Respond to Batch Questions
• Enter Batch Comments
• Monitor and Control Active Phases
• Select Equipment for Allocation
578 Chapter 22

InTouch Client Example


The following data change script provides an example of how to set the recipe
focus whenever a batch is selected from an InTouch client. This script also utilizes
Monitor and Control Active Batches interface information. The InTouch script add-
on functions should be used to preserve the order of the tag writes.

Set Recipe Focus for the Selected Batch


Data Change Condition
BTB-SEL-SCHFOCUSOK

{Set the recipe focus}


IF BTB-SEL-SCHFOCUSOK > 0
THEN
ibPokeStr(IB_TIM_ACCESS_TAG, "BTR-FOCUS-CLB", BTB-SEL-SCHCLB,
IB_RESULT_TAG);
ibPokeStr(IB_TIM_ACCESS_TAG, "BTR-FOCUS-UNIT", "",
IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 28, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);
ENDIF;
Tag Interface Management (TIM) System 579

Monitor and Respond to Batch Questions


This action group allows the user to perform all of the functions available from the
question portion of the InBatch Batch Display through tags. There are tags that can
be used to view and answer questions for any active batch. The tags in this action
group are used by the Batch Questions wizard and can be used within a client to
create a unique question interface.

Tag Name Type Size Access


BTRQ-QUES-NUMITEMS INTEGER 1 RO
BTRQ-QUES-FIRSTITEM INTEGER 1 R/W
BTRQ-QUES-ITEM1 STRING 40 RO
TO BTRQ-QUES-ITEM16
BTRQ-SEL-QUESITEM INTEGER 1 R/W
BTRQ-SEL-QUES STRING 40 RO
BTRQ-SEL-QUESTYPE INTEGER 1 RO
BTRQ-SEL-SECURITY INTEGER 1 RO
BTRQ-SEC-DONEBY STRING 12 R/W
BTRQ-SEC-DONEBYPWD STRING 12 R/W
BTRQ-SEC-CHECKBY STRING 12 R/W
BTRQ-SEC-CHECKBYPWD STRING 12 R/W
BTRQ-HANDSHAKE INTEGER 1 R/W

Description
1. The BTRQ-QUES-NUMITEMS tag is an integer tag containing the number of
question items currently in the list. The list will be determined by the focus that
is established using the Manipulate Recipe Focus action group described
earlier.
2. The BTRQ-QUES-ITEM1 to BTRQ-QUES-ITEM16 tags are string tags used
to display the list of questions. The first item in the list is defined by the value
in tag BTRQ-QUES-FIRSTITEM.
3. The BTRQ-SEL-QUESITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the question from the list with the mouse.
4. The following tags contain the specific question information corresponding to
the selected item from the list.
BTRQ-SEL-QUES - String tag containing the current selected question
BTRQ-SEL-QUESTYPE - Integer tag containing the type of the current
question
580 Chapter 22

Value Question Type


0 Loop Back
1 Transition Logic

BTRQ-SEL-SECURITY - Integer tag containing the type of the question


security required

Value Security Required


0 None
1 DoneBy Only
2 DoneBy and CheckBy

5. The BTRQ-SEC-DONEBY tag specifies the ID and the BTRQ-SEC-


DONEBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
6. The BTRQ-SEC-CHECKBY tag specifies the ID and the BTRQ-SEC-
CHECKBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
7. The BTRQ-HANDSHAKE tag is an integer tag that is written to initiate a
specified action and read to monitor the results of the action. The handshake
values are provided in the table below.

Note Caution should be used when writing to the BTRQ-HANDSHAKE tag from
an InTouch client in a system with security defined. If security is enabled, used the
BTRQ-HANDSHAKE tag for monitoring responses only. The ibBatchAction script
add-on function should be utilized to initiate the action.

Handshake ibBatchAction
Value Value Description
1 40 Answer Yes to the question selected by the BTS-
SEL-QUESITEM tag. Same as the Yes button on the
Question wizard.
2 41 Answer No to the question selected by the BTS-
SEL-QUESITEM tag. Same as the No button on the
Question wizard.
Tag Interface Management (TIM) System 581

InTouch Client Example


The following action script provides an example of how to select and answer "No"
to a loop back question from an InTouch client. This script assumes that the
appropriate focuses have already been set and that there is only one question active.
The InTouch script add-on functions should be used to preserve the order of the tag
writes.

Answer No to the Loop Back Question in the List


ibPokeInt(IB_TIM_ACCESS_TAG, "BTRQ-SEL-QUESITEM", 1,
IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 41, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

Enter Batch Comments


This action group allows the user to enter comments that pertain to the execution of
batches through tags. There are tags that can be used to enter and submit comments
for any active batch. The tags in this action group are used by the Batch Comments
wizard and can be used within a client to create a unique batch comment interface.

Tag Name Type Size Access


BTRC-INP-COMMENT STRING 80 R/W
BTRC-SEC-DONEBY STRING 12 R/W
BTRC-SEC-DONEBYPWD STRING 12 R/W
BTRC-SEC-CHECKBY STRING 12 R/W
BTRC-SEC-CHECKBYPWD STRING 12 R/W
BTRC-HANDSHAKE INTEGER 1 R/W

Description
1. The BTRC-INP-COMMENT tag is a string tag used to enter the desired
comment. The comment will be assigned to the batch determined by the focus
that is established using the Manipulate Recipe Focus action group described
earlier.
2. The BTRC-SEC-DONEBY tag specifies the ID and the BTRC-SEC-
DONEBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
3. The BTRC-SEC-CHECKBY tag specifies the ID and the BTRC-SEC-
CHECKBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
582 Chapter 22

4. The BTRC-HANDSHAKE tag is an integer tag that is written to initiate a


specified action and read to monitor the results of the action. The handshake
values are provided in the table below.

Note Caution should be used when writing to the BTRC-HANDSHAKE tag from
an InTouch client in a system with security defined. If security is enabled, used the
BTRC-HANDSHAKE tag for monitoring responses only. The ibBatchAction script
add-on function should be utilized to initiate the action.

Handshake ibBatchAction
Value Value Description
1 38 Enters the defined comment for the batch selected.

InTouch Client Example


The following action script provides an example of how to enter a batch comment
from an InTouch client. This script assumes that the appropriate focuses have
already been set. The InTouch script add-on functions should be used to preserve
the order of the tag writes.

Enter a Batch Comment


ibPokeStr(IB_TIM_ACCESS_TAG, "BTRC-INP-COMMENT", "Batch
Comment Text", IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 38, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

Monitor and Control Active Phases


This action group allows the user to perform all of the phase monitor and control
functions available from the InBatch Batch Display through tags. There are tags
that can be used to select, view, and control active phases and associated
information for the selected batch. The tags in this action group are used by the
phase and parameter wizards as well as many of the Button wizards and can be used
within a client to create a unique phase monitoring and control application.

Tag Name Type Size Access


BTRP-PHASE-NUMITEMS INTEGER 1 RO
BTRP-PHASE-FIRSTITEM INTEGER 1 R/W
BTRP-PHASE-ITEM1 TO BTRP-PHASE-ITEM16 STRING 66 RO
Each list tag consists of five fields separated by two spaces.
EQUIPMENT 16
OPERATION 16
PHASE 16
STATUS 8
ACTION 2
BTRP-INSTR-NUMITEMS INTEGER 1 RO
BTRP-INSTR-FIRSTITEM INTEGER 1 R/W
BTRP-INSTR-ITEM1 TO BTRP-INSTR-ITEM16 STRING 40 RO
Tag Interface Management (TIM) System 583

Tag Name Type Size Access


BTRP-ILCK-NUMITEMS INTEGER 1 RO
BTRP-ILCK-FIRSTITEM INTEGER 1 R/W
BTRP-ILCK-ITEM1 TO BTRP-ILCK-ITEM16 STRING 59 RO
Each list tag consists of two fields separated by two spaces.
TAG NAME 49
VALUE 8
BTRP-PARAMEXT-NUMITEMS INTEGER 1 RO
BTRP-PARAMEXT-FIRSTITEM INTEGER 1 R/W
BTRP-PARAMEXT-ITEM1 STRING 72 RO
TO BTRP-PARAMEXT-ITEM16
Each list tag consists of five fields separated by two spaces.
PARAMETER NAME 16
PARAMETER TYPE 12
EXTENSION 12
VALUE 8
EDIT STATUS 16
BTRP-SEL-PHASEITEM INTEGER 1 R/W
BTRP-SEL-PHASEEQUIP STRING 16 RO
BTRP-SEL-PHASEOPER STRING 16 RO
BTRP-SEL-PHASENAME STRING 16 RO
BTRP-SEL-PHASELABEL STRING 8 RO
BTRP-SEL-PHASESTATUS INTEGER 1 RO
BTRP-SEL-PHASEMASK INTEGER 1 RO
BTRP-SEL-PHASELABEL1 STRING 8 RO
BTRP-SEL-PHASELABEL2 STRING 8 RO
BTRP-SEL-PHASEOPERMSGINT INTEGER 1 RO
BTRP-SEL-PHASEOPERMSG STRING 50 RO
BTRP-SEL-PHASEDOC STRING 128 RO
BTRP-SEL-PARAMEXTITEM INTEGER 1 R/W
BTRP-SEL-PARAMNAME STRING 16 RO
BTRP-SEL-PARAMTYPE INTEGER 1 RO
BTRP-SEL-PARAMEXT INTEGER 1 RO
BTRP-SEL-PARAMEDIT INTEGER 1 RO
BTRP-SEL-PARAMEXTVAL STRING 16 RO
BTRP-SEL-INSTRITEM INTEGER 1 R/W
BTRP-SEL-INSTR STRING 40 RO
BTRP-SEL-ILCKITEM INTEGER 1 R/W
BTRP-SEL-ILCKTAG STRING 84 RO
BTRP-SEL-ILCKSTATUS STRING 8 RO
BTRP-INP-PHASECOMMENT STRING 80 R/W
BTRP-INP-PARAMEXTVAL STRING 16 R/W
BTRP-SEC-DONEBY STRING 12 R/W
BTRP-SEC-DONEBYPWD STRING 12 R/W
584 Chapter 22

Tag Name Type Size Access


BTRP-SEC-CHECKBY STRING 12 R/W
BTRP-SEC-CHECKBYPWD STRING 12 R/W
BTRP-HANDSHAKE INTEGER 1 R/W

Description
1. The BTRP-PHASE-NUMITEMS tag is an integer tag containing the number
of phase items currently in the list. The list will be determined by the focus that
is established using the Manipulate Recipe Focus action group described
earlier.
2. The BTRP-PHASE-ITEM1 to BTRP-PHASE-ITEM16 tags are string tags
used to display the list of active phases in the selected batch. The first item in
the list is defined by the value in tag BTRP-PHASE-FIRSTITEM.
3. The BTRP-SEL-PHASEITEM tag is an integer tag used to select the item in
the list that is the focus of the action being performed. This is equivalent to the
selection of the phase from the list with the mouse.
4. The following tags contain the specific schedule information corresponding to
the selected item from the list.
BTRP-SEL-PHASEEQUIP - String tag containing the unit or connection
associated with the selected phase
BTRP-SEL-PHASEOPER - String tag containing the operation running the
selected phase
BTRP-SEL-PHASENAME - String tag containing the name of the selected
phase
BTRP-SEL-PHASELABEL - String tag containing the label of the selected
phase
BTRP-SEL-PHASESTATUS - Integer tag containing the status of the selected
phase

Value Phase Status


1 Ready
2 Wait
3 Run
4 Done
5 Interlocked
6 Aborted
7 Held

BTRP-SEL-PHASEMASK - Integer tag containing the configuration of the


selected phase
Tag Interface Management (TIM) System 585

Bit Offset Value Description


0 1 Ack On Entry Required
1 2 DoneBy Ack On Entry Required
2 4 CheckBy Ack On Entry Required
3 8 Ack On Exit Required
4 16 DoneBy Ack On Exit Required
5 32 CheckBy Ack On Exit Required
6 64 Comment Required
7 128 Hold Permitted
8 256 Restart Permitted
9 512 Abort Permitted
10 1024 Start Permitted
11 2048 Operator Action Required
12 4096 Control Button 1 Available
13 8192 Control Button 2 Available
14 16384 Partial Add Ack On Exit Required

The BTRP-SEL-PHASEMASK tag contains the composite value of all of the


bit offsets that pertain to the configuration settings of the selected phase. The
value of this tag will be the sum of all of the values in the table above for each
configuration item set. For example, if the phase is in Held and can be restarted
or aborted and control button one is available, the tag value will be 4864.
BTRP-SEL-PHASELABEL1 - String tag containing the label of control button
1 label for the selected phase
BTRP-SEL-PHASELABEL2 - String tag containing the label of control button
2 label for the selected phase
BTRP-SEL-PHASEOPERMSGINT - Integer tag containing the value of the
message being displayed for the selected phase

Value Message
0 None
1 Waiting for Phase Start.
2 Waiting for entry acknowledge.
3 Waiting for exit acknowledge.
4 Waiting for Required Edits.
5 Waiting for Required Comment.
6 Waiting for Phase Status.
7 Waiting for Phase Start
8 Partial Add. Waiting for Exit Acknowledge.

BTRP-SEL-PHASEOPERMSG - String tag containing the Message being


displayed for the selected phase
BTRP-SEL-PHASEDOC - String tag containing the path of the Document
assigned to the selected phase.
586 Chapter 22

5. The BTRP-INP-PHASECOMMENT tag is a string tag used to enter in a


comment for the selected phase.
6. The BTRP-PARAMEXT-NUMITEMS tag is an integer tag containing the
number of parameter items currently in the list.
7. The BTRP-PARAMEXT-ITEM1 to BTRP-PARAMEXT-ITEM16 tags are
string tags used to display the list of active parameters in the selected phase.
The first item in the list is defined by the value in tag BTRP-PARAMEXT-
FIRSTITEM.
8. The BTRP-SEL-PARAMEXTITEM tag is an integer tag used to select the item
in the list that is the focus of the action being performed. This is equivalent to
the selection of the parameter from the list with the mouse.
9. The following tags contain the specific schedule information corresponding to
the selected item from the list.
BTRP-SEL-PARAMNAME - String tag containing the name of the selected
phase
BTRP-SEL-PARAMTYPE - Integer tag containing the type of the selected
phase

Value Description
0 Input
9 Process Variable
12 Output

BTRP-SEL-PARAMEXT - Integer tag containing the type of extension of the


selected phase

Value Description
1 Material ID
2 Material Name
3 Target
4 Actual
5 High Deviation
6 Low Deviation
7 Lot Code
8 Preact
10 High Limit
11 Low Limit

BTRP-SEL-PARAMEDIT - Integer tag containing the editing that is allowed


for the selected phase
Tag Interface Management (TIM) System 587

Value Editing Permitted


0 None
1 Numeric Entry Allowed
2 Alphanumeric Entry Allowed
3 Numeric Entry Required
4 Alphanumeric Entry Required

BTRP-SEL-PARAMEXTVAL - String tag containing the value of the selected


parameter
10. The BTRP-INP-PARAMEXTVAL tag is a string tag used to enter in a new
value for the selected parameter.
11. The BTRP-INSTR-NUMITEMS tag is an integer tag containing the number of
instruction items currently in the list.
12. The BTRP-INSTR-ITEM1 to BTRP-INSTR-ITEM16 tags are string tags used
to display the list of active instruction for the selected phase. The first item in
the list is defined by the value in tag BTRP-INSTR-FIRSTITEM.
13. The BTRP-SEL-INSTRITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the instruction from the list with the mouse.
14. The following tag contains the specific schedule information corresponding to
the selected item from the list.
BTRP-SEL-INSTR - String tag containing the selected line of the instruction
15. The BTRP-ILCK-NUMITEMS tag is an integer tag containing the number of
interlock items currently in the list.
16. The BTRP-ILCK-ITEM1 to BTRP-ILCK-ITEM16 tags are string tags used to
display the list of active interlock tags for the selected phase. The first item in
the list is defined by the value in tag BTRP-ILCK-FIRSTITEM.
17. The BTRP-SEL-ILCKITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the interlock from the list with the mouse.
18. The following tag contains the specific schedule information corresponding to
the selected item from the list.
BTRP-SEL-ILCKTAG - String tag containing the tag associated with the
selected interlock
BTRP-SEL-ILCKSTATUS - String tag containing the value of the selected
interlock
19. The BTRP-SEC-DONEBY tag specifies the ID and the BTRP-SEC-
DONEBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
588 Chapter 22

20. The BTRP-SEC-CHECKBY tag specifies the ID and the BTRP-SEC-


CHECKBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
21. The BTRP-HANDSHAKE tag is an integer tag that is written to initiate a
specified action and read to monitor the results of the action. The handshake
values are provided in the table below.

Note Caution should be used when writing to the BTRP-HANDSHAKE tag from
an InTouch client in a system with security defined. If security is enabled, used the
BTRP-HANDSHAKE tag for monitoring responses only. The ibBatchAction script
add-on function should be utilized to initiate the action.

Handshake ibBatchAction
Value Value Description
1 29 Abort the phase defined by the BTRP-SEL-
PHASEITEM tag. Same as the Phase Abort button
wizard.
2 30 Hold the phase defined by the BTRP-SEL-
PHASEITEM tag. Same as the Phase Hold button
wizard.
3 31 Restart the phase defined by the BTRP-SEL-
PHASEITEM tag. Same as the Phase Restart button
wizard.
4 32 Start the phase defined by the BTRP-SEL-
PHASEITEM tag. Same as the Phase Start button
wizard.
5 33 Acknowledge the phase defined by the BTRP-SEL-
PHASEITEM tag. Executes both the Ack On Entry
and Ack On Exit commands. Same as the Ack button
wizards.
6 34 Enter the comment to the phase defined by the
BTRP-SEL-PHASEITEM tag.
7 35 Performs the selection of control button 1.
8 36 Performs the selection of control button 2.
9 37 Change the value of the parameter defined by the
BTRP-SEL-PARAMEXTITEM tag.
10 49 Views the document assigned to the selected phase.
11 50 Acknowledges the document assigned to the selected
phase.

InTouch Client Examples


The following action scripts provide examples of how to put a phase on hold, enter
a phase comment, and change a phase parameter value from an InTouch client. This
script assumes that the appropriate focuses have already been set. The InTouch
script add-on functions should be used to preserve the order of the tag writes.
Tag Interface Management (TIM) System 589

Put a Phase on Hold


ibPokeInt(IB_TIM_ACCESS_TAG, "BTRP-SEL-PHASEITEM", 2,
IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 30, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

Enter a Phase Comment


ibPokeInt(IB_TIM_ACCESS_TAG, "BTRP-SEL-PHASEITEM", 2,
IB_RESULT_TAG);
ibPokeStr(IB_TIM_ACCESS_TAG, "BTRP-INP-PHASECOMMENT", "Comment
Entry", IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 34, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

Change a Phase Target Parameter


ibPokeInt(IB_TIM_ACCESS_TAG, "BTRP-SEL-PHASEITEM", 2,
IB_RESULT_TAG);
ibPokeInt(IB_TIM_ACCESS_TAG, "BTRP-SEL-PARAMEXTITEM", 2,
IB_RESULT_TAG);
ibPokeStr(IB_TIM_ACCESS_TAG, "BTRP-INP-PARAMEXTVAL", "300",
IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 37, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

Select Equipment for Allocation


This action group allows the user to perform all of the functions available from the
Equipment Selection dialog of the InBatch Batch Display through tags. There are
tags that can be used to select equipment for any active batch. The tags in this
action group are used by the Equipment Selection wizard and can be used within a
client to create a unique equipment selection interface.

Tag Name Type Size Access


BTRS-INST-NUMITEMS INTEGER 1 RO
BTRS-INST-FIRSTITEM INTEGER 1 R/W
BTRS-INST-ITEM1 TO BTRS-INST-ITEM16 STRING 16 RO
BTRS-UNIT-NUMITEMS INTEGER 1 RO
BTRS-UNIT-FIRSTITEM INTEGER 1 R/W
BTRS-UNIT-ITEM1 TO BTRS-UNIT-ITEM16 STRING 34 RO
Each list tag consists of two fields separated by two spaces.
UNIT NAME 16
STATUS 16
BTRS-SEL-INSTITEM INTEGER 1 R/W
BTRS-SEL-INSTNAME STRING 16 RO
BTRS-SEL-UNITITEM INTEGER 1 R/W
BTRS-SEL-UNITNAME STRING 16 RO
BTRS-SEL-UNITSTATUS STRING 16 RO
590 Chapter 22

Tag Name Type Size Access


BTRS-SEC-DONEBY STRING 12 R/W
BTRS-SEC-DONEBYPWD STRING 12 R/W
BTRS-SEC-CHECKBY STRING 12 R/W
BTRS-SEC-CHECKBYPWD STRING 12 R/W
BTRS-HANDSHAKE INTEGER 1 R/W

Description
1. The BTRS-INST-NUMITEMS tag is an integer tag containing the number of
instance items currently in the list. The list will be determined by the focus that
is established using the Manipulate Recipe Focus action group described
earlier.
2. The BTRS-INST-ITEM1 to BTRS-INST-ITEM16 tags are string tags used to
display the list of instances. The first item in the list is defined by the value in
tag BTRS-INST-FIRSTITEM.
3. The BTRS-SEL-INSTITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the instance from the list with the mouse.
4. The following tag contains the specific question information corresponding to
the selected item from the list.
BTRS-SEL-INSTNAME - String tag containing the name of the selected
instance
5. The BTRS-UNIT-NUMITEMS tag is an integer tag containing the number of
units available for selection and assignment to the selected instance.
6. The BTRS-UNIT-ITEM1 to BTRS-UNIT-ITEM16 tags are string tags used to
display the list of units and associated information. The first item in the list is
defined by the value in tag BTRS-UNIT-FIRSTITEM.
7. The BTRS-SEL-UNITITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the unit from the list with the mouse.
8. The following tags contain the specific question information corresponding to
the selected item from the list.
BTRS-SEL-UNITNAME - String tag containing the name of the selected unit
BTRS-SEL-UNITSTATUS - String tag containing the status of the selected
unit. The status values correspond to those defined in the InBatch Process
Model.
9. The BTRS-SEC-DONEBY tag specifies the ID and the BTRS-SEC-
DONEBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
Tag Interface Management (TIM) System 591

10. The BTRS-SEC-CHECKBY tag specifies the ID and the BTRS-SEC-


CHECKBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
11. The BTRS-HANDSHAKE tag is an integer tag that is written to initiate a
specified action and read to monitor the results of the action. The handshake
values are provided in the table below.

Note Caution should be used when writing to the BTRS-HANDSHAKE tag from
an InTouch client in a system with security defined. If security is enabled, used the
BTRS-HANDSHAKE tag for monitoring responses only. The ibBatchAction script
add-on function should be utilized to initiate the action.

Handshake ibBatchAction
Value Value Description
1 39 Assign the unit selected by the BTRS-SEL-UNITITEM tag to the
instance selected by the BTRS-SEL-INSTITEM tag.

InTouch Client Example


The following action script provides an example of how to select a unit when
requested by the active batch from an InTouch client. This script assumes that the
appropriate focuses have already been set and that there is only one instance to
assign. The InTouch script add-on functions should be used to preserve the order of
the tag writes.

Select a Unit to be Assigned to an Instance


ibPokeInt(IB_TIM_ACCESS_TAG, "BTRS-SEL-INSTITEM", 1,
IB_RESULT_TAG);
ibPokeInt(IB_TIM_ACCESS_TAG, "BTRS-SEL-UNITITEM", 3,
IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 39, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

Monitor Batch Messages


This action group allows the user to perform all of the functions available from the
InBatch Batch Messages dialog through tags. There are tags that can be used to
view and display all messages for active batches within a client environment. The
tags in this action group are used by the Batch Messages wizard and can be used
within a client to create a unique batch messaging application.
592 Chapter 22

Tag Name Type Size Access


BTM-FOCUS-CLB STRING 50 R/W
This tag consists of three fields separated by a "/".
CAMPAIGN ID 16
LOT ID 16
BATCH ID 16
BTM-FOCUS-UNIT STRING 16 R/W
BTM-MSG-NUMITEMS INTEGER 1 RO
BTM-MSG-FIRSTITEM INTEGER 1 R/W
BTM-MSG-ITEM1 TO BTM-MSG-ITEM16 STRING 80 RO
BTM-SEL-MSGITEM INTEGER 1 R/W
BTM-SEL-MSG STRING 80 RO
BTM-HANDSHAKE INTEGER 1 R/W

Description
1. The BTM-FOCUS-CLB tag is a string tag that defines the Campaign, Lot, and
Batch combination that is the batch focus for the action.
2. The BTM-FOCUS-UNIT tag is a string tag that defines the unit that is the unit
focus for the action. If an asterisk "*" is written to this tag, then the focus will
be on all equipment associated with the batch defined by BTM-FOCUS-CLB
tag. If a null string "" is written to this tag, then the focus will be on the batch
defined by the BTM-FOCUS-CLB tag.
3. The BTM-HANDSHAKE tag is an integer tag that is written to initiate an
update of the message list according to the values assigned to the focus tags.
The handshake values are provided in the table below.

Note Caution should be used when writing to the BTS-HANDSHAKE tag from an
InTouch client. The BTS-HANDSHAKE tag for monitoring responses only. The
ibBatchAction script add-on function should be utilized to initiate the action.

Handshake ibBatchAction
Value Value Description
1 27 Change the batch or unit for which the focus for any
batch messages is being controlled.

4. The BTM-MSG-NUMITEMS tag specifies the number of pending Batch


Messages. The number of possible messages will not exceed the number of
messages that can be displayed. If the message list is full and a new message is
received, the oldest message will be removed from the list and the new
messages will be added. Messages will be maintained in chronological order
with BTM-MSG-ITEM1 being the oldest message.
5. The BTM-MSG-ITEM1 to BTM-MSG-ITEM16 tags are string tags used to
display the list of batch messages. The first item in the list is defined by the
value in tag BTM-MSG-FIRSTITEM.
Tag Interface Management (TIM) System 593

6. The BTM-SEL-MSGITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the message from the list with the mouse.
7. The following tag contains the specific message information corresponding to
the selected item from the list.
BTM-SEL-MSG - String tag containing the current selected message

InTouch Client Example


The following action scripts provide examples of how to focus in on a specific
batch and select and view the second batch message in the list. The InTouch script
add-on functions should be used to preserve the order of the tag writes.

Action Script to Set the Focus


{Set the batch messages focus}
ibPokeStr(IB_TIM_ACCESS_TAG, "BTM-FOCUS-CLB",
"Campaign/Lot/Batch", IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 27, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

Action Script to View the Second Message in the List


ibPokeInt(IB_TIM_ACCESS_TAG, "BTM-SEL-MSGITEM", 2,
IB_RESULT_TAG);
{BTM-SEL-MSG will contain the value of the second message.}

{Two scripts were used because of the delay in setting the focus and the updating of
the list of messages. If this were put into a single script, the correct message may
not be selected.}
594 Chapter 22

Edit Phases and Parameters


This action group allows the user to perform all of the functions available from the
Phase/Parameter Editor portion of the InBatch Batch Display through tags. There
are tags that can be used to view and change the parameters defined for any inactive
phase. The tags in this action group are used by the Phase and Parameter Editor
wizard and can be used within a client to create a unique phase and parameter editor
interface.

Tag Name Type Size Access


BTPE-FOCUS-CLB STRING 50 R/W
This tag consists of three fields separated by a "/".
CAMPAIGN ID 16
LOT ID 16
BATCH ID 16
BTPE-PHASE-NUMITEMS INTEGER 1 RO
BTPE-PHASE-FIRSTITEM INTEGER 1 R/W
BTPE-PHASE-ITEM1 TO BTPE-PHASE-ITEM16 STRING 62 RO
Each list tag consists of four fields separated by two spaces.
INSTANCE NAME 16
OPERATION 16
LABEL 8
PHASE NAME 16
BTPE-INSTR-NUMITEMS INTEGER 1 RO
BTPE-INSTR-FIRSTITEM INTEGER 1 R/W
BTPE-INSTR-ITEM1 TO BTPE-INSTR-ITEM16 STRING 40 RO
BTPE-PARAM-NUMITEMS INTEGER 1 RO
BTPE-PARAM-FIRSTITEM INTEGER 1 R/W
BTPE-PARAM-ITEM1 TO BTPE-PARAM-ITEM16 STRING 62 RO
Each list tag consists of four fields separated by two spaces.
PARAMETER NAME 16
PARAMETER TYPE 16
MATERIAL ID 16
VALUE 8
BTPE-SEL-PHASEITEM INTEGER 1 R/W
BTPE-SEL-PHASEINST STRING 16 RO
BTPE-SEL-PHASEOPER STRING 16 RO
BTPE-SEL-PHASELABEL STRING 8 RO
BTPE-SEL-PHASENAME STRING 16 RO
BTPE-SEL-PHASEMASK INTEGER 1 R/W
BTPE-SEL-INSTRITEM INTEGER 1 R/W
BTPE-SEL-INSTR STRING 40 RO
BTPE-SEL-PARAMITEM INTEGER 1 R/W
BTPE-SEL-PARAM STRING 16 RO
BTPE-SEL-PARAMTYPE INTEGER 1 RO
BTPE-SEL-PARAMMTRLID STRING 16 RO
Tag Interface Management (TIM) System 595

Tag Name Type Size Access


BTPE-SEL-PARAMMTRLNAME STRING 40 RO
BTPE-SEL-PARAMVALUE STRING 16 RO
BTPE-INP-INSTR STRING 80 R/W
BTPE-INP-PARAMVALUE STRING 16 R/W
BTPE-SEC-DONEBY STRING 12 R/W
BTPE-SEC-DONEBYPWD STRING 12 R/W
BTPE-SEC-CHECKBY STRING 12 R/W
BTPE-SEC-CHECKBYPWD STRING 12 R/W
BTPE-HANDSHAKE INTEGER 1 R/W

Description
1. The BTPE-FOCUS-CLB tag is a string tag that defines the Campaign, Lot, and
Batch combination that is the batch focus for the action.
2. The BTPE-PHASE-NUMITEMS tag is an integer tag containing the number
of active phases in the selected batch.
3. The BTPE-PHASE-ITEM1 to BTPE-PHASE-ITEM16 tags are string tags
used to display the list of active phases and associated information for the
selected batch. The first item in the list is defined by the value in tag BTPE-
PHASE-FIRSTITEM.
4. The BTPE-SEL-PHASEITEM tag is an integer tag used to select the phase
item in the list that is the focus of the action being performed. This is
equivalent to the selection of the phase from the list with the mouse.
5. The following tags contain the specific phase information corresponding to the
selected item from the list.
BTPE-SEL-PHASEINST - String tag containing the instance name of the
selected phase
BTPE-SEL-PHASEOPER - String tag containing the operation name of the
selected phase
BTPE-SEL-PHASELABEL - String tag containing the label of the selected
phase
BTPE-SEL-PHASENAME - String tag containing the name of the selected
phase
BTPE-SEL-PHASEMASK - Integer tag containing the configuration of the
selected phase.
596 Chapter 22

Bit Offset Value Description


0 1 Ack On Entry
1 2 DoneBy Ack On Entry
2 4 CheckBy Ack On Entry
3 8 Ack On Exit
4 16 DoneBy Ack On Exit
5 32 CheckBy Ack On Exit
6 64 Comment Required

The BTPE-SEL-PHASEMASK tag contains the composite value of all of the


bit offsets that pertain to the configuration settings of the current phase. The
value of this tag will be the sum of all of the values in the table above for each
configuration item selected. For example, if Ack On Entry and Comment
Required are selected, the tag value will be 65. This tag can be written to as
well to allow the current phase configuration settings to be changed.
6. The BTPE-INSTR-NUMITEMS tag is an integer tag containing the number of
lines of instructions for the selected phase.
7. The BTPE-INSTR-ITEM1 to BTPE-INSTR-ITEM16 tags are string tags used
to display the list of instructions for the selected phase. The first item in the list
is defined by the value in tag BTPE-INSTR-FIRSTITEM.
8. The BTPE-SEL-INSTRITEM tag is an integer tag used to select the instruction
item in the list that is the focus of the action being performed. This is
equivalent to the selection of the instruction from the list with the mouse.
9. The following tag contains the specific instruction information corresponding
to the selected item from the list.
BTPE-SEL-INSTR - String tag containing the selected instruction line of the
selected phase
10. The BTPE-INP-INSTR tag is a string tag used to enter in a new instruction line
that is to be appended to the current instruction for the selected phase.
11. The BTPE-PARAM-NUMITEMS tag is an integer tag containing the number
of parameters in the selected phase.
12. The BTPE-PARAM-ITEM1 to BTPE-PARAM-ITEM16 tags are string tags
used to display the list of active parameters and associated information for the
selected phase. The first item in the list is defined by the value in tag BTPE-
PARAM-FIRSTITEM.
13. The BTPE-SEL-PARAMITEM tag is an integer tag used to select the
parameter item in the list that is the focus of the action being performed. This is
equivalent to the selection of the parameter from the list with the mouse.
14. The following tags contain the specific phase information corresponding to the
selected item from the list.
BTPE-SEL-PARAM - String tag containing the name of the selected parameter
BTPE-SEL-PARAMTYPE - Integer tag containing the type of the selected
parameter
Tag Interface Management (TIM) System 597

Value Description
0 Input
9 Process Variable
12 Output

BTPE-SEL-PARAMMTRLID - String tag containing the material ID assigned


to the selected parameter
BTPE-SEL-PARAMMTRLNAME - String tag containing the material name
assigned to the selected parameter
BTPE-SEL-PARAMVALUE - String tag containing the value of the selected
parameter.
15. The BTPE-INP-PARAMVALUE tag is a string tag used to enter in a new value
for the selected parameter.
16. The BTPE-SEC-DONEBY tag specifies the ID and the BTPE-SEC-
DONEBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
17. The BTPE-SEC-CHECKBY tag specifies the ID and the BTPE-SEC-
CHECKBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
18. The BTPE-HANDSHAKE tag is an integer tag that is written to initiate a
specified action and read to monitor the results of the action. The handshake
values are provided in the table below.

Note Caution should be used when writing to the BTS-HANDSHAKE tag from an
InTouch client in a system with security defined. If security is enabled, used the
BTS-HANDSHAKE tag for monitoring responses only. The ibBatchAction script
add-on function should be utilized to initiate the action.

Handshake ibBatchAction
Value Value Description
1 42 Change batch focus.
2 43 Change the phase configuration according to the phase
mask setting for the selected phase and append new
instructions.
3 44 Change the phase parameter value for the selected
parameter.
598 Chapter 22

InTouch Client Examples


The following action scripts provide examples of how to select a phase, change the
phase configuration settings and change the value of a parameter from an InTouch
client. The script assumes that there is an active heat phase with a temperature
parameter. The InTouch script add-on functions should be used to preserve the
order of the tag writes.

Action Script to Set the Focus


{Select the appropriate batch}
ibPokeStr(IB_TIM_ACCESS_TAG, "BTPE-FOCUS-CLB",
"Campaign/Lot/Batch", IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 42, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

Action Script to Change the Configuration Settings and Parameter


Value for a Phase
{Select the appropriate phase and require a CheckBy Ack On
Entry and a DoneBy Ack On Exit}
ibPokeInt(IB_TIM_ACCESS_TAG, "BTPE-SEL-PHASEITEM", 1,
IB_RESULT_TAG);
ibPokeInt(IB_TIM_ACCESS_TAG, "BTPE-SEL-PHASEMASK", 20,
IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 43, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);
{Select the appropriate parameter and change the heat target
value to 300}
ibPokeInt(IB_TIM_ACCESS_TAG, "BTPE-SEL-PARAMITEM", 1,
IB_RESULT_TAG);
ibPokeStr(IB_TIM_ACCESS_TAG, "BTPE-SEL-PARAMVALUE", "300",
IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 44, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

{Two scripts were used because of the delay in setting the focus and the updating of
the list of phases. If this were put into a single script, the correct phase and
parameter may not be selected.}

Monitor and Control Equipment


This action group allows the user to perform all of the functions available from the
Equipment Allocation dialog of the InBatch Batch Display through tags. There are
tags that can be used to view and change the allocation and statuses of equipment
for any active batch or unit. The tags in this action group are used by the Equipment
Allocation wizard and can be used within a client to create a unique equipment
interface.
Tag Interface Management (TIM) System 599

Tag Name Type Size Access


BTE-FOCUS-CLB STRING 50 R/W
This tag consists of three fields separated by a "/".
CAMPAIGN ID 16
LOT ID 16
BATCH ID 16
BTE-FOCUS-UNIT STRING 16 R/W
BTE-EQU-NUMITEMS INTEGER 1 RO
BTE-EQU-FIRSTITEM INTEGER 1 R/W
BTE-EQU-ITEM1 TO BTE-EQU-ITEM16 STRING 82 RO
Each list tag consists of five fields separated by two spaces.
EQUIPMENT NAME 16
EQUIPMENT TYPE 10
ALLOCATION 16
STATUS 16
STATE 16
BTE-INST-NUMITEMS INTEGER 1 RO
BTE-INST-FIRSTITEM INTEGER 1 R/W
BTE-INST-ITEM1 TO BTE-INST-ITEM16 STRING 16 RO
BTE-SEL-EQUITEM INTEGER 1 R/W
BTE-SEL-EQUNAME STRING 16 RO
BTE-SEL-EQUTYPE INTEGER 1 RO
BTE-SEL-EQUALLOC STRING 16 RO
BTE-SEL-EQUSTATUS STRING 16 RO
BTE-SEL-EQUUNITCTRL INTEGER 1 RO
BTE-SEL-INSTITEM INTEGER 1 R/W
BTE-SEL-INSTNAME STRING 16 RO
BTE-SEC-DONEBY STRING 12 R/W
BTE-SEC-DONEBYPWD STRING 12 R/W
BTE-SEC-CHECKBY STRING 12 R/W
BTE-SEC-CHECKBYPWD STRING 12 R/W
BTE-HANDSHAKE INTEGER 1 R/W

Description
1. The BTE-FOCUS-CLB tag is a string tag that defines the Campaign, Lot, and
Batch combination that is the batch focus for the action.
2. The BTE-FOCUS-UNIT tag defines the unit that is the unit focus for the
action. If an asterisk "*" is written to this tag, then the focus will be on all
equipment associated with the batch defined by BTE-FOCUS-CLB tag. If a
null string "" is written to this tag, then the focus will be on the batch defined
by the BTE-FOCUS-CLB tag.
3. The BTE-EQU-NUMITEMS tag is an integer tag containing the number of
pieces of equipment in the batch in focus.
600 Chapter 22

4. The BTE-EQU-ITEM1 to BTE-EQU-ITEM16 tags are string tags used to


display the list of equipment in the batch defined by the focus. The first item in
the list is defined by the value in tag BTE-EQU-FIRSTITEM.
5. The BTE-SEL-EQUITEM tag is an integer tag used to select the item in the list
that is the focus of the action being performed. This is equivalent to the
selection of the equipment from the list with the mouse.
6. The following tags contain the specific equipment information corresponding
to the selected item from the list.
BTE-SEL-EQUNAME - String tag containing the name of the selected
equipment
BTE-SEL-EQUTYPE - Integer tag containing the type of the selected
equipment

Value Equipment Type


0 Unit
1 Connection

BTE-SEL-EQUALLOC - String tag containing the allocation status of the


selected equipment
Possible Values - Ready, Allocated, Busy
BTE-SEL-EQUSTATUS - String tag containing the status of the selected
equipment. The status values correspond to those defined in the InBatch
Process Model.
BTE-SEL-EQUUNITCTRL - Integer tag indicating if unit control tags exist.

Value Unit Control Tags Exist


0 Unit Control Tags exist
1 Unit Control Tags do not exist

7. The BTE-INST-NUMITEMS tag is an integer tag containing the number of


instances of equipment for the selected batch.
8. The BTE-INST-ITEM1 to BTE-INST-ITEM16 tags are string tags used to
display the list of equipment instances in the batch defined by the focus. The
first item in the list is defined by the value in tag BTE-INST-FIRSTITEM.
9. The BTE-SEL-INSTITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the instance from the list with the mouse.
10. The following tag contains the specific equipment information corresponding
to the selected item from the list.
BTE-SEL-INSTNAME - String tag containing the name of the selected
instance
11. The BTE-SEC-DONEBY tag specifies the ID and the BTE-SEC-
DONEBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
Tag Interface Management (TIM) System 601

12. The BTE-SEC-CHECKBY tag specifies the ID and the BTE-SEC-


CHECKBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
13. The BTE-HANDSHAKE tag is an integer tag that is written to initiate a
specified action and read to monitor the results of the action. The handshake
values are provided in the table below.

Note Caution should be used when writing to the BTE-HANDSHAKE tag from
an InTouch client in a system with security defined. If security is enabled, used the
BTE-HANDSHAKE tag for monitoring responses only. The ibBatchAction script
add-on function should be utilized to initiate the action.

Handshake ibBatchAction
Value Value Description
1 13 Allocate the piece of equipment selected by the BTE-
SEL-EQUITEM tag to the instance selected by the
BTE-SEL-INSTITEM tag.
2 14 Release the piece of equipment selected by the BTE-
SEL-EQUITEM tag.
3 15 Writes a value of one to the unit abort tag for the unit
selected by the BTE-SEL-EQUITEM tag.
4 16 Writes a value of one to the unit hold tag for the unit
selected by the BTE-SEL-EQUITEM tag.
5 17 Writes a value of one to the unit restart tag for the unit
selected by the BTE-SEL-EQUITEM tag.
6 18 Change the focus of equipment being monitored
according to the values for the batch and focus tags.

InTouch Client Examples


The following action scripts provide examples of how to allocate a connection to a
selected batch and how to put a unit on hold from an InTouch client. The InTouch
script add-on functions should be used to preserve the order of the tag writes.

Action Script to Set the Focus


{Select the appropriate batch}
ibPokeStr(IB_TIM_ACCESS_TAG, "BTE-FOCUS-CLB",
"Campaign/Lot/Batch", IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 18, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

Action Script to Allocate a Connection


{Select the appropriate connection and allocate}
ibPokeInt(IB_TIM_ACCESS_TAG, "BTE-SEL-EQUITEM", 7,
IB_RESULT_TAG);
602 Chapter 22

ibPokeInt(IB_TIM_ACCESS_TAG, "BTE-SEL-INSTITEM", 1,
IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 13, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

{Two scripts were used because of the delay in setting the focus and the updating of
the list of equipment. If this were put into a single script, the correct equipment may
not be selected.}

Action Script to Set the Focus


{Select the appropriate unit}
ibPokeStr(IB_TIM_ACCESS_TAG, "BTE-FOCUS-UNIT", "Unit Name",
IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 18, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

Action Script to Put a Unit on Hold


{Select the appropriate unit and put on hold}
ibPokeInt(IB_TIM_ACCESS_TAG, "BTE-SEL-EQUITEM", 1,
IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 16, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

{Two scripts were used because of the delay in setting the focus and the updating of
the list of equipment. If this were put into a single script, the correct equipment may
not be selected.}

View/Force Transition Logic


This action group allows the user to perform all of the functions available from the
Transition Logic dialog of the InBatch Batch Display through tags. There are tags
that can be used to view and force transition logic expressions for any active batch.
The tags in this action group are used by the View/Force Transition Logic wizard
and can be used within a client to create a unique transition logic interface.

Tag Name Type Size Access


BTVT-FOCUS-CLB STRING 50 R/W
This tag consists of three fields separated by a "/".
CAMPAIGN ID 16
LOT ID 16
BATCH ID 16
BTVT-TRANS-NUMITEMS INTEGER 1 RO
BTVT-TRANS-FIRSTITEM INTEGER 1 R/W
Tag Interface Management (TIM) System 603

Tag Name Type Size Access


BTVT-TRANS-ITEM1 TO BTVT-TRANS-ITEM16 STRING 37 RO
Each list tag consists of two fields separated by two spaces.
TRANSITION NAME 16
LABEL 8
TIME REMAINING 9
BTVT-EXP-NUMITEMS INTEGER 1 RO
BTVT-EXP-FIRSTITEM INTEGER 1 R/W
BTVT-EXP-ITEM1 TO BTVT-EXP-ITEM16 STRING 40 RO
BTVT-TAG-NUMITEMS INTEGER 1 RO
BTVT-TAG-FIRSTITEM INTEGER 1 R/W
BTVT-TAG-ITEM1 TO BTVT-TAG-ITEM16 STRING 67 RO
Each list tag consists of two fields separated by two spaces.
TAG NAME 49
VALUE 16
BTVT-SEL-TRANSITEM INTEGER 1 R/W
BTVT-SEL-TRANSNAME STRING 16 RO
BTVT-SEL-TRANSLABEL STRING 8 RO
BTVT-SEL-TRANSDESC STRING 120 RO
BTVT-SEL-EXPITEM INTEGER 1 R/W
BTVT-SEL-EXP STRING 40 RO
BTVT-SEL-TAGITEM INTEGER 1 R/W
BTVT-SEL-TAGNAME STRING 84 RO
BTVT-SEL-TAGVALUE STRING 16 RO
BTVT-SEC-DONEBY STRING 12 R/W
BTVT-SEC-DONEBYPWD STRING 12 R/W
BTVT-SEC-CHECKBY STRING 12 R/W
BTVT-SEC-CHECKBYPWD STRING 12 R/W
BTVT-HANDSHAKE INTEGER 1 R/W

Description
1. The BTVT-FOCUS-CLB tag is a string tag that defines the Campaign, Lot, and
Batch combination that is the batch focus for the action.
2. The BTVT-HANDSHAKE tag is an integer tag that is written to initiate an
update of the transition logic list according to the values assigned to the focus
tag. The handshake values are provided in the table at the end of this
procedure.
3. The BTVT-TRANS-NUMITEMS tag is an integer tag containing the number
of active transition logic objects in the selected batch.
4. The BTVT-TRANS-ITEM1 to BTVT-TRANS-ITEM16 tags are string tags
used to display the list of transition logic objects in the batch defined by the
focus. The first item in the list is defined by the value in tag BTVT-TRANS-
FIRSTITEM.
604 Chapter 22

5. The BTVT-SEL-TRANSITEM tag is an integer tag used to select the item in


the list that is the focus of the action being performed. This is equivalent to the
selection of the transition from the list with the mouse.
6. The following tags contain the specific transition object information
corresponding to the selected item from the list.
BTVT-SEL-TRANSNAME - String tag containing the name of the selected
transition
BTVT-SEL-TRANSLABEL - String tag containing the label for the selected
transition
BTVT-SEL-TRANSDESC - String tag containing the description for the
selected transition
7. The BTVT-EXP-NUMITEMS tag is an integer tag containing the number of
expressions comprising the active transition logic object.
8. The BTVT-EXP-ITEM1 to BTVT-EXP-ITEM16 tags are string tags used to
display the list of expressions in the selected transition logic object. The first
item in the list is defined by the value in tag BTVT-EXP-FIRSTITEM.
9. The BTVT-SEL-EXPITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the expression from the list with the mouse.
10. The following tags contain the specific transition object information
corresponding to the selected item from the list.
BTVT-SEL-EXP - String tag containing a line of the selected expression
11. The BTVT-TAG-NUMITEMS tag is an integer tag containing the number of
tags contained in the selected expression for the selected transition logic object.
12. The BTVT-TAG-ITEM1 to BTVT-TAG-ITEM16 tags are string tags used to
display the list of tags in the expression selected. The first item in the list is
defined by the value in tag BTVT-TAG-FIRSTITEM.
13. The BTVT-SEL-TAGITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the tag from the list with the mouse.
14. The following tags contain the specific equipment information corresponding
to the selected item from the list.
BTVT-SEL-TAGNAME - String tag containing the name of the selected tag
BTVT-SEL-TAGVALUE - String tag containing the value of the selected tag
15. The BTVT-SEC-DONEBY tag specifies the ID and the BTVT-SEC-
DONEBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
16. The BTVT-SEC-CHECKBY tag specifies the ID and the BTVT-SEC-
CHECKBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
Tag Interface Management (TIM) System 605

17. The BTVT-HANDSHAKE tag is an integer tag that is written to initiate a


specified action and read to monitor the results of the action. The handshake
values are provided in the table below.

Note Caution should be used when writing to the BTVT-HANDSHAKE tag from
an InTouch client in a system with security defined. If security is enabled, used the
BTVT-HANDSHAKE tag for monitoring responses only. The ibBatchAction script
add-on function should be utilized to initiate the action.

Handshake ibBatchAction
Value Value Description
1 47 Change the focus of transition logic being monitored
according to the value for the batch focus tag.
2 48 Force the selected transition logic expression to be true
and allow the batch engine to continue beyond the
transition logic object.

InTouch Client Examples


The following action scripts provide examples of how to select a transition logic
object and force it to be true from an InTouch client. The InTouch script add-on
functions should be used to preserve the order of the tag writes.

Action Script to Set the Focus


{Select the appropriate batch}
ibPokeStr(IB_TIM_ACCESS_TAG, "BTVT-FOCUS-CLB",
"Campaign/Lot/Batch", IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 47, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

Action Script to Force a Transition Logic Expression


{Select the appropriate transition logic expression and force}
ibPokeInt(IB_TIM_ACCESS_TAG, "BTVT-SEL-TRANSITEM", 1,
IB_RESULT_TAG);
ibBatchAction(IB_TIM_ACCESS_TAG, 48, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

{Two scripts were used because of the delay in setting the focus and the updating of
the list of transition logic expressions. If this were put into a single script, the
correct expression may not be selected.}

Save Control Recipe


This action group allows the user to perform all of the functions available from the
Save Control Recipe dialog of the InBatch Batch Display through tags. There are
tags that can be used to save the results of any completed batch. The tags in this
action group are used by the Save Control Recipe wizard and can be used within a
client to create a unique save recipe interface.
606 Chapter 22

Tag Name Type Size Access


BTSR-INP-CLB STRING 50 R/W
This tag consists of three fields separated by a "/".
CAMPAIGN ID 16
LOT ID 16
BATCH ID 16
BTSR-INP-RECIPEID STRING 16 R/W
BTSR-INP-AUTHOR STRING 30 R/W
BTSR-INP-OPTMASK INTEGER 1 R/W
BTSR-INP-VERCOMMENT STRING 80 R/W
BTSR-SEC-DONEBY STRING 12 R/W
BTSR-SEC-DONEBYPWD STRING 12 R/W
BTSR-SEC-CHECKBY STRING 12 R/W
BTSR-SEC-CHECKBYPWD STRING 12 R/W
BTSR-HANDSHAKE INTEGER 1 R/W

Description
1. The BTSR-INP-CLB tag defines the Campaign, Lot, and Batch combination
that is the batch focus for the action.
2. The BTSR-INP-RECIPEID tag is a string tag containing the recipe ID that will
be used as the name under which the batch will be saved.
3. The BTSR-INP-AUTHOR tag is a string tag containing the author that will be
used as the individual under which the recipe for the batch will be saved.
4. The BTSR-INP-OPTMASK tag is an integer tag containing the configuration
under which the recipe of the selected batch will be saved.

Bit Offset Value Description


0 1 Save Runtime Equipment
1 2 Retain Recipe Approvals

The BTSR-INP-OPTMASK tag contains the composite value of all of the bit
offsets that pertain to the configuration settings of the current recipe. The value
of this tag will be the sum of all of the values in the table above for each
configuration item selected. For example, if Save Runtime Equipment and
Retain Recipe Approvals are selected, the tag value will be 3. This tag can be
written to as well to allow the current phase configuration settings to be
changed
5. The BTSR-INP-VERCOMMENT tag is a string tag containing any comment
that will be saved along with the recipe of the batch.
Tag Interface Management (TIM) System 607

6. The BTSR-SEC-DONEBY tag specifies the ID and the BTSR-SEC-


DONEBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
7. The BTSR-SEC-CHECKBY tag specifies the ID and the BTSR-SEC-
CHECKBYPWD tag specifies the password for the user executing the action.
The user ID and password should be obtained from the operator once or
whenever an action is to be executed. Values will be required for these tags if
security has been configured for the Batch Client functions in the InBatch
Security Editor.
8. The BTSR-HANDSHAKE tag is an integer tag that is written to initiate a
specified action and read to monitor the results of the action. The handshake
values are provided in the table below.

Note Caution should be used when writing to the BTSR-HANDSHAKE tag from
an InTouch client in a system with security defined. If security is enabled, used the
BTSR-HANDSHAKE tag for monitoring responses only. The ibBatchAction script
add-on function should be utilized to initiate the action.

Handshake ibBatchAction
Value Value Description
1 45 Save the recipe associated with the selected batch. This
handshake verifies that the recipe does not already
exist. If the recipe exists, a handshake value of -117 is
returned.
2 46 Save the recipe associated with the selected batch. This
handshake overwrites any existing recipe.

InTouch Client Example


The following action script provides an example of how to select and save a recipe
that is assigned to completed batch from an InTouch client. This script will save the
recipe under a new name with all equipment and retained approvals. The InTouch
script add-on functions should be used to preserve the order of the tag writes.

Save a Control Recipe


{Select the appropriate mask options and save under a new
name}
ibPokeStr(IB_TIM_ACCESS_TAG, "BTSR-INP-CLB",
"Campaign/Lot/Batch", IB_RESULT_TAG);
ibPokeInt(IB_TIM_ACCESS_TAG, "BTSR-INP-OPTMASK", 3,
IB_RESULT_TAG);
ibPokeStr(IB_TIM_ACCESS_TAG, "BTSR-INP-RECIPEID", "New Recipe
Name", IB_RESULT_TAG);
ibPokeStr(IB_TIM_ACCESS_TAG, "BTSR-INP-AUTHOR", "Author",
IB_RESULT_TAG);
ibPokeStr(IB_TIM_ACCESS_TAG, "BTSR-INP-VERCOMMENT", "Comment
Text", IB_RESULT_TAG);
608 Chapter 22

ibBatchAction(IB_TIM_ACCESS_TAG, 45, IB_SEC_DIALOG_TAG,


IB_RESULT_TAG);

Monitor and Respond to Errors


This action group allows the user to respond to all action and runtime errors that
may occur between the client and the TIM system through tags. There are tags that
can be used to view and acknowledge errors for any active batch. The tags in this
action group are used by the Batch Errors wizard and can be used within a client to
create a unique error interface.

Tag Name Type Size Access


BTEE-MSG-MAXITEMS INTEGER 1 R/W
BTEE-MSG-NUMITEMS INTEGER 1 RO
BTEE-MSG-FIRSTITEM INTEGER 1 R/W
BTEE-MSG-ITEM1 TO BTEE-MSG-ITEM16 STRING 60 RO
BTEE-SEL-MSGITEM INTEGER 1 R/W
BTEE-SEL-MSG STRING 60 RO
BTEE-HANDSHAKE INTEGER 1 R/W

Description
1. The BTEE-MSG-MAXITEMS tag is an integer tag that is written to specify
the maximum number of error messages to retain in the list. The default value
for this tag is 16.
2. The BTEE-MSG-NUMITEMS tag is an integer tag containing the number of
error items currently in the list.
3. The BTEE-MSG-ITEM1 to BTEE-MSG-ITEM16 tags are string tags used to
display the list of errors. The first item in the list is defined by the value in tag
BTEE-MSG-FIRSTITEM.
4. The BTEE-SEL-MSGITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the error from the list with the mouse.
5. The following tag contains the specific error information corresponding to the
selected item from the list.
BTEE-SEL-MSG - String tag containing the current selected error message
6. The BTEE-HANDSHAKE tag is an integer tag that is written to initiate a
specified action and read to monitor the results of the action. The handshake
value will be negative if any error occurs in the system. Client applications
should be designed to monitor this tag for a negative value and take the
appropriate action. The handshake values are provided in the table below.
Tag Interface Management (TIM) System 609

Note Caution should be used when writing to the BTEE-HANDSHAKE tag from
an InTouch client. The BTEE-HANDSHAKE tag for monitoring responses only.
The ibBatchAction script add-on function should be utilized to initiate the action.

Handshake ibBatchAction
Value Value Description
Value < 0 An error has occurred in the system.
1 12 Clear all errors.

InTouch Client Example


The following action script provides an example of how to clear all error messages
in a list. This script assumes that the appropriate focuses have already been set. The
InTouch script add-on functions should be used to preserve the order of the tag
writes.

Clear All Error Messages


ibBatchAction(IB_TIM_ACCESS_TAG, 12, IB_SEC_DIALOG_TAG,
IB_RESULT_TAG);

Batch Management System Interface Handshake


Errors
The handshake values that were provided for each interface are used to initiate an
action within the TIM batch interface. The handshake tags are also used to monitor
responses from the TIM applications. For the batch interfaces, the return handshake
values are presented in the table below. When a function is performed properly by
either a handshake or a batch action, the handshake value will be zero. When a
function fails from either a handshake or a batch action, the handshake value will be
negative according to the table. The handshake tag should be monitored if error
messages are to be displayed to the operator.

Note If security is enabled, and the number of retries is exceeded along with the
return of a negative handshake for a failed request, the handshake value will be as
described in the table plus a value of -256. For example, if Done By security is
enabled, and an invalid password is entered more times than permitted by the
number of retries configured in the Security Editor, the handshake value will be (-
1016 + (-256)) = -1272.

Handshake
Value Description
0 Action successful
-100 Invalid or unselected entry (CLB)!
-101 Wrong batch status to perform action!
-102 Unable to access security tags!
-104 Failed to communicate with BatchMngr!
-105 Invalid or unselected equipment!
-106 Invalid or unselected equipment instance!
610 Chapter 22

Handshake
Value Description
-107 Selected equipment type is invalid for action!
-108 No phase is selected!
-109 Wrong phase status to perform action!
-110 No acknowledge currently required!
-111 No parameter is selected!
-112 No question is selected!
-113 Invalid answer to selected question!
-114 Invalid schedule!
-115 Invalid handshake action!
-116 Unit Control is not available for this equipment!
-117 Recipe already exists!
-118 BatchMngr is busy!
-119 Quantity greater than recipe's maximum batch size!
-1002 DoneBy Security - Unknown User
-1003 DoneBy Security - Denied because of Operator Station
-1004 DoneBy Security - Unknown Operator Station
-1005 DoneBy Security - Denied because of Recipe
-1012 DoneBy Security - Additional Level Needed
-1014 DoneBy Security - Unknown Recipe
-1016 DoneBy Security - Invalid User Password
-1017 DoneBy Security - Denied because of improper DoneBy Clearance
-1018 DoneBy Security - Enter Password
-1020 DoneBy Security - Non-Reusable Password
-1022 DoneBy Security - Password Mismatch
-1024 DoneBy Security - Invalid Password Length
-1033 DoneBy Security - Denied because of improper CheckBy Clearance
-2002 CheckBy Security - Unknown User
-2003 CheckBy Security - Denied because of Operator Station
-2004 CheckBy Security - Unknown Operator Station
-2005 CheckBy Security - Denied because of Recipe
-2012 CheckBy Security - Additional Level Needed
-2014 CheckBy Security - Unknown Recipe
-2016 CheckBy Security - Invalid User Password
-2017 CheckBy Security - Denied because of improper DoneBy Clearance
-2018 CheckBy Security - Enter Password
-2020 CheckBy Security - Non-Reusable Password
-2022 CheckBy Security - Password Mismatch
-2024 CheckBy Security - Invalid Password Length
-2032 CheckBy Security - DoneBy and CheckBy User ID must be different
-2033 CheckBy Security - Denied because of improper CheckBy Clearance
Tag Interface Management (TIM) System 611

Security System Interface


This section describes how to configure TIM tags with the Security System
Interface.

Interact with InBatch Security System


This action group allows the user to perform functions associated with the InBatch
security system through tags. There are tags that can be used to obtain security
clearance and change security system settings. The security requests are built into
the functionality of the InBatch wizards. However, the tags in this action group can
be used within a client to create a unique security interface.

Tag Name Type Size Access


SE-INP-USERID STRING 12 R/W
SE-INP-PASSWORD STRING 12 R/W
SE-INP-NEWPASSWORD STRING 12 R/W
SE-INP-VERIFYPASSWORD STRING 12 R/W
SE-INP-OPSTATION STRING 16 R/W
SE-INP-APPLICATION INTEGER 1 R/W
SE-INP-FUNCTION INTEGER 1 R/W
SE-INP-RECIPEID STRING 16 R/W
SE-INP-SECURITYLEVEL INTEGER 1 R/W
SE-HANDSHAKE INTEGER 1 R/W

Description
1. The SE-INP-USERID tag is a string tag written to provide the security system
with the ID of the user attempting to initiate an application or function.
2. The SE-INP-PASSWORD tag is a string tag written to provide the security
system with the password of the user attempting to initiate an application or
function.
3. The SE-INP-NEWPASSWORD tag is a string tag written to provide the
security system with the new password for the user attempting to initiate an
application or function.
4. The SE-INP-VERIFYPASSWORD tag is a string tag written to provide the
security system with the verified password for the user attempting to initiate an
application or function.
5. The SE-INP-OPSTATION tag is a string tag written to provide the security
system with the name of the operator station from which the user is attempting
to initiate an application or function. Operator station values can be found in
the InBatch Security System User Accounts Editor.
6. The SE-INP-APPLICATION tag is an integer tag written to provide the
security system with the ID of the application that the user is attempting to
initiate. Application ID values can be found in the InBatch Security System
Application-Function Security Editor.
612 Chapter 22

7. The SE-INP-FUNCTION tag is an integer tag written to provide the security


system with the ID of the function that the user is attempting to initiate.
Function ID values can be found in the InBatch Security System Application-
Function Security Editor.
8. The SE-INP-RECIPEID tag is a string tag written to provide the security
system with the name of the recipe in which the user is attempting to initiate an
application or function. Recipe ID values can be found in the InBatch Security
System User Accounts Editor.
9. The SE-INP-SECURITYLEVEL tag is an integer tag written to provide the
security system with the type of clearance that the user is attempting to satisfy.

Value Security Level


1 Done By
2 Check By

10. The SE-HANDSHAKE tag is an integer tag that is written to initiate a


specified action and read to monitor the results of the action. The handshake
values are provided in the table below. The input tags list those required in
order to perform the appropriate action.

Possible
Handshake Return
Value Description Input Tags Required Codes
-1 Change the password for SE-INP-USERIDSE-INP-PASSWORD 0, 2, 16,
the selected user. SE-INP-NEWPASSWORD 20, 22, 24
SE-INP-VERIFYPASSWORD
-2 Request the security level SE-INP-USERID 0, 2, 3, 4, 6,
for the selected SE-INP-PASSWORD 9, 16, 18,
application. SE-INP-OPSTATION 256
SE-INP-APPLICATION
-3 Request whether security SE-INP-APPLICATION 0, 1, 4
is enabled for the selected
application.
-4 Request security SE-INP-USERID 0, 2, 3, 4, 5,
clearance for the selected SE-INP-PASSWORD 6, 8, 12,
function. SE-INP-OPSTATION 14, 16, 18,
SE-INP-APPLICATION 65, 129,
SE-INP-FUNCTION 256
SE-INP-RECIPEID
SE-INP-SECURITYLEVEL
-5 Request the security level SE-INP-APPLICATION 0, 1, 3, 4
for the selected function. SE-INP-FUNCTION
-6 Assign a new password to SE-INP-USERID 0, 2, 20,
the selected user. SE-INP-NEWPASSWORD 22, 24
SE-INP-VERIFYPASSWORD
Tag Interface Management (TIM) System 613

Possible
Handshake Return
Value Description Input Tags Required Codes
-7 Reset the number of None 0
retries that the user can
make for obtaining
security clearance. Used
when a function is
cancelled or a new
function is attempted.
-8 Verifies that the security None 0, 1
system is installed and
active.

InTouch Client Examples


The following action scripts provide examples of how to interact with the security
system from an InTouch client. The InTouch script add-on functions should be used
to preserve the order of the tag writes.

Reset Security Number of Retries


ibPokeInt(IB_TIM_ACCESS_TAG, "SE-HANDSHAKE", -7,
IB_RESULT_TAG);

Obtain Application Security Status


ibPokeInt(IB_TIM_ACCESS_TAG, "SE-INP-APPLICATION", 5,
IB_RESULT_TAG);
ibPokeInt(IB_TIM_ACCESS_TAG, "SE-HANDSHAKE", -3,
IB_RESULT_TAG);

Obtain Function Security Status


ibPokeInt(IB_TIM_ACCESS_TAG, "SE-INP-APPLICATION", 2,
IB_RESULT_TAG);
ibPokeInt(IB_TIM_ACCESS_TAG, "SE-INP-FUNCTION", 7,
IB_RESULT_TAG);
ibPokeInt(IB_TIM_ACCESS_TAG, "SE-HANDSHAKE", -5,
IB_RESULT_TAG);

Security System Interface Handshake Errors


The handshake values that were provided for each interface are used to initiate an
action within the TIM security interface. The handshake tags are also used to
monitor responses from the TIM applications. For the security interfaces, the return
handshake values are presented in the table below. When a function is performed
properly by either a handshake or a batch action, the handshake value will be zero.
When a function fails from a handshake, the handshake value will be positive
according to the table. The handshake tag should be monitored if error messages are
to be displayed to the operator.
614 Chapter 22

Note If the number of retries is exceeded along with the return of a positive
handshake for a failed request of handshake values -2 or -4, the handshake value
will be as presented in the table plus a value of 256. For example, if an invalid
function is entered more times than permitted by the number of retries configured
in the Security Editor, the handshake value will be (8 + 256) = 264.

Handshake Handshake
Value Value
Returned Written Description
0 -1, -6 Password Changed
-2, -4 Security Granted
-3 Application Security is Off
-5 Function Security is Off
-7 Number of Retries has been Reset
-8 Security System is Installed and Running
1 -3 Application Security On
-5 Function has DoneBy Security
-8 Security System is Not Installed and Running
2 -1, -2, -4, -6 Unknown User
3 -2, -4 Denied because of Operator Station
-5 Function has CheckBy Security
4 -2, -4 Unknown Operator Station
-3, -5 Invalid Query
5 -4 Denied because of Recipe
6 -2, -4 Invalid Application
8 -4 Invalid Function
9 -2 Denied because of Application
12 -4 Additional Level Needed
14 -4 Unknown Recipe
16 -1, -2, -4 Invalid User Password
17 -4 Denied because of improper DoneBy Clearance
18 -2, -4 Enter Password
20 -1, -6 Non-Reusable Password
22 -1, -6 Password Mismatch
24 -1, -6 Invalid Password Length
32 -4 DoneBy and CheckBy User ID must be different
33 -4 Denied because of improper CheckBy Clearance
65 -4 Denied because did not receive Application Clearance
129 -4 Denied because did not receive DoneBy Clearance

Batch Function Interface


This section describes how to configure TIM tags with the Batch Function
Interface.
Tag Interface Management (TIM) System 615

Phase Prepare/Complete
This action group allows the user to perform functions prior to or immediately
following the execution of a phase through tags. The tags in this action group can
be used within a client to create an interface with the batch management system.

Tag Name Type Size Access


FUP-INFO-CLB STRING 50 RO
This tag consists of three fields separated by a "/".
CAMPAIGN ID 16
LOT ID 16
BATCH ID 16
FUP-INFO-RECIPE STRING 16 RO
FUP-INFO-SIZE INTEGER 1 RO
FUP-INFO-TRAIN STRING 16 RO
FUP-INFO-MODE INTEGER 1 RO
FUP-INFO-STATUS INTEGER 1 RO
FUP-INFO-EQUIPMENT STRING 16 RO
FUP-INFO-PHASE STRING 16 RO
FUP-PARAMEXT-NUMITEMS INTEGER 1 RO
FUP-PARAMEXT-ITEM1 STRING 72 RO
TO FUP-PARAMEXT-ITEM99
Each list tag consists of two fields separated by two spaces.
NAME 16
TYPE 12
EXTENSION 12
DATA CLASS 8
VALUE 16
FUP-SEL-PARAMEXTITEM INTEGER 1 R/W
FUP-SEL-PARAMNAME STRING 16 RO
FUP-SEL-PARAMTYPE INTEGER 1 RO
FUP-SEL-PARAMEXT INTEGER 1 RO
FUP-SEL-PARAMCLASS INTEGER 1 RO
FUP-SEL-PARAMEXTVAL STRING 16 R/W
FUP-HANDSHAKE INTEGER 1 R/W

Description
1. The FUP-INFO-CLB tag is a string tag that defines the Campaign, Lot, and
Batch combination that is the batch focus for the action.
2. The FUP-INFO-RECIPE tag is a string tag containing the recipe ID of the
batch selected.
3. The FUP-INFO-SIZE tag is an integer tag containing the size of the batch
selected.
4. The FUP-INFO-TRAIN tag is a string tag containing the train of the batch
selected.
616 Chapter 22

5. The FUP-INFO-MODE tag is an integer tag containing the mode of the batch
selected.

Value Mode
0 Automatic
1 Semi-Automatic
2 Manual

6. The FUP-INFO-STATUS tag is an integer tag containing the status of the batch
selected.

Value Status
1 Ready
2 Wait
3 Run
4 Done
5 Interlock
6 Aborted
7 Held
8 Aborting

7. The FUP-INFO-EQUIPMENT tag is a string tag containing the unit or


connection being analyzed in the selected batch.
8. The FUP-INFO-PHASE tag is a string tag containing the current active phase
in the selected batch.
9. The FUP-PARAMEXT-NUMITEMS tag is an integer tag containing the
number of active parameters for the active phase in the selected batch.
10. The FUP-PARAMEXT-ITEM1 to FUP-PARAMEXT-ITEM99 tags are string
tags used to display the list of parameters for the active phase in the selected
batch.
11. The FUP-SEL-PARAMEXTITEM tag is an integer tag used to select the item
in the list that is the focus of the action being performed. This is equivalent to
the selection of the parameter from the list with the mouse.
12. The following tags contain the specific transition object information
corresponding to the selected item from the list.
FUP-SEL-PARAMNAME - String tag containing the name of the selected
parameter
FUP-SEL-PARAMTYPE - Integer tag containing the type of the selected
parameter
Tag Interface Management (TIM) System 617

Value Description
0 Input
9 Process Variable
12 Output

FUP-SEL-PARAMEXT - Integer tag containing the extension of the selected


parameter

Value Description
1 Material ID
2 Material Name
3 Target
4 Actual
5 High Deviation
6 Low Deviation
7 Lot Code
8 Preact
10 High Limit
11 Low Limit

FUP-SEL-PARAMCLASS - Integer tag containing the class of the selected


parameter

Value Description
0 Analog
1 Discrete
2 String
3 Enumeration

FUP-SEL-PARAMEXTVAL - String tag containing the value of the selected


parameter
13. The FUP-HANDSHAKE tag is an integer tag that is written to initiate a
specified action and read to monitor the results of the action. The handshake
values are provided in the table below.

Handshake
Value Description
0 Value written to the batch management system to have
it continue with the normal execution.
-1 Value used by the batch management system to notify
the user that execution is at the beginning of the
selected phase and waiting for a response.
618 Chapter 22

Handshake
Value Description
-2 Value used by the batch management system to notify
the user that execution is at the end of the selected
phase and waiting for a response.

Note The batch manager will wait for the handshake to continue processing. All
batch processing activity is essentially put on hold until the signal to continue is
received. Therefore, it is vital to return the continue handshake as quickly as
possible.

InTouch Client Example


The following action script provides an example of how to change the value of a
parameter at the beginning of a phase from an InTouch client. The InTouch script
add-on functions should be used to preserve the order of the tag writes.

Change Parameter at Beginning of Phase


{The value of the FUP-HANDSHAKE tag will be -1 when the phase
prepare action is being evaluated.}
ibPokeInt(IB_TIM_ACCESS_TAG, "FUP-SEL-PARAMEXTITEM", 2,
IB_RESULT_TAG);
ibPokeStr(IB_TIM_ACCESS_TAG, "FUP-SEL-PARAMEXTVAL", "300",
IB_RESULT_TAG);
ibPokeInt(IB_TIM_ACCESS_TAG, "FUP-HANDSHAKE", 0,
IB_RESULT_TAG);

Evaluate Equipment for Allocation


This action group allows the user to perform functions that will effect the allocation
of equipment by the batch management system through tags. The tags in this action
group can be used within a client to create an interface with the batch management
system.

Tag Name Type Size Access


FUEA-INFO-CLB STRING 50 RO
This tag consists of three fields separated by a "/".
CAMPAIGN ID 16
LOT ID 16
BATCH ID 16
FUEA-INFO-RECIPE STRING 16 RO
FUEA-INFO-SIZE INTEGER 1 RO
FUEA-INFO-TRAIN STRING 16 RO
FUEA-INFO-MODE INTEGER 1 RO
FUEA-INFO-STATUS INTEGER 1 RO
FUEA-INFO-INSTANCE STRING 16 RO
FUEA-INFO-EQUIPMENT STRING 16 RO
Tag Interface Management (TIM) System 619

Tag Name Type Size Access


FUEA-SEG-NUMITEMS INTEGER 1 RO
FUEA-SEG-ITEM1 TO FUEA-SEG-ITEM99 STRING 16 RO
FUEA-SEL-SEGITEM INTEGER 1 R/W
FUEA-SEL-SEG STRING 16 RO
FUEA-HANDSHAKE INTEGER 1 R/W

Description
1. The FUEA-INFO-CLB tag is a string tag that defines the Campaign, Lot, and
Batch combination that is the batch focus for the action.
2. The FUEA-INFO-RECIPE tag is a string tag containing the recipe ID of the
batch selected.
3. The FUEA-INFO-SIZE tag is an integer tag containing the size of the batch
selected.
4. The FUEA-INFO-TRAIN tag is a string tag containing the train of the batch
selected.
5. The FUEA-INFO-MODE tag is an integer tag containing the mode of the batch
selected.

Value Mode
0 Automatic
1 Semi-Automatic
2 Manual

6. The FUEA-INFO-STATUS tag is an integer tag containing the status of the


batch selected.

Value Status
1 Ready
2 Wait
3 Run
4 Done
5 Interlock
6 Aborted
7 Held
8 Aborting

7. The FUEA-INFO-INSTANCE tag is a string tag containing the instance name


being analyzed in the selected batch.
8. The FUEA-INFO-EQUIPMENT tag is a string tag containing the unit or
connection being analyzed in the selected batch.
620 Chapter 22

9. The FUEA-SEG-NUMITEMS tag is an integer tag containing the number of


segments defined for the active equipment in the selected batch.
10. The FUEA-SEG-ITEM1 to FUEA-SEG-ITEM99 tags are string tags used to
display the list of segments for the active equipment in the selected batch.
11. The FUEA-SEL-SEGITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the segment from the list with the mouse.
12. The following tags contain the specific transition object information
corresponding to the selected item from the list.
FUEA-SEL-SEG - String tag containing the name of the selected segment
13. The FUEA-HANDSHAKE tag is an integer tag that is written to initiate a
specified action and read to monitor the results of the action. The handshake
values are provided in the table below.

Handshake
Value Description
0 Reject the selected unit or connection for allocation to the particular instance.
1 Accept the selected unit or connection for allocation to the particular instance.
-1 Value used by the batch management system to notify the user that the system is
evaluating the selected unit for allocation and waiting for a response.
-2 Value used by the batch management system to notify the user that the system is
evaluating the selected connection for allocation and waiting for a response.

Note The batch manager will wait for the handshake to continue processing. All
batch processing activity is essentially put on hold until the signal to continue is
received. Therefore, it is vital to return the continue handshake as quickly as
possible.

InTouch Client Example


The following action script provides an example of how to accept the selection of a
unit during batch management system allocation from an InTouch client. The
InTouch script add-on functions should be used to preserve the order of the tag
writes.

Accept Unit Selection


{The value of the FUP-HANDSHAKE tag will be -1 when the
evaluation action is being evaluated.}
ibPokeInt(IB_TIM_ACCESS_TAG, "FUEA-HANDSHAKE", 1,
IB_RESULT_TAG);

Log Equipment Status


This action group allows the user to perform functions as equipment status changes
are being written to the InBatch history database through tags. The tags in this
action group can be used within a client to obtain notification of a change of status
as well as write other data to the history database.
Tag Interface Management (TIM) System 621

Tag Name Type Size Access


FULE-INFO-UNITSEGMENT STRING 16 RO
FULE-INFO-NEWSTATUS STRING 16 RO
FULE-INFO-OLDSTATUS STRING 16 RO
FULE-INFO-RECIPEID STRING 16 RO
FULE-INFO-LASTRECIPEID STRING 16 RO
FULE-INFO-DONEBY STRING 12 R/W
FULE-INFO-CHECKBY STRING 12 R/W
FULE-INFO-COMMENT INTEGER 32 R/W
FULE-INFO-FIELD1 STRING 8 R/W
FULE-INFO-FIELD2 STRING 8 R/W
FULE-INFO-FIELD3 STRING 8 R/W
FULE-INFO-FIELD4 STRING 8 R/W
FULE-INFO-FIELD5 STRING 16 R/W
FULE-INFO-FIELD6 STRING 16 R/W
FULE-INFO-FIELD7 STRING 16 R/W
FULE-INFO-FIELD8 STRING 16 R/W
FULE-HANDSHAKE INTEGER 1 R/W

Description
1. The FULE-INFO-UNITSEGMENT tag is a string tag that contains the unit or
segment name for which the status has changed.
2. The FULE-INFO-NEWSTATUS tag is a string tag containing the new status of
the unit or segment.
3. The FULE-INFO-OLDSTATUS tag is a string tag containing the old status of
the unit or segment.
4. The FULE-INFO-RECIPEID tag is a string tag containing the recipe ID
currently active in the unit or segment.
5. The FULE-INFO-LASTRECIPEID tag is a string tag containing the previous
recipe ID active in the unit or segment.
6. The FULE-INFO-DONEBY tag is an integer tag containing the ID of the user
that changed the unit or segment status.
7. The FULE-INFO-CHECKBY tag is a string tag containing the ID of the user
that verified the change of the unit or segment status.
8. The FULE-INFO-COMMENT tag is a string tag that can be written to enter a
comment that will be written to history along with the record of the change of
status for the unit or segment.
9. The FULE-INFO-FIELD1 tag is a string tag that can be written to with an
extraneous piece of data that the user would like to store in the history database
along with the record of the change of status for the unit or segment.
622 Chapter 22

10. The FULE-INFO-FIELD2 tag is a string tag that can be written to with an
extraneous piece of data that the user would like to store in the history database
along with the record of the change of status for the unit or segment.
11. The FULE-INFO-FIELD3 tag is a string tag that can be written to with an
extraneous piece of data that the user would like to store in the history database
along with the record of the change of status for the unit or segment.
12. The FULE-INFO-FIELD4 tag is a string tag that can be written to with an
extraneous piece of data that the user would like to store in the history database
along with the record of the change of status for the unit or segment.
13. The FULE-INFO-FIELD5 tag is a string tag that can be written to with an
extraneous piece of data that the user would like to store in the history database
along with the record of the change of status for the unit or segment.
14. The FULE-INFO-FIELD6 tag is a string tag that can be written to with an
extraneous piece of data that the user would like to store in the history database
along with the record of the change of status for the unit or segment.
15. The FULE-INFO-FIELD7 tag is a string tag that can be written to with an
extraneous piece of data that the user would like to store in the history database
along with the record of the change of status for the unit or segment.
16. The FULE-INFO-FIELD8 tag is a string tag that can be written to with an
extraneous piece of data that the user would like to store in the history database
along with the record of the change of status for the unit or segment.
17. The FULE-HANDSHAKE tag is an integer tag that is written to initiate a
specified action and read to monitor the results of the action. The handshake
values are provided in the table below.

Handshake
Value Description
0 Value written to the handshake tag to notify the batch management system to
continue.
-1 Value used by the batch management system to notify the user that the system is
logging a unit or segment status change to history and waiting for a response.

Note The batch manager will wait for the handshake to continue processing. All
batch processing activity is essentially put on hold until the signal to continue is
received. Therefore, it is vital to return the continue handshake as quickly as
possible.

InTouch Client Example


The following action script provides an example of how to write miscellaneous
information to history when a unit status change is written to history from an
InTouch client. The InTouch script add-on functions should be used to preserve the
order of the tag writes.

Write Data when the Equipment Status Change is Logged to History


{The value of the FULE-HANDSHAKE tag will be -1 when the
evaluation action is being evaluated.}
Tag Interface Management (TIM) System 623

ibPokeStr(IB_TIM_ACCESS_TAG, "FULE-INFO-FIELD1", "Data 1",


IB_RESULT_TAG);
ibPokeStr(IB_TIM_ACCESS_TAG, "FULE-INFO-FIELD5", "Data 2",
IB_RESULT_TAG);
ibPokeInt(IB_TIM_ACCESS_TAG, "FUEA-HANDSHAKE", 1,
IB_RESULT_TAG);

Equipment Allocation Changes


This action group allows the user to perform functions as equipment allocation
changes are made by the batch management system through tags. The tags in this
action group can be used within a client to obtain notification of a change of
allocation.

Tag Name Type Size Access


FUAC-INFO-CLB STRING 50 RO
This tag consists of three fields separated by a "/".
CAMPAIGN ID 16
LOT ID 16
BATCH ID 16
FUAC-INFO-RECIPE STRING 16 RO
FUAC-INFO-SIZE INTEGER 1 RO
FUAC-INFO-TRAIN STRING 16 RO
FUAC-INFO-MODE INTEGER 1 RO
FUAC-INFO-STATUS INTEGER 1 RO
FUAC-INFO-EQUIPMENT STRING 16 RO
FUAC-SEG-NUMITEMS INTEGER 1 RO
FUAC-SEG-ITEM1 TO FUAC-SEG-ITEM99 STRING 16 RO
FUAC-SEL-SEGITEM INTEGER 1 R/W
FUAC-SEL-SEG STRING 16 RO
FUAC-HANDSHAKE INTEGER 1 R/W

Description
1. The FUAC-INFO-CLB tag is a string tag that contains the Campaign, Lot, and
Batch combination that is the batch focus for the action.
2. The FUAC-INFO-RECIPE tag is a string tag containing the recipe ID of the
batch selected.
3. The FUAC-INFO-SIZE tag is an integer tag containing the size of the batch
selected.
4. The FUAC-INFO-TRAIN tag is a string tag containing the train of the batch
selected.
5. The FUAC-INFO-MODE tag is an integer tag containing the mode of the
batch selected.
624 Chapter 22

Value Mode
0 Automatic
1 Semi-Automatic
2 Manual

6. The FUAC-INFO-STATUS tag is an integer tag containing the status of the


batch selected.

Value Status
1 Ready
2 Wait
3 Run
4 Done
5 Interlock
6 Aborted
7 Held
8 Aborting

7. The FUAC-INFO-EQUIPMENT tag is a string tag containing the unit or


connection whose allocation is changing in the selected batch.
8. The FUAC-SEG-NUMITEMS tag is an integer tag containing the number of
segments defined for the active equipment in the selected batch.
9. The FUAC-SEG-ITEM1 to FUAC-SEG-ITEM99 tags are string tags used to
display the list of segments for the active equipment in the selected batch.
10. The FUAC-SEL-SEGITEM tag is an integer tag used to select the item in the
list that is the focus of the action being performed. This is equivalent to the
selection of the segment from the list with the mouse.
11. The following tags contain the specific transition object information
corresponding to the selected item from the list.
FUAC-SEL-SEG - String tag containing the name of the selected segment
12. The FUAC-HANDSHAKE tag is an integer tag that is written to initiate a
specified action and read to monitor the results of the action. The handshake
values are provided in the table below.

Handshake
Value Description
0 Value written to the handshake tag to notify the batch management system to
continue.
-1 Value used by the batch management system to notify the user that the system is
allocating a unit and waiting for a response.
-2 Value used by the batch management system to notify the user that the system is
allocating a connection and waiting for a response.
Tag Interface Management (TIM) System 625

Handshake
Value Description
-3 Value used by the batch management system to notify the user that the system is
releasing a unit and waiting for a response.
-4 Value used by the batch management system to notify the user that the system is
releasing a connection and waiting for a response.

Note The batch manager will wait for the handshake to continue processing. All
batch processing activity is essentially put on hold until the signal to continue is
received. Therefore, it is vital to return the continue handshake as quickly as
possible.

InTouch Client Example


The following action script provides an example of how to accept the release of a
unit from an InTouch client. The InTouch script add-on functions should be used to
preserve the order of the tag writes.

Accept Unit Release


{The value of the FULE-HANDSHAKE tag will be -3 when the unit
is to be released.}
ibPokeInt(IB_TIM_ACCESS_TAG, "FULE-HANDSHAKE", 0,
IB_RESULT_TAG);

Runtime TIM Operation


The TIM runtime system contains the applications necessary to interact with the
TIM interface groups. There is also an application that allows the user to monitor
and write to the TIM tags from within the InBatch server application.

Runtime TIM Applications


Each TIM interface group requires a unique runtime TIM application to be started
before the tags from that group can be monitored or written. The table below
illustrates the runtime application that is associated with each interface group. The
Environment Editor is used to include the appropriate runtime TIM application in
the system start-up.

Runtime TIM Application


Interface Group Required
Batch Management System TIMBatch
Security System TIMSec
Batch Functions TIMFunc
626 Chapter 22

Note In a typical client system using InBatch wizards and miscellaneous scripting,
the TIMBatch and TIMSec applications should be configured and started in the
Environment System. TIMFunc should only be started if the Batch Function Tags
option has been enabled and the tags exported in the Tag Linker application.
Redundancy 627

C H A P T E R 2 3

Redundancy

The batch management system is designed with a redundancy option. The purpose
of a redundant system is to insure smooth and continuous batch system execution
on a backup computer in the event of a hardware failure on the master system.
Redundancy is particularly useful in critical manufacturing facilities operating 24
hours a day, seven days a week and where the loss of the batch system and/or
associated batch data is intolerable.
Redundancy is available for Batch servers. Batch Runtime Clients can be
configured to operate with redundant servers. Redundancy is initially configured as
part of the Batch Server installation process.

Note Configuration of a redundant batch control system requires computer


network experience. It is strongly recommended that only qualified personnel
configure the redundant system.

Note If you are installing a redundant system, you must configure your system as
described in this section before you install the Batch Management System software.

Contents
• Overview
• Setting Up a Redundant Batch Server
• Installing a Redundant Batch System
• Redundancy Configuration
• Example of a Redundant Server Configuration
• Redundancy Switch-Over Configuration
• Redundancy Operation
• Typical Redundant Sequence of Operation
• Batch Clients
• Redundant System Points of Interest
628 Chapter 23

Overview
Redundancy refers to the capability of the Batch Management System to
automatically switch batch control to a backup server in the event of a primary
server shutdown due to a hardware failure or power loss. Accordingly, two identical
servers are required to configure a redundant Batch system. Each of the two servers
must be equipped with a minimum of two network interface cards (NICs). For each
server, one NIC will be used to connect to a primary LAN. Both systems must be
able to communicate reliably over this primary connection. The secondary NIC on
each machine must be directly connected to each other using a crossover type
network cable. This secondary network should be exclusively dedicated for the
purpose of Batch System redundancy. This secondary network supports the
“heartbeat” between the primary and backup batch server.

Note Reliable network communications between the servers in the above


described manner is absolutely critical to the proper functioning of Batch Server
redundancy. Redundancy, by design, is intolerant of unreliable network
communications, and this constraint must be taken into account when designing
and deploying a redundant Batch system.

Batch Development and Batch Runtime clients are normally clients of a single
batch server. In a redundant system there are two servers, either of which can
operate as the primary batch server. Each client must therefore be connected to the
primary LAN and must also be properly configured to gain network access to both
servers.

Setting Up a Redundant Batch Server


Redundancy is an option when installing Batch servers and clients. However, the
order in which the components of the system are deployed is important. The system
must be deployed in the following order.
1. Establish a valid network configuration.
2. Install the redundant Batch Servers.
3. Install and configure Batch clients.

Network Configuration
Before installing redundant Batch Servers, the network must be properly
configured. Each server will be equipped with two network interface cards (NICs);
each NIC will be assigned a uniquely addressable host name and a corresponding
IP address. One NIC in each server can be designated the primary, and the other
NIC the secondary. By establishing two independent network paths between the
servers, the Batch System Redundancy Managers can send the required heartbeats
over both paths simultaneously. Use the following checklist to verify proper
network configuration (an example configuration is provided).

Note Redundant Network Configuration must be performed by qualified


personnel.

• Dual Network Interface Cards – Two NICs must be present in each server.
Redundancy 629

• Protocol - Each server must be configured for the TCP/IP network protocol.
• Network Addresses - Each NIC, on each server, must be assigned a proper IP
address. It is critical that the two addresses assigned to the NICs on a single
server are from different networks. This will ensure that the network
connection is used when communicating the “heartbeats”. If these addresses
differ only at the host level, redundancy will not work properly.
• Lmhosts – Lmhosts lookup must be enabled as a TCP/IP property. The set of
four network addresses must be loaded into the lmhosts file. This loading
ensures the fastest possible name resolution. Sample entries for the lmhosts file
are given in the example that follows.
• RedCfg – A redundancy configuration file (RedCfg) is created on each server
and client as part of the redundancy installation. The RedCfg file contains
specific information about system names associated with the computers in your
redundant setup.
• Verification - Communication between both servers and both paths must be
tested and verified.

Installing a Redundant Batch System


Redundancy is an optional feature of the Batch Management System. It is installed
on BOTH servers using the Batch Server option of the installation program. You
will be presented with a series of dialog boxes that will prompt you for specific
information about your network.

To install a Batch Server with redundancy, follow these guidelines:


1. Follow the installation procedure for Batch Servers as described in Chapter 2,
"System Installation."
2. Proceed through the installation until the Select Components window appears.
3. Enable the Redundant System check box. Click Next.
4. Enter the Information Server hostname. Click Next.
5. Enter the other Batch Server's hostname. Click Next.
6. Select the number of interface cards installed. Click Next.
7. Enter the logical hostnames for the Primary network. Click Next.
8. Enter the logical hostnames for the Secondary network. Click Next.
9. Follow the remaining installation instructions.
10. Setup will automatically create a program group with icons for the Batch
Server.
11. Repeat these steps on the other Batch Server, substituting the appropriate
hostname and alternate hostname for the redundant system.
630 Chapter 23

Batch Client - Redundancy Configuration


A Batch Client is configured for redundancy using the Batch Client option of the
installation program. You will be presented with a series of dialog boxes that will
prompt you for specific information about your network.

Note Important Before you begin configuring a Client for redundancy, you must
first have valid network connections between your servers and each Client.

Server Configuration
1. On the InBatch Server, create a share for C:\Program
Files\FactorySuite\InBatch directory. It is recommended that you name the
share “InBatch”.
2. On each Batch Development Client, map two network drives. Each drive must
correspond (that is, point to) to the appropriate Batch Server.
3. When properly configured, each Development Client will have two additional
network drive letters available: one that provides a connection to the master
server, and one that provides a connection to the backup system.

Batch Client Configuration


1. Follow the installation procedure for Batch Servers as described in Chapter 2,
"System Installation."
1. Proceed through the installation until the Select Components window appears.
2. Disable the Batch Server option and enable the Redundant System option.
3. Select Batch Clients and click Change to view the Sub-component
installation window. By default, both clients are selected for installation. Select
the required Sub-components and then close the window.
4. Click Next to continue
5. Enter the hostname of the Information Server.
6. Enter the hostname of the Batch server and the drive letter which is mapped to
the batch server.
7. Enter the hostname of the other batch server and the letter of the mapped drive
pointing to this batch server.
8. The installation program will create two program groups. Each set of icons
within each program group is specifically associated with the batch server
identified in the title bar.
Redundancy 631

Redundancy Configuration
You must edit the Lmhosts file on each of your redundant systems as described in
this section. These configurations prevent Redundancy Manager (RedMngr) from
binding an improper IP address.
The names used to identify your redundant networks must be different than the
machine names. In previous versions of InBatch, the primary network was
identified by the computer’s network name. The only place that the network names
should be used is in the host file.

RedCfg File Structure


The RedCfg file contains the structure described below.

Line 1: The remote computer name.


Line 2: Blank, not used.
Line 3: The path to the remote computer config_A directory.
Line 4: Blank, not used.
Line 5: The local hostname for primary network (cannot be a computer name).
Line 6: The local hostname for secondary network (blank if not used).
Line 7: The remote hostname for primary network (cannot be a computer name).
Line 8: The remote hostname for secondary network (blank if not used).
Line 9: Blank, not used.

Note The last line of the RedCfg file must be blank (i.e. carriage return.) The line
numbers shown are for reference only. They are not actually entered in the file.
632 Chapter 23

Example of a Redundant Server Configuration


The following example describes a redundant configuration. Note that the
secondary network connection between the Master Server and Backup Server is a
direct connection using a standard Ethernet crossover cable. The computer names
and IP addresses shown are used in the descriptions later in this section.

Secondary Network – crossover cable


(No connections to an external network)
10.199.199.9 10.199.199.8

Master Server Backup Server

‘cabezon’ ‘bonito’

10.40.20.75 10.40.20.55

Primary Network

Batch Batch Batch


Runtime Development Information
Client Client Server

10.40.20.65 10.40.20.66 10.40.20.67

Control System
Redundancy 633

RedCfg and Lmhosts File Examples


In the example shown earlier, two computers, “cabezon” and “bonito” represent a
“master” server and a “backup” server respectively. The terms “master” and
“backup” are expressed for the purpose of this example. Remember that during the
operation of a redundant system, the relationship between the master and the
backup will change when a switch-over occurs. That is, the backup server becomes
the master, and then when the failed master is restored to proper operation, it
assumes the role as the backup system.
The computer names, and network IP addresses shown in this example, will be used
as the entries in the RedCfg and Lmhosts files later in the section.

RedCfg File Example


The computer named cabezon would have a RedCfg file as follows:
bonito
<blank line>
\\bonito\config_A\
<blank line>
caby1
caby2
bony1
bony2
<blank line>
The computer named bonito would have a RedCfg file as follows:
cabezon
<blank line>
\\ cabezon\config_A\
<blank line>
bony1
bony2
caby1
caby2
<blank line>
In this example, the names caby1, caby2, bony1, and bony2 are defined in the
Lmhosts file on each computer. This is described in the following section.

Lmhosts File
The Lmhosts file contains the structure described below. The Lmhosts file is
located in the …\winnt\system32\drivers\etc folder on your computer. The file
content is the same for the master and backup computer. Note that the names
entered correspond to the entries in the RedCfg file. The #PRE entries cause the
entries to be preloaded when your system is started. This is recommended for
improved performance.
634 Chapter 23

10.40.20.75 cabezon #PRE


10.40.20.75 caby1 #PRE
10.199.199.9 caby2 #PRE
10.40.20.55 bonito #PRE
10.40.20.55 bony1 #PRE
10.199.199.8 bony2 #PRE
10.40.20.65 RunClient1 #PRE
10.40.20.66 DevClient1 #PRE
10.40.20.67 InfoSvr #PRE

Redundancy Switch-Over Configuration


Important! A thorough understanding of this section is critical for the proper
deployment of a Redundant Batch System.

After installing and configuring the batch servers as described previously, you
should verify that the Servers are capable of properly switching over batch control.
In the following discussion, it is assumed that either server could be acting in the
role of a master or backup. When the batch servers are started for the first time, the
server that actually boots first will assume the responsibility of the Master.
Thereafter, the role of each server is determined by the information contained in the
local RedState file on each system.
Redundant batch server operation is controlled by a Redundancy Manager process
that runs on each server. The “heartbeat” is exchanged over the network between
these two processes. Each Redundancy Manager controls the other local Batch
Management processes. When a switch-over event occurs, the associated process
activity is controlled by the Redundancy Manager.
A system parameter in the Environment called “Redundancy TimeOut” is used to
set the switch over delay. The value is configurable by the user and is specified in
seconds.
For more information on Environment Manager, see Chapter 3, "Environment
Management System."
In the event a Redundant Batch sever has failed to detect the other servers
heartbeat, it will wait for the configured time before initiating a switch-over.
The normal state of a redundant batch system has one server acting as a “Master
with Valid Backup” and the other server acting as a “Valid Backup.” The role of an
active Batch server can be determined by opening the status window on the
Environment Display.
Redundancy 635

In the event of complete communications failure between the two Redundancy


Managers, a switch-over event may be initiated by both servers, in which case there
will be two Masters. If this occurs, proper Batch control is not guaranteed and
operator intervention is mandatory. Avoiding this situation is, in fact, a primary
requirement when deploying a redundant Batch system. This type of
communication failure between the two servers can occur for a variety of reasons.
For example, the simultaneous loss of both networks for a period of time at least
equal to the switch-over setting, or, the execution of any process on a batch server
which completely consumes system resources (CPU, network etc.).
For this reason, it is strongly recommended that the expected batch server load is
given careful consideration and hardware resources are gauged accordingly.
Resource intensive applications such as screen savers should be disabled on the
Batch servers, as they could cause the problem of “two master systems.” Prior to
deploying a redundant batch system into the production process, the load and
resource utilization on both batch servers must be assessed, and a reasonable
assurance of adequate resources for the Batch Management System must be
achieved.

Redundancy Operation
The batch control system has the capability to operate concurrent configuration and
runtime systems. The presence of two identical systems permits the backup system
to continue runtime execution if the master system should fail. This functionality is
known as redundancy. As the batch control system databases are altered, all of the
revisions are written to databases located on both the master system and the backup
system. In the event of a master system failure, the backup system continues all
batch operations.

Backup Server
Master Server
Batch System
Backup System
(Dormant)

Master Backup
Batch System Batch System
Databases Databases

Directory Configuration
In a redundant batch control system configuration, the directories containing the
batch applications on each server are shared. During installation of redundancy, the
only user-supplied information required to establish redundancy is the network
name (hostname) of the other redundant system. The same installation procedure is
performed on both servers. Each identifies the other as the redundant host. If the
directory names, network references and network sharing, are configured
incorrectly, redundancy will not function properly.
636 Chapter 23

Initial System Start-up


Once the system configuration is complete, the master batch control system can be
started normally. The server which is started first (by way of Environment
Manager) becomes the master.

Note All configuration changes other than recipes and materials should be made
prior to starting the runtime system.

After Environment Manager on the master is started the Redundancy Manager


(RedMngr) is started. RedMngr creates a state file indicating that the system is the
master. The state file also logs the time at which it became the master. If for some
reason RedMngr fails to start EnvMngr will continue normal operation. RedMngr
however will send a message to the Batch Logger indicating an error. In this case
you will need to correct the error, shutdown-and-exit from the Environment
Display, and then restart the Environment Display.

RedMngr Startup Procedure


When RedMngr successfully starts on either the master or the backup system, it
executes the following procedure:
1. If the state file indicates that the system was a backup, then the system will
operate as a backup. If no master exists, then RedMngr will not start. A
message is displayed indicating the condition.
2. If the state file indicates that the system was a master, then it makes an attempt
to interrogate the state file on the remote system. If a remote system state file is
not found, then the system will not start and a message is displayed indicating
the condition.
3. If the state file on the remote system is found, then the file is read and its last
state is determined. If the state of the remote system is “backup” then the
interrogating system starts as a master.
4. If the state file on the remote system indicates that it’s last state was a master,
then the time that is logged to both of the state files is evaluated. If the state file
on the interrogating system is more recent, than it starts as the master.
5. If the time in state file on the remote system is more recent, then the
interrogating system changes its state to backup and starts.
Environment Display provides a method to force either system to operate as the
master, regardless of the state of the state files on each system. In a redundant
system the Environment Display application file pull-down menu appears as
shown.

Note Extreme caution is recommended when using the Force System to Master
option. When the system starts as a backup, it synchronizes all of the configuration
databases with those located on the master system. Therefore, if the system was
previously operating as the master, then the data generated during the previous
execution would be overwritten by the synchronization process.
Redundancy 637

Typical Redundant Sequence of Operation


The following paragraphs detail the normal sequence of operation for a redundant
batch control system. The results of system failures, as well as recommended
recovery procedures are presented.

Note Once the Environment Display is started on both servers in the batch control
system, a period of several minutes or longer will elapse while configuration
databases and other batch control system processes are synchronized. During this
period, both systems will display messages that use the terms invalid and valid, in
reference to the state of the master or backup system. During the synchronization
period, the messages can be misleading. The term valid indicates that (1) all of the
databases on both systems are synchronized and (2) the runtime system on the
backup is enabled. The term invalid indicates that (1) the databases on both systems
are not (or are not yet) synchronized and/or (2) the runtime system on the backup is
not enabled and/or (3) a backup system cannot be detected.

Initial Start-up
The master batch control system is started as described earlier. The backup batch
control system databases are synchronized and started. Once the master and backup
batch control systems have been properly configured and all modules on each
system have been started properly, the redundant system executes normally until a
failure of either system is experienced.

Normal Runtime Operation


The master system is responsible for updating both the master and backup system
databases. The master and backup system clocks must be manually synchronized
on a regular basis to insure that the data and time stamps associated with the
historical data are consistent. The backup system will continuously monitor the
status of the master system.

Backup System Failure


If the backup system fails prior to a master system failure, the master batch control
system continues to operate normally but will stop updating the backup system
databases. The backup batch control system problem must be corrected and then
restarted. The databases on the backup system are then automatically re-
synchronized.

Master System Failure


In the event of a master system failure, the backup system will automatically
assume the role of the master only if the backup system is valid. The transition will
be transparent to the control system. All batches that were executing in the failed
master system continue to execute on the backup system that assumes the role of
the master. Master system clients that are executing on other client systems will
terminate upon the failure of the master system. However, the operator may easily
restart these clients with connections to the new master system.
638 Chapter 23

Master System Failure while Backup’s Operating


System is Failed
It is possible for the Master system to fail while the backup system is not
operational. Upon restarting the Environment Display on the Master system, the
Redundancy Manager will not start because the starting system cannot
communicate with the alternate system. If the alternate system cannot be started,
then the procedure to recover is to manually force the viable system to become the
Master using the Force System to Master option on the File dropdown menu on
the Environment Display. Perform an Exit and Shutdown of the Environment
Display and restart the Environment Display. This system will assume the role of
Master and will operate as a stand alone server until the backup system is restored
to an operational state.

Note The failed master should not be started as the backup until the problem that
caused the failure is repaired.

If the system does not have a redundancy state of Master with Valid Backup, or if
redundancy is not being used and IBCli looses communications with the Control
System, IBCli will continue trying to read valid tag values. The read error will not
be reported more than once per tag. Read errors on tags that have never had a
successful read, will only report the error once and redundancy will not be initiated.
This ensures that improperly linked tags will not initiate a redundancy switchover.

Note If communication between the Control System and IBCli fails, an automatic
switch-over to the Backup System will NOT occur. IBCli will issue 'read failed
errors' for the linked tags that are attempting to be read. If this should occur, the
operator must determine the cause of the failure and then determine if a manual
switch-over to the Backup System will resolve the communication fault.

Failed System Recovery


When the original master system problem is rectified, the system can be restarted as
the backup.

Manual Switch-Over to Backup System


The operator may manually switch the operation to the backup system at any time
during normal operation. This is accomplished by shutting down the master batch
control system. The backup system will assume the role of the master just as if there
was a hardware failure.

Note If you are going to execute a manual switchover, it is recommended to do so


(if possible) when batch activity is minimal. This ensures the highest degree of
integrity of the master-to-backup database synchronization.
Redundancy 639

Shutting Down a Redundant System


If changes are made to the tag database on the master system and the runtime is
then updated (while the backup is valid), the backup system may not have current
tag data. If I/O Clients (i.e. SysTagMngr, etc.) are running on the backup system
when the master is updated, the I/O client data in memory on the backup system
will not be updated. To avoid this problem, it is strongly recommended that you
follow the guideline below.
Whenever you shutdown a redundant system, ensure that you first shutdown the
backup system, followed by the shut down of the master. When you start a
redundant system, ensure that you start the master system first, followed by the start
of the backup. This will ensure that the runtime data is current and synchronized.

Batch Clients
Batch Runtime Clients are InTouch applications that are connected to a network
node. They require access to the batch control system that is located on a remote
master system. In the case of a redundant system, each client must have the
necessary network access to both the master server and the backup server in the
event of a master-backup switchover.
If the master system becomes unavailable for some reason, the backup system will
take control and management of the batch system. When this switchover occurs, a
client must (1) acknowledge that the master is unavailable, and (2) establish a
connection to batch management system on the backup system. It must also handle
the reverse, in the event the original master becomes available again.

Monitoring Redundancy Status


The Batch Management System provides a set of system tags to monitor
redundancy status. These tags are available through the InBatch Server application
IBSERV using IB_TAGS as the topic. Unlike other tags in the system, these tags
may be monitored on both the master and backup servers.

Tagname Data Type Description


IBSERV_RED_MASTER Discrete The Value of this tag is set to 1 (TRUE)
on the Master Batch Server and 0
(FALSE) on a valid Backup.
IBSERV_RED_STATE Integer Contains the RedState value for the
Batch server.
-1: Error
0: Master with invalid backup
1: Master with valid backup
2: Invalid backup
3: Valid backup
5: Failed master
6: Not a redundant system
IBSERV_RED_HEARTBEAT Discrete Contains a “heartbeat” signal. Value
alternates between 0 and 1.
640 Chapter 23

Batch Client (InTouch) Switchover


The following script is very basic. It demonstrates the functionality of allowing a
client to manage switching between two (remote) servers. Additional functionality
can be added.
For more information, see your "InTouch User's Guide."
For more information on script functions, see Chapter 18, "InTouch Script Add-On
Functions."
The script monitors the tag named IBSERV_RED_MASTER on the BACKUP
SYSTEM. This is very important to understand as values for this tag are not
reliable on an invalid backup, but the transition from FALSE to TRUE is a reliable
signal that a redundant switchover has occurred and that the “backup” system is
now acting as master. Within InTouch you will need to create a Condition Script
which is set up similar to the following:

Condition: IBSERV_RED_MASTER == 1
Condition Type: On True
{Swap the Servers. MASTER_ID always identifies the acting
MASTER server}
IF MASTER_ID == "bonito" THEN
MASTER_ID = "cabezon";
BACKUP_ID = "bonito";
ELSE
MASTER_ID = "bonito";
BACKUP_ID = "cabezon";
ENDIF;
{ Switch IB_TIM_TAGS Access name to new master - for TIM
wizards }
IOSetAccessName("IB_TIM_TAGS", MASTER_ID, "IBSERV",
TIM_TOPIC);
{ Switch the IB_TIM_ACCESS_TAG to use new server - for script
functions }
IB_TIM_ACCESS_TAG = "\\" + MASTER_ID + "\IBSERV|" + TIM_TOPIC;
{ Switch IBSERV_RED Access to monitor new backup server }
{ Note: The IBSERV_RED_MASTER tag is assigned to this Access
Name }
IOSetAccessName("IBSERV_RED", BACKUP_ID, "IBSERV","IB_TAGS");

The example script uses the following memory message tags that are created and
assigned initial values in the InTouch Tagname Dictionary:

Variable Name Initial Value


MASTER_ID “cabezon”
BACKUP_ID “bonito”
TIM_TOPIC “View1”
Redundancy 641

Note The variables, MASTER_ID and BACKUP_ID, are dynamically reassigned,


as the master-backup relationship between the two systems changes.
The variable, TIM_TOPIC might be re-assigned a value on startup based on the
client node name. This uniquely identifies the runtime client.

Batch Development and Batch Runtime Clients


Batch Development and Batch Runtime Clients access the batch control system
databases by way of network connections. When the master server fails and the
backup system takes control of the batch control system, clients do not
automatically connect to the new master. During installation, each client was
configured with two program groups; so that identify both of the [potential] servers.
When the master failure occurs, the operator must first terminate applications that
were executing on the client, and then start the applicable clients within the
Windows program group associated with the "new" master.

Configuring InTouch Client Alarms for Redundancy


The following information is required in order for InTouch clients to properly log
alarm events to the historical database. You will need to create an InTouch
Application Startup Script that will initialize the InTouch Client Alarms.
For more information on the InTouch Client Alarms, see Chapter 21, "Client
Alarm/Event Interface."
The following configurations must be performed on each InTouch client so that
alarms and other events are properly logged to the historical database. Note In order
for any events to be logged to the history database for a given batch, at least one
unit must be allocated to the batch.

InTouch Startup Script


The following InTouch Application Action script executes whenever a client
application is started.

Note For more information on the ibAlarmNode(YES_NO) tag, see Chapter 18,
"InTouch Script Add-On Functions."

Application Script: On Startup


ibAlarmNode(1);
A value of "1" indicates that all alarms and events (other than operator events) will
be logged. A value of "0" indicates that all alarms and events (other than operator
events) will be discarded.
642 Chapter 23

Redundant System Points of Interest


During normal redundant system operation, there are several important topics that
the user must be aware of. Each of these details should be followed to ensure
successful redundant operation.
• Editing of the batch control system databases can only be performed on the
active master.
• Following the guidelines in this document for setting up a redundant system
will insure successful system operation. However, if a situation occurs where
the backup system or network loses communication, hence its synchronization
with the master system, an error message will be sent and displayed in the
Wonderware Logger. In this case, the hardware and/or system configuration
requirements presented earlier should be reviewed.
• In the event that a hardware failure occurs during the transition of the status of
one or more phases, the batch management system will assume that the control
system phase logic is correct. Thus, for all phases that were executing prior to
the failure, the status will be read from the control system upon the start of the
backup system.
• When starting a backup system, it is recommended that batch control system
activity be at minimal level. This will ensure the highest degree of accuracy for
database synchronization.
System Administration 643

C H A P T E R 2 4

System Administration

This section describes the utilities and procedures that you should use for
administration of your Batch Management System components.

Contents
• Information Server Administration
• Backing Up Batch Databases
• Managing Batch Configurations
• Terminal Server License Administration

Information Server Administration


Information Server administration software is provided by way of a web page that
is hosted on the Information Server. The administration web page provides History
Administration, Error Queue Administration, Information Server Configuration,
History Archiving, and Report Log Administration.

To Access the Batch Information Server Administration web page:


1. On the Start menu of your Information Server, point to Programs,
Wonderware FactorySuite, InBatch, BatchInfoServer and then select
BatchAdmin.
If you want to access the Batch Information Server web page from a different
computer on your network, you will need to use the following URL address:
http://<computer name>/AdminWeb, where <computer name> is name of the
computer on which the Information Server is installed.
2. If you have enabled Batch security, you will be prompted to enter a valid User
and Password to access the administration web pages. By default, security is
not enabled, and the Batch Information Server Administration main page is
displayed.
644 Chapter 24

History Administration
Use the History Admin button to access the Batch Information Server
Administration - History Admin page and configure the Information Server (SQL
Server) accounts that are associated with access to the administration functions.
The accounts that you will be specifying are ultimately used to establish access to
the History Database in SQL Server.
System Administration 645

1. Enter the required User ID and Password.

Note The Password is case sensitive.

When the Information Server software is installed, the default User ID is


‘BatchAdminUser ’ and the Password is ‘WildcatFalls’.
The accounts that you enter must already have been defined using Microsoft
SQL Server Enterprise Manager. For more information on accounts, see User
Accounts in this section.
2. After you enter the required information, click the Set Admin Data button.
This will return you to the Batch Information Server Administration main
page.
646 Chapter 24

User Accounts
When you create user accounts for the History Administration pages, it is import
that you follow the guideline described in this section. The following requirements
must be observed whenever you are creating or editing System Administration user
accounts associated with the users who will access History Administration web
pages. If you do not properly configure user access and assign the appropriate
privileges, you will not be able to use History Administration.
For all user accounts associated with History Administration, use Microsoft SQL
Server Enterprise Manager to define the following SQL Server Login
Properties.
• BatchHistory database must be assigned as the default database.
• Server roles must include: Disk Administrators and Database Creators.
• Database Access for the BatchHistory and BatchArchive databases must
each include the following Database Roles: public, db_owner, and
BatchAdminRole options must be assigned.

Error Queue Administration


Use the Error Queue button to access to the Error Queue Admin page. From this
page you can view and edit the data that is stored in the Error Queue. By reviewing
the information in the Error Queue, it may be possible to edit the data in such a way
that the Information Server is able to properly store it. If necessary, you can delete
the affected data.
During normal batch execution, all historical data is written to the History Database
on the Information Server. While it is very unlikely, it is nevertheless possible, for a
failure to occur that would prevent data from being written into the History
Database. These abnormal conditions may result in an accumulation of data in the
Error Queue. If you are observing what appears to be erroneous historical data or
some other abnormal indications, it is recommended that you make use of the Error
Queue Admin page.
System Administration 647

Information Server Configuration


Use the Info Server Config button to access the Information Server
Configuration page. From this page you can edit the Report Path which identifies
the location of reports on the Information Server.
1. In the Report Path text box, enter the location where reports are located on the
Information Server.

Note When the Information Server is installed, the Report Path is


C:\Program Files\FactorySuite\InBatch\BatchInfoServer\Crystal by
default. The default Report Path is always associated with the C: drive even if
the Information Server is installed on a different drive. If the Information
Server is installed on a different drive, then Report Path must be edited. Users
should consider this when creating and editing recipes that include reports.

For more information on creating recipes, see Chapter 7, "Recipe Editor."

2. Click the Update button to save the path.


648 Chapter 24

History Archiving
Use the History Archive button access the History Archive page. From this page,
you can create, edit and execute archiving tasks that are registered by SQL Server.

Note Prior to using History Archive, ensure that the SQLServerAgent service has
been started on the Information Server.

Caution! When the History Archive executes, it overwrites the existing Archive
Database, effectively forgetting about the settings associated with permissions for
the database. If the BatchAdmin account is changed, then the archive database (an
empty one) should be backed up with the new permission settings. That backup
should then replace the archive template stored on disk.
System Administration 649

Add Archive Job


This section describes how to add an archive job.

To Add an Archive Job:


1. Click the Add Archive Job button.
The History Archive - Add Archive page will appear.
650 Chapter 24

2. Enter the information as described in the following table


System Administration 651

Item Description
Job Name The user-defined name for the archive job.
Job Description Text that describes the archive.
Scheduled Date & Time The scheduled date (mm/dd/yyyy) and time (hh:mm am/pm)
identifies when the Information Server will perform the archive
task.
Dump Device Name The dump device can be any descriptive text you want to use. The
History Archive application creates a Backup Device in Microsoft
SQL Server with the same name. An error message will be
displayed if the entry is blank.
Dump File Name The complete path and name that will be created when the archive
task is executed. An error message will be displayed if the entry is
blank.
Archive Database Name The name of the Archive Database that you defined when you
installed the Information Server (Default is BatchArchive).
History Data Start Date The start date (mm/dd/yyyy) identifies the starting point for
archiving history data.

This date is inclusive. All batches completed on or after this date


will be archived.

A batch is considered completed when it has obtained a status of


Done or Aborted, and is closed (removed from the batch schedule).
History Data End Date The end date (mm/dd/yyyy) identifies the ending point for archiving
history data.

This date is inclusive. All batches completed on or before this date


will be archived.

A batch is considered completed when it has obtained a status of


Done or Aborted, and is closed (removed from the batch schedule).
Options - Purge Data Enable this check box if you want the archive task to delete the data
After Archive (defined by the start and end dates) from the history database when
it executes archive task.

3. After you have completed making your entries, click the Add button.

Add Purge Job


This section describes how to add a purge job.

Important! Extreme caution should be used when purging historical information.


Always make sure the data to be purged has been successfully archived. It is
recommended that you archive and verify your data first, and then, if required,
purge it.
652 Chapter 24

To Add a Purge Job:


1. Click the Add Purge Job button to display the History Archive - Add Purge
pager.

2. Enter the information as described in the following table.


.

Item Description
Job Name The user-defined name for the purge job.
Job Description Text that describes the archive.
System Administration 653

Item Description
Scheduled Date & Time The scheduled date (mm/dd/yyyy) and time (hh:mm am/pm) identifies
when the Information Server will perform the archive task.
History Data Start Date The start date (mm/dd/yyyy) identifies the starting point for archiving
history data.

This date is inclusive. All batches completed on or after this date will be
archived.

A batch is considered completed when it has obtained a status of Done or


Aborted, and is closed (removed from the batch schedule).
History Data End Date The end date (mm/dd/yyyy) identifies the ending point for archiving
history data.

This date is inclusive. All batches completed on or before this date will
be archived.

A batch is considered completed when it has obtained a status of Done or


Aborted, and is closed (removed from the batch schedule).

3. After you have completed making your entries, click the Add button.

Add Restore Job


This section describes how to restore a previously archived database.

To Add an Archive Job:


1. Click the Add Restore Job button to display the History Archive - Add
Restore page.
654 Chapter 24

2. Enter the information as described in the following table.

Item Description
Job Name The user-defined name for the purge job.
Job Description Text that describes the archive.
Scheduled Date & Time The scheduled date (mm/dd/yyyy) and time (hh:mm am/pm) identifies
when the Information Server will perform the archive task.
System Administration 655

Item Description
Dump Device Name The dump device can be any descriptive text you want to use. The
History Archive application creates a Backup Device in Microsoft SQL
Server with the same name. An error message will be displayed if the
entry is blank.
Archive Database Name The name of the Archive Database that you defined when you installed
the Information Server.

3. After you have completed making your entries, click the Add button.

Completed Archives
After an archive has been created, it can be deleted, restored or purged.
1. On the History Archive page, identify the archive that you want from the
Completed Archives list.
656 Chapter 24

2. To Delete the archive, click the Delete button associated with the archive
Name. The archive will be immediately deleted.
3. To Restore an archive, click the Restore button associated with the archive
Name. The archive will be immediately restored.
If you want to view the Completed Archive before you restore it, click the
archive Name. This will display the Completed Archive Details page.
System Administration 657

After viewing the information, click the Restore Archive button. The History
Archive - Add Restore page will appear. Review and edit the Add Restore
job, and then click the Add button. The selected archive will be restored.
658 Chapter 24

Report Log Administration


The Report Log Admin button provides access to the Report Log
Administration page. The Reporting System allows you to configure and generate
reports, and save them in a folder on your Information Server. All of the reports that
are stored on the Information Server are stored in the database and are displayed
whenever you use the Report View feature of the Reporting System. Depending on
your specific requirements, you may want to remove reports that are no longer
needed.
1. Locate and delete the report(s) using Windows Explorer.

Note The location of saved reports is specified by the user during


configuration.

2. Click the Report Log Admin button to display the Report Log
Administration page.

3. On the Report Log Admin page, click the Update button.


System Administration 659

This will cause the Information Server to update the database so that the
reports that you deleted no longer appear when you use the Report View
feature on the Batch Reporting web page.

Changing an Information Server Assignment on a


Batch Server
When you install a Batch Server you are prompted to enter the name of the
computer on which your Information Server is located. If you need to change the
Information Server Host name, follow the steps shown.
The Batch Server uses the environment variable BHQ_HOST and it’s assigned
value to determine the network location of the Information Server.
1. On the Start menu of the Batch Server, point to Settings and then select
Control Panel.
2. In the Control Panel window, double-click the System icon.
3. On the System Properties window, select the Environment tab.
4. Define the System Variable BHQ_HOST.
5. Enter the hostname of your Information Server as the Value for the
BHQ_HOST environment variable.
6. Click Set when you have entered the required variable name and value, and
then click OK.
7. On the Start menu of the Batch Server, point to Run.

WARNING! The following steps require you to modify the Windows system
registry. It is essential that you follow the instructions carefully and modify only the
key that is identified. Unintentional changes to the registry can leave your system in
an unusable state.

8. In the Open field, enter Regedit.


9. Under My Computer, expand the HKEY_LOCAL_MACHINE branch
10. Expand the SOFTWARE branch, select Wonderware and then expand the
InBatch branch.
11. Double-click the IIS_Server name.
12. In the Edit String window Value Data field, enter the computer name of the
Information Server (in lower case) that you want to use.
13. Click OK.
14. Restart the computer to register the new Information Server environment
variable and registry settings.
660 Chapter 24

Changing a Batch Server Assignment on an


Information Server
When you install an Information Server you are prompted to enter the Host name of
the computer on which your Batch Server is located. If you need to change the
Batch Server Host name on the Information Server, follow the steps shown.

WARNING! The following steps require you to modify the Windows system
registry. It is essential that you follow the instructions carefully and modify only the
key that is identified. Unintentional changes to the registry can leave your system in
an unusable state.

On a Windows NT 4.0 System:


1. On the Start menu of the Information Server, point to Run.
2. In the Open field, enter Regedit.
3. Under My Computer, expand the HKEY_LOCAL_MACHINE branch
4. Expand the SOFTWARE branch, select Wonderware and then expand the
InBatch branch.
5. Point to InfoServer and then double-click Host1 name. In the Edit String
window Value Data field, enter the computer name of the Batch Server (in
lower case) that you want to use. If you are changing a Batch Server name that
is associated with Host2 (a redundant system), simply repeat this step for
Host2.
6. Click OK.
7. There is no need to restart the computer, but it will be necessary to restart any
browsers that were connected to the Information Server.

On a Windows 2000 System:


1. In the Control Panel window, double-click the Administrative Tools icon.
2. Double-Click the Computer Management option.
3. Expand the System Information tree.
4. Expand the Software Environment tree.
5. Click the Environment Variables option.
6. Expand the SOFTWARE branch, select Wonderware and then expand the
InBatch branch.
7. Point to InfoServer and then double-click Host1 name. In the Edit String
window Value Data field, enter the computer name of the Batch Server (in
lower case) that you want to use. If you are changing a Batch Server name that
is associated with Host2 (a redundant system), simply repeat this step for
Host2.
8. Click OK.
9. There is no need to restart the computer, but it will be necessary to restart any
browsers that were connected to the Information Server.
System Administration 661

Note The Computer Management option can be more directly accessed by a right-
click on the My Computer desktop icon then select Computer Management.

Backing Up Batch Databases


You can create backup copies of your configuration databases at any time by using
the DBCOPY utility. The batch management system does not have to be shutdown
to perform the backup. The utility, which is executed from the command line, locks
the specified database, and then safely copies it to a location that you enter.
...\InBatch\bin folder.

Note The DBCOPY utility is designed for use on an active batch server that
contains the databases that you want to backup. If you want to backup databases
that are not active, you can use a standard Windows file copy.

Using the DBCOPY Utility


Syntax:
dbcopy [-L] <path1><db_ name> <path2><backup_db_name>
Where:
-L enables database locking. (This is required)
<path1> is the source location of the database that you want to back up (e.g.
C:\Program Files\FactorySuite\InBatch\cfg\config_A)
<db_name> is the source database that you want to backup (e.g. ModelDB)
<path2> is the destination location (e.g. D:\)
<backup_db_name> is the backup database name (e.g. ModelDB)

Example:
dbcopy -L ..\cfg\config_A\modeldb D:\modeldb

WARNING! Do NOT use DBCOPY to backup configuration databases while an


“Update Runtime” or “Update Configuration” is in progress. Attempting this may
result in corrupt data.

Managing Batch Configurations


The Batch install program creates a complete set of batch databases that are
necessary to store and manage all batch-related data. The default path and folder for
these databases are C:\Program Files\FactorySuite\InBatch\cfg\config_A. The
default databases are available in the dflt_cfg folder, with the exception of the
RedCfg file which is necessary for redundancy. The databases are complete, but are
intentionally blank, so that you can use them for development of new
configurations.
662 Chapter 24

A file named RedCfg is generated when the Redundancy option is selected during
the installation. This file is created in the config_A folder and should be copied to
the dflt_cfg folder if you are using redundancy. The RedCfg file is unique to each
server installation.
When you create new configurations, you can copy the contents of the dflt_cfg
folder into the config_A folder. After you develop a new configuration, you can
save it to a folder other than config_A and later copy it into the config_A folder as
needed. It is recommended that you copy all of the files contained in the
configuration rather than attempt to copy selected databases from different
configurations.
When you copy files into the config_A folder, all previous databases are
overwritten. If you are making this change in a production system it is highly
recommended that you perform a thorough control system validation once you have
copied the databases into the config_A folder.

Note If you are making this change on a production system, ensure that all batches
are complete and removed from the Batch Schedule list.

It is recommended that you use the following guideline whenever you need to
overwrite the config_A folder.
• Perform an Exit and Shutdown from the Environment Display.
• Copy the current config_A files to another folder as a backup precaution.
• Copy all of the files in the dflt_cfg folder to the config_A folder.
• If the system is setup for redundancy, ensure the original RedCfg file is in the
config_A folder.
• You can then use the editors to create a new system configuration or you can
copy a previously saved configuration into the config_A folder.

Batch System Configuration Files


The following table shows the files in the configuration directory and provides a
description of how the batch system uses each.

Configuration File Location Description Usage


.batchwr InBatch\cfg\config_A Directory that contains Created by install and no
all batch warm restart modifications are made
data files. to directory.
.batchwr\alloc_req.wr InBatch\cfg\config_A Current equipment Changes made by Batch
allocation table across Manager during batch
all batches. execution.
.batchwr\system.wr InBatch\cfg\config_A Current value of system Changes made by Batch
tags across all Manager during batch
equipment. execution.
System Administration 663

Configuration File Location Description Usage


.batchwr\[clb].wr InBatch\cfg\config_A File for each batch in the Files added and removed
schedule database. by Batch Manager
Structure of file name is during batch execution.
CampaignID.LotID.Batc
hID.wr.
.F2.lock InBatch\cfg\config_A Batch warm restart lock Created by RedMngr
file created on master when the backup batch
server by backup server server is started.
during redundancy Redundancy only.
startup. Redundancy
only.
.F2.sync InBatch\cfg\config_A Batch warm restart Created by RedMngr
synchronization file when the backup batch
created on master server server is started.
by backup server during Redundancy only.
redundancy startup.
Redundancy only.
.RedState InBatch\cfg\config_A Contains the current Created and modified by
state of the server in a RedMngr during
redundant configuration. redundancy operation.
Redundancy only. Redundancy only.
BatchDB.dat InBatch\cfg\config_A Batch schedule database Changes as batches are
data file. added and removed from
the Batch Scheduler.
BatchDB.dbd InBatch\cfg\config_A Batch schedule database Does not change.
schema file.
BatchDB.key InBatch\cfg\config_A Batch schedule database Changes as batches are
index file. added and removed from
the Batch Scheduler.
BatchDB.lock InBatch\cfg\config_A Batch schedule database Created by RedMngr
lock file created on when the backup batch
master server by backup server is started.
server during Redundancy only.
redundancy startup.
Redundancy only.
BatchDB.sync InBatch\cfg\config_A Batch schedule database Created by RedMngr
synchronization file when the backup batch
created on master server server is started.
by backup server during Redundancy only.
redundancy startup.
Redundancy only.
664 Chapter 24

Configuration File Location Description Usage


[hostname][pid].log InBatch\cfg\config_A Raima Data Manager Each application creates
transaction log file(s). one Transaction Log
File (LOG) file where
hostname is the name of
the machine and pid is
the process id. This file
is used within a
transaction to store the
pending database
changes. An application
creates its own LOG file
at the beginning of
execution and deletes it
at the end of execution.
CfgLinkDB.dat InBatch\cfg\config_A Configuration Changes as
TagLinker database data modifications are made
file. to the configuration
Process Model database
and also though changes
made with TagLinker or
by selecting the Update
Configuration menu
option within
Environment Display.
CfgLinkDB.dbd InBatch\cfg\config_A Configuration Does not change.
TagLinker database
schema file.
CfgLinkDB.key InBatch\cfg\config_A Configuration Changes as
TagLinker database modifications are made
index file. to the configuration
Process Model database
and also though changes
made with TagLinker or
by selecting the Update
Configuration menu
option within
Environment Display.
CfgLinkDB.lock InBatch\cfg\config_A Configuration Created by RedMngr
TagLinker database lock when the backup batch
file created on master server is started.
server by backup server Redundancy only.
during redundancy
startup. Redundancy
only.
System Administration 665

Configuration File Location Description Usage


CfgLinkDB.sync InBatch\cfg\config_A Configuration Created by RedMngr
TagLinker database when the backup batch
synchronization file server is started.
created on master server Redundancy only.
by backup server during
redundancy startup.
Redundancy only.
CfgModelDB.dat InBatch\cfg\config_A Configuration Process Changes as
Model database data modifications are made
file. with the Process Model
Editor or by selecting
the Update
Configuration menu
option within
Environment Display.
CfgModelDB.dbd InBatch\cfg\config_A Configuration Process Does not change.
Model database schema
file.
CfgModelDB.key InBatch\cfg\config_A Configuration Process Changes as
Model database index modifications are made
file. with the Process Model
Editor or by selecting
the Update
Configuration menu
option within
Environment Display.
CfgModelDB.lock InBatch\cfg\config_A Configuration Process Created by RedMngr
Model database lock file when the backup batch
created on master server server is started.
by backup server during Redundancy only.
redundancy startup.
Redundancy only.
CfgModelDB.sync InBatch\cfg\config_A Configuration Process Created by RedMngr
Model database when the backup batch
synchronization file server is started.
created on master server Redundancy only.
by backup server during
redundancy startup.
Redundancy only.
CfgTIMDB.dat InBatch\cfg\config_A Configuration TIM Changes as
database data file. modifications are made
with TagLinker or by
selecting the Update
Configuration menu
option within
Environment Display.
CfgTIMDB.dbd InBatch\cfg\config_A Configuration TIM Does not change.
database schema file.
666 Chapter 24

Configuration File Location Description Usage


CfgTIMDB.key InBatch\cfg\config_A Configuration TIM Changes as
database index file. modifications are made
with TagLinker or by
selecting the Update
Configuration menu
option within
Environment Display.
CfgTIMDB.lock InBatch\cfg\config_A Configuration TIM Created by RedMngr
database lock file when the backup batch
created on master server server is started.
by backup server during Redundancy only.
redundancy startup.
Redundancy only.
CfgTIMDB.sync InBatch\cfg\config_A Configuration TIM Created by RedMngr
database when the backup batch
synchronization file server is started.
created on master server Redundancy only.
by backup server during
redundancy startup.
Redundancy only.
EnvDB.dat InBatch\cfg\config_A Environment Editor Changes as
database data file. modifications are made
with the Environment
Editor.
EnvDB.dbd InBatch\cfg\config_A Environment Editor Does not change.
database schema file.
EnvDB.key InBatch\cfg\config_A Environment Editor Changes as
database index file. modifications are made
with the Environment
Editor.
EnvDB.lock InBatch\cfg\config_A Environment Editor Created by RedMngr
database lock file when the backup batch
created on master server server is started.
by backup server during Redundancy only.
redundancy startup.
Redundancy only.
EnvDB.sync InBatch\cfg\config_A Environment Editor Created by RedMngr
database when the backup batch
synchronization file server is started.
created on master server Redundancy only.
by backup server during
redundancy startup.
Redundancy only.
hinfo.dat InBatch\cfg\config_A Storage location for Changes as
History Admin details. modifications are made
with the History Admin
tool.
System Administration 667

Configuration File Location Description Usage


host.dat InBatch\cfg\config_A Permits tag browsing Modified by
from client applications. Environment Manager
when started.
LinkDB.dat InBatch\cfg\config_A Runtime TagLinker Changed only by
database data file. selecting the Update
Runtime menu option
within Environment
Display.
LinkDB.dbd InBatch\cfg\config_A Runtime TagLinker Does not change.
database schema file.
LinkDB.key InBatch\cfg\config_A Runtime TagLinker Changed only by
database index file. selecting the Update
Runtime menu option
within Environment
Display.
LinkDB.lock InBatch\cfg\config_A Runtime TagLinker Created by RedMngr
database lock file when the backup batch
created on master server server is started.
by backup server during Redundancy only.
redundancy startup.
Redundancy only.
LinkDB.sync InBatch\cfg\config_A Runtime TagLinker Created by RedMngr
database when the backup batch
synchronization file server is started.
created on master server Redundancy only.
by backup server during
redundancy startup.
Redundancy only.
LoggerDB.dat InBatch\cfg\config_A Process Logger Editor Changes as
database data file. modifications are made
with the Process Logger
Editor.
LoggerDB.dbd InBatch\cfg\config_A Process Logger Editor Does not change.
database schema file.
LoggerDB.key InBatch\cfg\config_A Process Logger Editor Changes as
database index file. modifications are made
with the Process Logger
Editor.
LoggerDB.lock InBatch\cfg\config_A Process Logger Editor Created by RedMngr
database lock file when the backup batch
created on master server server is started.
by backup server during Redundancy only.
redundancy startup.
Redundancy only.
668 Chapter 24

Configuration File Location Description Usage


LoggerDB.sync InBatch\cfg\config_A Process Logger Editor Created by RedMngr
database when the backup batch
synchronization file server is started.
created on master server Redundancy only.
by backup server during
redundancy startup.
Redundancy only.
MaterialDB.dat InBatch\cfg\config_A Materials Editor Changes as
database data file. modifications are made
with the Materials
Editor.
MaterialDB.dbd InBatch\cfg\config_A Materials Editor Does not change.
database schema file.
MaterialDB.key InBatch\cfg\config_A Materials Editor Changes as
database index file. modifications are made
with the Materials
Editor.
MaterialDB.lock InBatch\cfg\config_A Materials Editor Created by RedMngr
database lock file when the backup batch
created on master server server is started.
by backup server during Redundancy only.
redundancy startup.
Redundancy only.
MaterialDB.sync InBatch\cfg\config_A Materials Editor Created by RedMngr
database when the backup batch
synchronization file server is started.
created on master server Redundancy only.
by backup server during
redundancy startup.
Redundancy only.
ModelDB.dat InBatch\cfg\config_A Process Model database Changed only by
data file. selecting the Update
Runtime menu option
within Environment
Display.
ModelDB.dbd InBatch\cfg\config_A Process Model database Does not change.
schema file.
ModelDB.key InBatch\cfg\config_A Process Model database Changed only by
index file. selecting the Update
Runtime menu option
within Environment
Display.
ModelDB.lock InBatch\cfg\config_A Process Model database Created by RedMngr
lock file created on when the backup batch
master server by backup server is started.
server during Redundancy only.
redundancy startup.
Redundancy only.
System Administration 669

Configuration File Location Description Usage


ModelDB.sync InBatch\cfg\config_A Process Model database Created by RedMngr
synchronization file when the backup batch
created on master server server is started.
by backup server during Redundancy only.
redundancy startup.
Redundancy only.
RecipeDB.dat InBatch\cfg\config_A Recipe Editor database Changes as
data file. modifications are made
with the Recipe Editor
or changed by Batch
Manager during batch
execution.
RecipeDB.dbd InBatch\cfg\config_A Recipe Editor database Does not change.
schema file.
RecipeDB.key InBatch\cfg\config_A Recipe Editor database Changes as
index file. modifications are made
with the Recipe Editor
or changed by Batch
Manager during batch
execution.
RecipeDB.lock InBatch\cfg\config_A Recipe Editor database Created by RedMngr
lock file created on when the backup batch
master server by backup server is started.
server during Redundancy only.
redundancy startup.
Redundancy only.
RecipeDB.sync InBatch\cfg\config_A Recipe Editor database Created by RedMngr
synchronization file when the backup batch
created on master server server is started.
by backup server during Redundancy only.
redundancy startup.
Redundancy only.
RedCfg InBatch\cfg\config_A Redundancy Created by install. May
configuration file. be changed manually.
Redundancy only. Configuration changes
not required during
normal operation.
Redundancy only.
RedStats.date.txt InBatch\cfg\config_A Redundancy statistics Created by RedMngr
files that provide during redundancy
information of the status operation. Redundancy
of batch redundancy. only.
Structure of file name is
RedStats.current_date.tx
t. Redundancy only.
SecurityDB.dat InBatch\cfg\config_A Security Editor database Changes as
data file. modifications are made
with the Security Editor.
670 Chapter 24

Configuration File Location Description Usage


SecurityDB.dbd InBatch\cfg\config_A Security Editor database Does not change.
schema file.
SecurityDB.key InBatch\cfg\config_A Security Editor database Changes as
index file. modifications are made
with the Security Editor.
SecurityDB.lock InBatch\cfg\config_A Security Editor database Created by RedMngr
lock file created on when the backup batch
master server by backup server is started.
server during Redundancy only.
redundancy startup.
Redundancy only.
SecurityDB.sync InBatch\cfg\config_A Security Editor database Created by RedMngr
synchronization file when the backup batch
created on master server server is started.
by backup server during Redundancy only.
redundancy startup.
Redundancy only.
TIMDB.dat InBatch\cfg\config_A TIM database data file. Changed only by
selecting the Update
Runtime menu option
within Environment
Display.
TIMDB.dbd InBatch\cfg\config_A TIM database schema Does not change.
file.
TIMDB.key InBatch\cfg\config_A TIM database index file. Changed only by
selecting the Update
Runtime menu option
within Environment
Display.
TIMDB.lock InBatch\cfg\config_A TIM database lock file Created by RedMngr
created on master server when the backup batch
by backup server during server is started.
redundancy startup. Redundancy only.
Redundancy only.
TIMDB.sync InBatch\cfg\config_A TIM database Created by RedMngr
synchronization file when the backup batch
created on master server server is started.
by backup server during Redundancy only.
redundancy startup.
Redundancy only.
System Administration 671

Configuration File Location Description Usage


vista.taf InBatch\cfg\config_A Raima Data Manager If it does not exist,
Transaction Activity Raima Data Manager
File. automatically creates
it.The name of a
process's LOG file is
written to the
Transaction Activity
File (TAF) just before a
commit and removed
following the commit in
order to provide for
external recovery in the
event that the lock
manager fails.
HistQDB.dat InBatch\HistQ History queue database Changed by the History
data file. Queue Manager.
HistQDB.dbd InBatch\HistQ History queue database Does not change.
schema file.
histq.taf InBatch\HistQ History Queue If it does not exist,
Transaction Activity Raima Data Manager
File. automatically creates it.
dflt_HistQ InBatch\HistQ Folder containing Does not change.
Default HistQDB
database

Terminal Server License Administration


To properly manage server-client relationships between InBatch applications
installed on a Terminal Server and remote workstations, two levels of licensing are
implemented. The first level of licensing assures that a particular client can access
the Terminal Server. Windows 2000 Professional client systems include licensing
for this level of access. If you are connecting a Windows 2000, NT, 95 or 98 client
to the Terminal Server you will need to install licensing so that the server can be
accessed. The second level of licensing is managed on a license server and allows
provides the ability of a particular client to initiate terminal services.
Terminal Server licensing is administered using the Terminal Server License
Manager. Specific information regarding using the Terminal Server License
Manager is beyond the scope of this User’s Guide. Please refer to your system
administrator for more information.
672 Chapter 24

Annunciating Batch System Illegal Access


Attempts
As a part of a FDA 21 CFR Part 11 compliant solution, the following section
describes a means of annunciating illegal access attempts to the batch system.
Specifically, this section addresses the requirements of section 11.300 subsection
(d), which states;

”Use of transaction safeguards to prevent unauthorized use of passwords and/or


identification codes, and to detect and report in an immediate and urgent manner
any attempts at their unauthorized use to the system security unit, and, as
appropriate, to organizational management.”
The historical database can be easily modified by the end-user to provide this
information, however, this section describes a technique as an add-on to existing
implementations.

Implementing FDA 21 CFR Part 11 Compliance


The solution leverages technologies present in MS SQL Server. It is comprised of
the following:
1. A SQL Server declared event message as follows:
"Login or access failure for user %1 has exceeded the maximum of %2
attempts within a %3 minute period"
This message appears in the SQL Server log, The Windows 2000 Application
Event Log, and will be inserted into the AuditEvent table of the BatchHistory.

Note %1, %2, and %3 are placeholders that are filled in with values when the
message is generated.

2. A SQL Server declared Alert keyed on the above Event Message:


The Alert name is "Repeated access failure notification", ID number = 55001,
and the message "Batch Server unsuccessful security access limits have been
exceeded".
3. A modified USP_AuditEventAdd which searches and fires the alert when the
attempts/interval criteria are met.

Installation
1. Installation Requirements:
Installation must be made using a SQL Server ID that is a member of the
"sysadmin" role. The SQL Agent must be running (already a requirement of
the batch system).
2. Run the SQL script:
Copy and paste the SQL script describe in “ SQL Script” later in this section,
using a query tool on the BatchHistory database SQL server. Execute the
script.
3. Configure Notification:
System Administration 673

To configure notification use the SQL Enterprise Manage:


Open the \Management\SQL Server Agent' folder to see Operators and Alerts.
Focus on the Operators.
Right click or use the menu to add an operator(s). Operators are those
individuals that should be notified.
Each operator can be notified of an alert. By browsing the notifications tab of
the operator, the alert can be assigned with the appropriate notifications (Net
send, pager, etc.).

To configure an operator to receive “net send” messages on the alert:


Configure the operator to receive net send messages on the General tab by filling in
the net send address for the operator. This address can be a node name, IP address,
or NT user name.
On the Notifications tab, scroll down to our new alert “Repeated access failure
notification” and check the box in the Net Send column as shown previously.
674 Chapter 24

In order to include the alert message in the text that is sent via Net
Send:
Open the Alert.
Select the Response tab.
Check the Net Send option where the dialog asks “include alert error text in” as
shown below.

If all is configured correctly, the next time the illegal access attempts thresholds are
exceeded, a system message similar to the one below will appear on the PCs or
Users you have configured to receive notification.
System Administration 675

Additional Notes
This application note does not detail the setup of the paging or alternative software
notification means. Alternatively, the Alert can run a program that might trigger
notification on another system, or because the alert generates an NT event, an event
monitor application can initiate notification software. There are many options.
Currently, in order to modify either the Maximum attempts or the tolerance interval
requires the user to modify the USP_AuditEventAdd stored procedure. There is a
variable called @MaxSecurityAttempt_CT (set to 3), which can be changed where
the SET command is located. Likewise, @MaxSecurityInterval_CT (Set to 3) can
be changed in its corresponding SET command. It is also possible to modify the
procedure so that these values are read from the NT system registry. The Interval
counter is designed to have a resolution of minutes.
The Alert has several features that may be of interest to more advanced users.
Changes should only be made by experienced personnel.
The alert is for the 'BatchHistory' database. If an alternative name has been used the
update script will need to be modified.
Testing was performed using a popular page notification software. Each of the other
notification methods uses the same mechanism.
With minor alterations, distinct alerts could be used for discrete violations such as
user/password failure only.

SQL Script

USE MASTER
GO

sp_dropmessage @msgnum=55001
GO

sp_addmessage @msgnum=55001, @severity=1


, @msgtext='Attempted unauthorized access exceeded
maximum of %d events within %d minutes. Last user: %s,
Station: %s'
676 Chapter 24

,@lang='us_english',@with_log=true
GO

USE MSDB
GO

sp_delete_alert @name='Repeated access failure notification'


GO

sp_add_alert @name='Repeated access failure notification'


, @message_id=55001
, @enabled=1
, @delay_between_responses = 0
, @notification_message = 'Batch Server unsuccessful
security access limits have been exceeded.'
, @include_event_description_in=0
, @database_name='BatchHistory'
GO

USE BatchHistory
GO

DROP INDEX [dbo].[AuditEvent].IEX_AuditEvent_DT


GO

CREATE CLUSTERED INDEX [IEX_AuditEvent_DT] ON


[dbo].[AuditEvent]([Datetime]) ON [PRIMARY]
GO

DROP PROCEDURE USP_AuditEventAdd


GO

/****** Object: Stored Procedure dbo.USP_AuditEventAdd


Script Date: 10/27/98 9:36:59 AM ******/
CREATE PROCEDURE USP_AuditEventAdd
@User_Name User_Name
, @App_Name App_Name
, @Func_Name Func_Name
, @Func_Lvl Func_Lvl
, @DateTime Exp_Date
System Administration 677

, @Op_Station Op_Station
, @Recipe_ID Recipe_ID
, @Reason Reason_Desc
AS
/*
** Declarations.
*/
DECLARE @Retcode INT
DECLARE @MaxSecurityAttempt_CT INT -- maximum security
attempts allowed within an interval of time
DECLARE @MaxSecurityInterval_CT INT -- the interval in
minutes that MaxAttemtps can occur without being enunciated
DECLARE @ViolationReason VARCHAR(100)
DECLARE @DateCalc DATETIME

SET @MaxSecurityAttempt_CT = 3 -- set using XP_regread from


registry
SET @MaxSecurityInterval_CT = 3
SET @Retcode = 0
SET @Datecalc = DATEADD(Mi, -@MaxSecurityInterval_CT,
@DateTime)

/*
**
*/
BEGIN TRAN AuditEventAdd
INSERT AuditEvent
( User_Name
, App_Name
, Func_Name
, Func_Lvl
, DateTime
, Op_Station
, Recipe_ID
, Reason
)
VALUES
( @User_Name
, @App_Name
, @Func_Name
, @Func_Lvl
, @DateTime
678 Chapter 24

, @Op_Station
, @Recipe_ID
, @Reason
)
IF @@ERROR <> 0
BEGIN
SET @Retcode = 1
ROLLBACK TRAN AuditEventAdd
END
ELSE
BEGIN
IF (EXISTS (SELECT 1 FROM AuditEvent A
WHERE A.datetime >= @Datecalc
AND ( A.Reason like 'User Id not found%'
OR A.Reason like 'Password not valid%'
OR A.Reason like '%request denied%'
OR A.Reason like 'Unknown%'
OR A.Reason like '%not in%')
HAVING Count(*) > @MaxSecurityAttempt_CT))

BEGIN -- Found Occurrance count exceeded


SELECT @ViolationReason = FORMATMESSAGE(55001,
@MaxSecurityAttempt_CT,@MaxSecurityInterval_CT, @User_Name,
@Op_Station)
RAISERROR (55001, 16, 1, @MaxSecurityAttempt_CT,
@MaxSecurityInterval_CT, @User_Name, @Op_Station)
INSERT AuditEvent (User_Name, App_Name, Func_Name,
Func_Lvl, DateTime, Op_Station, Recipe_ID, Reason )
VALUES (@User_Name, 'Security', 'Audit', 'Alarm',
Getdate(), 'SQL Server', @Recipe_ID, @ViolationReason)

IF @@ERROR <> 0
BEGIN
SET @Retcode = 1
RAISERROR ('Unable to Insert AuditEvent for
excessive access violations', 11, 1) WITH LOG
ROLLBACK TRAN AuditEventAdd
END
ELSE
COMMIT TRAN AuditEventAdd
END
ELSE
System Administration 679

COMMIT TRAN AuditEventAdd


END

DONE:

RETURN (@Retcode)
680 Chapter 24
Index 681

Index
Symbols Allocation 7
Allocation Queue 330
**, in Phase List 341 analog input parameters 142
**, in schedule list 327 analog process variable 142
.rcp extension 220, 221 analog process variable, using with Hi and Low
Limit 117
A analog tag 86
API, Security 423
Abort a Batch 349 Application
Abort, Phase Command 463 SuiteLink or DDE 176
Abort, Unit Command 459 application ID, in security 436
Aborted 321 Application Parameters
Aborted, Phase Status 465 Table of 61
Aborted, Unit Status 460 Application Security Requests 440
Aborting 321 Applications
Access Editor 176 Adding Instances of 58
Access Mode 86 Adding to Environment 58
Access Name 63, 176 Assigning Parameters to 60, 61
Acknowledge Assigning Values to Parameters 61
On Entry 290 Automatic Start-up/Shutdown of 67
On Exit 290 Available for Termination Timeout 66
Acknowledge Addition of Material 354, 357 Deleting Parameters 64
Acknowledge on Entry 160 Instance Names 59
Activate Jump Mode 325 Starting All
Active Transition Objects 344 Automatically 67
Active Transitions, viewing 331 with Environment Display 53
Active-X Starting Single Runtime 54
GUI Controls 473 Stopping All
ActiveX 10 Automatically 68
Actual Element, Process Phase 116 with Environment Display 53
Actual Element, Transfer Phase 141 Stopping Single Runtime 54
Actual Value 199 Timeout 49
Actual Value, Assigning for Unit Assignment 201 User-Defined 64
Actual, Parameter Extension 467 Adding 64
Add Archive Job 649 Assigning Parameters to 65
Add Attributes to a Train 304 Configuring Parameters for 66
Add Batch to list 322 Viewing Status of 51
Add Daily Schedule 398, 399 Applications-Functions Editor 435
Add Materials From List, check box 243, 247 Approvals 217
Add Monthly Schedule 398, 400 Approved for Production 217
Add Operation 260, 269 approved for production, recipe security 433
Add Operation Branch 258, 260 Approved for Test 217
Add Operation Loop 258, 260 approved for test, recipe security 433
Add Operation Transition 258, 260 APS, Advanced Planning Systems 10
Add Phase 262 Archive Job 649
Add Phase Branch 262 Ask 446
Add Phase Loop 262 AskCheckBy 446
Add Phase Transition 262 AskDoneBy 446
Add Purge Job 651 Assign a Material to a Unit 200
Add Restore Job 653 Assign Application Parameter Values 61
Add Units to a Train 303 Assign Destination Instances 238
Add Weekly Schedule 398, 399 Assign Lot Tracking Information 201
Adding Applications to Environment 57 Assign Process Classes 230
Adding Process Classes 101 Assign Source Instances 238
Adding Units 97 Assign Tags to Process and Transfer Classes, additional
Advanced Planning Systems (APS) 10 information 158
alarm limits 142 Assign Tags, additional information 155
Alarms 469 Assign Units, Process Class Instances 233
alarms 451 Assigning a Material to a Unit 198
Allocate Phase Assigning Application Parameters 61
in recipes 208 Assigning Attributes to Trains 304
Index 682

Assigning Connections to Transfers 129 Actions/Activate Jump Mode 325


Assigning Segments 125 Actions/Manual Operation 324
Assigning Units to a Process Class 103 Actions/Save Control Recipe 324
Assigning Units to Trains 303 File/Exit 324
Assinging Application Parameters 60 View/Errors 332
attribute range 234 Windows/Batch Messages 327
Attributes Windows/Equipment Allocation 328
Process Class 104 Windows/Phase Parameter Editor 331
Trains 304 Windows/Schedule 327
Attributes, Process Class Instances 234 Windows/Transition Logic 331
Automatic Allocation, unit 345 Phantom Batch Considerations 366
Automatic Batch Execution 321 Using 322
Automatic Batch Mode 347 View Menu 331
Automatic Phase 75, 114 Windows Menu 327
automatic phase 108, 132 Batch Display Functionality 338
Automatic Phase, Description of 114 Batch Display Layout 334
automatic phases Batch Display Toolbar 335
examples of 115 Batch Display, control buttons 155
Automatic Process Phases 352, 355 Batch Errors
Automatic Process Phases with Material Input Runtime 361
Parameters 353 Schedule 362
Automatic Start-up 68 Batch Execution 345
Automatic Start-up and Shutdown of Runtime Batch Execution Mode 321, 339
Applications 67 Batch Execution Mode Changes 351
Automatic Start-up/Shutdown Batch Execution, Warm Restart 364
Considerations 68 Batch Function Interface Type Libraries 16
Automatic Tag Creation and Assignment 161 Batch History 4
Automatic Tag Creation and Assignment, additional Description of 8
information 155 Batch ID 89, 319
Automatic Tagnames, Naming Convention 157 Batch Identification 319, 337
Automatic to Manual 351 Batch Information Server
Automatic to Semi-automatic mode change 351 Installed Components 12
Automatic to Semi-automatic mode change after phase Batch Information Server web page 643
abort 351 Batch Logger
Automatic Transfer Phase 138, 139 Train Names 92
Automatic Transfer Phase, Examples of 139 Batch Management
Automatic Transfer Phases 355 Description of 7
automatic transfer phases 198 Materials Usage 198
Automatic Unit Selection 352 batch management
Automatically Generated Tagnames 85 material tracking 198
Available for Terminiation, Timeout Value 66 Batch Management System 307
Batch Manager 7, 15
B Process Tag to Unit Tag Resolution 89
Starting 344
Backing Up Configuration Databases 661 Unit Control Tag usage 102
Backup a Database with DBCOPY 661 Unit State Tag usage 102
Batch 199 Warm Restart 363
Batch Alarms 10 Batch Messages 327
Batch and Unit Management Batch Reporting 13
Description of 308 Batch Reporting System
Batch Configuration Client Starting 388
Installed Components 11 Batch Reporting web page 389
Batch Configuration Client, security 430 Batch Reports 405
Batch Control 339 Description of 8
Batch Control Buttons 337 Batch Restart Mode 364
Batch Display 15, 322 Batch Runtime Client
Actions Menu 324 Installed Components 12
Description of 322 Batch Runtime Errors 361
File Menu 323 Batch Schedule
Help Menu 334 CLB filtering 314
Menus Mode/Status 315
Index 683

Recipe Status 314 CfgModelDB 46, 91


Train 315 Change Application Parameter Values 61
Batch Schedule Errors 362 Change Batch list 322
Batch Schedule List, modifying 322 Change Operation Name 285, 286
Batch Scheduler 15, 310 Change Password 17
Edit Menu 312 Change Process Class Name 101
File Menu 311 Change Unit Name 97
Help Menu 319 Changing Information Server Assignment on a Batch
Initialize Menu 317 Server 659
Menus Changing Passwords 440
Edit/Cleanup 312, 313 Changing Process Class Names 101
File/Exit 312 Changing the Batch Schedule List 322
File/Print 311 Changing the Batch Server Assignment on an
File/Print Preview 312 Information Server 660
File/Print Setup 312 Characteristic Name 199
Initialize/All 317 Characteristics 5, 199
Initialize/Batch 317 check-by security 435
Options/Execute in Order 319 ChgPwd 17, 440
View/Errors 316 CLB 319
View/Filters 314 CLB filtering in Batch Scheduler 314
View/Status Bar 316 Colors, meaning in Batch Display 338
View/Undo Sorting 314 Comma 447
Options Menu 319 Comment 204
View Menu 313 Comments, entering for phases 340
Batch Server Comparison of Model Approaches 72
Changing Assignment on an Information Server 660 Completed Archives 655
Batch Server, security 430 Complimentary Process Phase 71
Batch Status Comprehensive Model 70
Descriptions 339 config_A folder 10
Batch Talk ActiveX Control 16 Configuration
Batch, Defining 319 Security System 428
BatchAction 529 Update 50
Reference Table 531 Configuration Programs
BatchAdmin 643 Summary of 12
BatchDspl 15 Configurations
Parameters of 62 Managing 10
BatchMngr 15 Configure Formula Parameters, additional
Parameters of 62 information 161
BATCHOBJSRV.DLL 16 Connection 70, 178
BatchReport 13 Connection Tag
BatchSched 15 Description of 81
BATCHVBSERVER.DLL 16 Guideline 83
BHQ_HOST 659 Connection Tags 126
Branch 258, 260, 262 connection tags 81
Branch Execute Types 274 Connectionless Model 71
Branch Leg, Deleting 280 Connections 122
Branch Object, Insert 273 Description of 74
Branch Objects 273 Connections, Assigning to Transfers 129
Branch Types, All 273 Connections, Editing 123
Branch Types, One 273 Contention for Shared Equipment 358
Branch, Deleting 282 Control
Building a Recipe Procedure 257 Phase 7, 462
bulk ingredients 187 Unit 458
By-Product, Defining 196 Control Buttons 468
By-Products 187 Configuring for Process Class Phase 110
by-products 203 Configuring for Transfer Class Phase 134
Description of 78
C control buttons 451
Control Buttons, additional configuration 155
Campaign 199 control inputs 451
Campaign ID 89, 319 control outputs 451
Index 684

Control Recipe Destination Unit, Assigning 124


Description of 203 dflt_cfg folder 10
Control System 5, 461 Diagram 358
Control System Code Structure 454 Batch Management Overview 310
Control System Memory Configuration, with Function Block 451
phases 454 Parts of a Recipe 203
Control System Synchronization 365 Process Instances in recipes 229
Control/Status Activity 109, 133 Process Logging 407
ControlSystem Access Name 176 Process Modeling 87
Copying Procedure Objects 277 Recipe Formula 205
create trains 303 Transfer Instances in recipes 229
Creating Reports 405 discrete tag 86
Crystal Reports 8 Discrete Tags
Predefined 405 Using with Control Buttons 78
CSV File Distributed Control System (DCS) 4, 14
Format of Tag Linker Export 171 Done 321
Cutting Procedure Objects 277 Done By, as Recipe Author 214
Done, Phase Status 465
D done-by security 435
Download Phases 76
Data Class 86 drag operation 263, 265
data points 5 Dynamic Data Exchange (DDE) 9
Database
Backup utility 661 E
Process Log 407, 408
Database Manager Edit Connections 122
Viewing Status of 51 Edit Equipment Status 149
Date Received 199 Edit Formula Inputs 241
DBCOPY utility 661 Edit Formula Outputs 245
DDE 9, 14 Edit Formula Parameters 342
Default Batch Size 204 Edit Formula Parameters, additional information 159
Default Values for Process Parameters 161 Edit Phase Configuration 288
Define Lot Tracking Information 199 Edit Phase Properties 287
Define Materials 197 Edit Segments 148
Defining a Batch 319 Edit System Parameters 55
Defining Materials 196 Edit Transfers 127
Delete Application Parameters 64 Edit Units 96
Delete Operation Object 259, 261 Editing an Expression 444
Delete Phase Object 263 Editor
Delete Process Class 102 Process Modeling 69
Delete Unit 98 End Of Batch Operation 361
Delete Units from a Train 304 Enterprise Resource Planning (ERP) 10
Deleting a Branch 282 Enumeration Data
Deleting a Branch Leg 280 Description of 79
Deleting a Loop 283 enumeration tag 86
Deleting a Phase 278 EnvDspl 14
Deleting a Transition 278 EnvEdit 12
Deleting an Operation 278 Environment
Deleting Connections, effect of 92 Update 50
Deleting Model Components, Warning 92 Environment Display 14, 45, 47
Deleting Procedure Objects 278 File Menu 48
Deleting Process Classes 102 Help Menu 51
Deleting Process Classes, effect of 92 Menus
Deleting Recipes 215 File/Exit 48
deleting reports 659 File/Exit and Shutdown 49
Deleting Transfer Classes, effect of 92 File/Terminate App 48
Deleting Units, effect of 92 Update
Delimiters 447 Configuration 50
Destination Class Charge Phase 71
Destination Instance, Assigining 239 Environment 49
Destination Process Class, Assigning 128 Runtime 50
Index 685

View/Status 51 Example Equipment Requirements 235


Starting Runtime Applications 53 Example Plant, Process Model 90
Stopping Runtime Applications 53 Example Transfer Instance Selection 240
Update Configuration 91 Examples
Update Menu 49 Formula Parameter 162
Using 47 execute multiple operation 273
View Menu 51 execute multiple phases 273
Environment Editor 12, 45, 198 Execute Type 273
Adding Applications to the Environment 57 Execute Type One, Description of 275
Application Parameters 60 Exercising Phases 472
Description of 46 Export Recipes 220
Edit Menu 55 Export Units of Measure 152
File Menu 55 Expression
Help Menu 56 Editing 444
Instances, Configuring 58 Operators 445
Menus Expression Building Rules 447
Edit/System Parms 55 Expression Editor 443
File/Exit 55 Defining Process Log Criteria 408
Help/About Environment Editor 57 Description of 443
Help/Help Topics 56 Edit Buttons 444
Phase/Batch Status parameter 330, 348, 349, 350 Using 443
Starting 55 Expression Editor, Question Length 273
System Parameters Table 56 Expression Editor, using for transitions 271
Unit States parameter 330 Expression Elements 445
Using 55 Expression Examples 448
Environment Editor, Batch Manager 355 Expression Functions 446
Environment Management System 45 expressions
Description of 46 viewing during batch execution 344
Environment Manager 13, 45, 47 Extensibility 10
Description of 46
Process Log Manager, Configuring 421 F
Starting 66
Using 66 Factory Suite Licensing 256
Environment System FactorySuite 4
Application Timeout 66 Integration 9
Command line interface (etcmds.exe) 67 FIFO 355
Environment System Parameters (Default) 56 FIFO Materials Parameter 198
EnvMngr 13, 47 Filter Recipes 213
Equipment Allocation Queue 330 Filtering
Equipment Allocation window 329 Batch Schedule List 314, 315
equipment dependent recipe 204, 205, 229, 233 Find 213
equipment dependent recipes, unit assignments 229 Find Button, Materials Editor 197
equipment independent recipe 204, 205, 229 Finished Goods 187
Equipment Management 4 finished goods 203
Equipment Requirements 203 Finished Goods, Defining 196
Description of 204, 228 Flexibility 4
Equipment Requirements Editor, Using 228, 230 Flexible Batch Management 3
Equipment Selection 340 Force System to Master 638
Equipment Status 149 Force to True 344
Description of 79 Formula 203
ERP 10 Formula Parameter
Error Automatic and Semi-Automatic Transfer Phases 140
Unexpected Status 347 Description of 159
Error Queue Administration 646 Formula Parameter Configuration
Errors Manual Transfer Phases 147
Batch Runtime 361 Formula Parameter Examples 162
Batch Schedule 362 Formula Parameters 465
Batch Schedule, Viewing 316 Automatic Process Phases 116
Script Add-On Functions 538 Configuring for Process Class Phases 114
Example Configuring for Transfer Class Phases 138
Process Model 87 Description of 77
Index 686

Manual Process Phases 122 Viewing status of 51


Types 77, 140 HistQMngr 47
types 116 Hold a Batch 348
formula parameters 451 Hold Propagation 462
Formula Parameters, Description of 208 Hold Propagation Modes 330
Formula, Defining 241 Hold, Phase Command 463
Formula, Recipe Hold, Unit Command 459
Description of 205 Host 527
Function Block Diagram 451 Hybrid Model 71
Function Security Requests 441
Function Security, enabling 437 I
Functions
Description of 446 ibAlarmEventHost 527
Functions, inserting in expressions 445 ibAlarmEventInit 527
ibAlarmNode 528
G ibBatchAction 529
IBCli 14
General High Deviation 196 Parameters of 63
General Low Deviation 196 ibConfig 532
General Tolerances, in Recipes 245 ibDdePokeDisc 537
Guideline ibDdePokeInt 537
Control System Memory Configuration 454 ibDdePokeStr 537
Creating a Process Log Group 415 ibDdeRequestDisc 537
creating a train 303, 304 ibDdeRequestInt 537
Expression Building 447 ibDdeRequestStr 538
Phase Block Design 449 ibDdeTermTopic 538
Phase Block Memory 454 IBFServ 15
Process Modeling 5 Parameters of 64
Recipe Procedure Development 210 ibPokeDisc 533
Guidleine ibPokeInt 533
Batch Manager system interactions 309 ibPokeStr 534
ibRequestDisc 535
H ibRequestInt 535
ibRequestStr 536
Header 203 IBServ 14
Header, Description of 204 Parameters of 64
Held 321 ibTermTopic 536
Held, Phase Status 464 Import Recipes 220, 221
Held, Unit Status 460 Import Units of Measure 152
Help InBatch
Environment Display 51 redundancy 628
Environment Editor 56 InBatch Client (IBCli) 14
Materials Status 195 InBatch Function Server 15
Process Modeling 96 InBatch Server 14
Recipe Editor 256 Installed Components 11
high deviation element 142 INBATCHSFC.OCX 16
High Deviation Element, Process Phase 117 InfoMngr 14
High Deviation Element, Transfer Phase 142 InfoMngr_ _See Information Manager 421
High Deviation, Material 196 Information Manager
High Deviation, Parameter Extension 467 Description of 421
High Limit Element, Process Phase 117 Information Manager (InfoMngr) 14
High Limit Element, Transfer Phase 142 Information Server
High Limit, Parameter Extension 467 Changing Assignment on the Batch Server 659
History Information Server Administration 643
Logging Process Data 409 Information Server Configuration 647
Viewing for a Recipe 218 Ingredient, Defining 196
History Administration 644 Ingredients 187
History and Batch Manager ingredients 203
Description of 309 Initialization
History Archiving 648 Description of 308
History Queue initializing batches, train 265, 268
Index 687

Input and Output Control 469 Load Operation 260, 266


input formula parameters 198 Loading an Operation 264, 266
Input Material Settings, Editing for Recipes 244 Locked 322
Input Materials, Adding to Recipe 242 Locking 321
Input Materials, Changing in Recipe 243 Log Interval
input parameter elements 116 Description of 408
Input parameters 141 Process Log Group Editor 408
Insert a Function 445 Log Trigger
Insert a Phase 269 Description of 408
Insert an Operation 268, 269 Process Logger Group Editor 408
Insert Branch Object 273 LogEdit 13
Insert Loop Object 276 LogMngr 15
Insert Transition Object 270 Parameters of 62
Inserting Procedure Objects 268 LogMngr_ _See Process Log Manager 421
Installation Loop 258, 260, 262
Overview 19 Loop Object, Insert 276
Instance Loop Objects 276
Application 57 Loop, Deleting 283
Instances Lot 199
Adding Application Instances to Environment 59 Lot Code Element, Process Phase 118
Adding Applications 57 Lot Code Element, Transfer Phase 142
Application 57 Lot Code, Parameter Extension 468
Error Message 57 Lot ID 89, 319
Naming Applications 60 Lot Tracking 199, 201
Instruction List 337 low deviation element 142
Instrument Society of America (ISA) 3 Low Deviation Element, Process Phase 117
S88.01 Standard 3, 6 Low Deviation Element, Transfer Phase 142
Interlocked, Phase Status 465 Low Deviation, Parameter Extension 467
Interlocks 468, 472 Low Limit Element, Process Phase 117
Configuring for Process Class Phases 112 Low Limit Element, Transfer Phase 142
Configuring for Transfer Class Phases 136 Low Limit, Parameter Extension 467
Description of 78
interlocks 451 M
Interlocks, additional information 157
interlocks, viewing with Phase Logic Testing Tool 472 Managing Configurations 10
Intermediate, Defining 196 Manual Addition using a connected Scale 353, 356
Intermediates 187 Manual Addition using an unconnected Scale 353, 356
intermediates 203 Manual Addition, with Scale and without Scale 354,
InTouch 177 357
Access Name 176 Manual Allocation and Release, unit 346
Wizards 505 Manual Batch Execution 321
ISA S88.01 3 Manual Batch Mode 350
Item Manual Operation, phase execution 324
Definition in Tag Linker 178 manual operation, precautions 366
SuiteLink or DDE 178 Manual Operation, Warm Restart 366
Use Tag Name 178 Manual Phase 75, 76
manual phase 108, 132
J Manual Process Phase 120
Manual Process Phases 353, 355
Jump Mode Manual Process Phases with Material Input
Description of 360 Parameters 353
Manual Tag Creation and Assignment 157, 161
L Manual to Automatic mode change 351
Manual to Semi-automatic mode change 351
Library, Operations 250, 251 Manual Transfer Phase 138, 145
Licensing Manual Transfer Phase, Examples of 145
Viewing 56, 256 Manual Transfer Phases 356
LIFO 355 Manual Unit Selection 352
LIFO Materials Parameter 198 Master Recipe 8
LIFO Materials parameter 355 Description of 203
lm_tcp 47, 66 Material Automation Server 16
Index 688

Material Characteristics 196, 197 Model Editor 91


Material Description 196 Connections Tab 122
Material Genealogy 3 Edit Equipment Status Tab 149
Material ID 196 Edit Menu 95
Material ID Element, Process Phase 118 Edit Segments Tab 148
Material ID Element, Transfer Phase 143 File Menu 93
Material ID, Parameter Extension 468 Menus
Material Location Assignment Editor Edit/Connections 95
Starting 199 Edit/Equipment Status 96
Using 198 Edit/Processes 95
Material Locations 5 Edit/Segments 96
Material Name 196 Edit/Transfers 95
Material Resource Planning (MRP) 6 Edit/Units 95
Material Status Edit/Units of Measure 96
Viewing 189 File/Exit 95
Material Tracking 4 File/Print 94
material tracking 198 File/Print Preview 95
MaterialEdit 13 File/Print Setup 95
Materials File/Validate 93
Defining 196 Starting 92
Materials Editor 13, 187 Transfers Tab 127
Defining Materials 197 Units Tab 96
Defining Materials for 197 ModelDB 91
Description of 187 ModelEdit 12
Printing Materials Status 191 Modeling 92
Starting 196 Modeling_ _Model Editor 92
Using 196 Moving Procedure Objects 284
Materials Status MRP, Material Resource Planning 6
Filtering the Unit Assignment List 194 multiple instances, in recipes 205
Help Menu 195 multiple operation execution 273
Menus multiple phase execution 273
Edit/Material Locations 193 Multiple process instances 232
Edit/Materials Editor 193
File/Exit 192 N
File/Print 191
File/Print Preview 191 nesting branches 274
File/Print Setup 192 Nesting Procedure Objects 284
File/Validate 190 Not 447
View/Assigned Units 193
View/Find 194 O
View/Full List 194
View/Partial List 194 OCXBATCH.OCX 16
Reports 191 OLE for Process Control (OPC) 9
Materials Status Window One Time Schedule 398, 399
Starting 189 OPC 9, 14
Using 189 Open 321
Materials Tracking Operands
Management of 5 Description of 446
Materials, Adding to Recipe 246 Operation
Materials, Process Variables 241 Description of 206
MATERIALSVR.EXE 16 Operation Branch, Insert 273
Max Attribute 234 Operation Loop, Insert 276
Maximum Batch Size 204 Operation Name, Changing 285, 286
Memory Tag Manager 14 Operation Properties 286
MemTagMngr 14 Operation Transition 258, 260
Menu Operation Transition, Insert 270
I/A Batch Program 11 Operation, insert 268, 269
Min Attribute 234 Operation, Loading 264, 266
Minimum Batch Size 204 Operation, Save 285, 286
Mode/Status filtering in Batch Scheduler 315 Operation, Storing 265
Model Approach Comparisons 72 operation, validity of 264, 267
Index 689

Operations Library 250, 251 Phase Configuration, additional information 153


Operations Library, Using 251 Phase Control 7, 462
Operations Toolbar 260 Phase Control and Status 341
Operations, Examples of 206 Phase Control and Status Bits
Operator Display and Edit Configuration 161 Description of 77
operator station, description of 430 phase control bits 451
Operator Stations 434 Phase Control Buttons 338
Operator Stations Editor 434 Phase Control/Status Bits
Operator Stations, security 430 Configuring for Process Class Phases 111
Operators Configuring for Transfer Class Phases 135
Expressions 445 Phase Control/Status Bits, additional information 155
Other Material, Defining 196 Phase Done Status 465
Other Materials 187 Phase Held Status 464
output formula parameters 198 Phase Hold Command 463
Output Material Settings, Editing for Recipes 248 phase interlock tags 159
Output Materials, Changing in Recipe 247 Phase Interlocked Status 465
output parameter elements 116 Phase Interlocks 340
Output parameters 141, 208 Phase List 337, 341
Phase Logic 75, 76
P Description of 76
phase logic
P&ID,Using for Process Model 69 automatic phases 114
Parameter Extensions Phase Logic Blocks 76
Description of 467 Phase Logic Testing Tool 17, 470
Parameter Status 109, 133 Description of 470
Parameter Type Extensions 466 File Menu 471
Parameter Types 466 Help Menu 472
Parameters Menus
Application Parameters 61 File/Exit 471
Applications, Assigning with Environment Editor 60 Using 470
Assigning Values to Application 61 Phase Loop 262
Deleting from Applications 64 Phase Loop, Insert 276
Formula 77 Phase param tag read timeout 362
Phase 77 Phase Parameter Editor
Requiring in User-Defined Applications 66 Using during Batch Execution 342
Parentheses 447 Phase Parameter List 337
Password 425, 432 Phase Parameters
password encryption 432 Description of 77
Password Reuse 428 Phase Parameters, Automatic and Semi-Automatic
Password Timeout 428, 432 Transfer Phases, Examples of 140
Password, changing 425 Phase Properties 287
password, changing 432 Phase Ready Status 464
Password, security editor 425 Phase Reset Command 464
Passwords Phase Restart Command 463
Changing 17 Phase Run Status 464
phantom batch, description of 324 Phase Start Command 463
phantom batch, displaying 335 Phase Status 464
Phase 108, 132 phase status bits 451
Process 75 Phase Status, system shutdown 365
Phase Abort Command 463 Phase Tab, Phase Properties 288
Phase Aborted Status 465 Phase Transition 262
Phase Block 7 Phase Transition, Insert 270
Components of 455 Phase Types
Description of 450 Description of 75
Operational Flow Chart 452 Process Class 108, 132
Rules of Operation 450 Phase Types, Description of 270
Phase Block Design Guideline 449 Phase, insert 269
Phase Block Memory Guidelines 454 Phase/Batch Status parameter 330
Phase Branch 262 PhaseLogic 9, 17
Phase Branch, Insert 273 Phases
Phase Comments 340 Connectionless Model 71
Index 690

in Recipe Procedures 206 Process Instance, Deleting from Recipe 232


in Recipes 207 process instance, in recipes 228
Phases Toolbar 262 Process Instances 231
Power Failure Assign to Recipe 232, 233
Automatic Start-up after 67 Process Instances, Defining for Recipes 231
Preact Element, Process Phase 117 Process Instances, in recipes, example 229
Preact Element, Transfer Phase 142 Process Log Configuration
Preact, Description of 123 Creating 415
Preact, Parameter Extension 468 Description of 407, 408
premix 244 Process Log Database
Premixes 187 Description of 407, 408
Previewing Reports from Model Editor 95 Process Log Editor 13, 407
Printing Configuring Process Logs 414
Recipes 223 Creating Log Configuration 410
Printing from Model Editor 94 Deleting Log Configuration 412
Procedure 203 File Menu 410
Procedure Layout 257 Group Editor 414
Procedure Objects 258 Menus
Procedure, Recipe Edit/Groups 414
Description of 205 File/Exit 414
Procees and Transfer Tags File/New 410
when to use 83 File/Open 411
Process and Instrumentation Diagrams 69 File/Print 412
Process and Transfer Capabilities 75 File/Print Preview 413
process and transfer instances 265, 268 File/Print Setup 413
Process and Transfer Instances, in Recipes 204 File/Save 411
process and transfer phases File/Validate 411
in recipes 208 Menus File/Delete 412
Process Capabilities Printing Log Configuration 412
Defining 75 Reports 413
Description of 75 Starting 410
Process Class Using 410
Assign Units to Processes 103 Using Expression Editor 443
Assigning 100 Validating Log Configuration 411
Attributes 104 Process Log Group
Description of 74 Creating 415
Edit Process Class Phases 108 Process Log Group Editor
Edit Process Class Tags 106 Log Interval 408
Phase Types 108, 132 Logging to a Printer 409
Unit Attribute Values 105 Logging to History 409
Unit Control Tags 102 Process Log Manager 407
Unit State Tags 102 Configuring 421
Process Class Attributes, in Recipes 234 Description of 421
Process Class Instance Editor 231, 233 Information Manager 421
Process Class Instances, Assign Units 233 Restarting 410
Process Class Instances, Attributes 234 Runtime 421
Process Class Instances, Unit Selection 234 Starting 421
Process Class Phase Stopping 421
Control Buttons 110 Using 421
Formula Parameters 114 Process Logger Group Editor
Interlocks 112 General Logging Criteria 408
Phase Control/Status Bits 111 Log Trigger 408
Save History 109 Process Logger Manager 15
Process Class Tag 106 Process Logging 407
Process Class, Deleting from Recipe 230 Description of 407
Process Classes Process Model
Assign to Recipe 231 Comprehensive 70
Process Classes and Generic Phases in Recipe Editor 88 Connection Tag 81
Process Classes, Assigning in Recipes 230 Connectionless 71
process classes, in recipes 204, 228 Example 87
process instance, assign to operation 269 Hybrid 71
Index 691

Process Tag 81 Process variable parameters 140


System Tag 81 process variable parameters, changing 248
Transfer Tag 81 process variable parameters, description of 116
Unit Tag 80 Process Variables 248
process model database 249 Process variables 141
process model database, trains 299 process variables 249
Process Model Editor 91, 100 Processes_ _See Process Class 74
Starting 92 processing capabilities 4
process model editor Product ID 204
formula parameters 208 Product Name 204
Process Model Tag, Description of 79 production tracking record 198
Process Model, Example Plant 90 Program Menu
Process Modeling 69, 70, 91 I/A Batch 11
Adding Process Classes 101 Programmable Logic Controller (PLC) 4, 14
Adding Units 97 Programs, Configuration and Runtime
Change Process Class Name 101 Summary of 12
Change Unit Name 97 proprietary format, recipe 221
Deleting a Process Class 102 Purge Job 651
Deleting a Units 98
Description of 4 Q
Diagram of 87
Edit Connection Tags 126 Quantity 199
Edit Connections 122 Quantity Assignment, Batch Size 320
Edit Equipment Status 149 Question List 337
Edit Processes 100 Quotes 447
Edit Segments 148
Edit Transfer Tags 130 R
Edit Transfers 127
Edit Unit Tags 98 Raw Materials 187
Edit Units 96 Read/Write tags 86
Editing Connections 123 Read-only tags 86
Editing Transfers 128 Ready 321
Editor 69 Ready, Phase Status 464
Guideline 5 Ready, Unit Status 459
Help Menu 96 Reassigning a Valid Unit 190
Phase Logic 76 Recipe
Process Classes, Unit Control Tags 102 Approval 217
Process Classes, Unit State Tags 102 Approved for Production 217
Process Modeling Editor 12 Approved for Test 217
process modeling editor 248 Creating 257
Process Modeling Editor, Process Class Attributes 234 Deleting 215
Process Modeling Steps, Guideline 73 Done By as Author 214
Process Phase equipment dependent 205
Description of 75 equipment independent 205
Process Phase Types Saving 215
Automatic 75 Validate 216
Manual 75 Recipe Allocation and Release, unit 346
Semi-Automatic 76 recipe approval levels 217
Process Phases 352, 354 Recipe Approvals 217
Process Phases with Material Input Parameters 353 Recipe Assignment to a Batch 320
Process Phases with Material Output Parameters 354 Recipe Automation Server 16
process phases, entering as process tags 98 Recipe Editor 13, 203
Process Tag Edit Menu 225
Guideline 83 File Menu 211
Process Tag to Unit Tag Resolution by Batch Help Menu 256
Manager 89 Menus
Process Tag, Description of 81 Edit/Equipment Requirements 228
Process Tags Edit/Formula Inputs 241, 245
Example of 88 Edit/Operations Library 251
process variable editor 241 Edit/Process Variables 249
process variable elements 116 Edit/Recipe Header 225
Index 692

Edit/Recipe States 252 Report Configuration 390


Edit/Recipe Types 253 Report Log
Edit/Zoom In Operations 255, 333 Administration 658
Edit/Zoom In Phases 256, 333 Report Schedule Properties 397
Edit/Zoom Out Operations 255, 333 Report Scheduling 394
Edit/Zoom Out Phases 256, 333, 334 Report Triggering during batch execution 361
File/Approvals 217 Report Viewing 402
File/Delete Recipes 215 Reporting System 385
File/Exit 225 Reports
File/History 218 Predefined 405
File/Import/Export 220 reports
File/New 212 deleting 659
File/Open 212 Train Editor 302
File/Print 223 Reset, Phase Command 464
File/Print Preview 224 Restart a Batch 349
File/Print Setup 224 Restart, Phase Command 463
File/Save 214 Restart, Unit Command 459
File/Sync and Validate Recipes 221 Restarting
File/Validate 216 Process Log Manager 410
Printing Recipes 223 Restore Job 653
Process Classes and Generic Phases 88 restrict access to applications 435
Reports 224 Retain Recipe Approvals 325
Starting 210 Retries 428
Using 210 Run 321
Using Expression Editor 443 Run, Phase Status 464
View Menu 253 Run, Unit Status 460
Recipe Editor, Hi and Low Elements 142 Runtime
Recipe filtering in Batch Scheduler 314 Update 50
Recipe Header, Editing 225 Runtime Programs
Recipe History, Viewing 218 Summary of 13
Recipe ID 89, 204 Runtime Recipe Procedure Jumps 308
Recipe Management Runtime Recipe Procedure Jumps, Description of 360
Description of 6 Runtime Security 439
Recipe Name 204
Recipe Procedure Creation, Basic Steps 210 S
Recipe Procedure Mechanics 268
Recipe Procedure SFC Active X Control 16 S88.01 Batch Control Standard 3, 6
Recipe State 204 S88.01 Standard 203
Recipe State, Defining 252 Save Control Recipe 324
Recipe Synchronization 221 Save History, Process Class Phase 109
Recipe Type 204 Save History, Transfer Class Phase 133
Recipe Type, Assigning 227 Save Operation 265, 285, 286
Recipe Types, Defining 253 Save Runtime Equipment 325
recipe, parts of 203 SCADA 81
RecipeEdit 13, 16, 210 Scaling of Batches 6
Recipes Schedule window 327
Copying 220 Scheduling 4, 7
Moving 220 Description of 308
recipes External Systems 10
security for saving 214 Script Add-On Functions
Recipes, security options for 433 Descriptions of 526
Redundancy 4 Error Reference 538
redundancy 628 Obsolete DDE 537
Redundancy Manager 66 Overview 526
Registry Protocol 526
Editing the Batch Server name 660 Using 526
Editing the Information Server name 659 SecEdit 13, 424
Release Phase SecMngr 15, 47
in Recipes 208 Security
Removing a Unit Assignment 190 Adding a New Function 437
Report 289 Adding Applications 436
Index 693

Application Security Requests 440 Simulation Manager 14


Applications-Functions 435 sleep, for delaying batch file execution 68
Checked 437 Source Class Discharge Phase 71
Done By 437 Source Instance, Assigining 239
Enabling Application 436 Source Process Class, Assigning 128
Enabling Function Security 437 Source Unit, Assigning 124
Function Security Requests 441 space character, in Recipe Find 213
security Start, Phase Command 463
recipe approvals 217 Starting
Security API 423, 436, 437, 441 Environment Editor 55
Security Application Program Interface 423 Material Location Assignment Editor 199
Security Clearance Request 425 Materials Editor 196
Security Editor 13, 423 Materials Status Window 189
Edit Menu 427 Model Editor 92
File Menu 426 Process Log Editor 410
Help Menu 428 Recipe Editor 210
Menus Starting and Stopping Applications
Edit/Applications-Functions 427 from Environment Display 52
Edit/Operator Stations 427 Starting the Expression Editor 443
Edit/Security Levels 427 Starting the Security Manager 439
Edit/User Accounts 427 Start-up
File/Exit 426, 427 Automatic 67, 68
File/Print 426 State, find recipes by 213
File/Print Preview 427 State, Recipe 252
File/Print Setup 427 Station Types 20
security editor, default password 425 Status
Security Editor, using for the first time 425 Phase 464
Security Level 432 Unit 461
Security Levels, Assigning 429 Status, of a batch 321
Security Manager 15, 66, 423, 439 Storing an Operation 265
Security System 423 string tag 86
Description of 423 naming 86
Viewing Status of 51 SuiteLink 9, 14
Security System Configuration 428 Synchronization, Control System 365
security system, recipe author 214 System Class tags 81
Security, disable 428 System Connection tags 81
Security, enable 428 System Parameters
security, saving recipes 214 Editing 55
Segment 71, 178 Table of 56
Description of 79 System Segment tags 81
Segments 148 System Shutdown, phase status 365
Segments, Assigning 125 System Tag
Semi-Auto On Abort 351 Description of 81
Semi-Automatic Batch Execution 321 system tag, equipment status 150
Semi-Automatic Batch Mode 350 System Unit tags 81
Semi-Automatic Phase 76
Semi-automatic to Automatic mode change 351 T
Semi-automatic to Manual Mode mode change 351
Semi-Automatic Transfer Phase 138, 139 Tag
Semi-automatic Transfer Phases 356 Access Mode 86
Sequence of Operations 257, 338 Configuration 177
Sequence of Phases 257, 338 Connection Tag 81
Services, Windows NT 53 Data Class 86
SFC Toolbar 336 Data Classes 178
Shared Equipment Contention 358 Definition 84
Shutdown Description of 5, 79
Automatic 68 Entering a Description for 86
Shutting Down Environment Display 49 InBatch Memory Tag 178
SimMngr 14 Initial Value 178
Parameters of 62 Item Definition 178
Simulation 3 Process Model 79
Index 694

Process Tag 81 Timeout exceeded allowable value 362


Selection 177 TIMEOUT variable 67
System Tag 81 TIMFunc 16
Transfer Tag 81 TIMSec 16
Unit Tag 80 Tolerances, in Recipes 245
Using with Control Buttons 110, 134 Topic
Tag Interface Management 15 SuiteLink or DDE 176, 177
Tag Interface Management, when to use 557 Train 6, 89
Tag Linker Multiple Path Issues 318
Edit Menu 175 Train Assignment to a Batch 320
File Menu 170 train attributes 304
Help Menu 176 train creation
Menus guideline 303, 304
Edit/Access 175 Train Editor 13, 92, 299, 300
Edit/Export 175 Description of 299
File/Export Tags 171 File Menu 302
File/Import Tags 172 Menus
File/Print 173 File/Exit 302, 303
File/Print Preview 173 File/Print 302
File/Print Setup 174 File/Print Setup 303
File/Runtime Export 170 Help Menu 303
File/Simulation Export 170 Help/About Train Editor 303
File/Validate 173 Help/Help Topics 303
Help/About Tag Linker 176 Using 300
Help/Help Topics 176 Train filtering in Batch Scheduler 315
View/Filter 175 train, additional units 232
View/Multiple Selection 176 train, in a recipe 232
View/Single Selection 176 Train, in Recipes 203
View Menu 175 TrainEdit 13
Tag Linker Editor 13 Trains
Tag Types and Useage 80 Assigning Units to 303, 304
tag, equipment status 150 Trains, Deleting Units from 98
TagLinker 5, 13, 92 trains, in recipes 228
Tagname Transfer Capabilities
Automatically Generated 85 Defining 75
Definition 84 Description of 75
Delimiters 84 Transfer Class
Description of 84 Description of 75, 127
Naming Convention 84 Edit Phases 132
Structure 84 Transfer Class Instance Editor 237
Tags Transfer Class Phase
Assigning Links to 178 Control Buttons 134
Creating 5 Formula Parameters 138
Phase Control/Status 111, 135 Interlocks 136
Using with Phase Logic, Guideline 83 Phase Control/Status Bits 135
tags Save History 133
phase interlock 159 Transfer Classes 127
Tags, assigning to control buttons 155 Transfer Instance, Deleting from Recipe 237
TagView 9, 17 transfer instance, in recipes 228
Target Element, Process Phase 116 Transfer Instances 237
Target Element, Transfer Phase 141 Assign to Recipe 237
Target, Parameter Extension 467 Transfer Instances, Defining for Recipes 237
Templates, Crystal Reports 405 Transfer Instances, in Recipes 238
Terminating an Application 48 Transfer Instances, in recipes, example 229
TIM, when to use 557 Transfer Phase
TIMBatch 15 Configuration 138
Parameters of 64 Types 138
time remaining, active transition 344 Transfer Phases with Material Input Parameters 355
Timeout Transfer Phases with Material Output Parameters 357
Changing Application Timeout 67 transfer phases, in recipes 228
System Variable 67 Transfer Tag
Index 695

Description of 81 Unit State system tags 330


Guideline 83 Unit State Tags
Transfer Tags 130 Description of 102
Transfers, Editing 128 Unit Status 461
Transfers_ _See Transfer Class 75 Unit Tag
Transition 258, 260, 262 Guideline 83
Transition Expression, Examples 272 Unit Tag, Description of 80
Transition Logic Unit Tags 98
in Recipes 209 Units of Measure
transition logic operators 209 Description of 79
Transition Logic, in objects 270 UOM_IN.txt 152
Transition Object, Description of 270 UOM_OUT.txt 152
Transition Object, Insert 270 Update
Transition Objects 270 Configuration 50
Transition Properties, loops 276 Environment 49, 50
transition wait, displayed in Batch Display 344 Runtime 50
Type, Assigning 227 Update Runtime, Materials Editor Unit Selection 201
Type, Defining for Materials 196 URL
Type, find recipes by 213 Batch Administration 643
Types, Recipe 253 Batch Reporting 389
User Accounts 646
U Configuring for SQL Server 646
User Accounts, security 431
Undo 259, 261, 263 User-Defined Applications 64
Undo, Objects 278 Assigning Parameters to 65
Unexpected Status Error 347 Configuring Parameters for 66
Unilink Manager 14 Using
UnilinkMngr 14 Environment Display 47
Uninteruptable Power Supply (UPS) 68 Phase Logic Testing Tool 470
Graceful Shutdown using 67, 68 Train Editor 300
Unit 70, 74, 178 Using Batch Display 322
Assign Materials to 200 Using Batch Scheduler 310
Assigning a Material to 198 Using Expression Editor 443
Description of 74 Using Security Editor 424
unit Using the Phase Logic Testing Tool 470
assigning for material tracking 198 Utilities
Unit Abort Command 459 Change Password 17
Unit Abort Tag 102 Phase Logic Testing Tool 17
Unit Aborted Status 460 TagView 17
Unit and Connection Tags Utility Programs 17
when to use 83
Unit Attribute Values 105 V
Unit Control 330, 458
Unit Control Tag 102 Valid Characters for Tagnames 84
Unit Control Tags validate
Description of 102 security configuration 426
Unit Control/State Tags 102 Validate Recipes 221
Unit Held Status 460 Validation
Unit Hold Command 459 Materials Database 190
Unit Hold Tag 102 of Tags 9
Unit of Measure 248 Process Model 93
Unit of Measure, Material 196 Recipe 7, 216
Unit Procedures Library 250 Validation Errors
Unit Ready Status 459 Correcting for Materials Database 190
Unit Restart Command 459 Verification, Batch Initialization 317
Unit Restart Tag 102 Version History
Unit Run Status 460 of Recipes 6
unit selection 234 View
Unit Selection Mode and Allocation 345, 352 System Application Status 51
unit selection, at runtime 234 View Doc/Ack Doc Button 338
Unit Selection, Process Class Instances 234 View Partial List check box, Materials Editor 197
Index 696

Viewing Material Status 189

W
Wait 344
WaitHour 447
WaitMin 447
WaitSec 447
Warm Restart 363
Warning
Batch Client Security 437
Batch Manager and Trains 318
Deleting Model Components 92
Phase Logic Testing Tool 471
Process Log Manager, Stopping 421
Restarting Batches 365
Wonderware Logger 14
Work In Process (WIP) 5
WWLogger 14

Z
Zoom In 259, 261, 263
Zoom Out 259, 261, 263

Anda mungkin juga menyukai