Phase Template: tank-mix¶
Fill the mixing tank to a target level, agitate for the configured duration, and drain back to a target floor level. Use this phase for a self-contained mix operation on the 500 L mix tank. It gates every hand-off (fill, mix, drain) behind an operator confirmation prompt, making it safe to run attended without direct command access.
Where to find it¶
System endpoint → Equipment Library → Phases → select tank-mix.
graph TD
Start([initial]) --> OI[open-inlet]
OI -->|"inlet.FB"| FL[filling]
FL -->|"level >= fill_level"| CI[close-inlet]
CI -->|"NOT inlet.FB"| CF[confirm-fill]
CF -->|"prompt ack"| SA[start-agitator]
SA -->|"agitator.POS >= 80% speed"| MX[mixing]
MX -->|"mixing.T >= mix_duration"| STA[stop-agitator]
STA -->|"agitator.POS < 2"| CM[confirm-mix]
CM -->|"prompt ack"| OO[open-outlet]
OO -->|"outlet.FB"| DR[draining]
DR -->|"level <= drain_level"| CO[close-outlet]
CO -->|"NOT outlet.FB"| CD[confirm-drain]
CD -->|"prompt ack"| Done([complete])
See Phases for the diagram conventions.
What you see when it runs¶
Clicking the active phase on HMI endpoint → Batch Execution opens a detail panel with:
| Element | Meaning |
|---|---|
| Active step | The current SFC step — the phase parks on confirm-fill, confirm-mix, and confirm-drain until an operator answers the prompt |
| Prompt | When parked on a confirm step, a modal appears asking the operator to acknowledge before the phase advances |
| Parameters | fill_level, agitator_speed, mix_duration, drain_level resolved from the recipe formula |
| Elapsed | Step-elapsed timer — relevant during mixing |
HMI screenshot pending
An annotated capture of a running tank-mix phase parked on a
confirm prompt will be added here.
Parameters¶
| Parameter | Type | Unit | Range | Default | Required |
|---|---|---|---|---|---|
fill_level |
REAL | L | 10-500 | — | yes |
agitator_speed |
REAL | % | 10-100 | — | yes |
mix_duration |
TIME | — | 10s-10m |
— | yes |
drain_level |
REAL | L | 0-50 | 5 |
no |
TIME parameters take duration strings ("45s", "1m30s", "5m"),
not bare numbers.
Required control modules¶
| Role | Module type | Description |
|---|---|---|
inlet_valve |
discrete-valve | Tank inlet valve (on/off) for filling |
outlet_valve |
discrete-valve | Tank outlet valve (on/off) for draining |
agitator |
analog-control | Tank agitator |
level_sensor |
analog-sensor | Tank level measurement |
Capability: mixing.
How it works¶
Each scan the SFC engine drives one active step. The chart has three segments with an operator-prompt gate between each:
- Fill:
open-inletcommands the inlet open and waits for feedback,fillingwatches the level sensor untilPV >= fill_level, thenclose-inletcloses the valve and waits forFB = FALSE. - Operator confirm (
confirm-fill): aPROMPT()writes to the phase's prompt channel. The transition holds until the operator responds on the phase detail panel. - Mix:
start-agitatorwritesagitator_speedto the agitator and waits forPOSto reach 80 % of the setpoint,mixingholds formix_duration,stop-agitatorzeroes the agitator and waits forPOS < 2. - Operator confirm (
confirm-mix): second prompt. - Drain:
open-outlet,drainingwatches the level sensor untilPV <= drain_level,close-outlet. - Operator confirm (
confirm-drain): final prompt beforecomplete.
This is a level-guard phase. The primary termination for fill and
drain is a process measurement from the level sensor, and no timer
backs it up. If the level sensor freezes, the phase hangs forever
without a timeoutSeconds backstop. Pair with a hardware-limit alarm
on the level sensor. See
Phases § Level-guard phase.
Used in recipes¶
Try it¶
- HMI endpoint → Batch Execution → + New →
sim-tank-blend-m1→ Start - Expand the procedural tree until the
mixstep becomes active onmix-tank-1 - Watch the level sensor climb as the inlet opens. The phase pauses
on
confirm-fillwhen the level reachesfill_level - Respond to the prompt on the phase detail panel — the phase
advances to
start-agitatorand the agitator ramps up - Watch the mix duration tick down, respond to the next prompt, then watch the drain and respond to the final prompt