FSoE: структура кадра на примерах
Один байт безопасных данных: простейший safety PDU
Содержит один экземпляр безопасных данных, состоящий всего из одного байта:
| Смещение | Размер | Имя | Описание |
|---|---|---|---|
| 0 | 1 байт | Command | Команда |
| 1 | 1 байт | SafeData[0] | безопасные данные, октет 0 |
| 2 | 2 байта | CRC_0 | 16-битный CRC |
| 4 | 2 байта | 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;
};Два байта безопасных данных
| Смещение | Размер | Имя | Описание |
|---|---|---|---|
| 0 | 1 байт | Command | Команда |
| 1 | 1 байт | SafeData[0] | безопасные данные, октет 0 |
| 2 | 1 байт | SafeData[1] | безопасные данные, октет 1 |
| 3 | 2 байта | CRC_0 | 16-битный CRC |
| 5 | 2 байта | 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;
};Четыре байта безопасных данных
| Смещение | Размер | Имя | Описание |
|---|---|---|---|
| 0 | 1 байт | Command | Команда |
| 1 | 1 байт | SafeData[0] | безопасные данные, октет 0 |
| 2 | 1 байт | SafeData[1] | безопасные данные, октет 1 |
| 3 | 2 байта | CRC_0 | 16-битный CRC 0 |
| 5 | 1 байт | SafeData[2] | безопасные данные, октет 2 |
| 6 | 1 байт | SafeData[3] | безопасные данные, октет 3 |
| 7 | 2 байта | CRC_1 | 16-битный CRC 1 |
| 9 | 2 байта | 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)
Связанные статьи
Обзор и основы
- Что на самом деле означает аббревиатура FSoE? — что означает аббревиатура FSoE
- FSoE: таблица команд safety PDU — полный список команд FSoE
CRC
- FSoE CRC: какой полином используется? — 17-битный полином CRC FSoE
- FSoE: Как устроены таблицы CRC? — как генерируются таблицы CRC
- FSoE: Как работает наследование CRC? — как цепочка CRC связывает последовательные PDU
Коды ошибок и формат данных
- FSoE: список всех кодов ошибок связи — все коды ошибок связи FSoE
- FSoE: данные передаются в little-endian или big-endian? — порядок байтов в многобайтовых полях
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow