Skip to content

Phase Template: tank-transfer

Transfer mixing-tank contents downstream by opening the discrete outlet valve for a fixed duration, then closing it. It is the timed, fire-and-forget counterpart to the feedback-gated drain inside tank-mix. Use it when a downstream unit (for example the reactor in a blend-then-react recipe) is ready to receive and a fixed transfer window is acceptable.

Where to find it

System endpointEquipment LibraryPhases → select tank-transfer.

graph TD
    Start([initial]) --> OO[open_outlet]
    OO -->|"open_outlet.T >= duration"| CO[close_outlet]
    CO --> Done([done])

See Phases for the diagram conventions.

What you see when it runs

Element Meaning
Active step open_outlet while transferring; close_outlet during the final close
Parameters duration resolved from the recipe formula
Bound modules The concrete control-module instance the outlet_valve role resolved to
Elapsed Step-elapsed timer compared against duration

HMI screenshot pending

An annotated capture of a running tank-transfer phase will be added here.

Parameters

Parameter Type Unit Range Default Required
duration TIME 10s-10m yes

TIME parameters take duration strings ("45s", "1m30s", "5m"), not bare numbers.

Required control modules

Role Module type Description
outlet_valve discrete-valve Tank outlet valve (on/off)

Capability: mixing.

How it works

A linear timed phase. Each scan the SFC engine:

  1. Activates open_outlet, which opens the outlet valve (outlet_valve.CMD = 1.0).
  2. Holds on open_outlet until open_outlet.T >= duration.
  3. Advances to close_outlet, which closes the valve.

The holding, stopping, aborting, and resetting charts close the outlet. Any interruption therefore stops the transfer, and the restarting chart reopens the outlet.

This is a timed phase. The timer cannot confirm material actually moved or that the transfer finished. Pair with the valve's MISMATCH alarm and a level or weight check in the surrounding procedure. Use a level-guard phase (like the drain segment of tank-mix) when the transferred quantity matters. See Phases § Timed phase.

Used in recipes

No shipped reference recipe uses this template. The multi-unit recipes drain via tank-mix's level-guarded segment instead. It is a building block for composing your own.

Try it

  1. System endpointRecipes → create a draft recipe with a tank-transfer step on mix-tank-1 (the outlet_valve role binds to mt1-outlet-valve)
  2. Approve and start it from HMI endpointBatch Execution
  3. Open the outlet valve's faceplate and watch CMD/FB go high for duration, then return to closed

Modify this template

Want to clone this and adapt it for your own equipment? Walk through Adaptation Guide for the full clone → rebind → deploy → run workflow, and Parameter Binding to understand how recipe values flow through to control-module tags.