Back to tutorials
PLC Instructions

PLC Programming Intermediate Instructions – TON | Timer On

Vladimir Romanov
Table of Contents

Introduction Allen Bradley Timer

The TON, also known as Timer ON, an instruction is used to keep track of time of occurrence of certain events. The conditions preceding the TON instruction will allow the timer to start counting up to a specified value. Once this value is reached, the program will set specific internal bits notifying the programmer as well as other instructions within the PLC that the timer has finished counting. Furthermore, experienced developers can leverage the instruction to know when a certain process is being executed.

The TON instruction is a composite instruction which means that it will contain a timer, integers as well as booleans. Depending on the application, you may not need to use all of them.

An Allen Bradley timer instruction is common to be seen in RSLogix 5, 500, 5000 as well as Studio 5000. A timer is needed in many PLC applications and is used to delay a certain condition. An example of a required timer would be during a startup sequence. As a process is initiated via a "start" push button, each element is started based on a sequence. If there's a way to get the status of these elements, it's possible to avoid using timers. In other words, once an output is set to start a motor, the user may receive feedback that confirms that the motor is running at speed. If such an input is missing, it's possible to issue a timer delay that would assume that the motor is running after a certain time. Example: Once the motor is started, wait 5 second; start the next step.

Example & Usage of TON

Here’s a real-world scenario of a TON instruction:

  1. A Micrologix 1100 Allen Bradley PLC is used to control a process.
  2. A “Tank Cooling Sequence” is initiated by an internal bit B3:0/4.
  3. The bit above is tied to an XIC instruction which enables the TON instruction.
  4. The TON instruction specifies a Timer in the PLC: T4:0
  5. The Time Base of T4:0 is set to 1.0 which translates to the timer counting in seconds.
  6. The “Preset” of T4:0 is set to 2000 which translates to the timer counting up to 2000 seconds.
  7. The “Accum” of T4:0 is set to 0 which translates to the timer starting to count from 0.
  8. As the timer is initialized by the B3:0/4 XIC, it starts to count.
  9. As the timer counts, the .EN and the .TT bits are set to HIGH.
  10. As the timer finishes counting, the .TT bit is set to LOW and the .DN bit is set to HIGH.
  11. IF the B3:0/4 bit is set to LOW while the timer is counting, the Accum is set back to 0. The .EN, .TT and .DN bits are set to LOW.

Programming example in RSLogix 500:

TON PLC Instruction RSLogix 500


The TON instruction will begin counting as soon as the B3:0/4 XIC is energized. The timer will begin counting at from 0 until it reaches the value specified by the “Preset” integer. In the example above, this value is set to 2000. It’s important to note that the “Time Base” of our timer is set to 1. This translates to a 2000 x 1.0 multiplier for our time. In other words, the timer will count to 2000 seconds.

The timer will set different auxiliary bits during operation. These bits are .EN, .TT and .DN. The .EN bit will be set to HIGH if the timer is energized by the input instructions leading to it. The .TT bit is set to HIGH while the timer is counting; the “Accum” is less than “Preset”. The .DN bit is set to HIGH once the timer reaches the final value. In other words, when the “Accum” is equal to the “Preset”.

Data Types Allowed for TON

The TON leverages a specific data structure, called the Timer, present in most PLC systems.

  • Timer – The high-level instruction specification of all the inner structures.
  • .PRE – Integer specifying up to which value the timer will count.
  • .ACC – Integer specifying the current time value of the timer.
  • .BASE – Selectable value which specifies the time multiplier for the timer.
  • Note1: This is not available in RSLogix 5000; the timers are specified in milliseconds by default.
  • .EN – Boolean value which is set to HIGH when the timer is energized.
  • .TT – Boolean value which is set to HIGH when the timer is in the process of counting.
  • .DN – Boolean value which is set to HIGH when the timer is finished counting.

Important Notes

  • Note 1 – The TON instruction uses a timer which is specified internally to the PLC. The user may choose to set the values covered above through the PLC interface instead of working with them in the instruction. Furthermore, the TON instruction will not display the current set of all the bits discussed above; they will be set on the PLC only.
  • Note 2 – The programmer may choose to leverage any or none of the bits and /or integers described above. For example, a common practice would leverage the LIM instruction to execute something within a window of the timer based on the “Accum” value.

Video Tutorial

Back to tutorials

Related Tutorials


Limit Switch - What it is, How it works & How it is used in Manufacturing

A limit switch is an electro-mechanical device used to send an electrical signal based on a physical interaction. Limit Switches are used to detect the presence of objects, thus allowing the system to take desired action.

Vladimir Romanov

MicroLogix 1100 RSLogix 500 External IO PLC Programming Tutorial

The MicroLogix 1100 PLC is still heavily used in the industry and is one of the most recommended PLCs for learning PLC programming. The MicroLogix 1100 PLC is compact, offers a variety of I/O configurations and is inexpensive relative to other Rockwell options. Furthermore, the MicroLogix 1100 PLC is programmable using the free version of RSLogix 500 that can be downloaded from the official Rockwell website.

Vladimir Romanov

PLC Simulator - PLC Programming & Testing within a Simulated Environment

A PLC Simulator is an excellent avenue to practice PLC ladder logic programming. Although the software environment is not the perfect substitute for hands on experience on an actual PLC, the simulation delivers a very accurate representation of ladder logic execution.

Vladimir Romanov