Learn PLCs free
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;

20 Production-Ready Ladder Logic Templates

Stop writing the same rungs from scratch. Get copy-paste-ready templates for motor control, PID loops, safety interlocks, conveyors, and more.

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.

Stop Writing Ladder Logic From Scratch

Get 20 production-ready ladder logic templates for $29 -- download instantly and use them on your next project today.

20
Ready-Made Templates
LD + ST
Both Languages Included
$29
One-Time Purchase
Get Instant Access -- $29

Instant download - 30-day money-back guarantee - Use on unlimited projects

Free PLC simulator

Wire this block up and run it

Drop the instruction into a rung, hit Run, and watch it execute in your browser. 12 guided lessons across 8 PLC dialects — free account, no credit card.

Practice PLCs free →