Dynamic Unit Allocation Based on Recipe Header Parameters in SIMATIC BATCH
In SIMATIC BATCH (V8.1 through V9.1), configuring a Recipe Unit Procedure (RUP) to automatically allocate one of multiple candidate units (e.g., selecting one of five mixing tanks) based on a Recipe Header parameter requires establishing a Parameter of data type 'Unit' in the Master Recipe Header. Set the candidate units in the target RUP's properties to the shared Unit Class, change the allocation rule to 'Via parameter', and bind the allocation setting directly to the header Unit parameter.
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
Flexible batch manufacturing requires recipes capable of executing across diverse equipment configurations. A classic engineering challenge in SIMATIC BATCH occurs when a recipe consists of consecutive unit procedures—such as a dosing procedure (RUP1) followed by a mixing procedure (RUP2)—where the target unit for mixing must be dynamically selected from a pool of five alternative tanks based on a high-level recipe parameter.
Engineers frequently attempt to pass unit designations using standard string parameters (such as Target_Tank = "Tank_3"), only to discover that SIMATIC BATCH fails to parse the string during unit allocation. To achieve automated assignment, the batch technological model mandates the use of a typed Unit parameter associated with a common Unit Class. This article details the underlying ISA-88 batch allocation architecture and provides step-by-step instructions to configure header-driven dynamic unit allocation in BatchCC.
Architecture and Fundamental Mechanics
SIMATIC BATCH enforces strict technological abstraction based on the ISA-88 batch standard. In this framework, equipment units are not treated as arbitrary string identifiers, but as technological objects possessing defined attributes, state machines, and phase capabilities:
-
Unit Classes: When multiple physical vessels perform identical technological functions (such as five mixing tanks:
Mixer_1throughMixer_5), they are grouped into a 'Unit Class' (e.g.,Class_Mixers) in the PCS 7 Plant Hierarchy. The Unit Class guarantees that any recipe designed for that class can execute on any member unit. -
The Typed Unit Parameter: In the Master Recipe Header, a parameter can be created with the specific data type
Unit. When this type is selected, the parameter configuration mandates selecting a parent Unit Class. The parameter's allowable values are then populated automatically with the valid equipment units belonging to that class. -
Dynamic Allocation Rule ('Via Parameter'): Each Recipe Unit Procedure (RUP) defines how and when its physical unit is claimed:
- Static Allocation: Hardcoded to a specific unit at recipe creation.
- Rule-Based Allocation: 'Longest out of use', 'Operator selection', or 'Via parameter'.
When 'Via parameter' is selected, BatchCC links the allocation mechanism directly to the header parameter. When the batch is instantiated, BatchCC reads the parameter value and issues an allocation request for that specific unit. -
Sequence Coordination and Reservation: If the upstream dosing RUP determines the mixing tank based on ingredient chemistry or physical pipe routing, the dosing phase updates the header parameter before execution passes across the synchronization line. BatchCC validates that the specified unit is in the
IDLEstate, claims the unit, and transitionsRUP2intoRUNNINGon the chosen mixing vessel.
Step-by-Step Implementation Procedure
Follow these steps to configure dynamic unit allocation driven by recipe header parameters in SIMATIC BATCH:
-
Define and Synchronize the Unit Class:
- In SIMATIC Manager Plant View, ensure all 5 mixing tanks reside under a common hierarchy and are assigned to the Unit ClassClass_Mixers.
- Open the SIMATIC BATCH configuration dialog ('Options > SIMATIC BATCH').
- Select 'Compile' and then 'Transfer' to update the BatchCC database with the updated plant structure. -
Create the Unit Parameter in the Master Recipe Header:
- Open BatchCC and launch the Recipe Editor.
- Open your master recipe for editing.
- Click the 'Properties' button on the toolbar (or select 'Edit > Recipe Header...').
- Switch to the 'Parameters' tab and click 'New'.
- Enter the parameter name:Target_Mixing_Unit.
- In the 'Data type' dropdown, selectUnit.
- In the 'Unit class' dropdown, selectClass_Mixers.
- (Optional) Set a default unit value from the candidate list.
- Click 'OK' to save the header parameter. -
Configure Unit Allocation on the Target RUP:
- In the recipe chart, select the mixing Recipe Unit Procedure (RUP2).
- Right-clickRUP2and select 'Object Properties'.
- Switch to the 'Unit Allocation' tab.
- Under 'Candidate units', select 'From Unit Class' and chooseClass_Mixers.
- Under 'Allocation rule', choose 'Via parameter'.
- In the 'Parameter' dropdown, selectTarget_Mixing_Unit(the header parameter defined in Step 2).
- Under 'Time of allocation', select 'At start of RUP' (or 'At start of batch' depending on process requirements).
- Click 'OK'. -
Establish Target Interconnections or Operator Input:
- If the operator specifies the tank when creating the batch: the operator selects the target tank directly from the dropdown in the Batch Creation dialog.
- If an automated upstream phase inRUP1determines the tank: open the phase properties inRUP1, navigate to 'Parameters', and configure a 'Target Interconnection' passing the determined unit toTarget_Mixing_Unit.
- Verify that a Synchronization Line connects the completion ofRUP1to the start ofRUP2. -
Release and Validate Recipe:
- In the Recipe Editor, select 'Recipe > Check Consistency'. Ensure zero errors.
- Release the recipe: change status to 'Released for production'.
Verification
- In BatchCC, create a new batch from the updated master recipe.
- In the batch creation window, verify that
Target_Mixing_Unitallows selection fromMixer_1throughMixer_5. - Select
Mixer_3and start the batch. - Monitor the BatchCC execution view: confirm that
RUP1executes on the dosing skid. - Upon completion of
RUP1, observeRUP2: verify that BatchCC allocatesMixer_3, locks the unit against other batches, and executes all mixing phases onMixer_3. - Check the Batch Control Log to confirm that the allocation event records the unit name, timestamp, and parameter origin.
Limitations and Operational Precautions
All 5 mixing vessels must be fully interchangeable in terms of recipe phase types and control module interfaces; any vessel-specific differences must be managed using conditional branch steps within the RUP. If the unit designated by the parameter is currently running another batch, in manual maintenance mode, or faulted, BatchCC will hold the batch at the allocation boundary until the unit is freed. Verify all SIMATIC BATCH PO licensing and engineering packages with an authorized Siemens distributor or the Siemens Industry Mall.
Engineer FAQ
Why did BatchCC reject my STRING parameter for unit allocation?
BatchCC requires strong technological typing. Equipment units are structured objects belonging to Unit Classes, not free-form text strings. The parameter must have data type 'Unit'.
Can a batch automatically change the target unit if the chosen tank is busy?
Not automatically via a single parameter allocation rule. To implement fallback allocation, configure an alternative branch in the recipe or use the 'Longest out of use' allocation rule.
When does the unit allocation physically take place?
This depends on the 'Time of allocation' setting in RUP properties: either 'At start of batch' (reserves early) or 'At start of RUP' (reserves just-in-time).
Can I reallocate the unit while the RUP is actively running?
No. Once a unit is allocated and the RUP begins execution, the unit assignment is locked until the RUP completes and releases the unit.
How do I release a unit early if mixing completes before the recipe ends?
In the RUP properties, configure 'Time of release' to 'At end of RUP' or use an explicit 'Release Unit' step within the recipe.
Technical References
- SIMATIC Process Control System PCS 7 SIMATIC BATCH (V8.1 / V9.0 / V9.1) Manual
- SIMATIC BATCH Engineering System Guide
- Siemens Industry Online Support FAQ 109740190 - Flexible Unit Allocation in BatchCC
Related Articles
- Unit allocation based on a header parameter in BatchCC
- Configuring Process Parameters for Conditional Unit Allocation in SIMATIC BATCH
- Integrating CIP Units and Routing with Process Vessels in BRAUMAT and SIMATIC PCS 7
Related Tags
- SIMATIC BATCH
- BatchCC
- Unit Allocation
- Recipe Header
- Unit Class
- PCS 7 V9.0