← Robotics & Automation Studio
⚙️

PLC Ladder Logic Simulator

Toggle inputs, watch contacts and coils energize live

Momentary Start button latches a motor run command until Stop is pressed or the E-Stop trips.

Start (I0)
| |
OR
Seal M0
| |
Stop (I1)
| |
E-Stop (I2)
⊘|⊘
M0 / Q0
( )
Field Inputs
Output State
○ De-energized

About the PLC Ladder Logic Simulator

This simulator lets you toggle field inputs and watch three of the most common ladder logic rung patterns evaluate in real time: a start/stop seal-in (latching) circuit, a safety interlock built from two normally-open contacts in series, and an on-delay timer (TON). Each pattern shows up constantly in real industrial control programs, and understanding how contacts and coils energize is the foundation for reading and writing any PLC ladder program.

Reading ladder logic: contacts and coils

A ladder rung is read left to right, like a physical relay circuit: contacts (shown as | | for normally-open, or with a slash for normally-closed) control whether power flows down the rung, and a coil at the right end represents an output — that could be a physical output like a motor contactor or lamp, or an internal memory bit used elsewhere in the program. A normally-open (NO) contact passes power when its associated bit is true (energized); a normally-closed (NC) contact passes power when its bit is false, and blocks power when the bit is true. Multiple contacts in series (side by side) form an AND condition — all must pass power for the coil to energize. Contacts in parallel branches form an OR condition — any one branch passing power is enough.

The seal-in (latching) circuit

A momentary Start pushbutton can't hold a motor running on its own — the moment you release it, its contact opens. The seal-in pattern solves this with a second, parallel branch: a normally-open contact from the coil's own output bit (M0), wired in parallel with the Start contact. Once M0 energizes, its own contact holds ("seals in") the rung true even after Start is released — because now M0 OR Start satisfies the first branch. The Stop pushbutton (wired as a normally-closed contact in series, so pressing it opens the circuit) and the E-Stop (also normally-closed, so a healthy/reset E-Stop passes power and a tripped one cuts it) are both in series after the seal-in branch, meaning either one breaks the latch and de-energizes the coil immediately. This exact pattern — seal-in plus series stop conditions — is the single most common rung in industrial motor control.

Series AND interlocks for safety

Safety interlocking is usually implemented as contacts in series precisely because AND logic is fail-safe by construction: if any single input drops out — a light curtain trips, a guard gate opens, an E-stop is pressed — the series path breaks and the output de-energizes. This is why safety-related rungs are built from AND conditions (series) rather than OR (parallel): an OR-based rung would keep the output energized as long as any one condition is satisfied, which is the wrong failure direction for safety. Real safety-rated interlocks typically use hard-wired safety relays or a safety PLC in addition to (not instead of) this kind of standard ladder logic, per IEC 62061 / ISO 13849, but the underlying series-AND logic pattern is the same one shown here.

Timers: TON, TOF, and why the distinction matters

A TON (timer-on-delay) begins accumulating time as soon as its input condition goes true, and its output only energizes once the accumulated time reaches the preset — exactly what this simulator shows for the 3-second delay. If the input goes false before the preset is reached, the accumulator resets to zero. TON timers are used anywhere a delay before action is needed: motor soft-start sequencing, purge timers before an ignition sequence, or debounce delays. A TOF (timer-off-delay) works the opposite way — its output energizes immediately when the input goes true, and only de-energizes some time after the input goes false (used for things like keeping an exhaust fan running for a few minutes after a light switches off). Both are built into virtually every PLC instruction set as standard timer blocks, not built from raw contacts and coils.

Frequently asked questions

Why does the seal-in circuit need the coil's own contact wired back into the rung?

Because a momentary pushbutton's contact only stays closed while it is physically held — a PLC scan cycle running many times per second would see the Start contact go true for one scan and false again as soon as the operator releases the button. Without the seal-in (feedback) contact, the output would only stay energized for that single scan. Wiring the coil's own output bit as a parallel OR branch means that once the coil energizes, it keeps its own condition satisfied — this is the ladder-logic equivalent of a self-holding relay, and is the standard way to convert a momentary input into a maintained (latched) output.

Why is the Stop button wired as normally-closed, not normally-open?

Wiring the Stop pushbutton's physical contact as normally-closed (so it passes power when NOT pressed, and breaks the circuit when pressed) means a broken wire or a Stop button that fails open acts the same as someone pressing Stop — the circuit fails to the safe (stopped) state. If Stop were wired normally-open instead, a broken wire would silently disable the Stop function while looking normal, which is a real safety hazard. This "fail-safe" wiring convention is why E-Stops and Stop circuits are almost universally normally-closed in industrial control, even though the ladder logic contact for a normally-closed Stop button looks like a NOT in the program.

What happens if I press Start and Stop at the same time in the seal-in scenario?

In this simulator (and in real ladder logic evaluated left to right, top to bottom each scan), Stop wins — because the Stop contact is in series after the seal-in OR branch, if Stop is pressed (its NC contact opens) the entire rung is broken regardless of what Start or the seal-in state are doing. This is a deliberate, common safety pattern: Stop conditions are placed in series (AND) so that they always have the ability to override a Start condition, never the other way around.

Why is AND (series) used for safety interlocks instead of OR (parallel)?

Because AND logic fails to the safe state. If any one series contact opens — a sensor loses power, a wire breaks, a guard is opened — the whole rung de-energizes and the machine stops or stays disabled. An OR (parallel) arrangement would do the opposite: the output stays energized as long as at least one branch is still satisfied, meaning a single failed-open safety input wouldn't stop the machine. Real safety systems add redundancy and self-monitoring on top of this basic pattern, but the core logic structure — series AND for "all conditions must be met to run" — is fundamental to how safety interlocks are built.

How is this different from the PLC Scan Cycle Simulator in the SCADA studio?

The SCADA studio's PLC Scan Cycle Simulator focuses on the scan cycle itself — the Input Scan / Program Execution / Output Update / Housekeeping phases a PLC repeats continuously, and how that timing affects a single fixed program. This tool instead focuses on ladder logic patterns themselves — several different common rung structures (seal-in, interlock, timer) you can compare side by side to see how contact and coil arrangements produce different behavior, independent of scan-cycle timing detail.

🎓

Try our Robotics & Automation Studio

More calculators, simulators, and guides for this discipline.

Related tools & guides

PLC Ladder Logic Programming GuidePLC Scan Cycle SimulatorCobot Safety-Distance CalculatorWhich Robot Type Should You Use?