Enclavamientos a prueba de fallos para un banco de ensayo automatizado
Los enclavamientos de seguridad en un PLC son la diferencia entre un juguete de laboratorio y un equipo al que la gente confía 220 A. Este ejemplo supervisa tres entradas digitales de un Raspberry PLC 19R — una cadena de protección por microfusible en I0.0, una seta de emergencia normalmente cerrada en I0.2 y la señal de fin de ensayo de la fuente en I0.3 — y ante cualquier disparo corta primero la fuente de potencia y después enclava la baliza roja. La lógica replica un banco de ensayo de fusibles real en producción.
Todo normalmente cerrado
La seta de emergencia y la cadena del microfusible se cablean normalmente cerradas, de modo que un cable cortado, un borne flojo o un sensor muerto se leen exactamente igual que un pulsador accionado — el banco se detiene. A prueba de fallos significa que el modo de fallo del propio cableado es un estado seguro, no una pérdida silenciosa de protección.
Orden de operaciones en un disparo
La secuencia de parada es fija: ordenar el apagado de la salida de la fuente por SCPI y después conmutar las balizas mediante los relés del PLC. Cortar la potencia siempre va primero; la señalización es cosmética en comparación. El bucle de supervisión de 100 ms corre con independencia de la lógica de ensayo, así que una secuencia colgada no puede retrasar un disparo.
Rearmar sin sorpresas
Tras un disparo, el código se niega a rearmar hasta que todas las entradas vuelven a su estado de reposo — seta liberada, microfusible sustituido, flag de la fuente despejado. Solo entonces se apaga la baliza roja. No hay rearranque automático; el operario obtiene una vuelta a listo limpia y deliberada.
Un fragmento de la implementación
Tal cual del ejemplo desplegado en el Raspberry PLC 19R — cópialo libremente:
def init_plc():
rpiplc.init("RPIPLC_19R")
for pin in (I_MICROFUSES, I_EMERGENCY_STOP, I_SUPPLY_TEST_END):
rpiplc.pin_mode(pin, rpiplc.INPUT)
for pin in (R_GREEN_BEACON, R_RED_BEACON):
rpiplc.pin_mode(pin, rpiplc.OUTPUT)
rpiplc.digital_write(pin, rpiplc.LOW)
El ejemplo completo es un programa entero — cabecera de conexionado, setup y bucle principal — listo para adaptar a tu aplicación.
Preguntas frecuentes
¿Basta un enclavamiento por software para una máquina real?
Complementa, nunca sustituye, la protección por hardware. El banco conserva su cadena cableada de contactor y seta de emergencia; la capa del PLC añade supervisión rápida, diagnóstico y un apagado limpio de la fuente SCPI.
¿Por qué vigilar como enclavamiento la salida de fin de ensayo de la fuente?
La Sorensen XG la activa cuando su secuencia interna de ensayo termina o falla. Tratarla como un disparo garantiza que el PLC y la fuente nunca puedan discrepar sobre si debe circular potencia.
¿Qué aporta la librería rpiplc frente al GPIO a secas?
Mapea los bornes industriales del Raspberry PLC (entradas I0.x, relés R0.x) a llamadas con nombre como digital_read("I0.2"), gestionando por ti las etapas de entrada optoacopladas a 24 V y los drivers de relé.