FSoE: estructura de trama explicada con ejemplos

Un byte de datos de seguridad: la PDU de seguridad más simple

Contiene una sola instancia de datos de seguridad, compuesta únicamente por un byte

OffsetTamañoNombreDescripción
01 byteCommandComando
11 byteSafeData[0]datos de seguridad, octeto 0
22 byteCRC_0CRC de 16 bits
42 byteConn_IdID de conexión único

Todos los campos multibyte se almacenan en little endian.

FSoEShortestSafetyPDU.h
struct __attribute__((packed)) FSoEShortestSafetyPDU {
    uint8_t Command;
    uint8_t SafeData_0;
    uint16_t CRC_0;
    uint16_t Conn_Id;
};

Dos bytes de datos de seguridad

OffsetTamañoNombreDescripción
01 byteCommandComando
11 byteSafeData[0]datos de seguridad, octeto 0
21 byteSafeData[1]datos de seguridad, octeto 1
32 byteCRC_0CRC de 16 bits
52 byteConn_IdID de conexión único

Todos los campos multibyte se almacenan en little endian.

FSoETwoByteSafeDataPDU.h
struct __attribute__((packed)) FSoETwoByteSafeDataPDU {
    uint8_t Command;
    uint8_t SafeData_0;
    uint8_t SafeData_1;
    uint16_t CRC_0;
    uint16_t Conn_Id;
};

Cuatro bytes de datos de seguridad

OffsetTamañoNombreDescripción
01 byteCommandComando
11 byteSafeData[0]datos de seguridad, octeto 0
21 byteSafeData[1]datos de seguridad, octeto 1
32 byteCRC_0CRC 0 de 16 bits
51 byteSafeData[2]datos de seguridad, octeto 2
61 byteSafeData[3]datos de seguridad, octeto 3
72 byteCRC_1CRC 1 de 16 bits
92 byteConn_IdID de conexión único

Todos los campos multibyte se almacenan en little endian.

FSoEFourByteSafeDataPDU.h
struct __attribute__((packed)) FSoEFourByteSafeDataPDU {
    uint8_t Command;
    uint8_t SafeData_0;
    uint8_t SafeData_1;
    uint16_t CRC_0;
    uint8_t SafeData_2;
    uint8_t SafeData_3;
    uint16_t CRC_1;
    uint16_t Conn_Id;
};

Fuente: ETG.5100 S (D) V1.2.0, Table 4: Shortest safety PDU y Table 3: General Safety PDU, disponible bajo petición al EtherCAT Technology Group (ETG)


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