Исходный код вики 6.1 CANopen PDO protocol
Редактировал(а) Admin 2025/02/17 13:59
Последние авторы
author | version | line-number | content |
---|---|---|---|
1 | (% data-numbered-headings-start="6" style="--numbered-headings-start: 5;font-size: 0px;color: rgba(0, 0, 0, 0.0);margin-bottom: 0px; margin-top: 0px;" %) | ||
2 | = Communication protocols = | ||
3 | |||
4 | (% data-numbered-headings-start="1" style="--numbered-headings-start: 0;font-size: 0px;color: rgba(0, 0, 0, 0.0);margin-bottom: 0px; margin-top: 0px;" %) | ||
5 | == CANopen PDO protocol == | ||
6 | |||
7 | (% class="wikigeneratedid" %) | ||
8 | [[CANopen_PDO_Main_Mini.dbc>>FileManager.CANopen_PDO_Main_Mini\.dbc]] | ||
9 | |||
10 | === Общая информация === | ||
11 | |||
12 | Плата BMS Main 3 реализует протокол CiA 301 CANopen для настройки и чтения состояния АКБ и BMS. | ||
13 | |||
14 | Основные характеристики: | ||
15 | |||
16 | * Поддерживаются стандартные 11-ти битные идентификаторы сообщений. | ||
17 | * Скорость обмена – 125, 250 (по умолчанию), 500 или 1000 кбит/с. | ||
18 | * Идентификатор COBID платы по умолчанию – 32 (0x20). | ||
19 | |||
20 | Поддерживаемые режимы передачи данных: | ||
21 | |||
22 | * SDO (для настройки платы). | ||
23 | * PDO (для обмена данными с другими элементами системы). | ||
24 | * Sync (настраивается). | ||
25 | * Heartbeat producer (настраивается). | ||
26 | * Heartbeat consumer (используется для контроля активности других устройств на шине CAN). | ||
27 | |||
28 | Передача данных PDO выполняется по сигналу синхронизации (CANID = 0x80, длина данных 0). Плата может сама выступать источником сигнала синхронизации (режим Sync). | ||
29 | |||
30 | Ниже даётся описание параметров, передаваемых в режиме PDO. В колонке «Тип параметра»: | ||
31 | |||
32 | * U8 – беззнаковое 8-разрядное число; | ||
33 | * U16 – беззнаковое 16-разрядное число; | ||
34 | * S16 – знаковое 16-разрядное число; | ||
35 | * U32 – беззнаковое 32-разрядное число. | ||
36 | |||
37 | Порядок байт в словах – от младшего к старшему (**little endian**). | ||
38 | |||
39 | === Пакеты TPDO === | ||
40 | |||
41 | ==== CANID ~= 0x180+COBID (по умолчанию 0x1A0) ==== | ||
42 | |||
43 | Длина пакета – 8 байт. | ||
44 | |||
45 | Содержимое пакета: | ||
46 | |||
47 | (% style="width:574px" %) | ||
48 | |(% style="width:63px" %)**Байт**|(% style="width:334px" %)**Имя параметра**|(% style="width:89px" %)**Тип параметра**|(% style="width:87px" %)**Кодирование** | ||
49 | |**0**|((( | ||
50 | Дискретные входы 1 (битовое поле): | ||
51 | |||
52 | бит 0 – сигнал «Открыта АКБ»; | ||
53 | |||
54 | бит 1 – сигнал «Подключено ЗУ»; | ||
55 | |||
56 | бит 2 – сигнал «Запрос на отключение питания»; | ||
57 | |||
58 | бит 3 – сигнал «Запрет заряда»; | ||
59 | |||
60 | бит 4 – сигнал «Запрет разряда»; | ||
61 | |||
62 | бит 5 – сигнал «Обратная связь контактора заряда»; | ||
63 | |||
64 | бит 6 – сигнал «Обратная связь контактора разряда»; | ||
65 | |||
66 | бит 7 – сигнал «Статус контроля изоляции». | ||
67 | )))|U8| | ||
68 | |**1-2**|Ток через АКБ|S16|0,1А/бит | ||
69 | |**3**|Минимальная температура ячейки|S8|1ºC/бит | ||
70 | |**4**|Максимальная температура ячейки|S8|1ºC/бит | ||
71 | |**5**|Степень заряда АКБ (SOC)|U8|1%/бит | ||
72 | |**6-7**|Напряжение АКБ|U16|0,1В/бит | ||
73 | |||
74 | ==== CANID ~= 0x280+COBID (по умолчанию 0x2A0) ==== | ||
75 | |||
76 | Длина пакета – 8 байт. | ||
77 | |||
78 | Содержимое пакета: | ||
79 | |||
80 | (% style="width:575px" %) | ||
81 | |(% style="width:57px" %)**Байт**|(% style="width:334px" %)**Имя параметра**|(% style="width:92px" %)**Тип параметра**|(% style="width:86px" %)**Кодирование** | ||
82 | |(% style="width:57px" %)**0–3**|(% style="width:334px" %)((( | ||
83 | Флаги состояния (битовое поле): | ||
84 | |||
85 | бит 0 – сигнал «SOC ниже заданного уровня»; | ||
86 | |||
87 | бит 1 – сигнал «Ток заряда выше заданного уровня»; | ||
88 | |||
89 | бит 2 – состояние контактора заряда (0 – разомкнуто, 1 – замкнуто); | ||
90 | |||
91 | бит 3 – сигнал «Разрешение ЗУ»; | ||
92 | |||
93 | бит 4 – сигнал «Заряд АКБ» (детектируется ток заряда); | ||
94 | |||
95 | бит 5 – состояние контактора разряда (0 – разомкнуто, 1 – замкнуто); | ||
96 | |||
97 | бит 6 – сигнал «Разряд АКБ» (детектируется ток разряда); | ||
98 | |||
99 | бит 7 – сигнал «Повышенное напряжение» (EV); | ||
100 | |||
101 | бит 8 – сигнал «Нагрев АКБ»; | ||
102 | |||
103 | бит 9 – сигнал «Охлаждение АКБ»; | ||
104 | |||
105 | бит 10 – сигнал на отключение контактора разряда от погрузчика HYG; | ||
106 | |||
107 | бит 11 – сигнал об инициализации платы (во время инициализации калибруется датчик тока и сканируются платы BMS Logic); | ||
108 | |||
109 | бит 12 – состояние контактора предзаряда; | ||
110 | |||
111 | бит 13 – сигнал на отключение контактора разряда от погрузчика Combilift; | ||
112 | |||
113 | бит 14 – сигнал о запущенном процессе анализа ячеек (Cell analysis); | ||
114 | |||
115 | бит 15 – сигнал на балансировку серии батареи №1; | ||
116 | |||
117 | бит 16 – сигнал на балансировку серии батареи №2; | ||
118 | |||
119 | бит 17 – состояние дополнительного (AUX) контактора разряда (0 – разомкнуто, 1 – замкнуто); | ||
120 | |||
121 | бит 18 – подтверждение отключения питания; | ||
122 | |||
123 | бит 19 – сигнал EWS от погрузчика Crown; | ||
124 | |||
125 | бит 20 – состояние главного контактора (0 – разомкнут, 1 - замкнут); | ||
126 | |||
127 | бит 21 – сигнал служебного сброса системы; | ||
128 | |||
129 | бит 22 – состояние комбинированного контактора заряда/разряда (0 – разомкнуто, 1 – замкнуто); | ||
130 | |||
131 | бит 23 – сигнал «Готовность заряжаться»; | ||
132 | |||
133 | бит 24 – сигнал «Готовность разряжаться»; | ||
134 | |||
135 | бит 25 — сигнал “Power up”; | ||
136 | |||
137 | биты 26-31 — не используется. | ||
138 | )))|(% style="width:92px" %)U32|(% style="width:86px" %) | ||
139 | |(% style="width:57px" %)**4–7**|(% style="width:334px" %)((( | ||
140 | Регистр ошибок 1 (битовое поле): | ||
141 | |||
142 | бит 0 – ошибка «Превышение тока»; | ||
143 | |||
144 | бит 1 – ошибка «Низкое напряжение»; | ||
145 | |||
146 | бит 2 – ошибка «Высокое напряжение»; | ||
147 | |||
148 | бит 3 – ошибка «Низкая температура (разряд)»; | ||
149 | |||
150 | бит 4 – ошибка «Высокая температура (разряд)»; | ||
151 | |||
152 | бит 5 – ошибка «Открыта крышка АКБ»; | ||
153 | |||
154 | бит 6 – ошибка «Повышенная влажность»; | ||
155 | |||
156 | бит 7 – ошибка «Вода»; | ||
157 | |||
158 | бит 8 – ошибка «Перегрев Logic»; | ||
159 | |||
160 | бит 9 – ошибка «Потеря связи c Logic»; | ||
161 | |||
162 | бит 10 – критическая ошибка; | ||
163 | |||
164 | бит 11 – ошибка Crown; | ||
165 | |||
166 | бит 12 – ошибка «Несоответствие кол-ва ячеек»; | ||
167 | |||
168 | бит 13 – ошибка «Потеря связи с HYG»; | ||
169 | |||
170 | бит 14 – флаг о необходимости квитировать записи в журнале ошибок; | ||
171 | |||
172 | бит 15 – ошибка «Потеря связи с Combilift»; | ||
173 | |||
174 | бит 16 – ошибка «Короткое замыкание»; | ||
175 | |||
176 | бит 17 – ошибка «Перегрев контактора»; | ||
177 | |||
178 | бит 18 – ошибка «Несоответствие кол-ва Logic»; | ||
179 | |||
180 | бит 19 – ошибка АЦП; | ||
181 | |||
182 | бит 20 – ошибка в цепи подключения датчика тока (обрыв или короткое замыкание); | ||
183 | |||
184 | бит 21 – большая частота переключений контактора заряда; | ||
185 | |||
186 | бит 22 – большая частота переключений контактора разряда; | ||
187 | |||
188 | бит 23 – ошибка «Потеря связи с BMS Current Sensor»; | ||
189 | |||
190 | бит 24 – внутренняя ошибка BMS Current Sensor; | ||
191 | |||
192 | бит 25 – ошибка контрольной суммы настроек платы; | ||
193 | |||
194 | бит 26 – флаг перезапуска платы по требованию WDT; | ||
195 | |||
196 | бит 27 – ошибка «Нет датчиков температуры»; | ||
197 | |||
198 | бит 28 – ошибка «КЗ датчика температуры»; | ||
199 | |||
200 | бит 29 – ошибка «Потеря связи со Spirit»; | ||
201 | |||
202 | биты 30-31 – не используются. | ||
203 | )))|(% style="width:92px" %)U32|(% style="width:86px" %) | ||
204 | |||
205 | ==== CANID ~= 0x380+COBID (по умолчанию 0x3A0) ==== | ||
206 | |||
207 | Длина пакета – 8 байт. | ||
208 | |||
209 | Содержимое пакета: | ||
210 | |||
211 | (% style="width:579px" %) | ||
212 | |(% style="width:66px" %)**Байт**|(% style="width:328px" %)**Имя параметра**|(% style="width:96px" %)**Тип параметра**|(% style="width:88px" %)**Кодирование** | ||
213 | |(% style="width:66px" %)**0–3**|(% style="width:328px" %)((( | ||
214 | Регистр ошибок 2 (битовое поле): | ||
215 | |||
216 | бит 0 – ошибка «Низкая температура (заряд)»; | ||
217 | |||
218 | бит 1 – ошибка «Высокая температура (заряд)»; | ||
219 | |||
220 | бит 2 – ошибка монтирования SD-карты; | ||
221 | |||
222 | бит 3 – ошибка записи/чтения SD-карты; | ||
223 | |||
224 | бит 4 – ошибка «Недопустимый заряд» (заряд батареи через контактор разряда); | ||
225 | |||
226 | бит 5 – ошибка «Залипание контактора»; | ||
227 | |||
228 | бит 6 – «Ошибка обр. связи контактора заряда»; | ||
229 | |||
230 | бит 7 – «Ошибка обр. связи контактора разряда»; | ||
231 | |||
232 | бит 8 – ошибка «Нарушение изоляции»; | ||
233 | |||
234 | бит 9 – «Ошибка обр. связи контактора предзаряда»; | ||
235 | |||
236 | бит 10 – «Ошибка обр. связи комбинированного контактора заряда/разряда»; | ||
237 | |||
238 | бит 11 – «Ошибка обр. связи главного контактора»; | ||
239 | |||
240 | бит 12 — зарезервировано (установлен в 0); | ||
241 | |||
242 | бит 13 — общая ошибка “General error”; | ||
243 | |||
244 | бит 14 — ошибка высокого напряжения; | ||
245 | |||
246 | бит 15 — ошибка “Power switch error”; | ||
247 | |||
248 | бит 16 — ошибка целостности высоковольтной цепи; | ||
249 | |||
250 | бит 17 — ошибка предзаряда; | ||
251 | |||
252 | бит 18 — ошибка силового ключа; | ||
253 | |||
254 | биты 19-31 — не используются. | ||
255 | )))|(% style="width:96px" %)U32|(% style="width:88px" %) | ||
256 | |(% style="width:66px" %)**4-5**|(% style="width:328px" %)((( | ||
257 | Дискретные входы 2 (битовое поле): | ||
258 | |||
259 | бит 0 – сигнал «Запрос на заряд»; | ||
260 | |||
261 | бит 1 – сигнал «Запрос на предзаряд»; | ||
262 | |||
263 | бит 2 – сигнал «Запрос на разряд»; | ||
264 | |||
265 | бит 3 – сигнал «Обратная связь контактора предзаряда»; | ||
266 | |||
267 | бит 4 – сигнал «Обратная связь комбинированного контактора заряда/разряда»; | ||
268 | |||
269 | бит 5 – сигнал «Обратная связь главного контактора»; | ||
270 | |||
271 | бит 6 – сигнал “Interlock”; | ||
272 | |||
273 | бит 7 – сигнал “Fuse 1”; | ||
274 | |||
275 | бит 8 – сигнал “Fuse 2”; | ||
276 | |||
277 | бит 9 – сигнал “Fuse 3”; | ||
278 | |||
279 | бит 10 – сигнал “Circuit breaker status”; | ||
280 | |||
281 | бит 11 – сигнал “Balancing request”; | ||
282 | |||
283 | бит 12 – сигнал “Close Main contactor”; | ||
284 | |||
285 | биты 13-15 – не используются. | ||
286 | )))|(% style="width:96px" %)U16|(% style="width:88px" %) | ||
287 | |(% style="width:66px" %)**6-7**|(% style="width:328px" %)Зарезервировано|(% style="width:96px" %)U16|(% style="width:88px" %) | ||
288 | |||
289 |