¿Qué es una rutina de falla de PLC?
Una rutina de falla de PLC es código especial que corre cuando el controlador detecta un error, dándole una oportunidad de reaccionar antes de que la CPU decida qué hacer. Los PLC clasifican los errores por severidad: las fallas menores son recuperables y dejan que el programa siga corriendo, mientras que las fallas mayores son lo bastante serias como para detener el controlador a menos que algo intervenga. Una rutina de falla de usuario es esa intervención - un bloque de lógica que atrapa una falla, inspecciona qué salió mal, y puede opcionalmente despejarla para que la CPU siga corriendo en lugar de apagarse. Para un sitio remoto no atendido, esa diferencia es la diferencia entre un tropiezo y un traslado en camioneta.
Rutina de falla de PLC en una línea: Una rutina de falla de PLC es lógica de usuario que el controlador ejecuta cuando detecta una falla, permitiendo al programa identificar la falla y decidir si despejarla o dejar que la CPU falle. Las fallas menores son recuperables y se registran sin detener el programa, mientras que las fallas mayores detienen el controlador a menos que una rutina de falla las atrape y despeje primero.
Fallas menores frente a fallas mayores
Los controladores separan las fallas por cuánto amenazan la operación segura. Una falla menor es un problema que la CPU puede anotar y seguir adelante: una advertencia de batería, un valor ligeramente fuera de un rango esperado, una condición de instrucción no fatal. Estas se registran en el estado para que un programa o un ingeniero puedan verlas, pero no detienen el barrido. El programa continúa, y le corresponde a la aplicación decidir si una falla menor dada merece alguna acción en absoluto.
Una falla mayor es asunto distinto. Es un error lo bastante serio como para que el controlador no pueda continuar con seguridad con el programa como está escrito - los ejemplos clásicos son una división por cero, un índice de arreglo que apunta fuera de los límites del arreglo, un tiempo de espera de watchdog donde un barrido corrió demasiado largo, o una falla de hardware en un módulo. Sin atrapar, una falla mayor envía a la CPU a un estado de falla: deja de ejecutar el programa, típicamente lleva sus salidas a una condición segura, y espera a que un humano despeje la falla y la reinicie.
La razón por la que la distinción importa es que una sola línea de aritmética mala puede, sin ningún manejo especial, tumbar todo el controlador. Un sensor que momentáneamente lee cero y luego se usa como divisor, o un índice calculado que brevemente excede sus límites, basta para disparar una falla mayor. En una máquina con un operador parado junto a ella, eso es un inconveniente. En algo que corre no atendido, es una interrupción que persiste hasta que alguien la nota e interviene físicamente, que es justo el escenario que las rutinas de falla existen para prevenir.
Cómo una rutina de falla atrapa y despeja un error
Cuando ocurre una falla mayor, muchos controladores, antes de apagarse, saltarán a una rutina de falla de usuario designada si hay una configurada. Esa rutina corre con información sobre qué falló - un tipo y código de falla, y a menudo qué programa e instrucción estuvieron involucrados - disponible para que la lógica la lea. Dentro de la rutina se puede inspeccionar esa información y tomar una decisión: algunas fallas son genuinamente irrecuperables y deben permitir que la CPU se detenga, mientras que otras son lo bastante transitorias o benignas como para que continuar sea mucho mejor que detenerse.
Para los casos recuperables, la rutina de falla puede despejar la falla y devolver el control al programa, para que el barrido se reanude en lugar de que el controlador falle. El patrón es identificar la falla específica, tomar cualquier acción correctiva - sustituir un valor seguro, marcar la condición, incrementar un contador de diagnóstico - y luego despejarla, para que un error conocido y sobrevivible se vuelva un evento registrado en lugar de un apagado. Las fallas que no reconoce o que indican un problema real de hardware deliberadamente no se despejan, para que el controlador aún se proteja cuando la situación realmente amerite detenerse.
Este comportamiento de atrapar y decidir es lo que convierte una rutina de falla en una red de seguridad en lugar de una anulación torpe. Despejar ciegamente cada falla sería imprudente, porque una falla mayor a veces refleja una condición donde continuar realmente es inseguro. Una buena rutina de falla es selectiva: atrapa las fallas específicas, anticipadas y recuperables que un proceso robusto debería tolerar, registra suficiente detalle para diagnosticarlas después, y deja las fallas genuinamente peligrosas hacer su trabajo de detener la máquina. Acertar con ese equilibrio es el oficio de escribir una.
Por qué las RTU remotas en pozos necesitan manejo deliberado de fallas
Una RTU no atendida en un pozo no tiene operador que note una CPU fallada y presione un botón. Si un controlador ahí falla por una división por cero o un índice de arreglo malo, el sitio simplemente deja de hacer su trabajo - control, medición, monitoreo de seguridad y telemetría se quedan en silencio - y así permanece hasta que alguien se da cuenta y maneja hasta ahí para investigar. En cuencas remotas eso puede ser horas de viaje por lo que empezó como un solo caso límite de aritmética, así que la economía favorece fuertemente construir lógica que nunca deje que una falla trivial escale a una interrupción.
El trabajo defensivo está en parte en la rutina de falla y en parte en el código que la precede. Proteger las divisiones contra un divisor cero, acotar los índices de arreglo antes de usarlos, y validar las entradas antes de que alimenten matemáticas previene que la mayoría de las fallas mayores evitables surjan siquiera. La rutina de falla entonces respalda los casos que no anticipó, atrapando una falla sorpresa, registrando sus detalles y, donde sea seguro, despejándola para que el sitio siga corriendo en lugar de quedar a oscuras. Juntas hacen a un controlador remoto resiliente a los datos desordenados del mundo real que una prueba de banco nunca produce.
El SCADA de nube cierra la brecha restante haciendo visibles las fallas aun cuando nadie está en el sitio. Reportar el estado de falla del controlador, los códigos de falla y cualquier contador de diagnóstico que la rutina de falla mantenga hacia una plataforma como Merobix significa que un ingeniero ve que un sitio ha fallado, o ha estado atrapando y despejando fallas recuperables, desde un tablero en lugar de descubrirlo en una visita de rutina. Esa visibilidad permite que una falla mayor real sea despachada con prontitud mientras una falla menor manejada simplemente se anota, y convierte el trabajo silencioso de la rutina de falla en un registro auditable de qué tan robustamente corre realmente el sitio remoto.
Preguntas frecuentes
¿Cuál es la diferencia entre una falla mayor y una menor en un PLC?
Una falla menor es una condición recuperable que el controlador registra mientras el programa sigue corriendo, como una advertencia de batería o una condición de instrucción no fatal. Una falla mayor es lo bastante seria como para que la CPU no pueda continuar con seguridad, como una división por cero, un índice de arreglo fuera de límites o un tiempo de espera de watchdog, y detiene el controlador a menos que una rutina de falla la atrape y despeje. En resumen, las fallas menores son sobrevivibles y las mayores detienen la CPU por defecto.
¿Puede un PLC recuperarse de una falla mayor automáticamente?
Sí, si hay una rutina de falla de usuario configurada para atrapar la falla antes de que la CPU se apague. La rutina lee el tipo y el código de falla, decide si la falla es segura de recuperar, y puede despejarla para que el programa se reanude en lugar de fallar. Las fallas que indican un problema genuino de hardware o una condición insegura deben dejarse sin despejar para que el controlador aún se proteja deteniéndose.
¿Por qué las RTU remotas necesitan rutinas de falla más que los PLC locales?
Porque una RTU remota no tiene operador en el sitio que note un controlador fallado y lo reinicie, así que una sola falla mayor sin atrapar puede dejar toda la locación fuera de servicio hasta que alguien maneje hasta ahí, lo que puede estar a horas. El manejo deliberado de fallas, combinado con proteger las divisiones y los índices de arreglo en el código, permite que un error recuperable se registre y despeje en lugar de causar una interrupción. Reportar el estado de falla a una plataforma SCADA de nube hace visible cualquier falla real sin una visita al sitio.
Servicios de automatización
¿Necesita convertir esta información en un sistema que funcione?
Merobix integra SCADA, programa PLC Allen-Bradley y Siemens, y diseña y fabrica tableros de control industrial.
Las solicitudes de reunión se revisan antes de confirmarse.