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 disattivazione dell’ingresso di clock CLK.

Per facilitare il test dei programmi, è possibile da LogicLab tramite le funzioni di debug attivare l’uscita Q che rimarrà attiva per un loop di programma.

Descrizione

CLK (BOOL) Clock, sul fronte di disattivazione del segnale, viene attivata l’uscita Q per un loop di programma.
Q (BOOL) Uscita, attiva per un loop di programma sul fronte di disattivazione dell’ingresso di clock CLK

Immagine FB F_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 disattivazione della variabile CFlag.

Nel programma in ladder esiste l’operando |N| che si comporta esattamente come questo blocco funzione, ho quindi definito un array di variabili CFlag per comparare il funzionamento.

LogicLab (Ptp115, LD_F_TRIG)
PROGRAM LD_F_TRIG
VAR
    CFlag : ARRAY[ 0..1 ] OF BOOL; (* Command flag *)
    Count : UDINT; (* Counter *)
    PTrigger : F_TRIG; (* Pulse trigger *)
END_VAR
Immagine programma LD_F_TRIG
LogicLab (Ptp115, ST_F_TRIG)
PROGRAM ST_F_TRIG
VAR
    CFlag : BOOL; (* Command flag *)
    Count : UDINT; (* Counter *)
    PTrigger : F_TRIG; (* Pulse trigger *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_F_TRIG"
// *****************************************************************************
// This program manages a counter on falling 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?