Структура кадру FSoE з прикладами

Один байт безпекових даних: найпростіша безпекова PDU

Містить лише один екземпляр безпекових даних, що складається всього з одного байта

ЗміщенняРозмірНазваОпис
01 байтCommandКоманда
11 байтSafeData[0]безпекові дані, октет 0
22 байтCRC_016-бітний CRC
42 байтConn_Idунікальний ID з’єднання

Усі багатобайтові поля зберігаються у little endian.

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

Два байти безпекових даних

ЗміщенняРозмірНазваОпис
01 байтCommandКоманда
11 байтSafeData[0]безпекові дані, октет 0
21 байтSafeData[1]безпекові дані, октет 1
32 байтCRC_016-бітний CRC
52 байтConn_Idунікальний ID з’єднання

Усі багатобайтові поля зберігаються у 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;
};

Чотири байти безпекових даних

ЗміщенняРозмірНазваОпис
01 байтCommandКоманда
11 байтSafeData[0]безпекові дані, октет 0
21 байтSafeData[1]безпекові дані, октет 1
32 байтCRC_016-бітний CRC 0
51 байтSafeData[2]безпекові дані, октет 2
61 байтSafeData[3]безпекові дані, октет 3
72 байтCRC_116-бітний CRC 1
92 байтConn_Idунікальний ID з’єднання

Усі багатобайтові поля зберігаються у 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;
};

Джерело: ETG.5100 S (D) V1.2.0, Table 4: Shortest safety PDU та Table 3: General Safety PDU, доступно на запит від EtherCAT Technology Group (ETG)

Пов’язані статті

Огляд та основи

CRC

Коди помилок та формат даних


Дивіться схожі статті за категоріями: FSoE, EtherCAT, Safety