CTUD / CTUDr

PLCopen motion icon

 Function Block - Up/down counter.

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

Not available.

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

CTU / CTUr