Function Block - Up counter.


CU : BOOL     Enable counting. Counter is increased on each call when CU is TRUE
RESET : BOOL  Reset command. Counter is reset to 0 when called with RESET to TRUE
PV : DINT     Programmed maximum value


Q : BOOL      TRUE when counter is full, i.e. when CV = PV
CV : DINT     Current value of the counter


The counter is empty (CV = 0) when the application starts. The counter does not include a pulse detection for CU input. Use R_TRIG or F_TRIG function block for counting pulses of CU input signal. In LD language, CU is the input rung. The output rung is the Q output.

CTUr, CTDr, CTUDr function blocks operate exactly as other counters, except that all boolean inputs (CU, CD, RESET, LOAD) have an implicit rising edge detection included. Not that these counters may be not supported on some target systems.

ST Language

(* MyCounter is a declared instance of CTU function block *)
MyCounter (CU, RESET, PV);
Q := MyCounter.Q;
CV := MyCounter.CV;

FBD Language

CtuFbd.gif (1380 octets)

LD Language

CtuLd.gif (1486 octets)

IL Language:

(* MyCounter is a declared instance of CTU function block *)
Op1: CAL    MyCounter (CU, RESET, PV)
     LD     MyCounter.Q
     ST     Q
     LD     MyCounter.CV
     ST     CV

See also