Skip to main content

Circuitos binarios en diagrama de contactos

Selección de muestra de POU en el diagrama de contactos

ejemplo 13. Ejemplo: Un botón pulsador enciende una lámpara.

Bloque LD: FB_AssignToLamp.fb.ld

_c4ld_img_tutorial_assign_to_lamp

Equivalente en ST:

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


ejemplo 14. Bloque de contador de muestras: FB_StorageCounter

El bloque de contador FB_StorageCounter Encapsula un contador CTUD (preselección: PV= 100).

_c4ld_img_tutorial_storage_counter.png


ejemplo 15. Bloque de inicio/parada de ejemplo: FB_Latch

xMotor := (xStart OR xMotor) AND NOT xStop

La segunda línea de ramal de la ParallelClosed La rama lee su propia salida. xMotor (autosostenible). xStop está en la serie como apertura.

  • xStart brevemente TRUE→ xMotor se mantiene en su lugar (se sostiene por sí mismo)

  • xStop TRUE → xMotor se apaga.

_c4ld_img_tutorial_latch.png


ejemplo 16. Ejemplo de un operador
  • Red 1: iSum := iValue1 + iValue2 sobre un ADD-Bloque del operador.

  • Red 2: xGreater := (iValue1 > iValue2) sobre un GT-Bloque del operador.

Ambos bloques de operadores tienen el EN habilitar la entrada y el ENO habilitar salida. Las entradas son iValue1 y iValue2. Las salidas son iSum y 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


ejemplo 17. Ejemplo: Bobinas de ajuste/reinicio, pestillo SR PRG_SetReset
  • Red 1: xSet → Encienda la bobina (S) xLatch (Modifier.Storage = 1).

  • Red 2: xReset → Reiniciar la bobina (R) a xLatch (Modifier.Storage = 2).

xLatch permanece después xSet ahorra TRUE y se reinicia por 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


ejemplo 18. Ejemplo del programa principal: PLC_PRG
  • Red 1:

    instancias Storage1 : FB_StorageCounter y conecta las entradas de señal (xLightBarrierIn, xLightBarrierOut, xAck, xPreset ) a las salidas para las lámparas de señalización (xLampFull, xLampEmpty ) y para la pantalla (iDisplay).

  • Red 2:

    xLamp50 := (iDisplay >= 50) mediante un comparador 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