PLC Time Relay Ladder Diagram Example (IEC 61131-3 TON / TOF / TP, 2026)
Share
Allen-Bradley · Siemens · Mitsubishi · 2026 How-to
By KOEED Engineering Desk · 2026-06-30 · 7 min read · How-to
A PLC time relay ladder diagram is still the fastest way to ship a deterministic delay on a conveyor, a pump, or a heating zone. This 2026 update rewrites the classic TON example using the IEC 61131-3 timer block family and shows how Allen-Bradley, Siemens, Mitsubishi, Omron, Schneider, and Mitsubishi-FX rung-by-rung programming compare against the new Structured Text (ST) shortcut.
AI Summary
- TON, TOF, and TP cover 90% of time relay logic; use TP for pulse, TOF for off-delay.
- A safe rung always closes a NC contact in parallel to the start signal as a watchdog.
- IEC 61131-3 timers port across Allen-Bradley, Siemens, Mitsubishi, Omron, and Schneider with only tag-mapping changes.
- Time bases in 2026 firmware default to 1 ms for AB CompactLogix and Siemens S7-1500, so scale old projects.
- For new code, add a TON done-bit seal-in around the output instead of latching an output coil.
2026 walk-through of a 10s conveyor start-delay using IEC 61131-3 TON/TOF/TP, brand tag names, and a new Structured Text shortcut for AB, Siemens, Mitsubishi, and Omron.
Why a time relay ladder diagram still matters in 2026
Time-delay relays used to be electromechanical devices bolted to a DIN rail. In 2026, the equivalent logic is a software timer function block running on a PLC scan, but the engineering discipline has not changed: define the inputs and outputs, prove the timing, and only then draw the rungs. The IEC 61131-3 standard defines three timer blocks that cover almost every time relay diagram on a factory floor today.
| IEC 61131-3 Block | Behavior | Typical Use Case | Default Time Base (2026 firmware) |
|---|---|---|---|
| TON (On-Delay) | Counts up while input is TRUE; sets Q after PT elapsed | Conveyor start-delay, motor soft-start | 1 ms (AB), 10 ms (Siemens S7-1500 default) |
| TOF (Off-Delay) | Holds Q TRUE until PT after input goes FALSE | Cooling-fan run-on, lamp dim-off | 1 ms (AB), 100 ms (Mitsubishi FX5) |
| TP (Pulse) | Generates a fixed-width pulse on a rising edge | One-shot solenoid, alarm acknowledge | 1 ms all major vendors |
Step 1 — Define the I/O and the timing value
Before opening the programming software, write down the I/O list. A well-scoped 10-second conveyor start-delay project uses one digital input (the start pushbutton, normally open), one digital output (the motor contactor coil), and a preset time variable that you can tune from the HMI later — never hard-code a constant inside a rung.
| Tag | Type | Description |
|---|---|---|
bStartPB |
BOOL — Input | Start pushbutton (NO), wired to local rack DI |
bStopPB |
BOOL — Input | Stop pushbutton (NC), wired to local rack DI |
tDelayPreset |
TIME — Tag | HMI-tunable preset, e.g. T#10s |
bMotorContactor |
BOOL — Output | Motor contactor coil, wired through motor starter |
bTON_Done |
BOOL — Tag | Timer done-bit (.Q on IEC, .DN on AB, .Q on Siemens) |
> Tip
Declare the preset as a TIME tag, not an integer. Storing milliseconds as INT invites the classic “why did the motor start instantly” bug when firmware defaults change in the next controller revision.
Step 2 — Draw the four ladder rungs
Once the I/O is fixed, the ladder is just four rungs. This pattern dates back to electromechanical time-relay circuits and is still the safest way to wire up a start-delay in 2026 because the NC parallel contact on Rung 2 acts as a hardware-style watchdog if the start contact sticks.
Rung 1 — Start condition
Place bStartPB in series with a normally-open contact of bTON_Done. Both must be TRUE for power to flow to the timer block on Rung 3.
Rung 2 — Safety watchdog
Put a normally-closed contact of bStopPB in parallel with Rung 1. The instant the operator presses Stop, the circuit drops and the timer resets. This is the modern equivalent of the old “fail-safe” relay contact.
Rung 3 — TON timer instance
Insert the IEC 61131-3 TON block. The IN input is the result of Rung 1+2. The PT input is tDelayPreset. The ET output tells you how many milliseconds have elapsed — expose it on the HMI for diagnostics.
Rung 4 — Seal-in the output
Place bTON_Done in series with bMotorContactor, then put a NO contact of the output in parallel with the timer done-bit. The motor stays energized until Stop opens the seal-in.
// Studio 5000 ladder export — four-rung conveyor start-delay
Rung1: | bStartPB |--[ ]--[/bTON_Done]--+
Rung2: | bStopPB |--[/]---------------+
Rung3: | (Rung1-2)--[TON Timer_1, PT:=tDelayPreset]--
Rung4: | bTON_Done +--[ ]--( bMotorContactor )--+
|
bMotorContactor ----+
! Warning
Never tie the motor contactor coil directly to the TON done-bit without the seal-in parallel contact. If the operator hits Start twice in quick succession, the contactor will chatter and the firmware’s surge counter may force a fault at the next cold start.
Step 3 — The same logic in IEC 61131-3 Structured Text
In 2026 firmware revisions, most vendors support running both ladder and Structured Text (ST) in the same project. ST is faster to revise, easier to version-control, and removes the “branch the rung” noise that comes with growing the design. Below is the exact equivalent of the four rungs above in ST, using the standard IEC TON instance.
// IEC 61131-3 Structured Text — conveyor start-delay (2026 style)
IF bStartPB AND NOT bStopPB THEN
ConveyorTimer(IN := TRUE, PT := tDelayPreset);
ELSE
ConveyorTimer(IN := FALSE, PT := tDelayPreset);
END_IF;
IF ConveyorTimer.Q AND (bMotorContactor OR bStartPB) THEN
bMotorContactor := TRUE;
ELSE
bMotorContactor := FALSE;
END_IF;
Drop this into a Function Block and reuse it across multiple conveyors — the HMI just writes to tDelayPreset to change the start-delay without touching the program. The ladder version still pays the bills when you need to hand a junior tech a printout and walk them through it.
Brand mapping: how each vendor names the same block
KOEED supplies spare parts for nine brands; each implements the IEC standard with a small naming tweak. The table below saves you a lunch break in the manuals — the bit you care about is the done-bit suffix.
| Brand | Programming Software | Timer Block | Done-Bit Tag |
|---|---|---|---|
| Allen-Bradley | Studio 5000 Logix Designer | TON (file & AOI) | .DN |
| Siemens | TIA Portal (S7-1200/1500) | IEC_TON_0 (FB) | .Q |
| Mitsubishi | GX Works 3 (iQ-R), GX Developer (FX) | OUT_T / TMR instruction | TS / TC coil |
| Omron | Sysmac Studio (NJ/NX) | TON (standard FB) | .Q |
| Schneider | EcoStruxure Control Expert | %TM (timer instance) | .Q |
| KEYENCE | KV Studio | TIM / TMH instruction | .C (contact) |
What changed since 2024
A few things moved between the original 2024 walkthrough and the 2026 firmware you are commissioning against today.
- Time-base defaults: Allen-Bradley CompactLogix 5380 and Siemens S7-1500 both ship with a 1 ms time base for TON, replacing the legacy 10 ms and 100 ms defaults that drove most legacy copy-paste bugs.
- IEC 61131-3 Edition 4 alignment: TP (pulse) and TOF are now first-class FBD blocks in every major vendor library — you no longer have to construct a pulse from two TONs in series.
- Safety watchdog best practice: the 2024 example used a parallel NC contact; the 2026 edition of IEC 61508 now explicitly recommends a separate safety-rated input module rather than relying on rung logic alone. The ladder still helps, but real SIL-rated systems use a dedicated safety PLC.
- IEC 61499 function blocks: distributed timer blocks now route over EtherCAT and Profinet without extra wiring; useful for multi-rack conveyor lines.
Note
All rung logic in this article is described in plain English. For everything else on the BOM — chassis, I/O, contactors, timers, drives — send a one-line note to Moritta@KOEED.COM and our engineering desk replies with active stock and a quotation within 24 hours.
Common pitfalls & troubleshooting
Most ladder-diagram issues with time-delay logic fall into three buckets. Walk through them in order before you call the OEM.
| Symptom | Likely Cause | Fix |
|---|---|---|
| Motor starts instantly on button press | Timer preset stored as INT, not TIME | Re-declare tag as TIME and rescale |
| Timer never reaches done | Scan-time too long vs. time base | Switch to interrupt-driven task or extend preset |
| Output chatters | Missing seal-in contact on Rung 4 | Add parallel NO contact of motor output |
| Block transfer fails on upload | Firmware-revision mismatch | Match ACD version to controller firmware |
Cross-Reference
Migrating an old SLC 500 timer file to a CompactLogix 1756-L73? The S:FS timer preset tag maps cleanly to a TON instance in Studio 5000. See the full walkthrough on our SLC 500 to ControlLogix migration guide for the rung-by-rung cross-reference.
Migration difficulty: low for pure timers, medium when MSG / PID blocks are involved.
Commissioning a timer relay ladder soon?
Send your BOM (CPU, I/O, timer bases, contactors) to Moritta@KOEED.COM. Nine brands, active and obsolete stock, quote within 24 hours.
Send My BOM →Related on KOEED Blog
- SLC 500 to ControlLogix Migration Guide (2024 Update)
- Modbus CRC16 — How It Works and How to Validate It in Production
- Choosing Between PowerFlex 525 and PowerFlex 755 for Mid-Size Lines
- S7-300 to S7-1500: What Changes in the Wiring Diagram
- How to Wire a 1756-EN2T to an Existing ControlLogix Chassis
KOEED Engineering Desk
Industrial-automation editors at KOEED. We write ladder, Structured Text, and migration guides for Allen-Bradley, Siemens, Mitsubishi, Omron, Fanuc, Schneider, Yaskawa, Panasonic, KEYENCE, and KLÜBER lubrication hardware. Reach the team at Moritta@KOEED.COM.
Frequently asked questions
Which IEC 61131-3 timer should I use for a conveyor start-delay?
Use TON (On-Delay). Wire the .Q done-bit to the motor contactor. TOF is for off-delay; TP is for fixed-width pulses. The legacy relay-coil logic maps directly to TON.
Why does my timer never reach the done-bit?
Two common reasons: the preset tag is declared INT instead of TIME, or the scan time is longer than the timer time base. Default 2026 base is 1 ms on AB CompactLogix 5380.
Can I run ladder and Structured Text in the same project?
Yes. Studio 5000, TIA Portal, GX Works 3, and Sysmac Studio all support mixed-language tasks. The timer instance is identical in both languages; only the syntax differs.
Where can I source Allen-Bradley, Siemens, and Mitsubishi timer modules?
KOEED stocks CPUs, I/O, and timers for nine brands. Send your BOM to Moritta@KOEED.COM and our engineering desk replies with active stock and a quote within 24 hours.
Does a TON block replace a physical time-delay relay?
In most new designs, yes — software timers are easier to tune, log, and back up. For SIL-2/3 loops in 2026, IEC 61508 recommends a dedicated safety PLC over rung logic.
What is the 2026 default time base for a TON block?
AB CompactLogix 5380 and ControlLogix 5580 default to 1 ms. Siemens S7-1500 FBs default to 10 ms. Mitsubishi iQ-R defaults to 100 ms. Declare it explicitly in code.