Phase Template: reactor-pressure-test¶
Reactor N₂ pressure-hold leak test. Use this phase as an integrity
gate before any batch that needs a sealed reactor. It pressurizes
the vessel to test_pressure, closes the N₂ supply, holds for
hold_time, and measures the pressure decay. The reactor passes if
decay is within max_decay. A fail self-issues COMMAND('Hold') so
an operator must investigate before the procedure continues.
Where to find it¶
System endpoint → Equipment Library → Phases → select reactor-pressure-test.
graph TD
Start([initial]) --> CV[close_vent]
CV -->|"vent_valve.FB = FALSE"| ON[open_n2]
ON -->|"n2_valve.FB = TRUE"| PR[pressurizing]
PR -->|"pressure_sensor.PV >= test_pressure"| CN[close_n2]
CN -->|"n2_valve.FB = FALSE"| RS[record_start]
RS --> H[holding]
H -->|"holding.T >= hold_time"| CK[check_decay]
CK -->|"start − end <= max_decay<br/>priority 0"| PASS[pass]
CK -->|"start − end > max_decay<br/>priority 1"| FAIL[fail<br/>COMMAND('Hold')]
PASS --> V[vent]
FAIL --> V
V -->|"pressure_sensor.PV <= 1.1"| CVF[close_vent_final]
CVF -->|"vent_valve.FB = FALSE"| Done([complete])
style FAIL fill:#ffe0b2,stroke:#e65100,stroke-width:2px,color:#000
See Phases for the diagram conventions.
What you see when it runs¶
| Element | Meaning |
|---|---|
| Active step | Which integrity stage is running — pressurizing, holding, check_decay, etc. |
| Shared variables | start_pressure and end_pressure captured in step actions for the decay calculation |
| Parameters | test_pressure, hold_time, max_decay |
HMI screenshot pending
An annotated capture of a running reactor-pressure-test phase
on the holding step will be added here.
Parameters¶
| Parameter | Type | Unit | Range | Default | Required |
|---|---|---|---|---|---|
test_pressure |
REAL | bar | 1.5-6.0 | 3.0 |
yes |
hold_time |
TIME | — | 30s-5m |
1m |
yes |
max_decay |
REAL | bar | 0.05-1.0 | 0.15 |
yes |
TIME parameters take duration strings ("45s", "1m30s", "5m"),
not bare numbers.
Required control modules¶
| Role | Module type | Description |
|---|---|---|
n2_valve |
discrete-valve | Nitrogen supply valve |
vent_valve |
discrete-valve | Reactor headspace vent valve |
pressure_sensor |
analog-sensor | Reactor headspace pressure measurement |
Capability: reaction.
How it works¶
Each scan the SFC engine walks a multi-step integrity test with a selective divergence on the decay check and a selective convergence on the vent:
close_ventcloses the vent valve and waits forFB = FALSE.open_n2opens the N₂ supply and waits forFB = TRUE.pressurizingholds until the headspace pressure reachestest_pressure.close_n2closes the N₂ supply and waits forFB = FALSE.record_startcaptures the decay-test start pressure into a shared variable.holdingholds forhold_time.check_decaycaptures the end pressure and diverges by priority:priority 0(pass) ifstart - end <= max_decaypriority 1(fail) if decay exceeds the limit
- The
failstep self-issuesCOMMAND('Hold'). The phase parks in ISA-88 Held so the operator canResetand retry, orStopand dispatch maintenance. - Both branches converge on
vent, which opens the vent valve and holds until pressure bleeds to ≤ 1.1 bar. The vessel is always vented cleanly whether the test passed or failed. close_vent_finalcloses the vent beforecomplete.
This is an integrity test phase. Both false-pass and false-fail
are possible failure modes. The max_decay budget should be chosen
with both in mind. Pair with an absolute-pressure alarm. See
Phases § Integrity tests.
Used in recipes¶
Try it¶
- HMI endpoint → Batch Execution → + New →
sim-reactor-heat-m1→ Start - The
pressure-testis the first step — watch it run before anything else - Open Data endpoint → Trends on
pressure_sensor.PVto see the ramp totest_pressure, the hold, and the vent - On a passing test the phase advances straight through to the
next step (
n2-inert). To exercise the fail branch, editreactor-sim'sspec.simulationto inject a pressure decay that exceedsmax_decay. The phase will park in Held