Skip to main content

Circuiti binari in diagramma a contatti

Selezione di esempio di POU nel diagramma a contatti

Esempio 13. Esempio: Un pulsante accende una lampada

Blocco LD: FB_AssignToLamp.fb.ld

_c4ld_img_tutorial_assign_to_lamp

Equivalente in ST:

FUNCTION_BLOCK FB_AssignToLamp
VAR_INPUT    
    bPushButton : BOOL := FALSE;
END_VAR
VAR_OUTPUT
    bLamp : BOOL;
END_VAR
VAR
END_VAR
bLamp := bPushButton;


Esempio 14. Esempio di blocco contatore: FB_StorageCounter

Il blocco di contrasto FB_StorageCounter incapsula un contatore CTUD (preselezione: PV= 100).

_c4ld_img_tutorial_storage_counter.png


Esempio 15. Esempio di blocco di avvio/arresto: FB_Latch

xMotor := (xStart OR xMotor) AND NOT xStop

La seconda linea di diramazione della ParallelClosed Il ramo legge il proprio output xMotor (autoportante). xStop è in serie come apertura.

  • xStart brevemente TRUE→ xMotor rimane in posizione (si mantiene)

  • xStop TRUE → xMotor si spegne.

_c4ld_img_tutorial_latch.png


Esempio 16. Esempio di operatore
  • Rete 1: iSum := iValue1 + iValue2 circa un ADD-Blocco operatore.

  • Rete 2: xGreater := (iValue1 > iValue2) circa un GT-Blocco operatore.

Entrambi i blocchi operatore hanno il EN abilitare l'input e il ENO abilita l'uscita. Gli ingressi sono iValue1 E iValue2. Gli output sono iSum E xGreater

PROGRAM PRG_CompareArithmetic
VAR
    iValue1  : INT := 10; // first operand
    iValue2 : INT := 5;  // second operand
    iSum     : INT;       // result iValue1 + iValue2
    xGreater : BOOL;      // TRUE if iValue1 > iValue2
END_VAR
_c4ld_img_tutorial_compare_arithmetic.png


Esempio 17. Esempio: Bobine di impostazione/reimpostazione, fermo SR PRG_SetReset
  • Rete 1: xSet → Imposta la bobina (S) su xLatchModifier.Storage = 1).

  • Rete 2: xReset → Reimpostare la bobina (R) su xLatchModifier.Storage = 2).

xLatch rimane dopo xSet salvataggi TRUE e viene ripristinato da xReset.

FUNCTION_BLOCK FB_Latch
VAR_INPUT
    xStart : BOOL; // start button (NO)    
    xStop  : BOOL; // stop button (logic: TRUE = pressed)
END_VAR
VAR_OUTPUT
    xMotor : BOOL; // latched motor output
END_VAR
VAR
END_VAR
_c4ld_img_tutorial_prg_setreset.png


Esempio 18. Esempio di programma principale: PLC_PRG
  • Rete 1:

    Istanzia Storage1 : FB_StorageCounter e collega gli ingressi del segnale (xLightBarrierIn, xLightBarrierOut, xAck, xPreset ) alle uscite per le lampade di segnalazione (xLampFull, xLampEmpty ) e per la visualizzazione (iDisplay).

  • Rete 2:

    xLamp50 := (iDisplay >= 50) tramite un comparatore GE.

PROGRAM PLC_PRG
VAR
    Storage1   : FB_StorageCounter; // counter instance
    xLightBarrierIn  : BOOL; // infeed light barrier  -> xInfeed
    xLightBarrierOut : BOOL; // outfeed light barrier -> xOutfeed
    xAck       : BOOL; // acknowledge / reset   -> xReset
    xPreset    : BOOL; // preset to 100         -> xLoad
    xLampFull  : BOOL; // "storage full" lamp
    xLampEmpty : BOOL; // "storage empty" lamp
    xLamp50    : BOOL; // ">= 50% full" lamp
    iDisplay   : INT;  // stock display
END_VAR
_c4ld_img_tutorial_plc_prg.png