Phase Template: fd-vacuum-decay-test¶
Filter-dryer vacuum decay leak test. Use this phase as an integrity
gate before any filtration or drying recipe. It pulls the vessel
down to target_vacuum, closes the pump, holds for hold_time, and
measures the pressure rise. The vessel passes if the rise is within
max_rise. 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 fd-vacuum-decay-test.
graph TD
Start([initial]) --> CV[close_vent]
CV -->|"NOT vent.FB"| SV[start_vacuum]
SV -->|"vacuum.POS >= 80% setpoint"| EV[evacuating]
EV -->|"pressure <= target_vacuum"| STV[stop_vacuum]
STV -->|"vacuum.POS < 2"| RS[record_start]
RS --> H[holding]
H -->|"T >= hold_time"| CK[check_rise]
CK -->|"end − start <= max_rise<br/>priority 0"| PASS[pass]
CK -->|"end − start > max_rise<br/>priority 1"| FAIL[fail<br/>COMMAND('Hold')]
PASS --> V[vent]
FAIL --> V
V -->|"pressure >= 950 mbar"| CVF[close_vent_final]
CVF -->|"NOT vent.FB"| 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 |
| Shared variables | start_pressure and end_pressure captured for the rise calculation |
| Parameters | target_vacuum, vacuum_setpoint, hold_time, max_rise |
HMI screenshot pending
An annotated capture of a running fd-vacuum-decay-test phase
on the holding step will be added here.
Parameters¶
| Parameter | Type | Unit | Range | Default | Required |
|---|---|---|---|---|---|
target_vacuum |
REAL | mbar | 50-500 | 200 |
yes |
vacuum_setpoint |
REAL | % | 50-100 | 90 |
yes |
hold_time |
TIME | — | 30s-5m |
1m |
yes |
max_rise |
REAL | mbar | 5-100 | 20 |
yes |
TIME parameters take duration strings ("45s", "1m30s", "5m"),
not bare numbers.
Required control modules¶
| Role | Module type | Description |
|---|---|---|
vacuum_controller |
analog-control | Vacuum pump controller |
pressure_sensor |
analog-sensor | Vessel headspace pressure measurement |
vent_valve |
discrete-valve | Headspace vent valve for repressurization |
Capability: filtration.
How it works¶
Each scan the SFC engine:
close_ventcloses the vent valve and waits forFB = FALSE.start_vacuumwritesvacuum_setpointtovacuum_controller.CMDand waits for the pump to ramp to 80 % of setpoint.evacuatingholds until headspace pressure reachestarget_vacuummbar.stop_vacuumzeroes the pump and waits forPOS < 2.record_startcaptures the hold-start pressure.holdingholds forhold_time.check_risecaptures the end pressure and diverges by priority:priority 0(pass) ifend - start <= max_risepriority 1(fail) if rise exceeds the limit — self-issuesCOMMAND('Hold')
- Both branches converge on
vent, which opens the vent valve and holds until pressure climbs to ≥ 950 mbar. The vessel is always repressurized to atmospheric whether the test passed or failed. close_vent_finalcloses the vent beforecomplete.
This is an integrity test phase. Pair with an absolute-vacuum
alarm and a timeoutSeconds backstop on the phase call. See
Phases § Integrity tests.
Used in recipes¶
Try it¶
- HMI endpoint → Batch Execution → + New →
sim-filter-dry-m1→ Start - The
vacuum-decay-testis the first step onfilter-dryer-1— watch it before the charge phase - Open Data endpoint → Trends on
pressure_sensor.PVto see the pull-down totarget_vacuum, the hold, and the vent - To exercise the fail branch, edit
filter-dryer-sim'sspec.simulationto inject a leak during the hold. The phase will park in Held onCOMMAND('Hold')