例で解説する FSoE フレーム構造

1バイトのセーフティデータ: 最も単純な Safety PDU

これは1バイトのみからなるセーフティデータインスタンスを1つだけ含みます。

オフセットサイズ名前説明
01 byteCommandコマンド
11 byteSafeData[0]セーフティデータ、オクテット 0
22 byteCRC_016-bit CRC
42 byteConn_Id一意の Connection ID

すべての複数バイトフィールドはリトルエンディアンで格納されます。

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

2バイトのセーフティデータ

オフセットサイズ名前説明
01 byteCommandコマンド
11 byteSafeData[0]セーフティデータ、オクテット 0
21 byteSafeData[1]セーフティデータ、オクテット 1
32 byteCRC_016-bit CRC
52 byteConn_Id一意の Connection ID

すべての複数バイトフィールドはリトルエンディアンで格納されます。

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

4バイトのセーフティデータ

オフセットサイズ名前説明
01 byteCommandコマンド
11 byteSafeData[0]セーフティデータ、オクテット 0
21 byteSafeData[1]セーフティデータ、オクテット 1
32 byteCRC_016-bit CRC 0
51 byteSafeData[2]セーフティデータ、オクテット 2
61 byteSafeData[3]セーフティデータ、オクテット 3
72 byteCRC_116-bit CRC 1
92 byteConn_Id一意の Connection ID

すべての複数バイトフィールドはリトルエンディアンで格納されます。

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) にリクエストして入手可能

関連記事

概要と基礎

状態ごとの PDU 構造

CRC

エラーコードとデータ形式


同じカテゴリの類似記事をチェック: FSoE EtherCAT 安全性