FSoE-Rahmenstruktur anhand von Beispielen erklärt

Ein Byte Sicherheitsdaten: Die einfachste Safety-PDU

Diese enthält nur eine Sicherheitsdateninstanz, bestehend aus nur einem Byte

OffsetGrößeNameBeschreibung
01 ByteCommandBefehl
11 ByteSafeData[0]Sicherheitsdaten, Oktett 0
22 ByteCRC_016-Bit-CRC
42 ByteConn_Ideindeutige Verbindungs-ID

Alle Mehrbyte-Felder werden in Little-Endian gespeichert.

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

Zwei Byte Sicherheitsdaten

OffsetGrößeNameBeschreibung
01 ByteCommandBefehl
11 ByteSafeData[0]Sicherheitsdaten, Oktett 0
21 ByteSafeData[1]Sicherheitsdaten, Oktett 1
32 ByteCRC_016-Bit-CRC
52 ByteConn_Ideindeutige Verbindungs-ID

Alle Mehrbyte-Felder werden in Little-Endian gespeichert.

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;
};

Vier Byte Sicherheitsdaten

OffsetGrößeNameBeschreibung
01 ByteCommandBefehl
11 ByteSafeData[0]Sicherheitsdaten, Oktett 0
21 ByteSafeData[1]Sicherheitsdaten, Oktett 1
32 ByteCRC_016-Bit-CRC 0
51 ByteSafeData[2]Sicherheitsdaten, Oktett 2
61 ByteSafeData[3]Sicherheitsdaten, Oktett 3
72 ByteCRC_116-Bit-CRC 1
92 ByteConn_Ideindeutige Verbindungs-ID

Alle Mehrbyte-Felder werden in Little-Endian gespeichert.

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;
};

Quelle: ETG.5100 S (D) V1.2.0, Tabelle 4: Shortest safety PDU und Tabelle 3: General Safety PDU, auf Anfrage erhältlich von der EtherCAT Technology Group (ETG)


Check out similar posts by category: FSoE, EtherCAT, Safety