A timer is a PLC instruction measuring the amount of time elapsed following an event.
Timer instructions come in two basic types: on-delay timers and off-delay timers. Both “on-delay” and “off-delay” timer instructions have single inputs triggering the timed function.
An “on-delay” timer activates an output only when the input has been active for a minimum amount of time.
PLC Timer Instructions
Take for instance this PLC program, designed to sound an audio alarm siren prior to starting a conveyor belt.
To start the conveyor belt motor, the operator must press and hold the “Start” push-button for 10 seconds, during which time the siren sounds, warning people to clear away from the conveyor belt that is about to start.
Only after this 10-second start delay does the motor actually start (and latch “on”):
Similar to an “up” counter, the on-delay timer’s elapsed time (ET) value increments once per second until the preset time (PT) is reached, at which time its output (Q) activates.
In this program, the preset time value is 10 seconds, which means the Q output will not activate until the “Start” switch has been depressed for 10 seconds.
The alarm siren output, which is not activated by the timer, energizes immediately when the “Start” push-button is pressed.
An important detail regarding this particular timer’s operation is that it be non-retentive.
This means the timer instruction should not retain its elapsed time value when the input is de-activated.
Instead, the elapsed time value should reset back to zero every time the input de-activates. This ensures the timer resets itself when the operator releases the “Start” push-button.
A retentive ondelay timer, by contrast, maintains its elapsed time value even when the input is de-activated. This makes it useful for keeping “running total” times for some event.
Most PLCs provide retentive and non-retentive versions of on-delay timer instructions, such that the programmer may choose the proper form of on-delay timer for any particular application.
The IEC 61131-3 programming standard, however, addresses the issue of retentive versus non-retentive timers a bit differently.
According to the IEC 61131-3 standard, a timer instruction may be specified with an additional enable input (EN) that causes the timer instruction to behave non-retentively when activated, and retentively when de-activated.
The general concept of the enable (EN) input is that the instruction behaves “normally” so long as the enable input is active (in this case, non-retentive timing action is considered “normal” according to the IEC 61131-3 standard), but the instruction “freezes” all execution whenever the enable input de-activates.
This “freezing” of operation has the effect of retaining the current time (CT) value even if the input signal de-activates.
For example, if we wished to add a retentive timer to our conveyor control system to record total run time for the conveyor motor, we could do so using an “enabled” IEC 61131-3 timer instruction like this:
When the motor’s contactor bit (OUT contactor) is active, the timer is enabled and allowed to time.
However, when that bit de-activates (becomes “false”), the timer instruction as a whole is disabled, causing it to “freeze” and retain its current time (CT) value ( Note 1 ).
This allows the motor to be started and stopped, with the timer maintaining a tally of total motor run time.
Note 1 : The “enable out” (ENO) signal on the timer instruction serves to indicate the instruction’s status: it activates when the enable input (EN) activates and de-activates when either the enable input de-activates or the instruction generates an error condition (as determined by the PLC manufacturer’s internal programming). The ENO output signal serves no useful purpose in this particular program, but it is available if there were any need for other rungs of the program to be “aware” of the run-time timer’s status.
If we wished to give the operator the ability to manually reset the total run time value to zero, we could hard-wire an additional switch to the PLC’s discrete input card and add “reset” contacts to the program like this:
Comments
Post a Comment