Wiki source code of 6.2 Modbus protocol

Version 5.1 by Admin on 2024/12/16 14:43

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="2" style="--numbered-headings-start: 1;font-size: 0px;color: rgba(0, 0, 0, 0.0);margin-bottom: 0px; margin-top: 0px;" %)
5 == Modbus protocol ==
6
7 === General information ===
8
9 The BMS Main 3 device provides information about the battery system using Modbus protocol. The BMS is a Modbus-server and it responds to the Modbus-client’s commands.
10
11 Interaction with the device is performed over the RS-485 bus (Modbus RTU) or the Ethernet network (Modbus TCP).
12
13 The RS-485 bus connection parameters:
14
15 * baud rate, bps — 600, 1200, 2400, 4800, 9600 (by default), 19200, 38400, 57600, 115200;
16 * word length, bits — 8;
17 * parity — none;
18 * device address (by default) — 32.
19
20 Ethernet connection parameters:
21
22 * port — 502.
23
24 There is a description of the Input и Holding registers below. Column "Type" contains method of parameter coding:
25
26 * U8 — unsigned 8-bit integer number;
27 * U16 — unsigned 16-bit integer number;
28 * S16 — signed 16-bit integer number;
29 * U32 — unsigned 32-bit integer number;
30 * REAL32 — single precision floating point number ([[IEEE 754>>url:https://ru.wikipedia.org/wiki/IEEE_754]] standard);
31 * U8[x] — array of unsigned 8-bit integer numbers having a length of x;
32 * U16[x] — array of unsigned 16-bit integer numbers having a length of x;
33 * REAL32[x] — array of single precision floating point numbers having a length of x.
34
35 The bytes order of the word is **little endian**.
36
37 === Input registers ===
38
39 (% style="width:614px" %)
40 |(% style="width:72px" %)**Register address**|(% style="width:67px" %)**Number of registers**|(% style="width:457px" %)**Content**|(% colspan="2" style="width:16px" %)**Type**
41 |(% style="width:72px" %)**0x0000**|(% style="width:67px" %)1|(% style="width:457px" %)(((
42 Hardware version:
43
44 byte 0 — minor;
45
46 byte 1 — major.
47 )))|(% colspan="2" style="width:16px" %)U8[2]
48 |(% style="width:72px" %)**0x0001-0x0002**|(% style="width:67px" %)2|(% style="width:457px" %)(((
49 Firmware version:
50
51 byte 0 — patch;
52
53 byte 1 — minor;
54
55 byte 2 — major;
56
57 byte 3 — not used (set to 0).
58 )))|(% colspan="2" style="width:16px" %)U8[4]
59 |(% style="width:72px" %)**0x0003-0x0004**|(% style="width:67px" %)2|(% style="width:457px" %)(((
60 Bootloader version:
61
62 byte 0 — patch;
63
64 byte 1 — minor;
65
66 byte 2 — major;
67
68 byte 3 — not used (set to 0).
69 )))|(% colspan="2" style="width:16px" %)U8[4]
70 |(% colspan="5" style="width:611px" %)**Battery state**
71 |(% style="width:72px" %)**0x1000**|(% style="width:67px" %)1|(% style="width:457px" %)Battery state of charge (SOC), %|(% colspan="2" style="width:16px" %)U16
72 |(% style="width:72px" %)**0x1001**|(% style="width:67px" %)1|(% style="width:457px" %)(((
73 Battery state of health (SOH), %
74
75 Note – The value is calculated as a minimal SOH among battery modules.
76 )))|(% colspan="2" style="width:16px" %)U16
77 |(% style="width:72px" %)**0x1002**|(% style="width:67px" %)1|(% style="width:457px" %)(((
78 Battery balancing efficiency, %
79
80 Note – The value is calculated as a minimal balancing efficiency among battery modules.
81 )))|(% colspan="2" style="width:16px" %)U16
82 |(% style="width:72px" %)**0x1003**|(% style="width:67px" %)1|(% style="width:457px" %)(((
83 Battery state (enumeration):
84
85 0 – Off (battery is off);
86
87 1 – Pre-balancing (the battery modules are precharging);
88
89 2 – Balancing (the battery modules are joined and balancing);
90
91 3 – Precharging (the modular battery is precharging);
92
93 4 – Idle (the modular battery is idle (charging and discharging currents are not detected));
94
95 5 – Charging (the modular battery is charging);
96
97 6 – Discharging (the modular battery is discharging).
98 )))|(% colspan="2" style="width:16px" %)U16
99 |(% style="width:72px" %)**0x1004-0x1005**|(% style="width:67px" %)2|(% style="width:457px" %)Battery voltage, V|(% colspan="2" style="width:16px" %)REAL32
100 |(% style="width:72px" %)**0x1006-0x1007**|(% style="width:67px" %)2|(% style="width:457px" %)Battery current, A|(% colspan="2" style="width:16px" %)REAL32
101 |(% style="width:72px" %)**0x1008-0x1009**|(% style="width:67px" %)2|(% style="width:457px" %)Battery resistance, Ohm|(% colspan="2" style="width:16px" %)REAL32
102 |(% style="width:72px" %)**0x100A-0x100B**|(% style="width:67px" %)2|(% style="width:457px" %)Temperature measured by external sensor 1, °C|(% colspan="2" style="width:16px" %)REAL32
103 |(% style="width:72px" %)**0x100C-0x100D**|(% style="width:67px" %)2|(% style="width:457px" %)Temperature measured by external sensor 2, °C|(% colspan="2" style="width:16px" %)REAL32
104 |(% style="width:72px" %)**0x100E-0x100F**|(% style="width:67px" %)2|(% style="width:457px" %)Minimum cell temperature among all battery modules, °C|(% colspan="2" style="width:16px" %)REAL32
105 |(% style="width:72px" %)**0x1010-0x1011**|(% style="width:67px" %)2|(% style="width:457px" %)Maximum cell temperature among all battery modules, °C|(% colspan="2" style="width:16px" %)REAL32
106 |(% style="width:72px" %)**0x1012-0x1013**|(% style="width:67px" %)2|(% style="width:457px" %)Battery capacity, A×h|(% colspan="2" style="width:16px" %)REAL32
107 |(% style="width:72px" %)**0x1014-0x1015**|(% style="width:67px" %)2|(% style="width:457px" %)Energy received from the charger, W×h|(% colspan="2" style="width:16px" %)REAL32
108 |(% style="width:72px" %)**0x1016-0x1017**|(% style="width:67px" %)2|(% style="width:457px" %)Energy consumed by the load, W×h|(% colspan="2" style="width:16px" %)REAL32
109 |(% style="width:72px" %)**0x1018-0x1019**|(% style="width:67px" %)2|(% style="width:457px" %)Energy dissipated by the balancing resistors, W×h|(% colspan="2" style="width:16px" %)REAL32
110 |(% style="width:72px" %)**0x101A-0x101B**|(% style="width:67px" %)2|(% style="width:457px" %)Battery charge current limit, A|(% colspan="2" style="width:16px" %)REAL32
111 |(% style="width:72px" %)**0x101C-0x101D**|(% style="width:67px" %)2|(% style="width:457px" %)Battery discharge current limit, A|(% colspan="2" style="width:16px" %)REAL32
112 |(% style="width:72px" %)**0x101E-0x101F**|(% style="width:67px" %)2|(% style="width:457px" %)Duration of the battery state (0x1003), seconds|(% colspan="2" style="width:16px" %)U32
113 |(% style="width:72px" %)**0x1020-0x1021**|(% style="width:67px" %)2|(% style="width:457px" %)(((
114 Internal signals (bitfield):
115
116 bit 0 – signal “Init” (current sensor calibration or battery modules scanning is performed);
117
118 bit 1 – signal “Charging” (0 – open, 1 – closed);
119
120 bit 2 – signal “Discharging” (0 – open, 1 – closed);
121
122 bit 3 – signal “Charging current present”;
123
124 bit 4 – signal “Discharging current present”;
125
126 bit 5 – signal “Charging/Discharging” (0 – open, 1 – closed);
127
128 bit 6 – signal “Precharging” (0 – open, 1 – closed);
129
130 bit 7 – signal “Interlock”;
131
132 bit 8 – signal “Fuse 1”;
133
134 bit 9 – signal “Fuse 2”;
135
136 bit 10 – signal “Fuse 3”;
137
138 bit 11 – signal “Heater” (0 – off, 1 – on);
139
140 bit 12 – signal “Cooler” (0 – off, 1 – on);
141
142 bit 13 – signal “Main contactor” (0 – open, 1 – closed);
143
144 bits 14-29 – reserved (set to 0);
145
146 bit 30 – reserved (set to “1”);
147
148 bit 31 – no used.
149 )))|(% colspan="2" style="width:16px" %)U32
150 |(% style="width:72px" %)**0x1022-0x1023**|(% style="width:67px" %)2|(% style="width:457px" %)(((
151 Common errors 1 (bitfield):
152
153 bit 0 – error “Battery cover”;
154
155 bit 1 – error “Modules offline”;
156
157 bit 2 – “Critical error”;
158
159 bit 3 – error “Voltage unbalance (CH)”;
160
161 bit 4 – error “Voltage unbalance (DCH)”;
162
163 bit 5 – error “Current unbalance (CH)”;
164
165 bit 6 – error “Current unbalance (DCH)”;
166
167 bit 7 – error “Charging current unbalance”;
168
169 bit 8 – error “Discharging current unbalance”;
170
171 bit 9 – reserved (set to 0);
172
173 bit 10 – “CH contactor feedback error”;
174
175 bit 11 – “DCH contactor feedback error”;
176
177 bit 12 – “CH/DCH contactor feedback error”;
178
179 bit 13 – “Insulation fault”;
180
181 bit 14 – error “WDT reset”;
182
183 bits 15-24 – reserved (set to 0);
184
185 bit 25 – “Mount error”;
186
187 bit 26 – “FS error”;
188
189 bit 27 – reserved (set to 0);
190
191 bit 28 – “PCH contactor feedback error”;
192
193 bit 29 – “Main contactor feedback error”;
194
195 bit 30 – “Precharge error”;
196
197 bit 31 – “Current limit error”.
198 )))|(% colspan="2" style="width:16px" %)U32
199 |(% style="width:72px" %)**0x1024-0x1025**|(% style="width:67px" %)2|(% style="width:457px" %)(((
200 Voltage unbalance CH errors (bitfield):
201
202 bit i – error of the (i+1)^^th^^ battery module.
203 )))|(% colspan="2" style="width:16px" %)U32
204 |(% style="width:72px" %)**0x1026-0x1027**|(% style="width:67px" %)2|(% style="width:457px" %)(((
205 Voltage unbalance DCH errors (bitfield).
206
207 Note – Registry mapping is the same as for registers 0x1024-0x1025
208 )))|(% colspan="2" style="width:16px" %)U32
209 |(% style="width:72px" %)**0x1028-0x1029**|(% style="width:67px" %)2|(% style="width:457px" %)(((
210 Current unbalance CH errors (bitfield).
211
212 Note – Registry mapping is the same as for registers 0x1024-0x1025
213 )))|(% colspan="2" style="width:16px" %)U32
214 |(% style="width:72px" %)**0x102A-0x102B**|(% style="width:67px" %)2|(% style="width:457px" %)(((
215 Current unbalance DCH errors (bitfield).
216
217 Note – Registry mapping is the same as for registers 0x1024-0x1025
218 )))|(% colspan="2" style="width:16px" %)U32
219 |(% style="width:72px" %)**0x102C-0x102D**|(% style="width:67px" %)2|(% style="width:457px" %)(((
220 Charging current unbalance errors (bitfield).
221
222 Note – Registry mapping is the same as for registers 0x1024-0x1025
223 )))|(% colspan="2" style="width:16px" %)U32
224 |(% style="width:72px" %)**0x102E-0x102F**|(% style="width:67px" %)2|(% style="width:457px" %)(((
225 Discharging current unbalance errors (bitfield).
226
227 Note – Registry mapping is the same as for registers 0x1024-0x1025
228 )))|(% colspan="2" style="width:16px" %)U32
229 |(% style="width:72px" %)**0x1030-0x1031**|(% style="width:67px" %)2|(% style="width:457px" %)(((
230 Cumulative internal signals (logical OR of all “Internal signals” values of the battery modules; bitfield):
231
232 bit 0 — signal "Low SOC";
233
234 bit 1 — signal "High charging current";
235
236 bit 2 — signal “Charging” (0 – open, 1 – closed);
237
238 bit 3 — signal "Allow charging" (0 – open, 1 – closed);
239
240 bit 4 — signal "Charging current present";
241
242 bit 5 — signal “Discharging” (0 – open, 1 – closed);
243
244 bit 6 — signal "Discharging current present";
245
246 bit 7 — signal "Voltage too high for charging";
247
248 bit 8 — signal "Heater" (0 – off, 1 – on);
249
250 bit 9 — signal "Cooler" (0 – off, 1 – on);
251
252 bit 10 — signal “Shutdown request (HYG/Spirit)”;
253
254 bit 11 — signal “Init” (current sensor calibration or BMS Logic scanning is performed);
255
256 bit 12 — signal “Precharging” (0 – open, 1 – closed);
257
258 bit 13 — signal “Shutdown request (Combilift)”;
259
260 bit 14 — signal "Cell analysis";
261
262 bit 15 — signal “Balancing 1”;
263
264 bit 16 — signal “Balancing 2”;
265
266 bit 17 — signal “Discharging (AUX)” (0 – open, 1 – closed);
267
268 bit 18 — signal “Power down ACK”;
269
270 bit 19 — signal “Crown EWS”;
271
272 bit 20 — signal “Main contactor” (0 – open, 1 – closed);
273
274 bit 21 — signal “Service reset”;
275
276 bit 22 — signal “Charging/Discharging” (0 – open, 1 – closed);
277
278 bit 23 — signal “Ready to charge”;
279
280 bit 24 — signal “Ready to discharge”;
281
282 bit 25 — signal “Power up”;
283
284 bits 26-31 — not used.
285 )))|(% colspan="2" style="width:16px" %)U32
286 |(% style="width:72px" %)**0x1032-0x1033**|(% style="width:67px" %)2|(% style="width:457px" %)(((
287 Cumulative errors 1 (logical OR of all “Errors 1” values of the battery modules; bitfield):
288
289 bit 0 — error "Overcurrent";
290
291 bit 1 — error "Undervoltage";
292
293 bit 2 — error "Overvoltage";
294
295 bit 3 — error "Low temperature (DCH)";
296
297 bit 4 — error "High temperature (DCH)";
298
299 bit 5 — error "Battery cover";
300
301 bit 6 — error "High humidity";
302
303 bit 7 — error "Water";
304
305 bit 8 — error "Logic high temperature";
306
307 bit 9 — error "Logic offline";
308
309 bit 10 — "Critical error";
310
311 bit 11 — "Crown error";
312
313 bit 12 — "Cell count error";
314
315 bit 13 — error "HYG offline";
316
317 bit 14 — reserved (set to 0);
318
319 bit 15 — error "Combilift offline";
320
321 bit 16 — error "Short circuit";
322
323 bit 17 — error "High contactor temperature";
324
325 bit 18 — "Logic count error";
326
327 bit 19 — "ADC error";
328
329 bit 20 — “Current sensor error”;
330
331 bit 21 — “CH contactor cycles error”;
332
333 bit 22 — “DCH contactor cycles error”;
334
335 bit 23 — error "Shunt offline";
336
337 bit 24 — “Shunt error”;
338
339 bit 25 — reserved (set to 0);
340
341 bit 26 — error “WDT reset”;
342
343 bit 27 — error "No temperature sensors";
344
345 bit 28 — error "Temperature sensor shorted";
346
347 bit 29 — error “Spirit offline”;
348
349 bits 30-31 – not used.
350 )))|(% colspan="2" style="width:16px" %)U32
351 |(% style="width:72px" %)**0x1034-0x1035**|(% style="width:67px" %) |(% style="width:457px" %)(((
352 Cumulative errors 2 (logical OR of all “Errors 2” values of the battery modules; bitfield):
353
354 bit 0 — error "Low temperature (CH)";
355
356 bit 1 — error “High temperature (CH)”;
357
358 bit 2 — reserved (set to 0);
359
360 bit 3 — reserved (set to 0);
361
362 bit 4 — error “Unallowable charging”;
363
364 bit 5 — error “Stuck contactor”;
365
366 bit 6 — “CH contactor feedback error”;
367
368 bit 7 — “DCH contactor feedback error”;
369
370 bit 8 — “Insulation fault”;
371
372 bit 9 — “PCH contactor feedback error”;
373
374 bit 10 — “CH/DCH contactor feedback error”;
375
376 bit 11 — “Main contactor feedback error”;
377
378 bit 12 — reserved (set to 0);
379
380 bit 13 — “General error”;
381
382 bits 14-31 — not used.
383 )))|(% colspan="2" style="width:16px" %)U32
384 |(% style="width:72px" %)**0x1036-0x1037**|(% style="width:67px" %)2|(% style="width:457px" %)(((
385 Remaining discharge time, second.
386
387 Note – The value 0xFFFFFFFF corresponds to the case when the device cannot calculate the remaining time.
388 )))|(% colspan="2" style="width:16px" %)U32
389 |(% style="width:72px" %)**0x1038-0x1039**|(% style="width:67px" %)2|(% style="width:457px" %)(((
390 Common errors 2 (bitfield):
391
392 bits 0-31 – not used.
393 )))|(% colspan="2" style="width:16px" %)U32
394 |(% style="width:72px" %)**0x103A-0x103B**|(% style="width:67px" %)2|(% style="width:457px" %)(((
395 Discrete input signals (bitfield):
396
397 bit 0 – signal “Battery cover”;
398
399 bit 1 – signal “Charge request”;
400
401 bit 2 – signal “Precharge request”;
402
403 bit 3 – signal “Discharge request”;
404
405 bit 4 – signal “CH contactor feedback”;
406
407 bit 5 – signal “DCH contactor feedback”;
408
409 bit 6 – signal “CH/DCH contactor feedback”;
410
411 bit 7 – signal “Insulation status”;
412
413 bit 8 – signal “Join to charge”;
414
415 bit 9 – signal “Join to discharge;
416
417 bit 10 – signal “PCH contactor feedback”;
418
419 bit 11 – signal “Main contactor feedback”;
420
421 bits 12-31 – not used.
422 )))|(% colspan="2" style="width:16px" %)U32
423 |(% style="width:72px" %)**0x103C-0x103D**|(% style="width:67px" %)2|(% style="width:457px" %)(((
424 Flags indicating that the battery modules are enabled but not detected (bitfield):
425
426 bit i – the (i+1)^^th^^ battery module is enabled but not detected.
427 )))|(% colspan="2" style="width:16px" %)U32
428 |(% style="width:72px" %)**0x103E-0x103F**|(% style="width:67px" %)2|(% style="width:457px" %)(((
429 Flags indicating that the battery modules are detected (bitfield):
430
431 bit i – the (i+1)^^th^^ battery module is detected.
432 )))|(% colspan="2" style="width:16px" %)U32
433 |(% style="width:72px" %)**0x1040-0x1041**|(% style="width:67px" %)2|(% style="width:457px" %)(((
434 Flags indicating that the battery modules are online (bitfield):
435
436 bit i – the (i+1)^^th^^ battery module is online.
437 )))|(% colspan="2" style="width:16px" %)U32
438 |(% style="width:72px" %)**0x1042-0x1043**|(% style="width:67px" %)2|(% style="width:457px" %)(((
439 Flags indicating that the battery modules are offline (bitfield):
440
441 bit i – the (i+1)^^th^^ battery module is offline.
442 )))|(% colspan="2" style="width:16px" %)U32
443 |(% style="width:72px" %)**0x1044**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the battery module that has the cell with the minimum temperature|(% colspan="2" style="width:16px" %)U16
444 |(% style="width:72px" %)**0x1045**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the Logic device that is connected to the cell with the minimum temperature|(% colspan="2" style="width:16px" %)U16
445 |(% style="width:72px" %)**0x1046**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the cell that has the minimum temperature|(% colspan="2" style="width:16px" %)U16
446 |(% style="width:72px" %)**0x1047**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the battery module that has the cell with the maximum temperature|(% colspan="2" style="width:16px" %)U16
447 |(% style="width:72px" %)**0x1048**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the Logic device that is connected to the cell with the maximum temperature|(% colspan="2" style="width:16px" %)U16
448 |(% style="width:72px" %)**0x1049**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the cell that has the maximum temperature|(% colspan="2" style="width:16px" %)U16
449 |(% style="width:72px" %)**0x104A-0x104B**|(% style="width:67px" %)2|(% style="width:457px" %)Minimum cell voltage among all battery modules, V|(% colspan="2" style="width:16px" %)REAL32
450 |(% style="width:72px" %)**0x104C**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the battery module that has the cell with the minimum voltage|(% colspan="2" style="width:16px" %)U16
451 |(% style="width:72px" %)**0x104D**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the Logic device that is connected to the cell with the minimum voltage|(% colspan="2" style="width:16px" %)U16
452 |(% style="width:72px" %)**0x104E**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the cell that has the minimum voltage|(% colspan="2" style="width:16px" %)U16
453 |(% style="width:72px" %)**0x104F**|(% style="width:67px" %)1|(% style="width:457px" %)Reserved|(% colspan="2" style="width:16px" %)U16
454 |(% style="width:72px" %)**0x1050-0x1051**|(% style="width:67px" %)2|(% style="width:457px" %)Maximum cell voltage among all battery modules, V|(% colspan="2" style="width:16px" %)REAL32
455 |(% style="width:72px" %)**0x1052**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the battery module that has the cell with the maximum voltage|(% colspan="2" style="width:16px" %)U16
456 |(% style="width:72px" %)**0x1053**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the Logic device that is connected to the cell with the maximum voltage|(% colspan="2" style="width:16px" %)U16
457 |(% style="width:72px" %)**0x1054**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the cell that has the maximum voltage|(% colspan="2" style="width:16px" %)U16
458 |(% style="width:72px" %)**0x1055**|(% style="width:67px" %)1|(% style="width:457px" %)Reserved|(% colspan="2" style="width:16px" %)U16
459 |(% style="width:72px" %)**0x1056-0x1057**|(% style="width:67px" %)2|(% style="width:457px" %)Minimum battery module voltage, V|(% colspan="2" style="width:16px" %)REAL32
460 |(% style="width:72px" %)**0x1058**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the battery module that has the minimum voltage|(% colspan="2" style="width:16px" %)U16
461 |(% style="width:72px" %)**0x1059**|(% style="width:67px" %)1|(% style="width:457px" %)Reserved|(% colspan="2" style="width:16px" %)U16
462 |(% style="width:72px" %)**0x105A-0x105B**|(% style="width:67px" %)2|(% style="width:457px" %)Maximum battery module voltage, V|(% colspan="2" style="width:16px" %)REAL32
463 |(% style="width:72px" %)**0x105C**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the battery module that has the maximum voltage|(% colspan="2" style="width:16px" %)U16
464 |(% style="width:72px" %)**0x105D**|(% style="width:67px" %)1|(% style="width:457px" %)Reserved|(% colspan="2" style="width:16px" %)U16
465 |(% colspan="5" style="width:611px" %)**Module #1 state: base address 0x2000**
466 |(% style="width:72px" %)(((
467 **0x2000**
468
469 **(offset 0x0000)**
470 )))|(% style="width:67px" %)1|(% style="width:457px" %)(((
471 Module state (enumeration):
472
473 0 – Unknown;
474
475 1 – Charging ON;
476
477 2 - Charging OFF;
478
479 3 – Relaxed (after charging);
480
481 4 – Discharging ON;
482
483 5 – Discharging OFF;
484
485 6 – Relaxed (after discharging).
486 )))|(% colspan="2" style="width:16px" %)U16
487 |(% style="width:72px" %)(((
488 **0x2001**
489
490 **(offset 0x0001)**
491 )))|(% style="width:67px" %)1|(% style="width:457px" %)Module state of charge (SOC), %|(% colspan="2" style="width:16px" %)U16
492 |(% style="width:72px" %)(((
493 **0x2002**
494
495 **(offset 0x0002)**
496 )))|(% style="width:67px" %)1|(% style="width:457px" %)Module state of health (SOH), %|(% colspan="2" style="width:16px" %)U16
497 |(% style="width:72px" %)(((
498 **0x2003**
499
500 **(offset 0x0003)**
501 )))|(% style="width:67px" %)1|(% style="width:457px" %)Module balancing efficiency, %|(% colspan="2" style="width:16px" %)U16
502 |(% style="width:72px" %)**0x2004-0x2008 (offset 0x0004)**|(% style="width:67px" %)5|(% style="width:457px" %)(((
503 BMS firmware version.
504
505 Example: “1.59.1”
506 )))|(% colspan="2" style="width:16px" %)CHAR[10]
507 |(% style="width:72px" %)(((
508 **0x2009**
509
510 **(offset 0x2009)**
511 )))|(% style="width:67px" %)1|(% style="width:457px" %)Reserved|(% colspan="2" style="width:16px" %)U16
512 |(% style="width:72px" %)(((
513 **0x200A-0x200B**
514
515 **(offset 0x000A)**
516 )))|(% style="width:67px" %)2|(% style="width:457px" %)Module voltage, V|(% colspan="2" style="width:16px" %)REAL32
517 |(% style="width:72px" %)(((
518 **0x200C-0x200D**
519
520 **(offset 0x000C)**
521 )))|(% style="width:67px" %)2|(% style="width:457px" %)Module current, А|(% colspan="2" style="width:16px" %)REAL32
522 |(% style="width:72px" %)(((
523 **0x200E-0x200F**
524
525 **(offset 0x000E)**
526 )))|(% style="width:67px" %)2|(% style="width:457px" %)Module resistance, Ohm|(% colspan="2" style="width:16px" %)REAL32
527 |(% style="width:72px" %)(((
528 **0x2010-0x2011**
529
530 **(offset 0x0010)**
531 )))|(% style="width:67px" %)2|(% style="width:457px" %)Minimum cell temperature|(% colspan="2" style="width:16px" %)REAL32
532 |(% style="width:72px" %)(((
533 **0x2012-0x2013**
534
535 **(offset 0x0012)**
536 )))|(% style="width:67px" %)2|(% style="width:457px" %)Maximum cell temperature|(% colspan="2" style="width:16px" %)REAL32
537 |(% style="width:72px" %)(((
538 **0x2014-0x2015**
539
540 **(offset 0x0014)**
541 )))|(% style="width:67px" %)2|(% style="width:457px" %)Minimum cell voltage|(% colspan="2" style="width:16px" %)REAL32
542 |(% style="width:72px" %)(((
543 **0x2016-0x2017**
544
545 **(offset 0x0016)**
546 )))|(% style="width:67px" %)2|(% style="width:457px" %)Maximum cell voltage|(% colspan="2" style="width:16px" %)REAL32
547 |(% style="width:72px" %)(((
548 **0x2018-0x2019**
549
550 **(offset 0x0018)**
551 )))|(% style="width:67px" %)2|(% style="width:457px" %)Effective capacity, A×h|(% colspan="2" style="width:16px" %)REAL32
552 |(% style="width:72px" %)(((
553 **0x201A-0x201B**
554
555 **(offset 0x001A)**
556 )))|(% style="width:67px" %)2|(% style="width:457px" %)Charge current limit, A|(% colspan="2" style="width:16px" %)REAL32
557 |(% style="width:72px" %)(((
558 **0x201C-0x201D**
559
560 **(offset 0x001C)**
561 )))|(% style="width:67px" %)2|(% style="width:457px" %)Discharge current limit, A|(% colspan="2" style="width:16px" %)REAL32
562 |(% style="width:72px" %)(((
563 **0x201E-0x201F**
564
565 **(offset 0x001E)**
566 )))|(% style="width:67px" %)2|(% style="width:457px" %)Energy received from the charger, W×h|(% colspan="2" style="width:16px" %)REAL32
567 |(% style="width:72px" %)(((
568 **0x2020-0x2021**
569
570 **(offset 0x0020)**
571 )))|(% style="width:67px" %)2|(% style="width:457px" %)Energy consumed by the load, W×h|(% colspan="2" style="width:16px" %)REAL32
572 |(% style="width:72px" %)(((
573 **0x2022-0x2023**
574
575 **(offset 0x0022)**
576 )))|(% style="width:67px" %)2|(% style="width:457px" %)Energy dissipated by the balancing resistors, W×h|(% colspan="2" style="width:16px" %)REAL32
577 |(% style="width:72px" %)(((
578 **0x2024-0x2025**
579
580 **(offset 0x0024)**
581 )))|(% style="width:67px" %)2|(% style="width:457px" %)Number of 80% charge/discharge cycles|(% colspan="2" style="width:16px" %)REAL32
582 |(% style="width:72px" %)(((
583 **0x2026-0x2027**
584
585 **(offset 0x0026)**
586 )))|(% style="width:67px" %)2|(% style="width:457px" %)(((
587 Internal signals (bitfield).
588
589 Note – Registry mapping is the same as for 0x1030-0x1031.
590 )))|(% colspan="2" style="width:16px" %)U32
591 |(% style="width:72px" %)(((
592 **0x2028-0x2029**
593
594 **(offset 0x0028)**
595 )))|(% style="width:67px" %)2|(% style="width:457px" %)(((
596 Errors 1 (bitfield).
597
598 Note – Registry mapping is the same as for 0x1032-0x1033.
599 )))|(% colspan="2" style="width:16px" %)U32
600 |(% style="width:72px" %)(((
601 **0x202A-0x202B**
602
603 **(offset 0x002A)**
604 )))|(% style="width:67px" %)2|(% style="width:457px" %)(((
605 Errors 2 (bitfield).
606
607 Note – Registry mapping is the same as for 0x1034-0x1035.
608 )))|(% colspan="2" style="width:16px" %)U32
609 |(% style="width:72px" %)(((
610 **0x202C-0x202D**
611
612 **(offset 0x002C)**
613 )))|(% style="width:67px" %)2|(% style="width:457px" %)(((
614 Discrete input signals (bitfield):
615
616 bit 0 — signal "Battery cover";
617
618 bit 1 — signal "Charger connected";
619
620 bit 2 — signal "Power up/down request";
621
622 bit 3 — signal "Inhibit charging";
623
624 bit 4 — signal "Inhibit discharging";
625
626 bit 5 — signal “CH contactor feedback”;
627
628 bit 6 — signal “DCH contactor feedback”;
629
630 bit 7 — signal “Insulation status”;
631
632 bit 8 – signal “Charge request”;
633
634 bit 9 – signal “Precharge request”;
635
636 bit 10 – signal “Discharge request”;
637
638 bit 11 – signal “PCH contactor feedback”;
639
640 bit 12 – signal “CH/DCH contactor feedback”;
641
642 bit 13 – signal “Main contactor feedback”;
643
644 bit 14 – signal “Interlock”;
645
646 bit 15 – signal “Fuse 1”;
647
648 bit 16 – signal “Fuse 2”;
649
650 bit 17 - signal “Fuse 3”;
651
652 bit 18 – signal “Circuit breaker status”;
653
654 bits 19-31 – not used.
655 )))|(% colspan="2" style="width:16px" %)U32
656 |(% style="width:72px" %)(((
657 **0x202E-0x202F**
658
659 **(offset 0x002E)**
660 )))|(% style="width:67px" %)2|(% style="width:457px" %)Module depth of discharge, A×h|(% style="width:16px" %)REAL32
661 |(% style="width:72px" %)**0x2030
662 (offset 0x0030)**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the Logic device that is connected to the cell with the minimum temperature|(% colspan="2" style="width:16px" %)U16
663 |(% style="width:72px" %)**0x2031
664 (offset 0x0031)**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the cell that has the minimum temperature|(% colspan="2" style="width:16px" %)U16
665 |(% style="width:72px" %)**0x2032
666 (offset 0x0032)**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the Logic device that is connected to the cell with the maximum temperature|(% colspan="2" style="width:16px" %)U16
667 |(% style="width:72px" %)**0x2033
668 (offset 0x0033)**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the cell that has the maximum temperature|(% colspan="2" style="width:16px" %)U16
669 |(% style="width:72px" %)**0x2034
670 (offset 0x0034)**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the Logic device that is connected to the cell with the minimum voltage|(% colspan="2" style="width:16px" %)U16
671 |(% style="width:72px" %)**0x2035
672 (offset 0x0035)**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the cell that has the minimum voltage|(% colspan="2" style="width:16px" %)U16
673 |(% style="width:72px" %)**0x2036
674 (offset 0x0036)**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the Logic device that is connected to the cell with the maximum voltage|(% colspan="2" style="width:16px" %)U16
675 |(% style="width:72px" %)**0x2037
676 (offset 0x0037)**|(% style="width:67px" %)1|(% style="width:457px" %)Index of the cell that has the maximum voltage|(% colspan="2" style="width:16px" %)U16
677 |(% colspan="5" style="width:611px" %)(((
678 **Module #2 state: base address 0x2200**
679
680 Note – Registries have the same format as for Module #1
681 )))
682 |(% colspan="5" style="width:611px" %)(((
683 **Module #3 state: base address 0x2400**
684
685 Note – Registries have the same format as for Module #1
686 )))
687 |(% colspan="5" style="width:611px" %)(((
688 **Module #4 state: base address 0x2600**
689
690 Note – Registries have the same format as for Module #1
691 )))
692 |(% colspan="5" style="width:611px" %)(((
693 **Module #5 state: base address 0x2800**
694
695 Note – Registries have the same format as for Module #1
696 )))
697 |(% colspan="5" style="width:611px" %)(((
698 **Module #6 state: base address 0x2A00**
699
700 Note – Registries have the same format as for Module #1
701 )))
702 |(% colspan="5" style="width:611px" %)(((
703 **Module #7 state: base address 0x2C00**
704
705 Note – Registries have the same format as for Module #1
706 )))
707 |(% colspan="5" style="width:611px" %)(((
708 **Module #8 state: base address 0x2E00**
709
710 Note – Registries have the same format as for Module #1
711 )))
712 |(% colspan="5" style="width:611px" %)(((
713 **Module #9 state: base address 0x3000**
714
715 Note – Registries have the same format as for Module #1
716 )))
717 |(% colspan="5" style="width:611px" %)(((
718 **Module #10 state: base address 0x3200**
719
720 Note – Registries have the same format as for Module #1
721 )))
722 |(% colspan="5" style="width:611px" %)(((
723 **Module #11 state: base address 0x3400**
724
725 Note – Registries have the same format as for Module #1
726 )))
727 |(% colspan="5" style="width:611px" %)(((
728 **Module #12 state: base address 0x3600**
729
730 Note – Registries have the same format as for Module #1
731 )))
732 |(% colspan="5" style="width:611px" %)(((
733 **Module #13 state: base address 0x3800**
734
735 Note – Registries have the same format as for Module #1
736 )))
737 |(% colspan="5" style="width:611px" %)(((
738 **Module #14 state: base address 0x3A00**
739
740 Note – Registries have the same format as for Module #1
741 )))
742 |(% colspan="5" style="width:611px" %)(((
743 **Module #15 state: base address 0x3C00**
744
745 Note – Registries have the same format as for Module #1
746 )))
747 |(% colspan="5" style="width:611px" %)(((
748 **Module #16 state: base address 0x3E00**
749
750 Note – Registries have the same format as for Module #1
751 )))
752 |(% colspan="5" style="width:611px" %)(((
753 **Module #17 state: base address 0x4000**
754
755 Note – Registries have the same format as for Module #1
756 )))
757 |(% colspan="5" style="width:611px" %)(((
758 **Module #18 state: base address 0x4200**
759
760 Note – Registries have the same format as for Module #1
761 )))
762 |(% colspan="5" style="width:611px" %)(((
763 **Module #19 state: base address 0x4400**
764
765 Note – Registries have the same format as for Module #1
766 )))
767 |(% colspan="5" style="width:611px" %)(((
768 **Module #20 state: base address 0x4600**
769
770 Note – Registries have the same format as for Module #1
771 )))
772 |(% colspan="5" style="width:611px" %)(((
773 **Module #21 state: base address 0x4800**
774
775 Note – Registries have the same format as for Module #1
776 )))
777 |(% colspan="5" style="width:611px" %)(((
778 **Module #22 state: base address 0x4A00**
779
780 Note – Registries have the same format as for Module #1
781 )))
782 |(% colspan="5" style="width:611px" %)(((
783 **Module #23 state: base address 0x4C00**
784
785 Note – Registries have the same format as for Module #1
786 )))
787 |(% colspan="5" style="width:611px" %)(((
788 **Module #24 state: base address 0x4E00**
789
790 Note – Registries have the same format as for Module #1
791 )))
792 |(% colspan="5" style="width:611px" %)(((
793 **Module #25 state: base address 0x5000**
794
795 Note – Registries have the same format as for Module #1
796 )))
797 |(% colspan="5" style="width:611px" %)(((
798 **Module #26 state: base address 0x5200**
799
800 Note – Registries have the same format as for Module #1
801 )))
802 |(% colspan="5" style="width:611px" %)(((
803 **Module #27 state: base address 0x5400**
804
805 Note – Registries have the same format as for Module #1
806 )))
807 |(% colspan="5" style="width:611px" %)(((
808 **Module #28 state: base address 0x5600**
809
810 Note – Registries have the same format as for Module #1
811 )))
812 |(% colspan="5" style="width:611px" %)(((
813 **Module #29 state: base address 0x5800**
814
815 Note – Registries have the same format as for Module #1
816 )))
817 |(% colspan="5" style="width:611px" %)(((
818 **Module #30 state: base address 0x5A00**
819
820 Note – Registries have the same format as for Module #1
821 )))
822 |(% colspan="5" style="width:611px" %)(((
823 **Module #31 state: base address 0x5C00**
824
825 Note – Registries have the same format as for Module #1
826 )))
827 |(% colspan="5" style="width:611px" %)(((
828 **Module #32 state: base address 0x5E00**
829
830 Note – Registries have the same format as for Module #1
831 )))
832
833 === Holding registers ===
834
835 (% style="width:616px" %)
836 |(% style="width:70px" %)**Register address**|(% style="width:66px" %)**Number of registers**|(% style="width:429px" %)**Content**|(% style="width:47px" %)**Type**
837 |(% style="width:70px" %)**0x4000**|(% style="width:66px" %)1|(% style="width:429px" %)Address of the BMS Logic device whose parameters should be in the input registers 0x2011-0x20C9|(% style="width:47px" %)U16
838 |(% style="width:70px" %)**0x5100**|(% style="width:66px" %)1|(% style="width:429px" %)(((
839 Software control of the "Battery cover" signal. Allowable values:
840
841 0 – clear the signal;
842
843 1 – set the signal;
844
845 2-65535 – use the physical input "Battery cover".
846 )))|(% style="width:47px" %)U16
847 |(% style="width:70px" %)**0x5101**|(% style="width:66px" %)1|(% style="width:429px" %)(((
848 Software control of the "Charger connected" signal. Allowable values:
849
850 0 – clear the signal;
851
852 1 – set the signal;
853
854 2-65535 – use the physical input "Charger connected".
855 )))|(% style="width:47px" %)U16
856 |(% style="width:70px" %)**0x5102**|(% style="width:66px" %)1|(% style="width:429px" %)(((
857 Software control of the "Power up/down request" signal. Allowable values:
858
859 0 – clear the signal;
860
861 1 – set the signal;
862
863 2-65535 – use the physical input "Power down request".
864 )))|(% style="width:47px" %)U16
865 |(% style="width:70px" %)**0x5103**|(% style="width:66px" %)1|(% style="width:429px" %)(((
866 Software control of the "Inhibit charging" signal. Allowable values:
867
868 0 – clear the signal;
869
870 1 – set the signal;
871
872 2-65535 – use the physical input "Inhibit charging".
873 )))|(% style="width:47px" %)U16
874 |(% style="width:70px" %)**0x5104**|(% style="width:66px" %)1|(% style="width:429px" %)(((
875 Software control of the "Inhibit discharging" signal. Allowable values:
876
877 0 – clear the signal;
878
879 1 – set the signal;
880
881 2-65535 – use the physical input "Inhibit discharging".
882 )))|(% style="width:47px" %)U16
883 |(% style="width:70px" %)**0x5105**|(% style="width:66px" %)1|(% style="width:429px" %)(((
884 Software control of the "CH contactor feedback" signal. Allowable values:
885
886 0 – clear the signal;
887
888 1 – set the signal;
889
890 2-65535 – use the physical input "Charging contactor feedback".
891 )))|(% style="width:47px" %)U16
892 |(% style="width:70px" %)**0x5106**|(% style="width:66px" %)1|(% style="width:429px" %)(((
893 Software control of the "DCH contactor feedback" signal. Allowable values:
894
895 0 – clear the signal;
896
897 1 – set the signal;
898
899 2-65535 – use the physical input "Discharging contactor feedback".
900 )))|(% style="width:47px" %)U16
901 |(% style="width:70px" %)**0x5107**|(% style="width:66px" %)1|(% style="width:429px" %)(((
902 Software control of the "Insulation status" signal. Allowable values:
903
904 0 – clear the signal;
905
906 1 – set the signal;
907
908 2-65535 – use the physical input "Insulation status".
909 )))|(% style="width:47px" %)U16
910 |(% style="width:70px" %)**0x5108**|(% style="width:66px" %)1|(% style="width:429px" %)(((
911 Software control of the "Charge request" signal. Allowable values:
912
913 0 – clear the signal;
914
915 1 – set the signal;
916
917 2-65535 – use the physical input "Charge request".
918 )))|(% style="width:47px" %)U16
919 |(% style="width:70px" %)**0x5109**|(% style="width:66px" %)1|(% style="width:429px" %)(((
920 Software control of the "Precharge request" signal. Allowable values:
921
922 0 – clear the signal;
923
924 1 – set the signal;
925
926 2-65535 – use the physical input "Precharge request".
927 )))|(% style="width:47px" %)U16
928 |(% style="width:70px" %)**0x510A**|(% style="width:66px" %)1|(% style="width:429px" %)(((
929 Software control of the "Discharge request" signal. Allowable values:
930
931 0 – clear the signal;
932
933 1 – set the signal;
934
935 2-65535 – use the physical input "Discharge request".
936 )))|(% style="width:47px" %)U16
937 |(% style="width:70px" %)**0x510B**|(% style="width:66px" %)1|(% style="width:429px" %)(((
938 Software control of the "PCH contactor feedback" signal. Allowable values:
939
940 0 – clear the signal;
941
942 1 – set the signal;
943
944 2-65535 – use the physical input "PCH contactor feedback".
945 )))|(% style="width:47px" %)U16
946 |(% style="width:70px" %)**0x510C**|(% style="width:66px" %)1|(% style="width:429px" %)(((
947 Software control of the "CH/DCH contactor feedback" signal. Allowable values:
948
949 0 – clear the signal;
950
951 1 – set the signal;
952
953 2-65535 – use the physical input "CH/DCH contactor feedback".
954 )))|(% style="width:47px" %)U16
955 |(% style="width:70px" %)**0x510D**|(% style="width:66px" %)1|(% style="width:429px" %)(((
956 Software control of the "Main contactor feedback" signal. Allowable values:
957
958 0 – clear the signal;
959
960 1 – set the signal;
961
962 2-65535 – use the physical input "Main contactor feedback".
963 )))|(% style="width:47px" %)U16
964 |(% style="width:70px" %)**0x510E**|(% style="width:66px" %)1|(% style="width:429px" %)(((
965 Software control of the "Interlock" signal. Allowable values:
966
967 0 – clear the signal;
968
969 1 – set the signal;
970
971 2-65535 – use the physical input "Interlock".
972 )))|(% style="width:47px" %)U16
973 |(% style="width:70px" %)**0x510F**|(% style="width:66px" %)1|(% style="width:429px" %)(((
974 Software control of the "Fuse 1" signal. Allowable values:
975
976 0 – clear the signal;
977
978 1 – set the signal;
979
980 2-65535 – use the physical input "Fuse 1".
981 )))|(% style="width:47px" %)U16
982 |(% style="width:70px" %)**0x5110**|(% style="width:66px" %)1|(% style="width:429px" %)(((
983 Software control of the "Fuse 2" signal. Allowable values:
984
985 0 – clear the signal;
986
987 1 – set the signal;
988
989 2-65535 – use the physical input "Fuse 2".
990 )))|(% style="width:47px" %)U16
991 |(% style="width:70px" %)**0x5111**|(% style="width:66px" %)1|(% style="width:429px" %)(((
992 Software control of the "Fuse 3" signal. Allowable values:
993
994 0 – clear the signal;
995
996 1 – set the signal;
997
998 2-65535 – use the physical input "Fuse 3".
999 )))|(% style="width:47px" %)U16
1000 |(% style="width:70px" %)**0x5112**|(% style="width:66px" %)1|(% style="width:429px" %)(((
1001 Software control of the "Circuit breaker status" signal. Allowable values:
1002
1003 0 – clear the signal;
1004
1005 1 – set the signal;
1006
1007 2-65535 – use the physical input "Circuit breaker status".
1008 )))|(% style="width:47px" %)U16
1009 |(% style="width:70px" %)**0x5113**|(% style="width:66px" %)1|(% style="width:429px" %)(((
1010 Software control of the "Balancing request" signal. Allowable values:
1011
1012 0 – clear the signal;
1013
1014 1 – set the signal;
1015
1016 2-65535 – use the physical input "Balancing request".
1017 )))|(% style="width:47px" %)U16
1018 |(% style="width:70px" %)**0x5114**|(% style="width:66px" %)1|(% style="width:429px" %)(((
1019 Software control of the "Close Main contactor" signal. Allowable values:
1020
1021 0 – clear the signal;
1022
1023 1 – set the signal;
1024
1025 2-65535 – use the physical input "Close Main contactor".
1026 )))|(% style="width:47px" %)U16
1027
1028