Dynamic Unit Allocation Based on Recipe Header Parameters in SIMATIC BATCH

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

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:

  1. Unit Classes: When multiple physical vessels perform identical technological functions (such as five mixing tanks: Mixer_1 through Mixer_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.

  2. 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.

  3. 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.

  4. 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 IDLE state, claims the unit, and transitions RUP2 into RUNNING on 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:

  1. 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 Class Class_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.

  2. 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, select Unit.
    - In the 'Unit class' dropdown, select Class_Mixers.
    - (Optional) Set a default unit value from the candidate list.
    - Click 'OK' to save the header parameter.

  3. Configure Unit Allocation on the Target RUP:
    - In the recipe chart, select the mixing Recipe Unit Procedure (RUP2).
    - Right-click RUP2 and select 'Object Properties'.
    - Switch to the 'Unit Allocation' tab.
    - Under 'Candidate units', select 'From Unit Class' and choose Class_Mixers.
    - Under 'Allocation rule', choose 'Via parameter'.
    - In the 'Parameter' dropdown, select Target_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'.

  4. 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 in RUP1 determines the tank: open the phase properties in RUP1, navigate to 'Parameters', and configure a 'Target Interconnection' passing the determined unit to Target_Mixing_Unit.
    - Verify that a Synchronization Line connects the completion of RUP1 to the start of RUP2.

  5. 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

  1. In BatchCC, create a new batch from the updated master recipe.
  2. In the batch creation window, verify that Target_Mixing_Unit allows selection from Mixer_1 through Mixer_5.
  3. Select Mixer_3 and start the batch.
  4. Monitor the BatchCC execution view: confirm that RUP1 executes on the dosing skid.
  5. Upon completion of RUP1, observe RUP2: verify that BatchCC allocates Mixer_3, locks the unit against other batches, and executes all mixing phases on Mixer_3.
  6. 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

Related Articles

Related Tags

  • SIMATIC BATCH
  • BatchCC
  • Unit Allocation
  • Recipe Header
  • Unit Class
  • PCS 7 V9.0
20 respuestas