Bomba con posventilación y alarma de nivel / Lámpara con Start–Stop y alternancia

 


EJERCICIO 1 – Bomba con posventilación y alarma de nivel

1. Planteamiento funcional

Queremos:

  1. Bomba:

    • Arranca con botón de MARCHA si no hay alarma de nivel bajo.

    • Se detiene con botón de PARO o por nivel bajo.

  2. Posventilación:

    • Un ventilador se enciende cuando la bomba está en marcha.

    • Cuando la bomba se apaga, el ventilador sigue encendido, por ejemplo, 30 s más.

  3. Alarma de nivel bajo:

    • Si se detecta nivel bajo, la bomba se para y se latcha una alarma.

    • La alarma sólo se borra con un botón de RESET y cuando el nivel vuelve a ser normal.


2. Definición de señales (ejemplo)

Entradas digitales

  • I:0/0PB_START (MARCHA, NA)

  • I:0/1PB_STOP (PARO, NC cableado como contacto normalmente cerrado)

  • I:0/2NIVEL_BAJO (sensor de mínimo, 1 = nivel demasiado bajo)

  • I:0/3RESET_ALARMA (NA)

Salidas digitales

  • O:0/0BOMBA (contactor de bomba)

  • O:0/1VENTILADOR

  • O:0/2PILOTO_ALM_NIVEL (piloto rojo)

Bits internos

  • B3:0/0ALM_NIVEL_BAJO (bit de alarma)

Temporizador

  • T4:0T_POSVENTILACION (TOF, retardo a la desconexión)


3. Paso 1 – Alarma de nivel bajo (latch/unlatch)

Rung 1 – Disparo de alarma de nivel bajo

NIVEL_BAJO I:0/2 ----[ XIC ]------------------------( OTL B3:0/0 ALM_NIVEL_BAJO )
  • Si el sensor NIVEL_BAJO pasa a 1, se latcha ALM_NIVEL_BAJO.

Rung 2 – Reset de alarma de nivel bajo

RESET_ALARMA NIVEL_NORMAL I:0/3 I:0/2 ----[ XIC ]------------[ XIO ]-----------( OTU B3:0/0 ALM_NIVEL_BAJO )
  • NIVEL_NORMAL lo tomamos como NIVEL_BAJO = 0 → usamos XIO I:0/2.

  • Solo si el operador pulsa RESET_ALARMA y el nivel ya no está bajo, se hace OTU del bit de alarma.


4. Paso 2 – Enclavamiento de bomba con bloqueo por alarma

Rung 3 – Marcha/parada de bomba con enclavamiento

PB_STOP PB_START BOMBA ALM_NIVEL_BAJO I:0/1 I:0/0 O:0/0 B3:0/0 ----[ XIC ]--------[ XIC ]--------[ XIC ]--------[ XIO ]------( OTE O:0/0 )

Lectura:

  • PB_STOP en XIC porque el botón es NC: cuando no está presionado, la entrada = 1.

  • PB_START en XIC: sólo se cierra mientras se pulsa.

  • BOMBA en XIC: contacto de sello (mismo bit de la salida).

  • ALM_NIVEL_BAJO en XIO: si hay alarma (bit = 1), bloquea el arranque y desenergiza la bomba.

Resultado:

  • Pulsas START sin alarma → se energiza BOMBA y el sello la mantiene encendida.

  • Pulsas STOP → la línea cae y BOMBA se apaga.

  • Si entra NIVEL_BAJO → se latcha ALM_NIVEL_BAJO y el XIO se vuelve falso → la bomba se apaga y no vuelve a arrancar hasta reset.


5. Paso 3 – Posventilación con TOF

Queremos que el ventilador esté ON:

  • Mientras la bomba esté ON.

  • Y además 30 s después de que la bomba se apague.

Lo más limpio: usar un TOF cuyo rung se base en la señal de la bomba.

Rung 4 – Temporizador de posventilación (TOF)

BOMBA O:0/0 ----[ XIC ]------------------------[TOF T4:0 PRE 30.0s ACC 0.0s]

Comportamiento de TOF:

  • Mientras BOMBA = 1 (rung verdadero) → T4:0/DN = 1.

  • Cuando BOMBA pasa a 0 → el TOF empieza a contar; DN se mantiene en 1 durante los 30 s.

  • Al terminar, DN se vuelve 0.

Rung 5 – Comando del ventilador

T4:0/DN ----[ XIC ]------------------------( OTE O:0/1 VENTILADOR )

Resultado:

  • BOMBA ON → T4:0/DN = 1 → ventilador ON.

  • BOMBA OFF → T4:0 cuenta 30 s con DN en 1 → ventilador sigue ON.

  • Tras 30 s → DN = 0 → ventilador OFF.


6. Paso 4 – Piloto de alarma de nivel bajo

Rung 6 – Piloto rojo de alarma

ALM_NIVEL_BAJO B3:0/0 ----[ XIC ]------------------------( OTE O:0/2 PILOTO_ALM_NIVEL )

Mientras ALM_NIVEL_BAJO = 1, el piloto rojo está encendido.


7. Checklist de prueba

  1. Simular nivel normal (entrada de NIVEL_BAJO = 0).

  2. Start → bomba ON, ventilador ON, sin alarmas.

  3. Stop → bomba OFF, ventilador sigue 30 s y luego OFF.

  4. Con bomba en marcha, activar NIVEL_BAJO = 1:

    • Bomba se apaga.

    • Ventilador se mantiene 30 s.

    • PILOTO_ALM_NIVEL ON.

    • No deja arrancar de nuevo hasta que:

      • Nivel normal (NIVEL_BAJO = 0)

      • Pulsar RESET_ALARMA.


EJERCICIO 2 – Lámpara con Start/Stop y función de alternancia (toggle)

Objetivo:

  • Pulsador START: cada pulsación alterna el estado de la lámpara (ON ⇄ OFF).

  • Pulsador STOP: apaga la lámpara y la deja en estado “OFF seguro”.

Te doy dos enfoques:

  • A) Para ControlLogix / CompactLogix (que tienen instrucción TGL).

  • B) Para SLC / MicroLogix (sin TGL, usando OTL/OTU + ONS).


A) ControlLogix / CompactLogix (con TGL)

1. Señales

Entradas (alias de ejemplo):

  • PB_STARTLocal:1:I.Data.0

  • PB_STOPLocal:1:I.Data.1

Salidas:

  • LAMPLocal:2:O.Data.0

Bits internos:

  • Lamp_State (BOOL) → estado interno de la lámpara

  • Start_OneShot (BOOL) → bit de almacenamiento para ONS

2. Paso 1 – One-shot de START

Rung 1: PB_START ----[ XIC ]-----------------[ONS Start_OneShot]--------( ) ; aquí no hay bobina, solo usamos el pulso

En Studio 5000, el ONS no necesita bobina al final; la instrucción en sí genera el pulso hacia la derecha del rung.

3. Paso 2 – Toggle del estado interno

Rung 2: Start_OneShot (pulso del rung anterior) ----[ XIC ]-------------------------------[TGL Lamp_State]

Cada vez que Start_OneShot se activa (un solo scan), la instrucción TGL invierte Lamp_State:

  • Si estaba en 0 → pasa a 1.

  • Si estaba en 1 → pasa a 0.

4. Paso 3 – Stop que fuerza estado OFF

Rung 3: PB_STOP ----[ XIC ]------------------------------( OTU Lamp_State )
  • Al presionar STOP, reseteas Lamp_State a 0, quede como quede.

5. Paso 4 – Salida física de la lámpara

Rung 4: Lamp_State ----[ XIC ]------------------------------( OTE LAMP )

Resultado:

  • Al primer pulso de STARTLamp_State se pone en 1 → lámpara ON.

  • Segundo pulso de STARTLamp_State se pone en 0 → lámpara OFF.

  • STOP en cualquier momento → hace OFF y deja el estado en 0.


B) SLC / MicroLogix (sin TGL, usando OTL/OTU + ONS)

Aquí no existe TGL, así que hacemos el “toggle” con dos rungs y ONS.

Señales (ejemplo):

  • I:0/0PB_START

  • I:0/1PB_STOP

  • O:0/0LAMP

  • B3:1/0Lamp_State

  • B3:1/1Start_OneShot (bit del ONS)

1. One-shot del botón START

Rung 1: PB_START I:0/0 ----[ XIC ]------------------[ONS B3:1/1]-----------------( )

Genera un pulso de un scan en la rama a la derecha del ONS.

2. Latch cuando estaba apagada

Rung 2: Start_OneShot Lamp_State B3:1/1 B3:1/0 ----[ XIC ]-------------[ XIO ]------------------------( OTL B3:1/0 )
  • Si llega el pulso y Lamp_State estaba en 0 (XIO), entonces lo latchamos a 1.

3. Unlatch cuando estaba encendida

Rung 3: Start_OneShot Lamp_State B3:1/1 B3:1/0 ----[ XIC ]-------------[ XIC ]------------------------( OTU B3:1/0 )
  • Si llega el mismo pulso y Lamp_State estaba en 1 (XIC), hacemos OTU → lo ponemos en 0.

Importante: el ONS está en el Rung 1.
En los Rungs 2 y 3 usamos el mismo bit B3:1/1 como condición XIC:

  • Durante el scan en que ocurre el pulso, B3:1/1 estará en 1 sólo en ese instante.

  • Dependiendo de si Lamp_State era 0 u 1, se ejecutará solo uno de los dos rungs (el otro quedará falso).

4. Stop que fuerza OFF

Rung 4: PB_STOP I:0/1 ----[ XIC ]------------------------( OTU B3:1/0 Lamp_State )

Cualquier pulsación de STOP pone el estado interno en 0.

5. Salida de la lámpara

Rung 5: Lamp_State B3:1/0 ----[ XIC ]------------------------( OTE O:0/0 LAMP )

6. Prueba del ejercicio 2

  1. Inicial: Lamp_State = 0, lámpara apagada.

  2. Pulsas START una vez:

    • Rung 1 genera pulso.

    • Lamp_State pasa de 0 a 1.

    • Lámpara ON.

  3. Pulsas START otra vez:

    • Nuevo pulso.

    • Lamp_State pasa de 1 a 0.

    • Lámpara OFF.

  4. Pulsas STOP en cualquier momento:

    • Lamp_State se pone en 0.

    • Lámpara OFF.

    • La siguiente pulsación de START la volverá a encender.

by IA. .