FSoE: Todos los estados de la máquina de estados

La conexión FSoE (Fail Safe over EtherCAT) se rige por una máquina de estados pequeña y determinista. Tanto el Master como el Slave ejecutan su propia copia de la máquina, y ambas avanzan en bloque intercambiando el comando FSoE correcto en cada Safety PDU. Tras el encendido, o cuando se detecta un error de comunicación, la conexión retrocede al estado Reset y recomienza.

El siguiente diagrama muestra todos los estados y todas las transiciones en una vista vertical. Cada estado corresponde a uno de los comandos FSoE, y las tres etiquetas de transición — OK, STAY y NOT_OK — describen cómo se compara el comando recibido con el estado que la máquina espera en ese momento.

Diagrama de la máquina de estados FSoEMáquina de estados vertical con cinco estados: Reset, Session, Connection, Parameter y Data. OK avanza hacia abajo, STAY mantiene el estado actual y NOT_OK vuelve a Reset.ResetSessionConnectionParameterDataOKOKOKOKOKSTAYSTAYSTAYSTAYSTAYNOT_OKNOT_OKNOT_OKNOT_OKNOT_OK

Cómo leer el diagrama

Los tres tipos de transición se evalúan a partir del comando recibido en el Safety PDU del peer:

TransiciónSignificadoResultado
OKEl comando recibido es el siguiente estado esperado.Avanzar un escalón hacia abajo (o permanecer en Data una vez alcanzado).
STAYEl comando recibido coincide con el estado actual.Permanecer en el estado actual y esperar.
NOT_OKEl comando recibido es inesperado o se produjo un error de CRC/watchdog.Volver inmediatamente a Reset.

Cada estado también envía su propio comando en el PDU saliente, de modo que ambos peers avanzan a la par. Por ejemplo, mientras el Master está en el estado Session envía el comando Session, y espera que el Slave responda con Connection (OK) para avanzar, con Session (STAY) para esperar, o con cualquier otra cosa (NOT_OK) para retroceder a Reset.

Los cinco estados

1. Reset

Este es el estado de entrada tras el encendido, tras un reinicio (“reset connection”) o cuando se detecta un error de comunicación FSoE. En Reset no se intercambian datos de seguridad del usuario; el PDU transporta el comando Reset y, en el lado que causó el error, un código de error de un byte. El número de secuencia y el CRC heredado se borran ambos al entrar. Consulta FSoE Reset State PDU: Master and Slave Structure para el diseño exacto de bytes y la tabla de códigos de error.

2. Session

El Master sale primero de Reset enviando el comando Session. El Slave lo sigue en cuanto recibe un Session PDU válido. En este estado ambos peers intercambian los connection IDs y verifican que la dirección FSoE del Slave sea correcta. Un comando Connection del peer es la señal OK que mueve la máquina al siguiente estado.

3. Connection

En el estado Connection los peers establecen los parámetros básicos de comunicación: la longitud de los datos de seguridad, la temporización del watchdog y el Conn_Id. La transición OK se desencadena al recibir el comando Parameter. Mientras ambos lados siguen en Connection siguen enviando Connection y la máquina permanece (STAY).

4. Parameter

Aquí el comando Parameter transporta los SafeParameter que configuran la aplicación de seguridad (p. ej. conjuntos de parámetros específicos de la aplicación). Recibir el comando Data es la señal OK para entrar en el estado operativo final. Si el intercambio de parámetros falla o tarda demasiado, la conexión retrocede a Reset por NOT_OK.

5. Data

Este es el estado operativo normal. Los datos de seguridad del usuario se intercambian en cada Safety PDU, y ambos peers envían el comando Data. Un auto-bucle OK significa que la conexión permanece en Data mientras la comunicación esté sana. Normalmente no se observa un auto-bucle STAY en Data (no hay un estado superior por el que esperar), pero la máquina de estados sigue tratando un comando Data repetido como “permanecer en Data”. Cualquier comando inesperado o error de CRC/watchdog devuelve la máquina a Reset.

Resumen

La máquina de estados FSoE es una escalera lineal de cinco estados: Reset → Session → Connection → Parameter → Data. Una transición OK verde avanza la máquina un escalón hacia abajo, una transición STAY gris la mantiene donde está, y una transición NOT_OK roja la devuelve por completo a Reset. Como tanto el Master como el Slave implementan la misma máquina, toda la conexión se reinicia de forma segura en cuanto cualquiera de los dos lados detecta algo incorrecto.

Referencias

  • ETG.5100 S (D) V1.2.0, la especificación FSoE que define estos estados y transiciones.

Artículos relacionados

Visión general y conceptos básicos

Estructuras PDU por estado

CRC

Códigos de error y formato de datos


Echa un vistazo a artículos similares por categoría: FSoE EtherCAT Safety