Que es un temporizador deadman para enlaces remotos?
Un sitio remoto controlado desde un host distante tiene un modo de falla peligroso: el enlace puede morir en silencio, dejando el sitio corriendo con su ultimo comando recibido sin nadie vigilando ni capaz de intervenir. Un temporizador deadman protege contra exactamente esto al requerir que el host siga demostrando que aun esta ahi, y llevar el sitio a un estado seguro si deja de hacerlo. Esta guia explica que es un temporizador deadman, como la ausencia de una actualizacion del host dispara una accion de estado seguro, y por que protege un activo remoto cuando el enlace se queda callado.
Temporizador deadman en una línea: Un temporizador deadman es un temporizador en un dispositivo remoto que espera ser refrescado con regularidad por el host que lo controla y, si ese refresco no llega dentro del tiempo fijado, lleva el dispositivo o proceso a un estado seguro predefinido. Nombrado por el interruptor de hombre muerto que actua cuando el operador suelta, protege un activo remoto de correr sin supervision con comandos rancios cuando el enlace al host se queda callado.
El peligro de un enlace muerto en silencio
Cuando un dispositivo remoto toma direccion de un host que lo controla sobre un enlace, normalmente actua sobre los comandos y consignas que el host envia. El riesgo oculto es que pasa si ese enlace falla sin que el dispositivo lo note. La comunicacion puede detenerse por muchas razones - un modem muere, un portador cae, un cable se corta, el propio host se derrumba - y a menos que el dispositivo este construido para reaccionar, simplemente seguira haciendo lo que sea que le dijeron por ultima vez, indefinidamente. Se queda ahi ejecutando un comando que pudo ser apropiado cuando llego pero que desde entonces se ha vuelto equivocado o inseguro, porque las condiciones han cambiado y nadie puede actualizarlo.
Esto es peor que una falla obvia porque es silencioso. El dispositivo parece estar funcionando - esta corriendo, ejecutando su ultima instruccion - pero de hecho ha sido abandonado, cortado de la supervision de la que depende, y no hay operador capaz de ver la situacion ni de intervenir. Un proceso dejado corriendo con comandos rancios y el enlace muerto puede derivar hacia una condicion peligrosa sin nada que lo detenga, y la mismisima cosa que debio atrapar el problema, la conexion al host, es la cosa que esta rota.
La forma segura de manejar esto es tratar la perdida de la presencia del host como una condicion sobre la que actuar por derecho propio, no algo que esperar de forma pasiva. En lugar de suponer que el ultimo comando sigue siendo valido hasta que llegue uno nuevo, el dispositivo debe suponer que si no ha sabido del host por demasiado tiempo, ya no puede estar seguro de que su accion actual sea segura, y debe moverse a un estado que sea seguro sin importar lo que el proceso este haciendo. Un temporizador deadman es el mecanismo que impone exactamente esa suposicion.
Como el temporizador dispara un estado seguro
Un temporizador deadman funciona requiriendo reaseguramiento continuo. El host que controla debe enviar con regularidad al dispositivo remoto algo que reinicie el temporizador - una actualizacion, un refresco periodico, un keep-alive - y mientras esos lleguen dentro de la ventana del temporizador, el dispositivo continua con normalidad, tomando el flujo constante de refrescos como evidencia de que el host esta presente y en control. El temporizador esta constantemente contando hacia su vencimiento y constantemente siendo reiniciado antes de llegar ahi, asi que en operacion normal nunca se dispara.
El temporizador se dispara solo cuando los refrescos se detienen. Si el tiempo fijado transcurre sin la actualizacion esperada del host, el dispositivo concluye que la supervision se ha perdido y toma su accion de estado seguro - no espera a que le digan, porque el punto entero es que nadie puede decirle nada. Cual es ese estado seguro depende por completo del activo y del proceso: podria cerrar una valvula, detener una bomba, abrir o disparar una salida, mantenerse en un ajuste seguro fijo, o apagar el equipo de forma ordenada. La idea definitoria es que la accion se elige de antemano para ser segura bajo la perdida de supervision, y ocurre de forma automatica al vencer el tiempo.
El nombre captura la logica con precision: un interruptor de hombre muerto es uno que debe sostenerse activamente para mantener una maquina corriendo y que actua en el momento en que el operador suelta, asi que el resultado seguro es lo predeterminado y la operacion continua requiere entrada positiva sostenida. Un temporizador deadman aplica la misma filosofia a prueba de fallas a un enlace de comunicacion - el enlace debe seguir siendo probado activamente como vivo para mantener el dispositivo corriendo como se le comando, y en el momento en que esa prueba se detiene, el dispositivo cae a la seguridad. El silencio se trata como un comando de estar seguro, que es lo opuesto de suponer que el silencio significa que todo esta bien.
Temporizadores deadman en activos SCADA remotos
Un temporizador deadman es uno de una familia de salvaguardas relacionadas, y vale la pena tener claro que lo distingue. Un temporizador watchdog generalmente protege a un dispositivo contra su propio cuelgue interno - reinicia el dispositivo si su propia logica deja de correr. Un watchdog de comunicaciones y un latido detectan que un enlace esta caido y tipicamente generan una alarma al respecto. El trabajo distintivo del temporizador deadman es la accion: no solo nota que el host se ha quedado callado, lleva el proceso a un estado seguro definido a causa de ese silencio. Su enfoque es la respuesta de estado seguro a la ausencia de una actualizacion del host, no la deteccion sola.
Por eso, el temporizador deadman es inherentemente una funcion de seguridad local, que vive en el dispositivo remoto en lugar de en el host, y debe serlo, ya que existe precisamente para la situacion en que el host no puede alcanzarse. Debe seguir funcionando aun cuando todo aguas arriba haya fallado, lo que significa que no puede depender del mismo enlace contra el que esta protegiendo. Fijar su tiempo de vencimiento es una decision considerada: lo bastante largo para que una caida de comunicacion breve y recuperable no dispare el sitio a su estado seguro sin necesidad, pero lo bastante corto para que un enlace genuinamente muerto no deje el activo corriendo sin supervision por mas tiempo del que es seguro.
Para una plataforma SCADA de nube como Merobix, el temporizador deadman es la ultima linea de defensa que hace segura la supervision remota, y vive en el sitio precisamente porque debe sobrevivir la perdida de la conexion a la nube. La plataforma provee el monitoreo y los comandos supervisores sobre el enlace, pero la garantia de que un activo remoto fallara a una condicion segura si ese enlace muere recae en el dispositivo local y su temporizador deadman, no en la nube. Esa division es deliberada y correcta: la nube supervisa cuando el enlace esta sano, y el temporizador deadman toma el control en el instante en que no lo esta, asegurando que un sitio remoto nunca pueda quedar corriendo a ciegas con comandos rancios cuando se pierde el contacto.
Preguntas frecuentes
En que se diferencia un temporizador deadman de un temporizador watchdog?
Un temporizador watchdog generalmente protege a un dispositivo contra su propia falla interna, reiniciando el dispositivo si su propia logica deja de correr con normalidad. Un temporizador deadman en cambio vigila la ausencia de actualizaciones de un host externo que lo controla y lleva el dispositivo o proceso a un estado seguro predefinido cuando esas actualizaciones se detienen. El watchdog protege a un dispositivo de colgarse a si mismo; el temporizador deadman protege a un proceso de correr sin supervision cuando el host o el enlace se quedan callados.
A que estado seguro lleva un temporizador deadman a un dispositivo?
Depende por completo del activo y del proceso, y el estado se elige de antemano para ser seguro bajo la perdida de supervision. Podria cerrar una valvula, detener una bomba, disparar o abrir una salida, mantenerse en un ajuste seguro fijo, o apagar el equipo de forma ordenada. El hilo comun es que sea cual sea la accion, se define de antemano para que el dispositivo pueda caer a ella de forma automatica cuando el host deja de refrescarlo, sin necesitar ninguna instruccion adicional.
Por que debe ser local al dispositivo remoto un temporizador deadman?
Porque existe precisamente para la situacion en que el host que controla no puede alcanzarse, asi que no puede depender del enlace contra el que esta protegiendo. Si viviera en el host o dependiera de la conexion, un enlace muerto deshabilitaria la mismisima salvaguarda destinada a manejar un enlace muerto. Mantenerlo local significa que continua funcionando y puede llevar el activo a un estado seguro aun cuando todo aguas arriba, incluida la conexion a la nube, ha fallado.
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.