Click + Blocks, drag a block onto the canvas, then drag from a block's output dot to another block's input dot to wire it up. Add any dynamic block (lag, integrator, PID...) and Simulate runs it live over time; a purely static diagram computes instantly.
Verified against published standard
STATICt = 0.0 sStatic diagram — computes instantly. Add a dynamic block to enable Run.
Instrument Tag Library
Define real instrument tags here (FT-101, PIC-201, XV-301...) once, then select them from a list when configuring a field I/O or final-control block, instead of only ever seeing the generic b1/b2 block id.
Scenario Presets
Save the current value of every field input on THIS page (every DI, AI, and Manual Value block) under a name, then load it back any time to jump straight to that operating condition — "Full Load", "Startup", "Sensor Fault Test" — instead of re-entering each value by hand.
Analog (static)
Summer (Σ)
Averaging (Σ/n)
Gain (K)
Bias (+/-)
Multiply (×)
Divide (÷)
Ratio Station (× ratio + bias)
High Select (>)
Low Select (<)
Median Select
Absolute Value
High Limit
Low Limit
Deadband
Square Root
Exponential (xⁿ)
Function (f(x))
Transfer (T)
Manual Value (A)
Tag Reference
Logic (static)
AND
OR
NOT
XOR
NAND
NOR
M-out-of-N Voter
Comparator (>)
Dynamic (time-stepped)
Lag (1st order)
Derivative (d/dt)
Lead-Lag
Integrator (∫)
Totalizer (Σ, resettable)
Rate Limiter
Dead Time
PID Controller
SR Latch (Reset-Dominant)
SR Latch (Set-Dominant)
Time Delay (TON/TOF)
Pulse Timer (one-shot)
Toggle (Alternator)
Counter
Peak Hold (Max)
Track/Hold (Sample & Hold)
On/Off Controller (Hysteresis)
First-Out Annunciator
Pulse Generator
Ramp Generator (f(t))
Fault Insert (Diagnostic)
Signal Generator (Sine/Square/Triangle/Sawtooth)
Rate-of-Change Alarm (d/dt)
Deviation Alarm (SP vs PV)
High Limit Alarm
Low Limit Alarm
Field I/O Terminals (DI/DO/AI/AO)
DI (Digital Input)
AI (Analog Input)
DO (Digital Output)
AO (Analog Output)
Final Control Elements
Motor (M)
Control Valve
Control Valve (Actuator Dynamics)
Motor-Operated Valve (MOV)
SOV (Solenoid Valve)
Indicator Lamp
Drag a block onto the canvas to add it, or tap here then tap the canvas.
Pages (shared tag database):
Page 1✎
Block Properties
Alarm Summary
No active alarms.
Most recent first — this session only
Live Trend
Watch how a signal actually evolves over time, the way a real DCS trend does — not just its current value. Add any block's output to the chart; it starts recording the moment you press Run.
Last 60 s, scrolling
About This Calculation
SAMA (Scientific Apparatus Makers Association) symbols are the standard notation for control and interlock logic diagrams across the power industry, part of the same lineage as the ISA/MCAA "Functional Diagramming of Instrument and Control Systems" standard — the same summing junctions, high/low/median selects, limiters, and manual/auto transfer stations that appear throughout real combustion control and permissive logic. This tool lets you wire your own chain of standard blocks — static/algebraic blocks, a full logic-gate family (AND/OR/NOT/NAND/NOR/XOR) plus an M-out-of-N safety voter, and genuine time-stepped dynamic blocks (lag, derivative, integrator, a resettable totalizer, a real Auto/Manual PID faceplate, an on/off hysteresis controller, track/hold, ramp generators, timers, a first-out annunciator) — and watch every output update live, including a scrolling trend chart and a full Hi-Hi/Hi/Lo/Lo-Lo alarm summary with acknowledge and event log, rather than only viewing pre-built loops.
Frequently Asked Questions
What’s the difference between this and the Control Loops page?
Control Loops shows complete, pre-built simulations of specific real plant control loops (drum level, combustion control, and so on), each already wired up and ready to run. This tool is for building your OWN logic from individual SAMA blocks — summers, selects, AND/OR gates, and genuine dynamic blocks like PID, lag, and timers — to check how a specific piece of interlock, permissive, or control logic behaves for exactly the combination you need, not just the pre-built examples.
Why can a block only reference an earlier block, not a later one?
A real SAMA diagram is read left to right — signals flow forward, never backward into an earlier summing junction on the same sheet. Enforcing that here means the chain evaluates in one deterministic pass with no risk of a circular reference, exactly matching how the diagram would actually be drawn and read. A genuine feedback loop (like a PID controlling the process it reads back from) is still fully supported — it’s resolved correctly using a one-step simulation delay once you add a dynamic block, the same way a real control loop’s feedback path works.
What happens if I remove a block that another block depends on?
The dependent block’s input automatically falls back to a constant value (0) instead of being left broken — you’ll see it change and can re-wire it to a different source if needed.
Are dynamic blocks like lag, integrator, or timers included?
Yes — lag, derivative, lead-lag, integrator, a resettable totalizer, rate limiter, dead time, a ramp/time-function generator, a full anti-windup PID controller (with a real Auto/Manual faceplate mode and bumpless transfer, just like a real DCS), an on/off hysteresis controller, a track/hold (sample-and-hold), both Reset-dominant and Set-dominant SR latches, a first-out sequence annunciator, a time-delay (ON/OFF-delay) timer, a one-shot pulse timer, and a free-running pulse generator are all available alongside the static/algebraic SAMA blocks (summers, averaging, differencing, high/low/median selects, an M-out-of-N safety voter, limiters, exponential, manual/auto transfer stations, AND/OR/NOT/NAND/NOR/XOR, comparators). Add any dynamic block to a diagram and Simulate mode activates automatically, stepping the whole chain forward in time with a Run/Pause/Reset clock and an optional live trend chart.
Can I build real safety voting logic like 2oo3, not just plain AND/OR?
Yes — the M-out-of-N Voter block is the standard SIS architecture (1oo2, 2oo2, 2oo3, 1oo3, 3oo3) as one configurable block: it outputs TRUE once at least M of its connected inputs are TRUE. 2oo3 specifically is genuinely different from a plain AND or OR gate — it tolerates any single input disagreeing (a stuck or spurious sensor) without either a nuisance trip or a loss of protection, which is exactly why real safety instrumented systems use it. Median Select does the equivalent job for analog signals: it outputs the middle of three inputs, so one wildly failed transmitter (high or low) never affects the result.
Can I configure alarm limits and see them on the diagram?
Yes — any block with an assigned instrument tag can have Hi-Hi/Hi/Lo/Lo-Lo alarm limits configured in its Properties panel. An active, unacknowledged alarm shows a pulsing red or amber border directly on the block, and every alarm across every page of the diagram appears in the Alarm Summary panel with an acknowledge workflow and a timestamped event log — the same alarm banner pattern a real DCS operator station uses.