FSoE (Fail Safe over EtherCAT) usa un Safety PDU dedicado para comandos de control y diagnóstico. El comando Reset lo envía el Master tras un reinicio o un error; el Slave acusa recibo con un PDU Reset coincidente. Los diagramas siguientes muestran los diseños de trama del Master y del Slave para 2, 4, 6 y 8 bytes de datos de seguridad. En cada gráfico, la fila superior muestra la estructura a nivel de palabra (campos CRC y Connection ID de 16 bits), y la segunda fila descompone cada palabra en su octeto bajo y alto.
Nota — el número de bytes de datos de seguridad es fijo por dirección. Cada conexión FSoE tiene una longitud fija de datos de seguridad (master→slave y slave→master), configurada de forma idéntica en ambos nodos. Las longitudes permitidas son 1, 2, 4, 6 u 8 octetos. La longitud real para una conexión dada depende del dispositivo FSoE Slave y debe tomarse de la documentación del Slave o de su archivo de descripción de dispositivo (ESI/EEPROM). Los diagramas siguientes muestran todas las longitudes estándar para que puedas consultar el diseño que aplica a tu dispositivo específico.
PDU Reset del Master (FSoE Master → Slave)
2 bytes de datos de seguridad
| Command | SafeData[0] | SafeData[1] | CRC_0 | Conn_Id | ||
|---|---|---|---|---|---|---|
| Reset Octeto 0 | código de error Octeto 1 | 0 Octeto 2 | CRC_0_Lo Octeto 3 | CRC_0_Hi Octeto 4 | Conn_Id_Lo Octeto 5 | Conn_Id_Hi Octeto 6 |
4 bytes de datos de seguridad
| Command | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | Conn_Id | |||
|---|---|---|---|---|---|---|---|---|---|---|
| Reset Octeto 0 | código de error Octeto 1 | 0 Octeto 2 | CRC_0_Lo Octeto 3 | CRC_0_Hi Octeto 4 | 0 Octeto 5 | 0 Octeto 6 | CRC_1_Lo Octeto 7 | CRC_1_Hi Octeto 8 | Conn_Id_Lo Octeto 9 | Conn_Id_Hi Octeto 10 |
6 bytes de datos de seguridad
| Command | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | ||
|---|---|---|---|---|---|---|---|---|
| SafeData[4] | SafeData[5] | CRC_2 | Conn_Id | |||||
| Reset Octeto 0 | código de error Octeto 1 | 0 Octeto 2 | CRC_0_Lo Octeto 3 | CRC_0_Hi Octeto 4 | 0 Octeto 5 | 0 Octeto 6 | CRC_1_Lo Octeto 7 | CRC_1_Hi Octeto 8 |
| 0 Octeto 9 | 0 Octeto 10 | CRC_2_Lo Octeto 11 | CRC_2_Hi Octeto 12 | Conn_Id_Lo Octeto 13 | Conn_Id_Hi Octeto 14 | |||
8 bytes de datos de seguridad
| Command | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | |||
|---|---|---|---|---|---|---|---|---|---|
| SafeData[4] | SafeData[5] | CRC_2 | SafeData[6] | SafeData[7] | CRC_3 | Conn_Id | |||
| Reset Octeto 0 | código de error Octeto 1 | 0 Octeto 2 | CRC_0_Lo Octeto 3 | CRC_0_Hi Octeto 4 | 0 Octeto 5 | 0 Octeto 6 | CRC_1_Lo Octeto 7 | CRC_1_Hi Octeto 8 | |
| 0 Octeto 9 | 0 Octeto 10 | CRC_2_Lo Octeto 11 | CRC_2_Hi Octeto 12 | 0 Octeto 13 | 0 Octeto 14 | CRC_3_Lo Octeto 15 | CRC_3_Hi Octeto 16 | Conn_Id_Lo Octeto 17 | Conn_Id_Hi Octeto 18 |
PDU Reset del Slave (FSoE Slave → Master, acuse de recibo)
2 bytes de datos de seguridad
| Command | SafeData[0] | SafeData[1] | CRC_0 | Conn_Id | ||
|---|---|---|---|---|---|---|
| Reset Octeto 0 | 0 Octeto 1 | 0 Octeto 2 | CRC_0_Lo Octeto 3 | CRC_0_Hi Octeto 4 | Conn_Id_Lo Octeto 5 | Conn_Id_Hi Octeto 6 |
4 bytes de datos de seguridad
| Command | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | Conn_Id | |||
|---|---|---|---|---|---|---|---|---|---|---|
| Reset Octeto 0 | 0 Octeto 1 | 0 Octeto 2 | CRC_0_Lo Octeto 3 | CRC_0_Hi Octeto 4 | 0 Octeto 5 | 0 Octeto 6 | CRC_1_Lo Octeto 7 | CRC_1_Hi Octeto 8 | Conn_Id_Lo Octeto 9 | Conn_Id_Hi Octeto 10 |
6 bytes de datos de seguridad
| Command | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | ||
|---|---|---|---|---|---|---|---|---|
| SafeData[4] | SafeData[5] | CRC_2 | Conn_Id | |||||
| Reset Octeto 0 | 0 Octeto 1 | 0 Octeto 2 | CRC_0_Lo Octeto 3 | CRC_0_Hi Octeto 4 | 0 Octeto 5 | 0 Octeto 6 | CRC_1_Lo Octeto 7 | CRC_1_Hi Octeto 8 |
| 0 Octeto 9 | 0 Octeto 10 | CRC_2_Lo Octeto 11 | CRC_2_Hi Octeto 12 | Conn_Id_Lo Octeto 13 | Conn_Id_Hi Octeto 14 | |||
8 bytes de datos de seguridad
| Command | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | |||
|---|---|---|---|---|---|---|---|---|---|
| SafeData[4] | SafeData[5] | CRC_2 | SafeData[6] | SafeData[7] | CRC_3 | Conn_Id | |||
| Reset Octeto 0 | 0 Octeto 1 | 0 Octeto 2 | CRC_0_Lo Octeto 3 | CRC_0_Hi Octeto 4 | 0 Octeto 5 | 0 Octeto 6 | CRC_1_Lo Octeto 7 | CRC_1_Hi Octeto 8 | |
| 0 Octeto 9 | 0 Octeto 10 | CRC_2_Lo Octeto 11 | CRC_2_Hi Octeto 12 | 0 Octeto 13 | 0 Octeto 14 | CRC_3_Lo Octeto 15 | CRC_3_Hi Octeto 16 | Conn_Id_Lo Octeto 17 | Conn_Id_Hi Octeto 18 |
Códigos de error de comunicación FSoE
En el PDU Reset del Master, SafeData[0] (bits 0–7) transporta el código de error. Un valor de 0x00 indica un reset local o un acuse de recibo.
| Código de error | Descripción |
|---|---|
| 0 | Reset local o acuse de recibo de un comando RESET |
| 1 | Comando inesperado (INVALID_CMD) |
| 2 | Comando desconocido (UNKNOWN_CMD) |
| 3 | Connection ID inválido (INVALID_CONNID) |
| 4 | Error de CRC (INVALID_CRC) |
| 5 | Watchdog expirado (WD_EXPIRED) |
| 6 | FSoE Slave Address inválida (INVALID_ADDRESS) |
| 7 | Datos de seguridad inválidos (INVALID_DATA) |
| 8 | Longitud de parámetros de comunicación inválida (INVALID_COMPARALEN) |
| 9 | Datos de parámetros de comunicación inválidos (INVALID_COMPARA) |
| 10 | Longitud de parámetros de aplicación inválida (INVALID_USERPARALEN) |
| 11 | Datos de parámetros de aplicación inválidos (INVALID_USERPARA) |
| 0x80–0xFF | SafePara inválido (específico del dispositivo) |
Artículos relacionados
Visión general y conceptos básicos
- What does the FSoE abbreviation actually mean? — qué significa el acrónimo FSoE
- FSoE frame structure explained by examples — estructura general del Safety PDU
- All the states of the FSoE state machine — los cinco estados FSoE y sus transiciones
- FSoE: Safety PDU command table — la lista completa de comandos FSoE
Estructuras PDU por estado
- FSoE Reset State PDU: Master and Slave Structure — estructura del PDU y códigos de error del estado Reset
- FSoE Session PDU: Master and Slave Structure — estructura del PDU del estado Session
- FSoE Connection PDU: Master and Slave Structure — estructura del PDU del estado Connection
- FSoE Parameter PDU: Master and Slave Structure — estructura del PDU del estado Parameter
- FSoE Data PDU: Master and Slave Structure — estructura del PDU del estado Data
CRC
- FSoE CRC: Which polynomial does it use? — el polinomio de 17 bits detrás del CRC de FSoE
- How are the FSoE CRC tables constructed? — cómo se generan las tablas de lookup del CRC
- FSoE: How does CRC inheritance work? — cómo la cadena de CRC enlaza PDUs consecutivos
- How to compute the CRC checksum for FSoE PDUs? — algoritmo de cálculo del CRC byte a byte
Códigos de error y formato de datos
- FSoE: List of all communication código de errors — todos los códigos de error de comunicación FSoE
- FSoE: Is data transmitted little-endian or big-endian? — orden de bytes de los campos multibyte