Managing Unit Allocation Conflicts and Chained Batches in SIMATIC BATCH
In SIMATIC BATCH (including V7.1 and V9.0 with Flat Basic Recipes), a batch that references an instruction or phase assigned to Batch Unit B during an early substructure in Unit A will immediately attempt to allocate Unit B. If a preceding batch is currently occupying Unit B, the new batch halts and blocks at Unit A. To prevent unit allocation deadlock in chained batches, decouple Unit B from early condition checks: implement level checks and warning instructions within Unit A using cross-unit condition tags, configure 'Late Unit Allocation' (Späte Belegung) so Unit B is requested only when material transfer commences, and eliminate redundant NOP release blocks.
Table of Contents
- Executive Summary
- Architecture and Fundamental Mechanics
- Step-by-Step Implementation Procedure
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
Executive Summary
In multi-unit batch plants automated with SIMATIC BATCH (such as a two-stage reaction and blending system comprising Unit A and Unit B), achieving maximum throughput requires pipelining or chaining batches: Batch 2 should begin processing in Unit A while Batch 1 completes processing in Unit B. However, recipe developers frequently encounter severe execution blocks where Batch 2 halts prematurely in Unit A. This bottleneck occurs because an early substructure in Recipe A (e.g., verifying whether Unit B is ready or checking its level) contains an operator instruction or phase explicitly assigned to Unit B. SIMATIC BATCH interprets this assignment as a command to seize exclusive ownership of Unit B, causing Batch 2 to halt because Unit B is still busy with Batch 1. Proper ISA-88 unit allocation management resolves this conflict.
Architecture and Fundamental Mechanics
The ANSI/ISA-88 batch control model enforces strict boundaries regarding Unit Allocation and Resource Locking:
1. ISA-88 Unit Allocation Philosophy
In SIMATIC BATCH:
- A Batch Unit (Teilanlage) represents a major physical processing entity (reactor, crystallizer, mixing vessel).
- To maintain recipe integrity and prevent contamination, a unit can only be allocated to one batch at a time.
- When an active recipe reaches any phase, step, operator dialog, or substructure assigned to Unit B, SIMATIC BATCH initiates a unit allocation request.
- If Unit B is free, it becomes locked to the requesting batch. If Unit B is currently allocated to another batch, the requesting batch enters a hold/wait state at that exact step until Unit B is released.
2. The Flaw of Early Cross-Unit Substructures
In the described scenario:
- While Batch 2 is processing in Unit A, a substructure checks if Unit B's level is OK, with warning dialogs assigned to Unit B.
- Because the instruction is tagged with Unit B, SIMATIC BATCH demands ownership of Unit B before evaluating the branch!
- Meanwhile, Batch 1 is still occupying Unit B to finish its final discharge.
- Result: Batch 2 stalls in Unit A, destroying production concurrency.
3. Decoupling and Late Allocation Architecture
- Cross-Unit Variable Evaluation: Checking Unit B's level does not require allocating Unit B. Unit A can read Unit B's analog level as an external process variable or transition condition.
- Late Allocation (Späte Belegung): Unit B should only be requested immediately prior to the transfer step (
Transfer_A_to_B). - NOP Block Elimination: Using empty NOP blocks assigned to Unit B to 'release' it is poor practice; SIMATIC BATCH provides native unit deallocation properties at the conclusion of recipe procedures.
Step-by-Step Implementation Procedure
To restructure the recipe and enable uninterrupted chained batch execution:
Step 1: Reassign Early Condition Dialogs to Unit A
- Open the Master Recipe in the SIMATIC BATCH Recipe Editor.
- Navigate to the early substructure located within Unit Procedure A.
- Locate the warning and alarm operator instructions.
- In the object properties of each instruction, change the Unit Allocation from
Unit BtoUnit A. - The warning message will still inform the operator regarding Unit B's status, but the execution token belongs to Unit A, preventing an allocation request for Unit B.
Step 2: Implement External Transition Checks in CFC / SFC
- In SIMATIC Manager, interconnect the level measurement from Unit B (
LIT_UnitB.PV_Out) to the transition condition logic of Unit A's SFC phase. - In the Recipe Editor, configure the alternative branches to evaluate the level condition variable without referencing Unit B as a processing unit.
Step 3: Remove Redundant NOP Blocks
- In the Recipe Editor, delete the NOP block that was placed to release Unit B.
- Ensure that Unit B is only introduced into the recipe topology at the actual transfer operation (
Operation: Transfer to Unit B).
Step 4: Configure Late Unit Allocation
- In the recipe header or Unit Procedure B properties, verify that Allocation Mode is configured for At Start of Unit Procedure (Late Allocation).
- Save, validate, and release the modified Master Recipe for production.
Verification
To confirm that chained batches execute concurrently:
-
Chained Batch Scheduling Test:
- In BATCH Control Center (BCC), create and start Batch 1.
- Wait until Batch 1 completes processing in Unit A and transfers to Unit B.
- While Batch 1 is actively running in Unit B, create and start Batch 2 in Unit A. -
Concurrency Verification:
- Monitor Batch 2 as it enters the substructure checking Unit B's level.
- Confirm that Batch 2 executes the check smoothly and continues processing in Unit A without waiting for Batch 1 to release Unit B. -
Handoff Test:
- Verify that Batch 2 only pauses at the transfer step if Batch 1 has not yet vacated Unit B.
Limitations and Operational Precautions
Operational limitations and precautions:
- Physical Resource Sharing: If Unit A and Unit B share common physical transfer piping or wash lines, shared equipment module (EMT) arbitration must be configured to prevent transfer collisions.
- Recipe Validation: In pharmaceutical and validated food applications, modifying Master Recipe structures requires formal change control documentation under FDA 21 CFR Part 11 / GMP.
- Version Specifics: SIMATIC BATCH V7.1 handles flat recipes differently than hierarchical recipes; ensure the recipe header structure conforms to the installed license tier.
- Commercial Disclaimer: Verify all SIMATIC BATCH license tiers (PO / Unit quantities) with an authorized Siemens distributor or the Siemens Industry Mall.
Engineer FAQ
Why did Batch 2 halt in Unit A while Batch 1 was running in Unit B?
Batch 2 contained an instruction or phase in an early substructure assigned to Unit B. SIMATIC BATCH attempted to allocate Unit B exclusively, halting because Unit B was still occupied by Batch 1.
Can Unit A evaluate process conditions from Unit B without allocating Unit B?
Yes. Transition conditions can evaluate process variables or signals from Unit B without declaring Unit B as an allocated recipe unit.
What is Late Unit Allocation (Späte Belegung)?
It is a configuration strategy where a batch unit is allocated only at the moment its physical operation begins, rather than at the start of the overall batch.
Is a NOP block required to release a unit in SIMATIC BATCH?
No. SIMATIC BATCH automatically deallocates units at the completion of a Unit Procedure or batch; manual NOP blocks often introduce allocation bugs.
What standard governs unit allocation and batch recipe structures?
The ANSI/ISA-88 (S88) batch control standard.
Technical References
- [SIMATIC BATCH V7.1 / V9.0 Operating Manual
- ISA-88 Batch Control Systems Standards and Best Practices
- SIMATIC Process Control System PCS 7 Released Modules and Licenses
Related Articles
- Propagating SFC Type Parameter Modifications to SIMATIC BATCH Recipes and Formulas
- Reassigning Block Contacts in SIMATIC PCS 7 SFC Type Instances
- Engineering Best Practices for Implementing SFC Types, EMTs, and EPHTs with CMTs in SIMATIC PCS 7
Related Tags
- SIMATIC BATCH
- Unit Allocation
- ISA-88 Recipes
- Chained Batches
- Batch Concurrency