Wiki source code of 6.1 CANopen PDO protocol

Last modified by Admin on 2024/12/17 09:04

Show last authors
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 === General information ===
11
12 The BMS Main 3.x device supports CiA 301 CANopen protocol for configuring and monitoring the battery system.
13
14 The communication parameters of the device are:
15
16 * CAN speed – 125, 250 (by default), 500 or 1000 kbps.
17 * COBID of the device by default – 32 (0x20).
18
19 The BMS Main 3.x supports the following features:
20
21 * SDO protocol (for configuring the system).
22 * PDO protocol (for interacting with external devices).
23 * Sync.
24 * Heartbeat producer.
25 * Heartbeat consumer.
26
27 The BMS Main 3.x transmits TPDO packets on every Sync message (CANID = 0x80, data length is 0). The device can send Sync messages itself.
28
29 There is the description of the parameters in the TPDO packets below. Column "Parameter type" contains an integer type of the parameter:
30
31 * U8 – unsigned 8–bit integer;
32 * U16 – unsigned 16–bit integer;
33 * S16 – signed 16–bit integer;
34 * U32 – unsigned 32–bit integer.
35
36 The bytes order of the word is **little endian**.
37
38 === TPDO packets ===
39
40 ==== CANID ~= 0x180+COBID (0x1A0 by default) ====
41
42 Packet length – 8 bytes.
43
44 Packet content:
45
46 (% style="width:574px" %)
47 |(% style="width:64px" %)**Byte number**|(% style="width:333px" %)**Parameter name**|(% style="width:89px" %)**Parameter type**|(% style="width:87px" %)**Converting**
48 |(% style="width:64px" %)**0**|(% style="width:333px" %)(((
49 Discrete input signals 1 (bitfield):
50
51 bit 0 – signal “Battery cover”;
52
53 bit 1 – signal “Charger connected”;
54
55 bit 2 – signal “Power down request”;
56
57 bit 3 – signal “Inhibit charging”;
58
59 bit 4 – signal “Inhibit discharging”;
60
61 bit 5 – signal “CH contactor feedback”;
62
63 bit 6 – signal “DCH contactor feedback”;
64
65 bit 7 – signal “Insulation status”.
66 )))|(% style="width:89px" %)U8|(% style="width:87px" %)
67 |(% style="width:64px" %)**1–2**|(% style="width:333px" %)Battery current|(% style="width:89px" %)S16|(% style="width:87px" %)0.1A/bit
68 |(% style="width:64px" %)**3**|(% style="width:333px" %)Minimum cell temperature|(% style="width:89px" %)S8|(% style="width:87px" %)1ºC/bit
69 |(% style="width:64px" %)**4**|(% style="width:333px" %)Maximum cell temperature|(% style="width:89px" %)S8|(% style="width:87px" %)1ºC/bit
70 |(% style="width:64px" %)**5**|(% style="width:333px" %)State of charge (SOC)|(% style="width:89px" %)U8|(% style="width:87px" %)1%/bit
71 |(% style="width:64px" %)**6–7**|(% style="width:333px" %)Battery voltage|(% style="width:89px" %)U16|(% style="width:87px" %)0.1V/bit
72
73 ==== CANID ~= 0x280+COBID (0x2A0 by default) ====
74
75 Packet length – 8 bytes.
76
77 Packet content:
78
79 (% style="width:575px" %)
80 |(% style="width:57px" %)**Byte number**|(% style="width:334px" %)**Parameter name**|(% style="width:92px" %)**Parameter type**|(% style="width:86px" %)**Converting**
81 |(% style="width:57px" %)**0–3**|(% style="width:334px" %)(((
82 Internal signals (bitfield):
83
84 bit 0 — signal "Low SOC";
85
86 bit 1 — signal "High charging current";
87
88 bit 2 — signal “Charging” (0 – open, 1 – closed);
89
90 bit 3 — signal "Allow charging" (0 – open, 1 – closed);
91
92 bit 4 — signal "Charging current present";
93
94 bit 5 — signal “Discharging” (0 – open, 1 – closed);
95
96 bit 6 — signal "Discharging current present";
97
98 bit 7 — signal "Voltage too high for charging";
99
100 bit 8 — signal "Heater" (0 – off, 1 – on);
101
102 bit 9 — signal "Cooler" (0 – off, 1 – on);
103
104 bit 10 — signal “Shutdown request (HYG/Spirit)”;
105
106 bit 11 — signal “Init” (current sensor calibration or BMS Logic scanning is performed);
107
108 bit 12 — signal “Precharging” (0 – open, 1 – closed);
109
110 bit 13 — signal “Shutdown request (Combilift)”;
111
112 bit 14 — signal "Cell analysis";
113
114 bit 15 — signal “Balancing 1”;
115
116 bit 16 — signal “Balancing 2”;
117
118 bit 17 — signal “Discharging (AUX)” (0 – open, 1 – closed);
119
120 bit 18 — signal “Power down ACK”;
121
122 bit 19 — signal “Crown EWS”;
123
124 bit 20 — signal “Main contactor” (0 – open, 1 – closed);
125
126 bit 21 — signal “Service reset”;
127
128 bit 22 — signal “Charging/Discharging” (0 – open, 1 – closed);
129
130 bit 23 — signal “Ready to charge”;
131
132 bit 24 — signal “Ready to discharge”;
133
134 bit 25 — signal “Power up”;
135
136 bits 26-31 — not used.
137 )))|(% style="width:92px" %)U32|(% style="width:86px" %)
138 |(% style="width:57px" %)**4–7**|(% style="width:334px" %)(((
139 Errors 1 (bitfield):
140
141 bit 0 — error "Overcurrent";
142
143 bit 1 — error "Undervoltage";
144
145 bit 2 — error "Overvoltage";
146
147 bit 3 — error "Low temperature (DCH)";
148
149 bit 4 — error "High temperature (DCH)";
150
151 bit 5 — error "Battery cover";
152
153 bit 6 — error "High humidity";
154
155 bit 7 — error "Water";
156
157 bit 8 — error "Logic high temperature";
158
159 bit 9 — error "Logic offline";
160
161 bit 10 — "Critical error";
162
163 bit 11 — "Crown error";
164
165 bit 12 — "Cell count error";
166
167 bit 13 — error "HYG offline";
168
169 bit 14 — reserved (set to 0);
170
171 bit 15 — error "Combilift offline";
172
173 bit 16 — error "Short circuit";
174
175 bit 17 — error "High contactor temperature";
176
177 bit 18 — "Logic count error";
178
179 bit 19 — "ADC error";
180
181 bit 20 — “Current sensor error”;
182
183 bit 21 — “CH contactor cycles error”;
184
185 bit 22 — “DCH contactor cycles error”;
186
187 bit 23 — error "Shunt offline";
188
189 bit 24 — “Shunt error”;
190
191 bit 25 — reserved (set to 0);
192
193 bit 26 — error “WDT reset”;
194
195 bit 27 — error "No temperature sensors";
196
197 bit 28 — error "Temperature sensor shorted";
198
199 bit 29 — error “Spirit offline”;
200
201 bits 30-31 – not used.
202 )))|(% style="width:92px" %)U32|(% style="width:86px" %)
203
204 ==== CANID ~= 0x380+COBID (0x3A0 by default) ====
205
206 Packet length – 8 bytes.
207
208 Packet content:
209
210 (% style="width:579px" %)
211 |(% style="width:66px" %)**Byte number**|(% style="width:328px" %)**Parameter name**|(% style="width:96px" %)**Parameter type**|(% style="width:88px" %)**Converting**
212 |(% style="width:66px" %)**0–3**|(% style="width:328px" %)(((
213 Errors 2 (bitfield):
214
215 bit 0 — error "Low temperature (CH)";
216
217 bit 1 — error “High temperature (CH)”;
218
219 bit 2 — reserved (set to 0);
220
221 bit 3 — reserved (set to 0);
222
223 bit 4 — error “Unallowable charging”;
224
225 bit 5 — error “Stuck contactor”;
226
227 bit 6 — “CH contactor feedback error”;
228
229 bit 7 — “DCH contactor feedback error”;
230
231 bit 8 — “Insulation fault”;
232
233 bit 9 — “PCH contactor feedback error”;
234
235 bit 10 — “CH/DCH contactor feedback error”;
236
237 bit 11 — “Main contactor feedback error”;
238
239 bit 12 — reserved (set to 0);
240
241 bit 13 — “General error”;
242
243 bit 14 — “High voltage fault”;
244
245 bit 15 — “Power switch error”;
246
247 bit 16 — “HVIL error”;
248
249 bit 17 — “Precharge error”;
250
251 bit 18 — “Power fault”;
252
253 bits 19-31 — not used.
254 )))|(% style="width:96px" %)U32|(% style="width:88px" %)
255 |(% style="width:66px" %)**4-5**|(% style="width:328px" %)(((
256 Discrete input signals 2 (bitfield):
257
258 bit 0 – signal “Charge request”;
259
260 bit 1 – signal “Precharge request;
261
262 bit 2 – signal “Discharge request”;
263
264 bit 3 – signal “PCH contactor feedback”;
265
266 bit 4 – signal “CH/DCH contactor feedback”;
267
268 bit 5 – signal “Main contactor feedback”;
269
270 bit 6 – signal “Interlock”;
271
272 bit 7 – signal “Fuse 1”;
273
274 bit 8 – signal “Fuse 2”;
275
276 bit 9 – signal “Fuse 3”;
277
278 bit 10 – signal “Circuit breaker status”;
279
280 bit 11 – signal “Balancing request”;
281
282 bit 12 – signal “Close Main contactor”;
283
284 bits 13-15 – not used.
285 )))|(% style="width:96px" %)U16|(% style="width:88px" %)
286 |(% style="width:66px" %)**6-7**|(% style="width:328px" %)Reserved|(% style="width:96px" %)U16|(% style="width:88px" %)
287
288