IOModule: filter-dryer-sim¶
The simulated I/O module for filter-dryer-1. Use this module to
run every filtration, wash, dry, and discharge phase without
physical hardware. It hosts all the channels a Nutsche filter-dryer
needs (cake level, moisture, vessel temperature/pressure, filtrate
flow, weight, jacket heater control, vacuum pump control, agitator,
and the four valves: feed, filtrate, wash, vent) and references
the reusable filter-dryer SimulationPreset for the vessel's
physics model, mapping the preset's generic address names onto this
module's tag addresses via spec.simulation.addressMap.
Where to find it¶
System endpoint → Setup → IO Modules → select filter-dryer-sim.
HMI screenshot pending
An annotated capture of the filter-dryer-sim detail view will be added here.
What you see¶
| Element | Meaning |
|---|---|
| Channels | Per-channel name, direction, signal type, and address |
| Controller | pharma-controller |
| Protocol | simulation |
| Preset | filter-dryer — supplies the behavior list |
| Address map | Binds preset generic names to this module's tag addresses |
| Behaviors | Inherited from the preset (Expr + ValveFeedback). Inline overrides on the IOModule win over the preset; the reference plant uses none. |
Channels¶
Analog: cake level, vessel temperature, vessel pressure, filtrate flow, cake moisture (LOD proxy), weight, jacket heater command and feedback, vacuum pump command and feedback, agitator command and feedback.
Discrete: feed valve drive + feedback, filtrate valve drive + feedback, wash valve drive + feedback, vent valve drive + feedback.
Properties¶
| Property | Value |
|---|---|
| Controller | pharma-controller |
| Protocol | simulation |
| Address | sim://local |
| Preset | filter-dryer (see 05a-simulation-presets.yaml) |
| Address map | Defined on spec.simulation.addressMap |
| Namespace | site-riverbend |
How the simulation works¶
The vessel's physics model lives on the filter-dryer
SimulationPreset. Each tick the simulation engine evaluates the
preset's behaviors (expanded at reconcile time via this IOModule's
addressMap):
- Vessel pressure integrates vacuum-pump evacuation against
air ingress through a closed vent and leakage. It drives the
fd-vacuum-decay-testintegrity check. - Cake level grows while the feed valve is open and filtrate
drains, decaying slowly thereafter. It is the endpoint for
filter-charge. - Filtrate flow is proportional to the vacuum level and
inversely proportional to cake thickness (Darcy-style). Used by
filter-washto detect cake saturation between cycles. - Moisture decays exponentially with vessel temperature and
vacuum, driving the
vacuum-dryendpoint. Starts near the slurry's nominal water content, decays toward a floor value. - Vessel temperature lags toward
jacket_cmdwith a time constant that reflects the cake's thermal mass. - ValveFeedback drives feedback toward command for each actuator.
Deterministic given a fixed seed.
Used by¶
filter-dryer-1— the unit runtime pod for the filter-dryer reads every tag the vessel's control modules need
Try it¶
- Process → riverbend → pharma-area → sim-cell → filter-dryer-1
- Start
sim-filter-dry-m1and watch pressure pull down during the vacuum-decay test, filtrate flow during charge and wash, and moisture drop during dry - Open Data endpoint → Trends on
pressure_sensor.PV,cake_level_sensor.PV,moisture_sensor.PV, andfiltrate_flow_sensor.PVfor a full picture of vessel dynamics - Inject a vacuum leak via
spec.simulation.faultsto fail thefd-vacuum-decay-testintegrity check and see the phase park in ISA-88 Held