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
| Name | Type | Description |
|---|---|---|
| IN | BOOL | Timer enable - accumulates time while TRUE |
| PT | TIME | Preset time value |
| R | BOOL | Reset input - clears accumulated time (platform-dependent) |
Outputs
| Name | Type | Description |
|---|---|---|
| Q | BOOL | Timer done - TRUE when ET >= PT |
| ET | TIME | Accumulated elapsed time (retained) |
Timing Diagram
IN: __/‾‾‾\___/‾‾‾‾\___/‾‾‾‾‾‾
ET: __/‾‾‾‾‾‾‾/‾‾‾‾‾‾‾‾/‾‾‾‾‾‾
(accumulates across cycles)
Q: _______________________/‾‾‾
^PT reachedLadder 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 browserOpens plcsimulationsoftware.com — same team
Prefer ready-made code? Ladder Logic Pack — $29 on Gumroad
Platform-Specific Implementation
Siemens (TIA Portal)
No native RTO; implement using TON with retentive memory (DB) or use TONR instruction in S7-1200/1500.
Allen-Bradley (Studio 5000)
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.
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.
Related Function Blocks
TON (Timer On-Delay)
Starts timing on rising edge, output activates after preset delay.
View Reference →TONR (Timer On-Delay Retentive)
Siemens time accumulator that retains ET across enable cycles until its reset input is applied.
View Reference →CTU (Counter Up)
Counts up on each rising edge; output activates when count reaches preset.
View Reference →TOF (Timer Off-Delay)
Output stays TRUE for preset time after input goes FALSE.
View Reference →TP (Timer Pulse)
Generates a fixed-duration pulse on rising edge of input.
View Reference →RTOR (Retentive Timer On with Reset)
Retentive on-delay timer with integrated reset input for accumulated time clearing.
View Reference →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 browserOpens plcsimulationsoftware.com — same team
Prefer ready-made code? Ladder Logic Pack — $29 on Gumroad