Skip to content

UnitProcedureTemplate: reactor-cip-cycle

A complete CIP cycle for a pharma reactor vessel: pre-rinse, hot caustic wash, intermediate rinse, conditional hot acid wash, final rinse with pH endpoint verification. Use this UnitProcedureTemplate at the top of a reactor-specific CIP master recipe. It mirrors the cip-vessel-cleaning template used for the mix tank, but targets the reactor's unit-specific control modules (wfi_valve, outlet_valve, jacket_controller, ph_sensor) via reactor-specific phase templates.

Referenced directly by the sim-reactor-cip-m1 master recipe. The recipe's procedure has two unit-procedure-level steps: a one-phase unit procedure wrapping the reactor-pressure-test phase (an integrity check, wrapped in a subChart so it sits at the same level per ISA-88 §5.3.4 homogeneity) followed by this unit-procedure template.

Where to find it

System endpointEquipment LibraryUnit Procedures → select reactor-cip-cycle.

graph TD
    Start([initial]) --> PR[pre-rinse]
    PR --> CW[caustic-wash]
    CW --> IR[intermediate-rinse]
    IR --> AW["acid-wash<br/>(skip_if_zero: acidWashRequired)"]
    AW --> FR[final-rinse]
    FR --> Done([done])

Linear five-step sequence. The only conditional is acid-wash, which the reactor-cip-hot-wash-op operation skips internally via its own skip_if_zero parameter bound to acidWashRequired. No SFC-level divergence is needed at this layer.

What you see when it runs

Element Meaning
Unit procedure node The top-level node of the reactor's procedural tree
Operation children The five reactor-specific operations listed below
Active operation Highlighted on the tree; click in to see its child phase

HMI screenshot pending

An annotated capture of a running reactor-cip-cycle procedural tree will be added here.

Why reactor-specific

The reactor's cleaning topology differs from the mix tank's:

Resource Mix tank Reactor
Water inlet inlet_valve (on/off) wfi_valve (on/off)
Drain outlet_valve (on/off) outlet_valve (modulating)
Heating temp_controller (analog-control) jacket_controller (analog-control on the reactor jacket)
Conductivity sensor yes no
pH sensor yes (for process use) yes (for CIP final-rinse endpoint)

Because the reactor uses a different set of roles, the generic cip-rinse-op and cip-hot-wash-op operations (which bind to inlet_valve / outlet_valve / agitator) don't apply directly. The reactor instead has three thin reactor-specific operation templates wrapping the existing reactor-specific phase templates.

Operations

Each step of this unit procedure template calls one reactor-specific operation template. Each operation wraps exactly one phase. The operations exist so the UnitProcedureTemplate can call OperationTemplate resources per ISA-88 layering, and they add no behaviour of their own.

# Step Operation Phase Description
1 pre-rinse reactor-cip-rinse-op reactor-cip-rinse WFI pre-rinse to flush gross residue through the outlet valve
2 caustic-wash reactor-cip-hot-wash-op reactor-cip-hot-wash Hot NaOH wash for organic soil — jacket-heated, agitated, held for contact time
3 intermediate-rinse reactor-cip-rinse-op reactor-cip-rinse WFI rinse to remove caustic residue
4 acid-wash reactor-cip-hot-wash-op reactor-cip-hot-wash Hot phosphoric acid wash for inorganic scale — skipped when acidWashRequired = 0 via the operation's skip_if_zero gate
5 final-rinse reactor-cip-ph-rinse-op reactor-cip-ph-rinse WFI rinse with pH endpoint — a pass prompts the operator to confirm cleanliness; a fail self-issues Hold for investigation

Capability: reaction.

Parameters

The unit procedure template exposes parameters per operation step, named with a prefix indicating which step it configures. All are optional with defaults, and the master recipe binds each one to a same-named recipe parameter. TIME parameters take duration strings ("45s", "1m30s", "5m"). A bare number is not a duration.

Parameter Type Unit Default
preRinseFillLevel REAL L 500
preRinseAgitateSpeed REAL % 40
preRinseDuration TIME 5m
causticFillLevel REAL L 600
causticFillRate REAL % 75
causticWashTemp REAL degC 75
causticJacketOutput REAL % 80
causticAgitateSpeed REAL % 60
causticContactTime TIME 30m
interRinseFillLevel REAL L 500
interRinseAgitateSpeed REAL % 40
interRinseDuration TIME 5m
acidWashRequired REAL 0/1 gate 1
acidFillLevel REAL L 500
acidWashTemp REAL degC 60
acidJacketOutput REAL % 70
acidAgitateSpeed REAL % 50
acidContactTime TIME 20m
finalRinseFillLevel REAL L 600
finalRinseAgitateSpeed REAL % 50
finalRinseDuration TIME 5m
phTarget REAL pH 7.0
phTolerance REAL pH 1.0

How it works

The batch controller expands this template into a five-operation SFC when the batch starts. Each operation wraps exactly one reactor-specific phase, and the unit procedure advances when the current operation completes.

  1. pre-rinse flushes gross residue through the outlet valve.
  2. caustic-wash runs a jacket-heated NaOH contact hold.
  3. intermediate-rinse removes caustic before the acid wash.
  4. acid-wash runs only if acidWashRequired = 1. Otherwise skip_if_zero bypasses it.
  5. final-rinse acts as the release gate. After the rinse drains, the phase reads the pH sensor. Within tolerance of phTarget, it prompts the operator to confirm the reactor is clean. Outside tolerance, it self-issues COMMAND('Hold') so an operator must investigate before the cycle continues.

Used in recipes

  • sim-reactor-cip-m1 — reactor CIP master recipe. The recipe calls this unit procedure template once, after a one-phase unit-procedure step wrapping the reactor-pressure-test phase.

Try it

  1. HMI endpointBatch Execution+ Newsim-reactor-cip-m1Start
  2. The first step on reactor-1 is the one-phase unit procedure wrapping reactor-pressure-test. This unit procedure activates after the test passes
  3. Expand the procedural tree to see this template at the top with five operation children
  4. Click into each operation to watch its single child phase run