Questo blocco funzione attiva l’uscita Q per un loop di programma sul fronte di attivazione dell’ingresso di clock CLK.
Trucchi & suggerimenti
Se il FB è utilizzato nel programma per eseguire operazioni in modo one-shot su attivazione ingresso CLK (Come nell’esempio ST_R_TRIG), è possibile con la funzione debug di LogicLab attivare l’uscita Q che rimarrà attiva per un loop di programma.
Descrizione
CLK (BOOL) Clock, sul fronte di attivazione del segnale, viene attivata l’uscita Q per un loop di programma.
Q (BOOL) Uscita, attiva per un loop di programma sul fronte di attivazione dell’ingresso di clock CLK.

Esempi
Come utilizzare gli esempi.
L’attivazione per un loop di programma dell’uscita permette di utilizzare il blocco funzione per poter gestire ad esempio un semplice counter. Il valore della variabile Count si incrementa sul fronte di attivazione della variabile CFlag.
Nel programma in ladder esiste l’operando |P| che si comporta esattamente come questo blocco funzione, ho quindi definito un array di variabili CFlag per comparare il funzionamento.
LogicLab (Ptp115, LD_R_TRIG)
PROGRAM LD_R_TRIG
VAR
Count : UDINT; (* Counter *)
CFlag : ARRAY[ 0..1 ] OF BOOL; (* Command flag *)
PTrigger : R_TRIG; (* Pulse trigger *)
END_VAR

LogicLab (Ptp115, ST_R_TRIG)
PROGRAM ST_R_TRIG
VAR
CFlag : BOOL; (* Command flag *)
Count : UDINT; (* Counter *)
PTrigger : R_TRIG; (* Pulse trigger *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_R_TRIG"
// *****************************************************************************
// This program manages a counter on raising edge of CFlag.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// COUNTER
// -------------------------------------------------------------------------
PTrigger(CLK:=CFlag); //Call the function block
IF (PTrigger.Q) THEN Count:=Count+1; END_IF;
// [End of file]