Исходный код вики 4. CANopen protocol

Редактировал(а) Admin 2025/01/29 10:58

Скрыть последних авторов
Admin 1.1 1 (% data-numbered-headings-start="4" style="--numbered-headings-start: 3;font-size: 0px;color: rgba(0, 0, 0, 0.0);margin-bottom: 0px; margin-top: 0px;" %)
Admin 4.1 2 = Протокол CANopen =
Admin 1.1 3
Admin 4.1 4 == Общая информация ==
Admin 1.1 5
Admin 4.1 6 Устройство BMS IMD реализует протокол CiA 301 CANopen для управления режимом работы и мониторинга внутреннего состояния.
Admin 1.1 7
Admin 4.1 8 Основные характеристики:
Admin 1.1 9
Admin 4.1 10 * Поддерживаются стандартные 11-битные идентификаторы сообщений.
11 * Скорость обмена – 125, 250 (по умолчанию), 500 или 1000 кбит/с.
12 * Идентификатор **COBID** устройства по умолчанию – 22 (0x16).
Admin 1.1 13
Admin 4.1 14 Поддерживаемые режимы передачи данных:
Admin 1.1 15
Admin 4.1 16 * SDO (для настройки устройства).
17 * PDO (для обмена данными с другими элементами системы).
18 * Heartbeat producer (настраивается).
Admin 1.1 19
Admin 4.1 20 Ниже даётся описание параметров, передаваемых в режиме PDO и SDO. В колонке «Тип параметра»:
Admin 1.1 21
Admin 4.1 22 * U8 – беззнаковое 8-разрядное число;
23 * U16 – беззнаковое 16-разрядное число;
24 * S16 – знаковое 16-разрядное число;
25 * U32 – беззнаковое 32-разрядное число.
Admin 1.1 26
Admin 4.1 27 Порядок байт в словах – от младшего к старшему (**little endian**).
Admin 1.1 28
Admin 4.1 29 == Сообщения TPDO ==
Admin 1.1 30
Admin 4.1 31 === CANID ~= 0x180+COBID (по умолчанию 0x196) ===
Admin 1.1 32
Admin 4.1 33 Длина пакета – 8 байт. Период отправки – 100 мс.
Admin 1.1 34
Admin 4.1 35 Содержимое пакета:
Admin 1.1 36
37 (% style="width:742px" %)
Admin 4.1 38 |**Байт**|**Имя параметра**|**Тип параметра**|**Кодирование**
39 |**0**|(((
40 **INSULATION_STATUS** – статус изоляции:
Admin 1.1 41
Admin 4.1 42 0 – NO_DATA (нет данных о сопротивлении изоляции);
Admin 1.1 43
Admin 4.1 44 1 – OK (сопротивление изоляции в норме);
Admin 1.1 45
Admin 4.1 46 2 – WARNING (предупреждение о низком сопротивлении изоляции; сопротивление изоляции меньше уровня WARNING_RESISTANCE, но больше уровня ALARM_RESISTANCE);
Admin 1.1 47
Admin 4.1 48 3 – ALARM (сообщении об аварийно-низком сопротивлении изоляции; сопротивление изоляции меньше уровня ALARM_RESISTANCE).
Admin 1.1 49
Admin 4.1 50 Примечание – При сбросе ALLOW_WORK и до первого измерения устанавливается статус NO_DATA.
51 )))|U8|-
52 |**1**|(((
53 **INTERNAL_ERROR** – статус внутренней ошибки (битовое поле):
Admin 1.1 54
Admin 4.1 55 бит 0 – LOW_BUS_VOLTAGE_ERROR (низкое напряжение батареи);
Admin 1.1 56
Admin 4.1 57 бит 1 – TIMEOUT_ERROR (тайм-аут переходного процесса измерения);
Admin 1.1 58
Admin 4.1 59 бит 2 – ANOMALY_ERROR (аномальное состояние между плюсовой и минусовой шиной батареи и шасси, может указывать на периодический контакт шин батареи с шасси);
Admin 1.1 60
Admin 4.1 61 бит 3 – SELF_TEST_ERROR (ошибка самопроверки);
Admin 1.1 62
Admin 4.1 63 биты 4-7 – не используются.
64 )))|U8|-
65 |**2**|(((
66 **STATE** – состояние работы:
Admin 1.1 67
Admin 4.1 68 0 – NOT_WORKING (устройство не работает);
Admin 1.1 69
Admin 4.1 70 1 – WORKING (устройство работает);
Admin 1.1 71
Admin 4.1 72 2 – CRITICAL_FAULT (критический сбой в работе устройства).
73 )))|U8|-
74 |**3-7**|Резерв (установлены в 0)|-|-
Admin 1.1 75
Admin 4.1 76 === CANID ~= 0x280+COBID (по умолчанию 0x296) ===
Admin 1.1 77
Admin 4.1 78 Длина пакета – 8 байт. Период отправки – 100 мс.
Admin 1.1 79
Admin 4.1 80 Содержимое пакета:
Admin 1.1 81
Admin 4.1 82 (% style="width:747px" %)
83 |**Байт**|(% style="width:509px" %)**Имя параметра**|(% style="width:91px" %)**Тип параметра**|(% style="width:102px" %)**Кодирование**
84 |**0**|(% style="width:509px" %)(((
85 **RESISTANCE_CALCULATED** – флаг расчёта сопротивления изоляции:
Admin 1.1 86
Admin 4.1 87 0 – значения сопротивлений изоляции не рассчитаны;
Admin 1.1 88
Admin 4.1 89 1 – значения сопротивлений изоляции рассчитаны.
90 )))|(% style="width:91px" %)U8|(% style="width:102px" %)-
91 |**1-2**|(% style="width:509px" %)(((
92 **RESISTANCE_PLUS** – сопротивление изоляции между «плюсом» шины питания и шасси:
Admin 1.1 93
Admin 4.1 94 0 – минимальное сопротивление
Admin 1.1 95
Admin 4.1 96 10000 – максимальное сопротивление
97 )))|(% style="width:91px" %)U16|(% style="width:102px" %)1кОм/бит
98 |**3-4**|(% style="width:509px" %)(((
99 **RESISTANCE_MINUS** – сопротивление изоляции между «минусом» шины питания и шасси:
Admin 1.1 100
Admin 4.1 101 0 – минимальное сопротивление
Admin 1.1 102
Admin 4.1 103 10000 – максимальное сопротивление
104 )))|(% style="width:91px" %)U16|(% style="width:102px" %)1кОм/бит
105 |**5**|(% style="width:509px" %)(((
106 **BUS_VOLATGE_ CALCULATED** – флаг расчёта напряжения шины питания:
Admin 1.1 107
Admin 4.1 108 0 – значение напряжения не рассчитано;
Admin 1.1 109
Admin 4.1 110 1 – значение напряжения рассчитано.
111 )))|(% style="width:91px" %)U8|(% style="width:102px" %)-
112 |**6-7**|(% style="width:509px" %)**BUS_VOLTAGE** – напряжение шины питания|(% style="width:91px" %)U16|(% style="width:102px" %)0,1В/бит
Admin 1.1 113
Admin 4.1 114 == Сообщения RPDO ==
Admin 1.1 115
Admin 4.1 116 === CANID ~= 0x200+COBID (по умолчанию 0x216) ===
Admin 1.1 117
Admin 4.1 118 Длина пакета – 8 байт. Период отправки – 100 мс.
Admin 1.1 119
Admin 4.1 120 Содержимое пакета:
Admin 1.1 121
Admin 4.1 122 (% style="width:748px" %)
123 |**Байт**|(% style="width:515px" %)**Имя параметра**|(% style="width:89px" %)**Тип параметра**|(% style="width:99px" %)**Кодирование**
124 |**0**|(% style="width:515px" %)(((
125 **ALLOW_WORK** – команда разрешения работы устройства:
Admin 1.1 126
Admin 4.1 127 0 – запрет работы;
Admin 1.1 128
Admin 4.1 129 1 – разрешение работы.
130 )))|(% style="width:89px" %)U8|(% style="width:99px" %)-
131 |**1**|(% style="width:515px" %)(((
132 **FORCE_SELFTEST** – команда принудительного запуска самодиагностики устройства:
Admin 1.1 133
Admin 4.1 134 0 – запуск самодиагностики по внутреннему алгоритму;
Admin 1.1 135
Admin 4.1 136 1 – принудительный запуск самодиагностики (если активно, то выполняется только самодиагностика).
137 )))|(% style="width:89px" %)U8|(% style="width:99px" %)-
138 |**2-7**|(% style="width:515px" %)Резерв (установлены в 0)|(% style="width:89px" %)-|(% style="width:99px" %)-
Admin 1.1 139
Admin 4.1 140 == Словарь SDO ==
Admin 1.1 141
Admin 4.1 142 Для установки уровней формирования сигналов WARNING и ALARM предназначены следующие настройки, доступные для изменения по протоколу CANopen SDO:
Admin 1.1 143
Admin 4.1 144 (% style="width:744px" %)
145 |(% style="width:360px" %)**Имя параметра**|(% style="width:67px" %)**Индекс**|(% style="width:93px" %)**Подиндекс**|(% style="width:120px" %)**Тип параметра**|(% style="width:100px" %)**Кодирование**
146 |(% style="width:360px" %)**ALARM_RESISTANCE** – уровень формирования сигнала ALARM (по умолчанию 50кОм)|(% style="width:67px" %)0x4010|(% style="width:93px" %)0x01|(% style="width:120px" %)U16|(% style="width:100px" %)1кОм/бит
147 |(% style="width:360px" %)**WARNING_RESISTANCE** – уровень формирования сигнала WARNING (по умолчанию 100кОм)|(% style="width:67px" %)0x4010|(% style="width:93px" %)0x02|(% style="width:120px" %)U16|(% style="width:100px" %)1кОм/бит
Admin 1.1 148
Admin 4.1 149 Пример установки ALARM_RESISTANCE значения 50кОм (0x0032):
Admin 1.1 150
Admin 4.1 151 | |**Байт 0**|**Байт 1**|**Байт 2**|**Байт 3**|**Байт 4**|**Байт 5**|**Байт 6**|**Байт 7**
152 |**Команда**|0x2B|0x10|0x40|0x01|**0x32**|**0x00**|0x00|0x00
153 |**Ответ**|0x60|0x10|0x40|0x01|0x00|0x00|0x00|0x00
Admin 1.1 154
Admin 4.1 155 Пример установки WARNING_RESISTANCE значения 100кОм (0x0064):
Admin 1.1 156
Admin 4.1 157 | |**Байт 0**|**Байт 1**|**Байт 2**|**Байт 3**|**Байт 4**|**Байт 5**|**Байт 6**|**Байт 7**
158 |**Команда**|0x2B|0x10|0x40|0x02|**0x64**|**0x00**|0x00|0x00
159 |**Ответ**|0x60|0x10|0x40|0x02|0x00|0x00|0x00|0x00
Admin 1.1 160
161