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

Редактировал(а) Admin 2025/12/04 14:01

Скрыть последних авторов
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 5.1 2 = Протокол CANopen =
Admin 1.1 3
Admin 5.1 4 == Общая информация ==
Admin 1.1 5
Admin 5.1 6 Устройство BMS IMD реализует протокол CiA 301 CANopen для управления режимом работы и мониторинга внутреннего состояния.
Admin 1.1 7
Admin 5.1 8 Основные характеристики:
Admin 1.1 9
Admin 5.1 10 * Поддерживаются стандартные 11-битные идентификаторы сообщений.
11 * Скорость обмена – 125, 250 (по умолчанию), 500 или 1000 кбит/с.
12 * Идентификатор **COBID** устройства по умолчанию – 22 (0x16).
Admin 1.1 13
Admin 5.1 14 Поддерживаемые режимы передачи данных:
Admin 1.1 15
Admin 5.1 16 * SDO (для настройки устройства).
17 * PDO (для обмена данными с другими элементами системы).
18 * Heartbeat producer (настраивается).
Admin 1.1 19
Admin 5.1 20 Ниже даётся описание параметров, передаваемых в режиме PDO и SDO. В колонке «Тип параметра»:
Admin 1.1 21
Admin 5.1 22 * U8 – беззнаковое 8-разрядное число;
23 * U16 – беззнаковое 16-разрядное число;
24 * S16 – знаковое 16-разрядное число;
25 * U32 – беззнаковое 32-разрядное число.
Admin 1.1 26
Admin 5.1 27 Порядок байт в словах – от младшего к старшему (**little endian**).
Admin 1.1 28
Admin 5.1 29 == Сообщения TPDO ==
Admin 1.1 30
Admin 5.1 31 === CANID ~= 0x180+COBID (по умолчанию 0x196) ===
Admin 1.1 32
Admin 5.1 33 Длина пакета – 8 байт. Период отправки – 100 мс.
Admin 1.1 34
Admin 5.1 35 Содержимое пакета:
Admin 1.1 36
37 (% style="width:742px" %)
Admin 5.1 38 |**Байт**|**Имя параметра**|**Тип параметра**|**Кодирование**
39 |**0**|(((
40 **INSULATION_STATUS** – статус изоляции:
Admin 1.1 41
Admin 5.1 42 0 – NO_DATA (нет данных о сопротивлении изоляции);
Admin 1.1 43
Admin 5.1 44 1 – OK (сопротивление изоляции в норме);
Admin 1.1 45
Admin 5.1 46 2 – WARNING (предупреждение о низком сопротивлении изоляции; сопротивление изоляции меньше уровня WARNING_RESISTANCE, но больше уровня ALARM_RESISTANCE);
Admin 1.1 47
Admin 5.1 48 3 – ALARM (сообщении об аварийно-низком сопротивлении изоляции; сопротивление изоляции меньше уровня ALARM_RESISTANCE).
Admin 1.1 49
Admin 5.1 50 Примечание – При сбросе ALLOW_WORK и до первого измерения устанавливается статус NO_DATA.
51 )))|U8|-
52 |**1**|(((
53 **INTERNAL_ERROR** – статус внутренней ошибки (битовое поле):
Admin 1.1 54
Admin 5.1 55 бит 0 – LOW_BUS_VOLTAGE_ERROR (низкое напряжение батареи);
Admin 1.1 56
Admin 5.1 57 бит 1 – TIMEOUT_ERROR (тайм-аут переходного процесса измерения);
Admin 1.1 58
Admin 5.1 59 бит 2 – ANOMALY_ERROR (аномальное состояние между плюсовой и минусовой шиной батареи и шасси, может указывать на периодический контакт шин батареи с шасси);
Admin 1.1 60
Admin 5.1 61 бит 3 – SELF_TEST_ERROR (ошибка самопроверки);
Admin 1.1 62
Admin 5.1 63 биты 4-7 – не используются.
64 )))|U8|-
65 |**2**|(((
66 **STATE** – состояние работы:
Admin 1.1 67
Admin 5.1 68 0 – NOT_WORKING (устройство не работает);
Admin 1.1 69
Admin 5.1 70 1 – WORKING (устройство работает);
Admin 1.1 71
Admin 5.1 72 2 – CRITICAL_FAULT (критический сбой в работе устройства).
73 )))|U8|-
74 |**3-7**|Резерв (установлены в 0)|-|-
Admin 1.1 75
Admin 5.1 76 === CANID ~= 0x280+COBID (по умолчанию 0x296) ===
Admin 1.1 77
Admin 5.1 78 Длина пакета – 8 байт. Период отправки – 100 мс.
Admin 1.1 79
Admin 5.1 80 Содержимое пакета:
Admin 1.1 81
Admin 5.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 5.1 87 0 – значения сопротивлений изоляции не рассчитаны;
Admin 1.1 88
Admin 5.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 5.1 94 0 – минимальное сопротивление
Admin 1.1 95
Admin 5.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 5.1 101 0 – минимальное сопротивление
Admin 1.1 102
Admin 5.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 5.1 108 0 – значение напряжения не рассчитано;
Admin 1.1 109
Admin 5.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 5.1 114 == Сообщения RPDO ==
Admin 1.1 115
Admin 5.1 116 === CANID ~= 0x200+COBID (по умолчанию 0x216) ===
Admin 1.1 117
Admin 5.1 118 Длина пакета – 8 байт. Период отправки – 100 мс.
Admin 1.1 119
Admin 5.1 120 Содержимое пакета:
Admin 1.1 121
Admin 5.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 5.1 127 0 – запрет работы;
Admin 1.1 128
Admin 5.1 129 1 – разрешение работы.
130 )))|(% style="width:89px" %)U8|(% style="width:99px" %)-
131 |**1**|(% style="width:515px" %)(((
132 **FORCE_SELFTEST** – команда принудительного запуска самодиагностики устройства:
Admin 1.1 133
Admin 5.1 134 0 – запуск самодиагностики по внутреннему алгоритму;
Admin 1.1 135
Admin 5.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 5.1 140 == Словарь SDO ==
Admin 1.1 141
Admin 5.1 142 Для установки уровней формирования сигналов WARNING и ALARM предназначены следующие настройки, доступные для изменения по протоколу CANopen SDO:
Admin 1.1 143
Admin 5.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 5.1 149 Пример установки ALARM_RESISTANCE значения 50кОм (0x0032):
Admin 1.1 150
Admin 5.1 151 | |**Байт 0**|**Байт 1**|**Байт 2**|**Байт 3**|**Байт 4**|**Байт 5**|**Байт 6**|**Байт 7**
152 |(((
153 **Команда**
Admin 1.1 154
Admin 5.1 155 CAN ID = 0x600 + __COBID__
Admin 1.1 156
Admin 5.1 157 ~= 0x616 (по умолчанию)
158 )))|0x2B|0x10|0x40|0x01|**0x32**|**0x00**|0x00|0x00
159 |(((
160 **Ответ**
Admin 1.1 161
Admin 5.1 162 CAN ID = 0x580 + __COBID__
163
164 ~= 0x596 (по умолчанию)
165 )))|0x60|0x10|0x40|0x01|0x00|0x00|0x00|0x00
166
167 Пример установки WARNING_RESISTANCE значения 100кОм (0x0064):
168
169 | |**Байт 0**|**Байт 1**|**Байт 2**|**Байт 3**|**Байт 4**|**Байт 5**|**Байт 6**|**Байт 7**
170 |(((
171 **Команда**
172
173 CAN ID = 0x600 + __COBID__
174
175 ~= 0x616 (по умолчанию)
176 )))|0x2B|0x10|0x40|0x02|**0x64**|**0x00**|0x00|0x00
177 |(((
178 **Ответ**
179
180 CAN ID = 0x580 + __COBID__
181
182 ~= 0x596 (по умолчанию)
183 )))|0x60|0x10|0x40|0x02|0x00|0x00|0x00|0x00
184
Admin 1.1 185