Glosario de Automatización • Temporizacion de retransmision GOOSE

Cómo funcionan la retransmisión de GOOSE y el heartbeat

Ingeniería Merobix • • 6 min de lectura

Un mensaje GOOSE no tiene acuse de recibo. El publicador envía un disparo a un grupo multicast y nunca se entera de si algún suscriptor lo recibió. Eso sería alarmante para una señal de protección, salvo que GOOSE resuelve el problema de confiabilidad de otra forma: repitiéndose, constante e ingeniosamente. Envía un heartbeat lento cuando no pasa nada y una ráfaga rápida en el momento en que algo cambia. Esta guía explica ese esquema de retransmisión, los contadores que permiten a los suscriptores distinguir un evento nuevo de una repetición, y el campo de tiempo que permite a un suscriptor notar cuándo un publicador ha quedado en silencio.

Volver al glosario

Temporizacion de retransmision GOOSE en una línea: GOOSE compensa la falta de acuses de recibo retransmitiendo el mismo mensaje repetidamente. Cuando nada cambia publica a un heartbeat lento y constante; en el instante en que un estado cambia dispara una ráfaga rápida de repeticiones con intervalos que empiezan muy cortos y gradualmente se estiran de regreso a la tasa del heartbeat. Cada mensaje carga contadores y un valor de tiempo de vida permitido para que los suscriptores puedan distinguir eventos nuevos de repeticiones y detectar un publicador perdido.

El heartbeat y la ráfaga de evento

Cuando una subestación está tranquila y ningún estado monitoreado está cambiando, un publicador GOOSE no se queda en silencio. Sigue enviando el mismo mensaje a una cadencia constante y relativamente lenta que a menudo se describe como el heartbeat. Ese heartbeat tiene dos propósitos. Entrega repetidamente el estado actual sin cambio para que cualquier suscriptor que se haya perdido una trama anterior aún aprenda la verdad poco después, y actúa como una señal de vitalidad: mientras el heartbeat siga llegando, los suscriptores saben que el publicador y la ruta de red están sanos.

En el momento en que un estado realmente cambia - un interruptor abre, un elemento de protección arranca - el publicador abandona la cadencia lenta y dispara una ráfaga rápida. Envía el mensaje nuevo casi de inmediato, luego otra vez tras un intervalo muy corto, luego otra vez tras uno ligeramente más largo, con el hueco entre repeticiones aumentando paso a paso hasta que se relaja de regreso a la tasa normal del heartbeat. Esa ráfaga concentrada al frente es el mecanismo de confiabilidad para el evento mismo: como el nuevo estado se envía muchas veces en rápida sucesión, la probabilidad de que al menos una copia llegue a cada suscriptor en milisegundos es muy alta, incluso en una red que ocasionalmente descarta una trama.

Los contadores stNum y sqNum

Cada mensaje GOOSE carga dos contadores que permiten a un suscriptor dar sentido al flujo. El número de estado, stNum, incrementa cada vez que los datos de la carga útil realmente cambian. El número de secuencia, sqNum, cuenta las repeticiones dentro de un estado y se reinicia a un valor de arranque cada vez que comienza un estado nuevo. Leerlos juntos le dice a un suscriptor exactamente qué está mirando: un salto en stNum significa que ha ocurrido un evento genuinamente nuevo, mientras que un sqNum en ascenso con un stNum sin cambio significa que simplemente está viendo otra repetición de un estado que ya conoce.

Este emparejamiento es lo que hace confiable al multicast con pérdidas y sin acuse. Un suscriptor puede actuar de inmediato sobre el primer mensaje de un stNum nuevo e ignorar con seguridad las repeticiones siguientes del mismo estado, así que una ráfaga de diez copias de un disparo no se procesa como diez disparos. También permite a un suscriptor notar un problema: si ve que stNum salta hacia adelante por más de uno, sabe que se perdió un cambio de estado intermedio, y si los contadores dejan de avanzar como se espera puede marcar el flujo como sospechoso. Los contadores convierten una manguera de tramas repetidas en una vista ordenada y deduplicada de lo que ocurrió.

Tiempo de vida permitido y detectar un publicador perdido

Cada mensaje GOOSE también carga un valor de tiempo de vida permitido, que es en esencia el publicador diciéndole a cada suscriptor cuánto tiempo seguir confiando en este mensaje antes de esperar el siguiente. Como el publicador siempre envía de nuevo antes de que expire esa ventana - el heartbeat lo garantiza - un suscriptor puede correr un perro guardián simple: arrancar el reloj en cada mensaje recibido, y si el siguiente no llega antes de que se agote el tiempo de vida declarado, tratar al publicador como perdido. Así es como un suscriptor detecta un relevador con falla o una ruta de red rota aunque nada envíe nunca un aviso explícito de falla.

Esa supervisión importa tanto como los propios disparos. Un esquema de protección que en silencio deja de recibir GOOSE es peligroso, porque un suscriptor podría quedarse esperando un disparo que ya no puede llegar. El tiempo de vida permitido convierte el silencio en una condición detectable y alarmable. Para una sala de control o una plataforma SCADA en la nube, este es el enganche útil: el gateway de la subestación puede sacar a la superficie el estado de supervisión de GOOSE - qué publicadores están vivos, qué suscripciones han quedado obsoletas, cuándo avanzó por última vez un flujo - y reenviarlo hacia arriba. Una plataforma como Merobix puede luego tender tendencias y alarmar sobre esas señales de salud junto a las mediciones eléctricas, de modo que un publicador GOOSE perdido aparezca como un evento de operaciones a investigar en lugar de como un hueco callado que nadie nota hasta que un disparo no actúa.

Preguntas frecuentes

¿Por qué GOOSE sigue reenviando el mismo mensaje?

GOOSE no tiene acuses de recibo, así que logra la confiabilidad por repetición en su lugar. Un heartbeat lento entrega repetidamente el estado actual sin cambio y confirma que el publicador está vivo, mientras que una ráfaga rápida tras cualquier cambio hace muy probable que cada suscriptor reciba el nuevo estado en milisegundos aunque algunas tramas se descarten. La repetición es el sustituto del apretón de manos que TCP normalmente proveería.

¿Qué significan stNum y sqNum en un mensaje GOOSE?

stNum es el número de estado, que incrementa cada vez que la carga útil del mensaje realmente cambia, marcando un evento genuinamente nuevo. sqNum es el número de secuencia, que cuenta las repeticiones dentro de un solo estado y se reinicia cuando comienza un estado nuevo. Leerlos juntos permite a un suscriptor actuar sobre eventos reales, ignorar repeticiones duplicadas, y notar si se perdió un cambio de estado.

¿Cómo sabe un suscriptor que un publicador GOOSE ha fallado?

Cada mensaje incluye un valor de tiempo de vida permitido que le dice a los suscriptores cuánto esperar antes de que deba llegar el siguiente mensaje. Como el heartbeat siempre envía de nuevo dentro de esa ventana, un suscriptor puede correr un perro guardián: si ningún mensaje nuevo llega antes de que expire el tiempo de vida, trata al publicador como perdido. Esto convierte una falla silenciosa en una condición detectable y alarmable.

Más en Protocolos industriales
Preámbulo HART  •  Node guarding frente a heartbeat  •  Mensaje GOOSE  •  Todo en Protocolos industriales →
Capacitación SCADA gratuita para operadores
Merobix University - 70 lecciones en video y 261 preguntas de examen, del primer inicio de sesión a los reportes de cumplimiento (contenido en inglés). Sin llamada de ventas.
Comenzar gratis →