CTUD / CTUDr
Inputs
Input |
Data Type |
Range |
Unit |
Default |
Description |
---|---|---|---|---|---|
CD |
BOOL |
|
|
|
Enable counting. Counter is decreased on each call when CD is TRUE. |
CU |
BOOL |
|
|
|
Enable counting. Counter is increased on each call when CU is TRUE. |
LOAD |
BOOL |
|
|
|
Re-load command. Counter is set to PV when called with LOAD to TRUE. |
PV |
DINT |
|
|
|
Programmed maximum value. |
RESET |
BOOL |
|
|
|
Reset command. Counter is reset to 0 when called with RESET to TRUE. |
Outputs
Output |
Data Type |
Range |
Unit |
Description |
---|---|---|---|---|
CV |
DINT |
|
|
Current value of the counter. |
QD |
BOOL |
|
|
TRUE when counter is empty (i.e., when CV = 0). |
QU |
BOOL |
|
|
TRUE when counter is full (i.e., when CV = PV). |
Remarks
- The counter is empty (CV = 0) when the application starts.
- The counter does not include a pulse detection for CU and CD inputs.
- Use the f_trig or r_trig function blocks for counting pulses of CU or CD input signals.
- CTDr, CTUr, and CTUDr function blocks operate exactly as other counters.
- Exception: All Boolean inputs (CU, CD, RESET, LOAD) have an implicit rising edge detection included.
FBD Language Example
FFLD Language Example
- In the FFLD Language, CU is the input rung.
- The output rung is the QU output.
IL Language Example
(* MyCounter is a declared instance of CTUD function block. *)
Op1: CAL MyCounter (CU, CD, RESET, LOAD, PV)
FFLD MyCounter.QU
ST QU
FFLD MyCounter.QD
ST QD
FFLD MyCounter.CV
ST CV
ST Language Example
(* MyCounter is a declared instance of CTUD function block. *)
MyCounter (CU, CD, RESET, LOAD, PV);
QU := MyCounter.QU;
QD := MyCounter.QD;
CV := MyCounter.CV;
See Also