The CTD instruction counts downward each time the rung-condition-in transitions from false to true.
|Preset||DINT||immediate||Value of Counter.PRE.|
|Accum||DINT||immediate||Value of Counter.ACC.|
|.CD||BOOL||The countdown enable bit contains rung-condition-in when the instruction was last executed.|
|.DN||BOOL||The done bit when clear indicates the counting operation is complete.|
|.OV||BOOL||The overflow bit when set indicates the counter incremented past the upper limit of 2,147,483,647.|
|.UN||BOOL||The underflow when set indicates the counter decremented past the lower limit of -2,147,483,648.|
|.PRE||DINT||The preset value specifies the value which the accumulated value must reach before the instruction indicates it is done.|
|.ACC||DINT||The accumulated value specifies the number of transitions the instruction has counted.|
When rung-condition-in is set to true and .CD is false, .ACC will be decremented by one. When rung-condition-in is false, .CD will be cleared to false.
A conveyor brings parts into a buffer zone. Each time a part enters, limit_switch_3 is enabled and counter_2 increments by 1. Each time a part leaves, limit_switch_4 is enabled and counter_2 decrements by 1. If there are 100 parts in the buffer zone (counter_2.dn is true), conveyor_A turns on and stops the conveyor from bringing in any more parts until the buffer has room for more parts.