Phase Template: filter-charge¶
Feed slurry into the filter-dryer and build a filter cake under vacuum. Use this phase as the first step of every filter-dryer recipe. It prepares the vessel by opening the filtrate drain and pulling vacuum, then admits slurry through the feed valve and watches the cake-level sensor to close the feed at the target height.
Where to find it¶
System endpoint → Equipment Library → Phases → select filter-charge.
graph TD
Start([initial]) --> OF[open_filtrate_valve]
OF -->|"filtrate.FB"| SV[start_vacuum]
SV -->|"vacuum.POS >= 80% setpoint"| WV[wait_vacuum]
WV -->|"pressure <= 500 mbar"| OE[open_feed]
OE -->|"feed.FB"| FG[filtering]
FG -->|"cake_level >= target<br/>priority 0"| CF[close_feed]
FG -->|"T >= feed_timeout<br/>priority 1"| CF
CF -->|"NOT feed.FB"| DR[drain_residual]
DR -->|"flow < 0.5"| Done([done])
See Phases for the diagram conventions.
What you see when it runs¶
| Element | Meaning |
|---|---|
| Active step | Which vacuum/fill stage is currently running |
| Parameters | target_cake_height, vacuum_setpoint, feed_timeout |
| Live PVs | cake_level_sensor.PV, filtrate_flow_sensor.PV, and pressure_sensor.PV drive the transitions |
HMI screenshot pending
An annotated capture of a running filter-charge phase during
the filtering step will be added here.
Parameters¶
| Parameter | Type | Unit | Range | Default | Required |
|---|---|---|---|---|---|
target_cake_height |
REAL | mm | 10-500 | — | yes |
vacuum_setpoint |
REAL | % | 10-100 | — | yes |
feed_timeout |
TIME | — | 1m-1h |
— | yes |
TIME parameters take duration strings ("45s", "1m30s", "5m"),
not bare numbers.
Required control modules¶
| Role | Module type | Description |
|---|---|---|
feed_valve |
discrete-valve | Slurry feed valve from reactor |
filtrate_valve |
discrete-valve | Filtrate drain valve |
vacuum_controller |
analog-control | Vacuum pump controller |
pressure_sensor |
analog-sensor | Vessel headspace pressure |
cake_level_sensor |
analog-sensor | Cake height on filter plate |
filtrate_flow_sensor |
analog-sensor | Filtrate flow rate |
moisture_sensor |
analog-sensor | Cake moisture content |
Capability: filtration.
How it works¶
Each scan the SFC engine:
open_filtrate_valveopens the filtrate drain and waits forfiltrate.FB = TRUE.start_vacuumwritesvacuum_setpointtovacuum_controller.CMDand waits until the vacuum pump has ramped to 80 % of setpoint.wait_vacuumholds until the headspace pressure drops to ≤ 500 mbar, confirming the vessel is evacuated.open_feedopens the slurry feed valve.filteringis the main work step with two priority-ordered exit transitions:priority 0(nominal):cake_level >= target_cake_heightpriority 1(safety):filtering.T >= feed_timeout— a backstop if the cake never builds (line blockage, upstream empty, or sensor fault)
close_feedcloses the feed and waits forfeed.FB = FALSE.drain_residualholds until filtrate flow drops below 0.5 (cake has stopped producing filtrate) beforedone.
This is a level-guard phase with an embedded safety timer. Pair
with a hardware-limit alarm on the cake-level sensor and verify
feed_timeout is set on every recipe call. See
Phases § Level-guard phase.
Used in recipes¶
Try it¶
- HMI endpoint → Batch Execution → + New →
sim-filter-dry-m1→ Start - Expand the procedural tree until the
chargestep activates onfilter-dryer-1 - Watch the phase walk through
open_filtrate_valve→start_vacuum→wait_vacuum, each transition gated by feedback or a PV - Open Data endpoint → Trends and chart
pressure_sensor.PV,cake_level_sensor.PV, andfiltrate_flow_sensor.PVto see the cake build and the residual drain