Questo blocco funzione esegue la gestione di un counter in decremento. Agendo sull’ingresso di load LD è possibile in qualsiasi momento trasferire il valore di preset definito dal parametro PV nel counter CV.
Ad ogni fronte di attivazione dell’ingresso CD, il valore del counter viene decrementato, quando il valore raggiunge 0, l’uscita Q viene settata ed il conteggio si arresta. Solo agendo sull’ingresso di load LD è possibile presettare il counter e fare ripartire un nuovo conteggio.
L’ingresso di load LD è prioritario sull’ingresso di decremento CD.
Descrizione
CD (BOOL) Comando decremento counter, ad ogni fronte attivazione il valore del counter CV si decrementa.
LD (BOOL) Comando di load, attivando l’ingresso il valore di preset PV viene trasferito nel valore del counter CV.
PV (INT) Valore di preset, attivando l’ingresso di load LD viene trasferito nel valore del counter CV.
Q (BOOL) Uscita counter, attiva se il valore del counter CV raggiunge il valore 0.
CV (INT) Valore di conteggio counter, quando raggiunge il valore 0, l’uscita Q si attiva ed il counter non si decrementa più.

Esempi
Come utilizzare gli esempi.
Nell’esempio viene gestito un counter in decremento, attivando Load il counter viene presettato a 10. Ad ogni fronte di attivazione di Clock il valore del counter si decrementa, raggiunto 0 si attiva COutput.
LogicLab (Ptp115, IL_CTD)
PROGRAM IL_CTD
VAR
Clock : BOOL; (* Clock command *)
Load : BOOL; (* Load command *)
CValue : INT; (* Counter value *)
COutput : BOOL; (* Counter output *)
Counter : CTD; (* Counter *)
END_VAR
(* ************************************************************************** *)
(* PROGRAM "IL_CTD" *)
(* ************************************************************************** *)
(* This program shows the use of CTD function block. *)
(* ------------------------------------------------------------------------- *)
(* ---------------------------------------------------------------------- *)
(* COUNTER *)
(* ---------------------------------------------------------------------- *)
LD Clock (* Clock command *)
ST Counter.CD
LD Load (* Load command *)
ST Counter.LD
LD 10
ST Counter.PV
CAL Counter (* Call the function block *)
LD Counter.Q
ST COutput (* Counter output *)
LD Counter.CV
ST CValue (* Counter value *)
(* [End of file] *)
LogicLab (Ptp115, ST_CTD)
PROGRAM ST_CTD
VAR
Clock : BOOL; (* Clock command *)
Load : BOOL; (* Load command *)
CValue : INT; (* Counter value *)
COutput : BOOL; (* Counter output *)
Counter : CTD; (* Counter *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_CTD"
// *****************************************************************************
// This program shows the use of CTD function block.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// COUNTER
// -------------------------------------------------------------------------
Counter(CD:=Clock, LD:=Load, PV:=10); //Call the function block
COutput:=Counter.Q; //Counter output
CValue:=Counter.CV; //Counter value
// [End of file]