FSoE (Fail Safe over EtherCAT) verwendet eine dedizierte Safety PDU für Steuerungs- und Diagnosebefehle. Der Reset-Befehl wird vom Master nach einem Neustart oder Fehler gesendet; der Slave quittiert ihn mit einer entsprechenden Reset-PDU. Die folgenden Diagramme zeigen die Master- und Slave-Frame-Layouts für 2, 4, 6 und 8 Sicherheitsdaten-Bytes. In jeder Grafik zeigt die obere Zeile die Wort-Struktur (16-Bit-CRC- und Connection-ID-Felder), und die zweite Zeile zerlegt jedes Wort in sein niedriges und hohes Oktett.
Hinweis — die Anzahl der Sicherheitsdaten-Bytes ist pro Richtung festgelegt. Jede FSoE-Verbindung hat eine feste Sicherheitsdatenlänge (Master→Slave und Slave→Master), die auf beiden Knoten identisch konfiguriert ist. Die zulässigen Längen sind 1, 2, 4, 6 oder 8 Oktetts. Die tatsächliche Länge für eine bestimmte Verbindung hängt vom FSoE-Slave-Gerät ab und muss der Dokumentation oder der Gerätebeschreibungsdatei (ESI/EEPROM) des Slaves entnommen werden. Die folgenden Diagramme zeigen alle Standardlängen, sodass Sie das Layout nachschlagen können, das für Ihr spezifisches Gerät gilt.
Master Reset PDU (FSoE Master → Slave)
2 Sicherheitsdaten-Bytes
| Command | SafeData[0] | SafeData[1] | CRC_0 | Conn_Id | ||
|---|---|---|---|---|---|---|
| Reset Octet 0 | error code Octet 1 | 0 Octet 2 | CRC_0_Lo Octet 3 | CRC_0_Hi Octet 4 | Conn_Id_Lo Octet 5 | Conn_Id_Hi Octet 6 |
4 Sicherheitsdaten-Bytes
| Command | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | Conn_Id | |||
|---|---|---|---|---|---|---|---|---|---|---|
| Reset Octet 0 | error code Octet 1 | 0 Octet 2 | CRC_0_Lo Octet 3 | CRC_0_Hi Octet 4 | 0 Octet 5 | 0 Octet 6 | CRC_1_Lo Octet 7 | CRC_1_Hi Octet 8 | Conn_Id_Lo Octet 9 | Conn_Id_Hi Octet 10 |
6 Sicherheitsdaten-Bytes
| Command | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | ||
|---|---|---|---|---|---|---|---|---|
| SafeData[4] | SafeData[5] | CRC_2 | Conn_Id | |||||
| Reset Octet 0 | error code Octet 1 | 0 Octet 2 | CRC_0_Lo Octet 3 | CRC_0_Hi Octet 4 | 0 Octet 5 | 0 Octet 6 | CRC_1_Lo Octet 7 | CRC_1_Hi Octet 8 |
| 0 Octet 9 | 0 Octet 10 | CRC_2_Lo Octet 11 | CRC_2_Hi Octet 12 | Conn_Id_Lo Octet 13 | Conn_Id_Hi Octet 14 | |||
8 Sicherheitsdaten-Bytes
| 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 Octet 0 | error code Octet 1 | 0 Octet 2 | CRC_0_Lo Octet 3 | CRC_0_Hi Octet 4 | 0 Octet 5 | 0 Octet 6 | CRC_1_Lo Octet 7 | CRC_1_Hi Octet 8 | |
| 0 Octet 9 | 0 Octet 10 | CRC_2_Lo Octet 11 | CRC_2_Hi Octet 12 | 0 Octet 13 | 0 Octet 14 | CRC_3_Lo Octet 15 | CRC_3_Hi Octet 16 | Conn_Id_Lo Octet 17 | Conn_Id_Hi Octet 18 |
Slave Reset PDU (FSoE Slave → Master, Quittierung)
2 Sicherheitsdaten-Bytes
| Command | SafeData[0] | SafeData[1] | CRC_0 | Conn_Id | ||
|---|---|---|---|---|---|---|
| Reset Octet 0 | 0 Octet 1 | 0 Octet 2 | CRC_0_Lo Octet 3 | CRC_0_Hi Octet 4 | Conn_Id_Lo Octet 5 | Conn_Id_Hi Octet 6 |
4 Sicherheitsdaten-Bytes
| Command | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | Conn_Id | |||
|---|---|---|---|---|---|---|---|---|---|---|
| Reset Octet 0 | 0 Octet 1 | 0 Octet 2 | CRC_0_Lo Octet 3 | CRC_0_Hi Octet 4 | 0 Octet 5 | 0 Octet 6 | CRC_1_Lo Octet 7 | CRC_1_Hi Octet 8 | Conn_Id_Lo Octet 9 | Conn_Id_Hi Octet 10 |
6 Sicherheitsdaten-Bytes
| Command | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | ||
|---|---|---|---|---|---|---|---|---|
| SafeData[4] | SafeData[5] | CRC_2 | Conn_Id | |||||
| Reset Octet 0 | 0 Octet 1 | 0 Octet 2 | CRC_0_Lo Octet 3 | CRC_0_Hi Octet 4 | 0 Octet 5 | 0 Octet 6 | CRC_1_Lo Octet 7 | CRC_1_Hi Octet 8 |
| 0 Octet 9 | 0 Octet 10 | CRC_2_Lo Octet 11 | CRC_2_Hi Octet 12 | Conn_Id_Lo Octet 13 | Conn_Id_Hi Octet 14 | |||
8 Sicherheitsdaten-Bytes
| 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 Octet 0 | 0 Octet 1 | 0 Octet 2 | CRC_0_Lo Octet 3 | CRC_0_Hi Octet 4 | 0 Octet 5 | 0 Octet 6 | CRC_1_Lo Octet 7 | CRC_1_Hi Octet 8 | |
| 0 Octet 9 | 0 Octet 10 | CRC_2_Lo Octet 11 | CRC_2_Hi Octet 12 | 0 Octet 13 | 0 Octet 14 | CRC_3_Lo Octet 15 | CRC_3_Hi Octet 16 | Conn_Id_Lo Octet 17 | Conn_Id_Hi Octet 18 |
FSoE-Kommunikationsfehlercodes
In der Master-Reset-PDU trägt SafeData[0] (Bits 0–7) den Fehlercode. Ein Wert von 0x00 kennzeichnet einen lokalen Reset oder eine Quittierung.
| Fehlercode | Beschreibung |
|---|---|
| 0 | Lokaler Reset oder Quittierung eines RESET-Befehls |
| 1 | Unerwarteter Befehl (INVALID_CMD) |
| 2 | Unbekannter Befehl (UNKNOWN_CMD) |
| 3 | Ungültige Connection ID (INVALID_CONNID) |
| 4 | CRC-Fehler (INVALID_CRC) |
| 5 | Watchdog abgelaufen (WD_EXPIRED) |
| 6 | Ungültige FSoE-Slave-Adresse (INVALID_ADDRESS) |
| 7 | Ungültige Sicherheitsdaten (INVALID_DATA) |
| 8 | Ungültige Kommunikationsparameterlänge (INVALID_COMPARALEN) |
| 9 | Ungültige Kommunikationsparameterdaten (INVALID_COMPARA) |
| 10 | Ungültige Applikationsparameterlänge (INVALID_USERPARALEN) |
| 11 | Ungültige Applikationsparameterdaten (INVALID_USERPARA) |
| 0x80–0xFF | Ungültiger SafePara (gerätespezifisch) |
Verwandte Beiträge
Überblick & Grundlagen
- What does the FSoE abbreviation actually mean? — wofür das FSoE-Akronym steht
- FSoE frame structure explained by examples — allgemeiner Aufbau der Safety PDU
- All the states of the FSoE state machine — die fünf FSoE-Zustände und ihre Übergänge
- FSoE: Safety PDU command table — die vollständige Liste der FSoE-Befehle
PDU-Strukturen nach Zustand
- FSoE Reset State PDU: Master and Slave Structure — PDU-Layout und Fehlercodes für den Reset-Zustand
- FSoE Session PDU: Master and Slave Structure — PDU-Layout für den Session-Zustand
- FSoE Connection PDU: Master and Slave Structure — PDU-Layout für den Connection-Zustand
- FSoE Parameter PDU: Master and Slave Structure — PDU-Layout für den Parameter-Zustand
- FSoE Data PDU: Master and Slave Structure — PDU-Layout für den Data-Zustand
CRC
- FSoE CRC: Which polynomial does it use? — das 17-Bit-Polynom hinter dem FSoE-CRC
- How are the FSoE CRC tables constructed? — wie die CRC-Lookup-Tabellen erzeugt werden
- FSoE: How does CRC inheritance work? — wie die CRC-Kette aufeinanderfolgende PDUs verknüpft
- How to compute the CRC checksum for FSoE PDUs? — Byte-für-Byte-CRC-Berechnungsalgorithmus
Fehlercodes & Datenformat
- FSoE: List of all communication error codes — alle FSoE-Kommunikationsfehlercodes
- FSoE: Is data transmitted little-endian or big-endian? — Byte-Reihenfolge mehrstelliger Felder