PLC Time Relay Ladder Diagram Example (IEC 61131-3 TON / TOF / TP, 2026)

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

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.

Related Articles

Zpět na blog