FSoE (Fail Safe over EtherCAT) utilise un Safety PDU dédié pour les commandes de contrôle et de diagnostic. La commande Reset est envoyée par le Master après un redémarrage ou une erreur ; le Slave accuse réception avec un PDU Reset correspondant. Les diagrammes ci-dessous montrent les dispositions des trames Master et Slave pour 2, 4, 6 et 8 octets de données de sécurité. Dans chaque schéma, la première ligne montre la structure au niveau des mots (champs CRC 16 bits et Connection ID), et la seconde ligne décompose chaque mot en son octet bas et son octet haut.
Note — le nombre d’octets de données de sécurité est fixe par direction. Chaque connexion FSoE a une longueur de données de sécurité fixe (Master→Slave et Slave→Master), configurée de manière identique sur les deux nœuds. Les longueurs autorisées sont 1, 2, 4, 6 ou 8 octets. La longueur réelle pour une connexion donnée dépend du dispositif FSoE Slave et doit être extraite de la documentation du Slave ou du fichier de description du dispositif (ESI/EEPROM). Les diagrammes ci-dessous montrent toutes les longueurs standard afin que vous puissiez rechercher la disposition qui s’applique à votre dispositif spécifique.
Master Reset PDU (FSoE Master → Slave)
2 octets de données de sécurité
| Command | SafeData[0] | SafeData[1] | CRC_0 | Conn_Id | ||
|---|---|---|---|---|---|---|
| Reset Octet 0 | code d'erreur 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 octets de données de sécurité
| Command | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | Conn_Id | |||
|---|---|---|---|---|---|---|---|---|---|---|
| Reset Octet 0 | code d'erreur 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 octets de données de sécurité
| Command | SafeData[0] | SafeData[1] | CRC_0 | SafeData[2] | SafeData[3] | CRC_1 | ||
|---|---|---|---|---|---|---|---|---|
| SafeData[4] | SafeData[5] | CRC_2 | Conn_Id | |||||
| Reset Octet 0 | code d'erreur 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 octets de données de sécurité
| 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 | code d'erreur 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, accusé de réception)
2 octets de données de sécurité
| 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 octets de données de sécurité
| 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 octets de données de sécurité
| 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 octets de données de sécurité
| 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 |
Codes d’erreur de communication FSoE
Dans le Master Reset PDU, SafeData[0] (bits 0–7) transporte le code d’erreur. Une valeur de 0x00 indique un reset local ou un accusé de réception.
| Code d’erreur | Description |
|---|---|
| 0 | Reset local ou accusé de réception d’une commande RESET |
| 1 | Commande inattendue (INVALID_CMD) |
| 2 | Commande inconnue (UNKNOWN_CMD) |
| 3 | Connection ID invalide (INVALID_CONNID) |
| 4 | Erreur CRC (INVALID_CRC) |
| 5 | Watchdog expiré (WD_EXPIRED) |
| 6 | FSoE Slave Address invalide (INVALID_ADDRESS) |
| 7 | Données de sécurité invalides (INVALID_DATA) |
| 8 | Longueur de paramètre de communication invalide (INVALID_COMPARALEN) |
| 9 | Données de paramètre de communication invalides (INVALID_COMPARA) |
| 10 | Longueur de paramètre d’application invalide (INVALID_USERPARALEN) |
| 11 | Données de paramètre d’application invalides (INVALID_USERPARA) |
| 0x80–0xFF | SafePara invalide (spécifique au dispositif) |
Articles liés
Vue d’ensemble & notions de base
- FSoE : Que signifie réellement cette abréviation ? — ce que signifie l’acronyme FSoE
- FSoE : structure de trame expliquée par exemples — structure générale de la PDU Safety
- FSoE : tous les états de la machine à états — les cinq états FSoE et leurs transitions
- FSoE : table des commandes Safety PDU — la liste complète des commandes FSoE
Structures PDU par état
- FSoE Reset State PDU : structure Master et Slave — structure PDU et codes d’erreur pour l’état Reset
- FSoE Session PDU : structure Master et Slave — structure PDU pour l’état Session
- FSoE Connection PDU : structure Master et Slave — structure PDU pour l’état Connection
- FSoE Parameter PDU : structure Master et Slave — structure PDU pour l’état Parameter
- FSoE Data PDU : structure Master et Slave — structure PDU pour l’état Data
CRC
- FSoE CRC : quel polynôme utilise-t-il ? — le polynôme 17 bits du CRC FSoE
- FSoE : Comment sont construites les tables CRC ? — comment les tables de lookup CRC sont générées
Codes d’erreur & format des données
- FSoE : liste de tous les codes d’erreur de communication — tous les codes d’erreur de communication FSoE
- FSoE : les données sont-elles transmises en little-endian ou big-endian ? — ordre des octets des champs multioctets