FSoE (Fail Safe over EtherCAT) používá dedikovanou Safety PDU pro řídicí a diagnostické komandy. Komandu Reset odesílá Master po restartu nebo chybě; Slave ji potvrzuje odpovídající PDU Reset. Následující diagramy zobrazují rozložení rámců Master a Slave pro 2, 4, 6 a 8 bajtů bezpečnostních dat. V každém diagramu horní řádek ukazuje strukturu na úrovni slov (16bitová pole CRC a Connection ID) a druhý řádek rozkládá každé slovo na nízký a vysoký oktet.
Poznámka — počet bajtů bezpečnostních dat je pevně dán pro každý směr. Každé FSoE spojení má pevnou délku bezpečnostních dat (master→slave a slave→master), konfigurovanou shodně na obou uzlech. Povolené délky jsou 1, 2, 4, 6 nebo 8 oktetů. Skutečná délka pro dané spojení závisí na FSoE Slave zařízení a musí být převzata z dokumentace Slave nebo souboru popisu zařízení (ESI/EEPROM). Níže uvedené diagramy zobrazují všechny standardní délky, takže si můžete vyhledat rozložení platné pro vaše konkrétní zařízení.
Master Reset PDU (FSoE Master → Slave)
2 bajty bezpečnostních dat
| Komanda | SafeData[0] | SafeData[1] | CRC_0 | Conn_Id | ||
|---|---|---|---|---|---|---|
| Reset Oktet 0 | chybový kód Oktet 1 | 0 Oktet 2 | CRC_0_Lo Oktet 3 | CRC_0_Hi Oktet 4 | Conn_Id_Lo Oktet 5 | Conn_Id_Hi Oktet 6 |
4 bajty bezpečnostních dat
| Komanda | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | Conn_Id | |||
|---|---|---|---|---|---|---|---|---|---|---|
| Reset Oktet 0 | chybový kód Oktet 1 | 0 Oktet 2 | CRC_0_Lo Oktet 3 | CRC_0_Hi Oktet 4 | 0 Oktet 5 | 0 Oktet 6 | CRC_1_Lo Oktet 7 | CRC_1_Hi Oktet 8 | Conn_Id_Lo Oktet 9 | Conn_Id_Hi Oktet 10 |
6 bajtů bezpečnostních dat
| Komanda | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | ||
|---|---|---|---|---|---|---|---|---|
| SafeData[4] | SafeData[5] | CRC_2 | Conn_Id | |||||
| Reset Oktet 0 | chybový kód Oktet 1 | 0 Oktet 2 | CRC_0_Lo Oktet 3 | CRC_0_Hi Oktet 4 | 0 Oktet 5 | 0 Oktet 6 | CRC_1_Lo Oktet 7 | CRC_1_Hi Oktet 8 |
| 0 Oktet 9 | 0 Oktet 10 | CRC_2_Lo Oktet 11 | CRC_2_Hi Oktet 12 | Conn_Id_Lo Oktet 13 | Conn_Id_Hi Oktet 14 | |||
8 bajtů bezpečnostních dat
| Komanda | 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 Oktet 0 | chybový kód Oktet 1 | 0 Oktet 2 | CRC_0_Lo Oktet 3 | CRC_0_Hi Oktet 4 | 0 Oktet 5 | 0 Oktet 6 | CRC_1_Lo Oktet 7 | CRC_1_Hi Oktet 8 | |
| 0 Oktet 9 | 0 Oktet 10 | CRC_2_Lo Oktet 11 | CRC_2_Hi Oktet 12 | 0 Oktet 13 | 0 Oktet 14 | CRC_3_Lo Oktet 15 | CRC_3_Hi Oktet 16 | Conn_Id_Lo Oktet 17 | Conn_Id_Hi Oktet 18 |
Slave Reset PDU (FSoE Slave → Master, potvrzení)
2 bajty bezpečnostních dat
| Komanda | SafeData[0] | SafeData[1] | CRC_0 | Conn_Id | ||
|---|---|---|---|---|---|---|
| Reset Oktet 0 | 0 Oktet 1 | 0 Oktet 2 | CRC_0_Lo Oktet 3 | CRC_0_Hi Oktet 4 | Conn_Id_Lo Oktet 5 | Conn_Id_Hi Oktet 6 |
4 bajty bezpečnostních dat
| Komanda | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | Conn_Id | |||
|---|---|---|---|---|---|---|---|---|---|---|
| Reset Oktet 0 | 0 Oktet 1 | 0 Oktet 2 | CRC_0_Lo Oktet 3 | CRC_0_Hi Oktet 4 | 0 Oktet 5 | 0 Oktet 6 | CRC_1_Lo Oktet 7 | CRC_1_Hi Oktet 8 | Conn_Id_Lo Oktet 9 | Conn_Id_Hi Oktet 10 |
6 bajtů bezpečnostních dat
| Komanda | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | ||
|---|---|---|---|---|---|---|---|---|
| SafeData[4] | SafeData[5] | CRC_2 | Conn_Id | |||||
| Reset Oktet 0 | 0 Oktet 1 | 0 Oktet 2 | CRC_0_Lo Oktet 3 | CRC_0_Hi Oktet 4 | 0 Oktet 5 | 0 Oktet 6 | CRC_1_Lo Oktet 7 | CRC_1_Hi Oktet 8 |
| 0 Oktet 9 | 0 Oktet 10 | CRC_2_Lo Oktet 11 | CRC_2_Hi Oktet 12 | Conn_Id_Lo Oktet 13 | Conn_Id_Hi Oktet 14 | |||
8 bajtů bezpečnostních dat
| Komanda | 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 Oktet 0 | 0 Oktet 1 | 0 Oktet 2 | CRC_0_Lo Oktet 3 | CRC_0_Hi Oktet 4 | 0 Oktet 5 | 0 Oktet 6 | CRC_1_Lo Oktet 7 | CRC_1_Hi Oktet 8 | |
| 0 Oktet 9 | 0 Oktet 10 | CRC_2_Lo Oktet 11 | CRC_2_Hi Oktet 12 | 0 Oktet 13 | 0 Oktet 14 | CRC_3_Lo Oktet 15 | CRC_3_Hi Oktet 16 | Conn_Id_Lo Oktet 17 | Conn_Id_Hi Oktet 18 |
Chybové kódy komunikace FSoE
V PDU Reset Master nese SafeData[0] (bity 0–7) chybový kód. Hodnota 0x00 označuje lokální reset nebo potvrzení.
| Chybový kód | Popis |
|---|---|
| 0 | Lokální reset nebo potvrzení komandy RESET |
| 1 | Neočekávaná komanda (INVALID_CMD) |
| 2 | Neznámá komanda (UNKNOWN_CMD) |
| 3 | Neplatný connection ID (INVALID_CONNID) |
| 4 | Chyba CRC (INVALID_CRC) |
| 5 | Vypršení watchdog (WD_EXPIRED) |
| 6 | Neplatná FSoE Slave Address (INVALID_ADDRESS) |
| 7 | Neplatná bezpečnostní data (INVALID_DATA) |
| 8 | Neplatná délka komunikačních parametrů (INVALID_COMPARALEN) |
| 9 | Neplatná data komunikačních parametrů (INVALID_COMPARA) |
| 10 | Neplatná délka aplikačních parametrů (INVALID_USERPARALEN) |
| 11 | Neplatná data aplikačních parametrů (INVALID_USERPARA) |
| 0x80–0xFF | Neplatný SafePara (specifické pro zařízení) |
Související příspěvky
Přehled a základy
- What does the FSoE abbreviation actually mean? — co znamená zkratka FSoE
- FSoE frame structure explained by examples — obecné rozložení Safety PDU
- All the states of the FSoE state machine — pět stavů FSoE a jejich přechody
- FSoE: Safety PDU command table — úplný seznam FSoE komand
Struktury PDU podle stavů
- FSoE Reset State PDU: Master and Slave Structure — rozložení PDU a chybové kódy pro stav Reset
- FSoE Session PDU: Master and Slave Structure — rozložení PDU pro stav Session
- FSoE Connection PDU: Master and Slave Structure — rozložení PDU pro stav Connection
- FSoE Parameter PDU: Master and Slave Structure — rozložení PDU pro stav Parameter
- FSoE Data PDU: Master and Slave Structure — rozložení PDU pro stav Data
CRC
- FSoE CRC: Which polynomial does it use? — 17bitový polynom za FSoE CRC
- How are the FSoE CRC tables constructed? — jak se generují vyhledávací tabulky CRC
- FSoE: How does CRC inheritance work? — jak řetězec CRC propojuje po sobě jdoucí PDU
- How to compute the CRC checksum for FSoE PDUs? — algoritmus výpočtu CRC bajt po bajtu
Chybové kódy a formát dat
- FSoE: List of all communication error codes — všechny chybové kódy komunikace FSoE
- FSoE: Is data transmitted little-endian or big-endian? — pořadí bajtů vícebajtových polí