Vai al contenuto
Vai all indice del manuale di programmazione
Tipo: Blocco funzione
Libreria LogicLab: eLLabStdLib
Libreria Codesys: Non disponibile

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.

Immagine FB R_TRIG

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
Immagine programma LD_R_TRIG
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]
Was this article helpful?