Try a PLC free — no signup
Timers & CountersIntermediateIEC 61131-3

RTO (Retentive Timer On)

Timer retains accumulated value when input goes FALSE; requires manual reset.

The RTO (Retentive Timer On-Delay) is a timer that retains its accumulated time value when the input goes FALSE. Unlike a standard TON timer where ET resets when IN goes FALSE, the RTO remembers the elapsed time and continues from where it left off when IN becomes TRUE again. The output Q goes TRUE when ET reaches PT. A separate reset input or command is required to clear the accumulated time. RTO timers are essential for applications where total accumulated run time matters, such as maintenance scheduling based on operating hours, total machine run time tracking, and intermittent process timing.

Parameters

Inputs

NameTypeDescription
INBOOLTimer enable - accumulates time while TRUE
PTTIMEPreset time value
RBOOLReset input - clears accumulated time (platform-dependent)

Outputs

NameTypeDescription
QBOOLTimer done - TRUE when ET >= PT
ETTIMEAccumulated elapsed time (retained)

Timing Diagram

IN:  __/‾‾‾\___/‾‾‾‾\___/‾‾‾‾‾‾
ET:  __/‾‾‾‾‾‾‾/‾‾‾‾‾‾‾‾/‾‾‾‾‾‾
       (accumulates across cycles)
Q:   _______________________/‾‾‾
                            ^PT reached

Ladder Logic Example

// Ladder Logic - RTO (Maintenance Timer)
//
// |----[ Motor_Running ]----[RTO Maint_Timer]----|
// |                         IN: Motor_Running    |
// |                         PT: T#500h           |
// |                         Q:  Maint_Due        |
//
// |----[ Maint_Reset ]------[RES Maint_Timer]----|
// Resets accumulated time after maintenance done

Structured Text Example

VAR
    Maint_Timer : RTO;  // Retentive timer
    Motor_Running : BOOL;
    Maint_Due : BOOL;
    Maint_Reset : BOOL;
END_VAR

Maint_Timer(IN := Motor_Running, PT := T#500h, R := Maint_Reset);
Maint_Due := Maint_Timer.Q;

Free · no signup to try

Run this block in your browser

Try the instruction on a live rung before you copy it into a project — nothing to install.

Run a TON timer in your browser

Opens plcsimulationsoftware.com — same team

Prefer ready-made code? Ladder Logic Pack — $29 on Gumroad

Platform-Specific Implementation

S

Siemens (TIA Portal)

No native RTO; implement using TON with retentive memory (DB) or use TONR instruction in S7-1200/1500.

AB

Allen-Bradley (Studio 5000)

Use RTO instruction in Studio 5000. Requires RES instruction for reset. Timer type is TIMER.

C

CODESYS

Not part of standard IEC library; implement using a TON with a persistent variable for accumulated time.

Common Applications

  • Maintenance scheduling by run hours
  • Total machine operating time
  • Intermittent process timing
  • Batch cycle accumulation
  • Equipment life tracking

Common Mistakes to Avoid

  • Forgetting to implement reset logic
  • Using RTO when TON would suffice
  • Not saving retentive values to non-volatile memory

Frequently Asked Questions

What is RTO (Retentive Timer On) in PLC programming?

Timer retains accumulated value when input goes FALSE; requires manual reset. The RTO (Retentive Timer On-Delay) is a timer that retains its accumulated time value when the input goes FALSE. Unlike a standard TON timer where ET resets when IN goes FALSE, the RTO remembers the elapsed time and continues from where it left off when IN becomes TRUE again.

What are common applications of RTO (Retentive Timer On)?

RTO (Retentive Timer On) is commonly used for: Maintenance scheduling by run hours, Total machine operating time, Intermittent process timing, Batch cycle accumulation, Equipment life tracking.

How do I use RTO (Retentive Timer On) in different PLC platforms?

Siemens: No native RTO; implement using TON with retentive memory (DB) or use TONR instruction in S7-1200/1500. Allen-Bradley: Use RTO instruction in Studio 5000. Requires RES instruction for reset. Timer type is TIMER. CODESYS: Not part of standard IEC library; implement using a TON with a persistent variable for accumulated time.

Free · no signup to try

Wire this block up and run it

Drop the instruction into a rung, press Run and watch it execute in your browser — then adapt it to your vendor tool.

Run a TON timer in your browser

Opens plcsimulationsoftware.com — same team

Prefer ready-made code? Ladder Logic Pack — $29 on Gumroad