R_TRIG, raising edge trigger

List

Questa pagina fa parte del Manuale Programmazione IEC 61131-3. Vai all indice.

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.

Information Circle

Blocco funzione

CODESYS: Non disponibile

LogicLab: eLLabStdLib

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?