Timer Off Delay (TOF)
This information applies to the
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580, and ControlLogix 5590 controllers.The TOF instruction is a non-retentive timer that accumulates time when the instruction is enabled (rung-condition-in is false).
Available Languages
Ladder Diagram

Function Block
This instruction is not available in function block.
Structured Text
This instruction is not available in structured text.
Operands
IMPORTANT:
Unexpected operation may occur if:
- Output tag operands are overwritten.
- Members of a structure operand are overwritten.
- Except when specified, structure operands are shared by multiple instructions.
Ladder Diagram
Operand | Data Type | Format | Description |
---|---|---|---|
Timer | TIMER | tag | Timer structure |
Preset | DINT | immediate | Value of Timer.PRE |
Accum | DINT | immediate | Value of Timer.ACC |
Operand | CompactLogix 5380, ControlLogix 5580, Compact
GuardLogix 5380, GuardLogix 5580, and ControlLogix 5590 controllers Data Type | Format | Description |
---|---|---|---|
Timer | TIMER_T | tag | Timer_T structure |
Accum | TIME | immediate | Value of Timer.ACC |
Preset | TIME | immediate | Value of Timer.PRE |
Preset and Accum (corresponding to .PRE and .ACC in the timer tag) are pseudo-operands. For details, see Pseudo-operand initialization.
TIMER Structure
Mnemonic | Data Type | Description |
---|---|---|
.EN | BOOL | The enable bit contains rung-condition-in when the instruction was last executed. |
.TT | BOOL | The timing bit when set indicates the timing operation is in process. |
.DN | BOOL | The done bit when cleared indicates the timing operation is complete (or paused). |
.PRE | DINT | The preset value specifies the value (1 millisecond units) which the accumulated value must reach before the instruction indicates it is done. |
.ACC | DINT | The accumulated value specifies the number of milliseconds that have elapsed since the TOF instruction was enabled. |
TIMER_T Structure
Mnemonic | Data Type | Description |
---|---|---|
.EN | BOOL | The enable bit contains rung-condition-in when the instruction was last
executed. |
.TT | BOOL | The timing bit when set indicates the timing operation is in process. |
.DN | BOOL | The done bit when set indicates the timing operation is complete (or paused). |
.ACC | TIME | The accumulated value specifies the elapsed time with microsecond fidelity since
the instruction was enabled. |
.PRE | TIME | The preset value specifies with microsecond fidelity the accumulated value that
must be reached before the instruction indicates it is done. |
Description
The TOF instruction accumulates time until:
- The timer is disabled
- The timer completes
The time base is always 1 millisecond. For example, for a 2 second timer, enter 2000 for the .PRE value.
The timer will clear the .DN bit to false when the timer completes.
When enabled, timing can be paused by clearing the .DN bit to false and resumed by setting the .DN bit to true.

How a Timer Runs
A timer runs by subtracting the time of its last scan from the current time:
ACC = ACC + (current_time - last_time_scanned)
After it updates the ACC, the timer sets last_time_scanned = current_time. This gets the timer ready for the next scan.
Affects Math Status Flags
No
Major/Minor Faults
A major fault will occur if: | Fault type | Fault code |
---|---|---|
.PRE < 0 | 4 | 34 |
.ACC < 0 | 4 | 34 |
See for array-indexing faults.
Execution
Ladder Diagram
Condition/State | Action Taken |
---|---|
Prescan | The .EN bit is cleared to false. The .TT bit is cleared to false. The .DN bit is cleared to false. The .ACC value is set to equal the .PRE value. |
Rung-condition-in is false | Set Rung-condition-out to Rung-condition-in. See TOF Flow Chart (False). |
Rung-condition-in is true | Set Rung-condition-out to Rung-condition-in. The .EN bit is set to true. The .TT bit is cleared to false. The .DN bit is set to true. The .ACC value is cleared to zero. |
Postscan | The .EN bit is cleared to false. The .TT bit is cleared to false. The .DN bit is cleared to false. The .ACC value is set to equal the .PRE value. |
TOF Flow Chart (False)

Example
Ladder Diagram

When limit_switch_9 is cleared, light_8 is on for 180 milliseconds (timer_2 is timing). When timer_2.acc reaches 180, light_8 goes off and light_4 goes on. Light_4 remains on until the TOF instruction is enabled. If limit_switch_9 is true while timer_2 is timing, light_8 goes off.

When tglTest21 is cleared, timing21
(with TIMER_T type)
is on for
20 milliseconds and 100 microseconds (timer21 is timing). When timer21.acc reaches 20
milliseconds and 100 microseconds, timing21 goes off and done21 goes on. Done21 remains on
until the TOF instruction is enabled. If tglTest21 is true while timer21 is timing, timing21
goes off.Provide Feedback