Wiki source code of 6.2 Modbus protocol
Show last authors
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="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:528px" %) | ||
40 | |(% style="width:73px" %)**Register address**|(% style="width:66px" %)**Number of registers**|(% style="width:303px" %)**Content**|(% style="width:62px" %)**Type** | ||
41 | |(% style="width:73px" %)**0x0000**|(% style="width:66px" %)1|(% style="width:303px" %)((( | ||
42 | Hardware version: | ||
43 | |||
44 | byte 0 — minor; | ||
45 | |||
46 | byte 1 — major. | ||
47 | )))|(% style="width:62px" %)U8[2] | ||
48 | |(% style="width:73px" %)**0x0001-0x0002**|(% style="width:66px" %)2|(% style="width:303px" %)((( | ||
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 | )))|(% style="width:62px" %)U8[4] | ||
59 | |(% style="width:73px" %)**0x0003-0x0004**|(% style="width:66px" %)2|(% style="width:303px" %)((( | ||
60 | Bootloader (ubl) 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 | )))|(% style="width:62px" %)U8[4] | ||
70 | |(% style="width:73px" %)**0x2000**|(% style="width:66px" %)1|(% style="width:303px" %)((( | ||
71 | Discrete input signals 1 (bitfield): | ||
72 | |||
73 | bit 0 — signal "Battery cover"; | ||
74 | |||
75 | bit 1 — signal "Charger connected"; | ||
76 | |||
77 | bit 2 — signal "Power up/down request"; | ||
78 | |||
79 | bit 3 — signal "Inhibit charging"; | ||
80 | |||
81 | bit 4 — signal "Inhibit discharging"; | ||
82 | |||
83 | bit 5 — signal “CH contactor feedback”; | ||
84 | |||
85 | bit 6 — signal “DCH contactor feedback”; | ||
86 | |||
87 | bit 7 — signal “Insulation status”; | ||
88 | |||
89 | bit 8 — signal “Charge request”; | ||
90 | |||
91 | bit 9 — signal “Precharge request”; | ||
92 | |||
93 | bit 10 — signal “Discharge request”; | ||
94 | |||
95 | bit 11 — signal “PCH contactor feedback”; | ||
96 | |||
97 | bit 12 — signal “CH/DCH contactor feedback”; | ||
98 | |||
99 | bit 13 — signal “Main contactor feedback”; | ||
100 | |||
101 | bit 14 — signal “Interlock”; | ||
102 | |||
103 | bit 15 — signal “Fuse 1”. | ||
104 | )))|(% style="width:62px" %)U16 | ||
105 | |(% style="width:73px" %)**0x2001-0x2002**|(% style="width:66px" %)2|(% style="width:303px" %)Current (sensor 1, high range), А|(% style="width:62px" %)REAL32 | ||
106 | |(% style="width:73px" %)**0x2003-0x2004**|(% style="width:66px" %)2|(% style="width:303px" %)Temperature (sensor 1), °C|(% style="width:62px" %)REAL32 | ||
107 | |(% style="width:73px" %)**0x2005-0x2006**|(% style="width:66px" %)2|(% style="width:303px" %)Humidity, RH%|(% style="width:62px" %)REAL32 | ||
108 | |(% style="width:73px" %)**0x2007-0x2008**|(% style="width:66px" %)2|(% style="width:303px" %)((( | ||
109 | Errors 1 (bitfield): | ||
110 | |||
111 | bit 0 — error "Overcurrent"; | ||
112 | |||
113 | bit 1 — error "Undervoltage"; | ||
114 | |||
115 | bit 2 — error "Overvoltage"; | ||
116 | |||
117 | bit 3 — error "Low temperature (DCH)"; | ||
118 | |||
119 | bit 4 — error "High temperature (DCH)"; | ||
120 | |||
121 | bit 5 — error "Battery cover"; | ||
122 | |||
123 | bit 6 — error "High humidity"; | ||
124 | |||
125 | bit 7 — error "Water"; | ||
126 | |||
127 | bit 8 — error "Logic high temperature"; | ||
128 | |||
129 | bit 9 — error "Logic offline"; | ||
130 | |||
131 | bit 10 — "Critical error"; | ||
132 | |||
133 | bit 11 — "Crown error"; | ||
134 | |||
135 | bit 12 — "Cell count error"; | ||
136 | |||
137 | bit 13 — error "HYG offline"; | ||
138 | |||
139 | bit 14 — reserved (set to 0); | ||
140 | |||
141 | bit 15 — error "Combilift offline"; | ||
142 | |||
143 | bit 16 — error "Short circuit"; | ||
144 | |||
145 | bit 17 — error "High contactor temperature"; | ||
146 | |||
147 | bit 18 — "Logic count error"; | ||
148 | |||
149 | bit 19 — "ADC error"; | ||
150 | |||
151 | bit 20 — “Current sensor error”; | ||
152 | |||
153 | bit 21 — “CH contactor cycles error”; | ||
154 | |||
155 | bit 22 — “DCH contactor cycles error”; | ||
156 | |||
157 | bit 23 — error "Shunt offline"; | ||
158 | |||
159 | bit 24 — “Shunt error”; | ||
160 | |||
161 | bit 25 — reserved (set to 0); | ||
162 | |||
163 | bit 26 — error “WDT reset”; | ||
164 | |||
165 | bit 27 — error "No temperature sensors"; | ||
166 | |||
167 | bit 28 — error "Temperature sensor shorted"; | ||
168 | |||
169 | bit 29 — error “Spirit offline”; | ||
170 | |||
171 | bits 30-31 – not used. | ||
172 | )))|(% style="width:62px" %)U32 | ||
173 | |(% style="width:73px" %)**0x2009-0x200A**|(% style="width:66px" %)2|(% style="width:303px" %)((( | ||
174 | Internal signals (bitfield): | ||
175 | |||
176 | bit 0 — signal "Low SOC"; | ||
177 | |||
178 | bit 1 — signal "High charging current"; | ||
179 | |||
180 | bit 2 — signal “Charging” (0 – open, 1 – closed); | ||
181 | |||
182 | bit 3 — signal "Allow charging" (0 – open, 1 – closed); | ||
183 | |||
184 | bit 4 — signal "Charging current present"; | ||
185 | |||
186 | bit 5 — signal “Discharging” (0 – open, 1 – closed); | ||
187 | |||
188 | bit 6 — signal "Discharging current present"; | ||
189 | |||
190 | bit 7 — signal "Voltage too high for charging"; | ||
191 | |||
192 | bit 8 — signal "Heater" (0 – off, 1 – on); | ||
193 | |||
194 | bit 9 — signal "Cooler" (0 – off, 1 – on); | ||
195 | |||
196 | bit 10 — signal “Shutdown request (HYG/Spirit)”; | ||
197 | |||
198 | bit 11 — signal “Init” (current sensor calibration or BMS Logic scanning is performed); | ||
199 | |||
200 | bit 12 — signal “Precharging” (0 – open, 1 – closed); | ||
201 | |||
202 | bit 13 — signal “Shutdown request (Combilift)”; | ||
203 | |||
204 | bit 14 — signal "Cell analysis"; | ||
205 | |||
206 | bit 15 — signal “Balancing 1”; | ||
207 | |||
208 | bit 16 — signal “Balancing 2”; | ||
209 | |||
210 | bit 17 — signal “Discharging (AUX)” (0 – open, 1 – closed); | ||
211 | |||
212 | bit 18 — signal “Power down ACK”; | ||
213 | |||
214 | bit 19 — signal “Crown EWS”; | ||
215 | |||
216 | bit 20 — signal “Main contactor” (0 – open, 1 – closed); | ||
217 | |||
218 | bit 21 — signal “Service reset”; | ||
219 | |||
220 | bit 22 — signal “Charging/Discharging” (0 – open, 1 – closed); | ||
221 | |||
222 | bit 23 — signal “Ready to charge”; | ||
223 | |||
224 | bit 24 — signal “Ready to discharge”; | ||
225 | |||
226 | bit 25 — signal “Power up”; | ||
227 | |||
228 | bits 26-31 — not used. | ||
229 | )))|(% style="width:62px" %)U32 | ||
230 | |(% style="width:73px" %)**0x200B**|(% style="width:66px" %)1|(% style="width:303px" %)((( | ||
231 | Discrete output signals (bitfield): | ||
232 | |||
233 | bit 0 — state of the output 1; | ||
234 | |||
235 | bit 1 — state of the output 2; | ||
236 | |||
237 | bit 2 — state of the output 3; | ||
238 | |||
239 | bit 3 — state of the output 4; | ||
240 | |||
241 | bits 4-15 — not used. | ||
242 | )))|(% style="width:62px" %)U16 | ||
243 | |(% style="width:73px" %)**0x200C**|(% style="width:66px" %)1|(% style="width:303px" %)((( | ||
244 | Power switch states (bitfield): | ||
245 | |||
246 | bit 0 — state of the power switch 1 (0 – open, 1 – closed); | ||
247 | |||
248 | bit 1 — state of the power switch 2 (0 – open, 1 – closed); | ||
249 | |||
250 | bit 2 — state of the power switch 3 (0 – open, 1 – closed); | ||
251 | |||
252 | bit 3 — state of the power switch 4 (0 – open, 1 – closed); | ||
253 | |||
254 | bit 4 — state of the power switch 5 (0 – open, 1 – closed); | ||
255 | |||
256 | bit 5 — state of the power switch 6 (0 – open, 1 – closed); | ||
257 | |||
258 | bits 6-15 — not used. | ||
259 | )))|(% style="width:62px" %)U16 | ||
260 | |(% style="width:73px" %)**0x200E**|(% style="width:66px" %)2|(% style="width:303px" %)((( | ||
261 | Errors 2 (bitfield): | ||
262 | |||
263 | bit 0 — error "Low temperature (CH)"; | ||
264 | |||
265 | bit 1 — error “High temperature (CH)”; | ||
266 | |||
267 | bit 2 — reserved (set to 0); | ||
268 | |||
269 | bit 3 — reserved (set to 0); | ||
270 | |||
271 | bit 4 — error “Unallowable charging”; | ||
272 | |||
273 | bit 5 — error “Stuck contactor”; | ||
274 | |||
275 | bit 6 — “CH contactor feedback error”; | ||
276 | |||
277 | bit 7 — “DCH contactor feedback error”; | ||
278 | |||
279 | bit 8 — “Insulation fault”; | ||
280 | |||
281 | bit 9 — “PCH contactor feedback error”; | ||
282 | |||
283 | bit 10 — “CH/DCH contactor feedback error”; | ||
284 | |||
285 | bit 11 — “Main contactor feedback error”; | ||
286 | |||
287 | bit 12 — reserved (set to 0); | ||
288 | |||
289 | bit 13 — “General error”; | ||
290 | |||
291 | bit 14 — “High voltage fault”; | ||
292 | |||
293 | bit 15 — “Power switch error”; | ||
294 | |||
295 | bit 16 — “HVIL error”; | ||
296 | |||
297 | bit 17 — “Precharge error”; | ||
298 | |||
299 | bit 18 — “Power fault”; | ||
300 | |||
301 | bits 19-31 — not used. | ||
302 | )))|(% style="width:62px" %)U32 | ||
303 | |(% style="width:73px" %)**0x2010**|(% style="width:66px" %)1|(% style="width:303px" %)Address of the BMS Logic device the parameters of which are in registers 0x2011-0x20C9|(% style="width:62px" %)U16 | ||
304 | |(% style="width:73px" %)**0x2011**|(% style="width:66px" %)1|(% style="width:303px" %)((( | ||
305 | BMS Logic state (bitfield): | ||
306 | |||
307 | bit 0 — device is present; | ||
308 | |||
309 | bit 1 — device is online; | ||
310 | |||
311 | bit 2 — device is ready; | ||
312 | |||
313 | bit 3 — data from the device is actual; | ||
314 | |||
315 | bit 4 — temperature sensor 1 is present; | ||
316 | |||
317 | bit 5 — temperature sensor 2 is present; | ||
318 | |||
319 | bit 6 — temperature sensor 1 is shorted; | ||
320 | |||
321 | bit 7 — temperature sensor 2 is shorted; | ||
322 | |||
323 | bits 8-15 — not used. | ||
324 | )))|(% style="width:62px" %)U16 | ||
325 | |(% style="width:73px" %)**0x2012-0x2013**|(% style="width:66px" %)2|(% style="width:303px" %)BMS Logic device temperature, °C|(% style="width:62px" %)REAL32 | ||
326 | |(% style="width:73px" %)**0x2014-0x2015**|(% style="width:66px" %)2|(% style="width:303px" %)((( | ||
327 | Cell balancing flags (bitfield): | ||
328 | |||
329 | bit i — balancing resistor is connected to the (i+1)^^th^^ cell. | ||
330 | )))|(% style="width:62px" %)U32 | ||
331 | |(% style="width:73px" %)**0x2016-0x2029**|(% style="width:66px" %)20|(% style="width:303px" %)((( | ||
332 | Array of cell states. Each element of the array corresponds to a cell and is a bitfield: | ||
333 | |||
334 | bit 0 — cell is present; | ||
335 | |||
336 | bit 1 — temperature sensor is present; | ||
337 | |||
338 | bit 2 — need to connect a balancing resistor to the cell; | ||
339 | |||
340 | bit 3 — balancing resistor is connected to the cell; | ||
341 | |||
342 | bit 4 — temperature sensor is shorted; | ||
343 | |||
344 | bit 5 — wires are connected to the cell; | ||
345 | |||
346 | bits 6-15 — not used. | ||
347 | )))|(% style="width:62px" %)U16[20] | ||
348 | |(% style="width:73px" %)**0x202A-0x2051**|(% style="width:66px" %)40|(% style="width:303px" %)Array of cell voltages (V)|(% style="width:62px" %)REAL32[20] | ||
349 | |(% style="width:73px" %)**0x2052-0x2079**|(% style="width:66px" %)40|(% style="width:303px" %)Array of cell temperatures (°C)|(% style="width:62px" %)REAL32[20] | ||
350 | |(% style="width:73px" %)**0x207A-0x20A1**|(% style="width:66px" %)40|(% style="width:303px" %)Array of cell SOCs ~(%)|(% style="width:62px" %)REAL32[20] | ||
351 | |(% style="width:73px" %)**0x20A2-0x20C9**|(% style="width:66px" %)40|(% style="width:303px" %)Array of cell resistances (Ohm)|(% style="width:62px" %)REAL32[20] | ||
352 | |(% style="width:73px" %)**0x20CA**|(% style="width:66px" %)1|(% style="width:303px" %)((( | ||
353 | BMS Logic board version: | ||
354 | |||
355 | byte 0 – minor; | ||
356 | |||
357 | byte 1 – major. | ||
358 | )))|(% style="width:62px" %)U8[2] | ||
359 | |(% style="width:73px" %)**0x20CB-0x20CC**|(% style="width:66px" %)2|(% style="width:303px" %)((( | ||
360 | BMS Logic firmware version: | ||
361 | |||
362 | byte 0 – patch; | ||
363 | |||
364 | byte 1 – minor; | ||
365 | |||
366 | byte 2 – major; | ||
367 | |||
368 | byte 3 – not used (set to 0). | ||
369 | )))|(% style="width:62px" %)U8[4] | ||
370 | |(% style="width:73px" %)**0x20CD**|(% style="width:66px" %)1|(% style="width:303px" %)Number of cells BMS Logic can manage|(% style="width:62px" %)U16 | ||
371 | |(% style="width:73px" %)**0x20CE**|(% style="width:66px" %)1|(% style="width:303px" %)BMS Logic serial number|(% style="width:62px" %)U16 | ||
372 | |(% style="width:73px" %)**0x20F0-0x20F1**|(% style="width:66px" %)2|(% style="width:303px" %)Temperature (sensor 2), °C|(% style="width:62px" %)REAL32 | ||
373 | |(% style="width:73px" %)**0x20F2-0x20F3**|(% style="width:66px" %)2|(% style="width:303px" %)Device supply voltage, V|(% style="width:62px" %)REAL32 | ||
374 | |(% style="width:73px" %)**0x20F4**|(% style="width:66px" %)1|(% style="width:303px" %)((( | ||
375 | Discrete input signals 2 (bitfield): | ||
376 | |||
377 | bit 0 — signal "Fuse 2"; | ||
378 | |||
379 | bit 1 — signal "Fuse 3"; | ||
380 | |||
381 | bit 2 — signal "Circuit breaker status"; | ||
382 | |||
383 | bit 3 — signal "Balancing request"; | ||
384 | |||
385 | bit 4 — signal "Close Main contactor"; | ||
386 | |||
387 | bits 5-15 — not used. | ||
388 | )))|(% style="width:62px" %)U16 | ||
389 | |(% style="width:73px" %)**0x2100-0x2101**|(% style="width:66px" %)2|(% style="width:303px" %)Battery state of charge (SOC), %|(% style="width:62px" %)REAL32 | ||
390 | |(% style="width:73px" %)**0x2102**|(% style="width:66px" %)1|(% style="width:303px" %)Number of connected BMS Logic devices|(% style="width:62px" %)U16 | ||
391 | |(% style="width:73px" %)**0x2103**|(% style="width:66px" %)1|(% style="width:303px" %)Number of connected cells|(% style="width:62px" %)U16 | ||
392 | |(% style="width:73px" %)**0x2104-0x2105**|(% style="width:66px" %)2|(% style="width:303px" %)Battery voltage, V|(% style="width:62px" %)REAL32 | ||
393 | |(% style="width:73px" %)**0x2106-0x2107**|(% style="width:66px" %)2|(% style="width:303px" %)Battery resistance, Ohm|(% style="width:62px" %)REAL32 | ||
394 | |(% style="width:73px" %)**0x2108-0x2109**|(% style="width:66px" %)2|(% style="width:303px" %)Effective capacity, A×h|(% style="width:62px" %)REAL32 | ||
395 | |(% style="width:73px" %)**0x210A-0x210B**|(% style="width:66px" %)2|(% style="width:303px" %)Balancing effectivity, %|(% style="width:62px" %)REAL32 | ||
396 | |(% style="width:73px" %)**0x210C-0x210D**|(% style="width:66px" %)2|(% style="width:303px" %)State of health, %|(% style="width:62px" %)REAL32 | ||
397 | |(% style="width:73px" %)**0x210E-0x210F**|(% style="width:66px" %)2|(% style="width:303px" %)Depth of discharge, A×h|(% style="width:62px" %)REAL32 | ||
398 | |(% style="width:73px" %)**0x2110-0x2111**|(% style="width:66px" %)2|(% style="width:303px" %)Minimum BMS Logic temperature|(% style="width:62px" %)REAL32 | ||
399 | |(% style="width:73px" %)**0x2112**|(% style="width:66px" %)1|(% style="width:303px" %)Address of the BMS Logic device whose temperature is minimal|(% style="width:62px" %)U16 | ||
400 | |(% style="width:73px" %)**0x2113-0x2114**|(% style="width:66px" %)2|(% style="width:303px" %)Maximum BMS Logic temperature|(% style="width:62px" %)REAL32 | ||
401 | |(% style="width:73px" %)**0x2115**|(% style="width:66px" %)1|(% style="width:303px" %)Address of the BMS Logic device whose temperature is maximal|(% style="width:62px" %)U16 | ||
402 | |(% style="width:73px" %)**0x2116-0x2117**|(% style="width:66px" %)2|(% style="width:303px" %)BMS Logic polling rate, commands pre second|(% style="width:62px" %)REAL32 | ||
403 | |(% style="width:73px" %)**0x2118-0x2119**|(% style="width:66px" %)2|(% style="width:303px" %)Minimum cell temperature|(% style="width:62px" %)REAL32 | ||
404 | |(% style="width:73px" %)**0x211A**|(% style="width:66px" %)1|(% style="width:303px" %)Address of the BMS Logic device which is connected to the cell whose temperature is minimal|(% style="width:62px" %)U16 | ||
405 | |(% style="width:73px" %)**0x211B**|(% style="width:66px" %)1|(% style="width:303px" %)Position of the cell whose temperature is minimal|(% style="width:62px" %)U16 | ||
406 | |(% style="width:73px" %)**0x211C-0x211D**|(% style="width:66px" %)2|(% style="width:303px" %)Maximum cell temperature|(% style="width:62px" %)REAL32 | ||
407 | |(% style="width:73px" %)**0x211E**|(% style="width:66px" %)1|(% style="width:303px" %)Address of the BMS Logic device which is connected to the cell whose temperature is maximal|(% style="width:62px" %)U16 | ||
408 | |(% style="width:73px" %)**0x211F**|(% style="width:66px" %)1|(% style="width:303px" %)Position of the cell whose temperature is maximal|(% style="width:62px" %)U16 | ||
409 | |(% style="width:73px" %)**0x2120-0x2121**|(% style="width:66px" %)2|(% style="width:303px" %)Minimum cell voltage|(% style="width:62px" %)REAL32 | ||
410 | |(% style="width:73px" %)**0x2122**|(% style="width:66px" %)1|(% style="width:303px" %)Address of the BMS Logic device which is connected to the cell whose voltage is minimal|(% style="width:62px" %)U16 | ||
411 | |(% style="width:73px" %)**0x2123**|(% style="width:66px" %)1|(% style="width:303px" %)Position of the cell whose voltage is minimal|(% style="width:62px" %)U16 | ||
412 | |(% style="width:73px" %)**0x2124-0x2125**|(% style="width:66px" %)2|(% style="width:303px" %)Maximum cell voltage|(% style="width:62px" %)REAL32 | ||
413 | |(% style="width:73px" %)**0x2126**|(% style="width:66px" %)1|(% style="width:303px" %)Address of the BMS Logic device which is connected to the cell whose voltage is maximal|(% style="width:62px" %)U16 | ||
414 | |(% style="width:73px" %)**0x2127**|(% style="width:66px" %)1|(% style="width:303px" %)Position of the cell whose voltage is maximal|(% style="width:62px" %)U16 | ||
415 | |(% style="width:73px" %)**0x2128**|(% style="width:66px" %)1|(% style="width:303px" %)((( | ||
416 | Error flag: | ||
417 | |||
418 | 0 — no errors; | ||
419 | |||
420 | 1 — there are some errors. | ||
421 | )))|(% style="width:62px" %)U16 | ||
422 | |(% style="width:73px" %)**0x2130-0x2131**|(% style="width:66px" %)2|(% style="width:303px" %)Energy received from the charger, W×h|(% style="width:62px" %)REAL32 | ||
423 | |(% style="width:73px" %)**0x2132-0x2133**|(% style="width:66px" %)2|(% style="width:303px" %)Energy consumed by the load, W×h|(% style="width:62px" %)REAL32 | ||
424 | |(% style="width:73px" %)**0x2134-0x2135**|(% style="width:66px" %)2|(% style="width:303px" %)Energy dissipated by the balancing resistors, W×h|(% style="width:62px" %)REAL32 | ||
425 | |(% style="width:73px" %)**0x217B-0x217C**|(% style="width:66px" %)2|(% style="width:303px" %)Coulomb received from the charger, A×h|(% style="width:62px" %)REAL32 | ||
426 | |(% style="width:73px" %)**0x217D-0x217E**|(% style="width:66px" %)2|(% style="width:303px" %)Coulomb consumed by the load, A×h|(% style="width:62px" %)REAL32 | ||
427 | |(% style="width:73px" %)**0x21B8**|(% style="width:66px" %)1|(% style="width:303px" %)Flag indicating that some cell is being balanced|(% style="width:62px" %)U16 | ||
428 | |(% style="width:73px" %)**0x21CA-0x21CB**|(% style="width:66px" %)2|(% style="width:303px" %)Average cell voltage, V|(% style="width:62px" %)REAL32 | ||
429 | |(% style="width:73px" %)**0x2400**|(% style="width:66px" %)2|(% style="width:303px" %)Current (sensor 1, low range), A|(% style="width:62px" %)REAL32 | ||
430 | |(% style="width:73px" %)**0x2402**|(% style="width:66px" %)2|(% style="width:303px" %)Final battery current, A|(% style="width:62px" %)REAL32 | ||
431 | |(% style="width:73px" %)**0x2410**|(% style="width:66px" %)1|(% style="width:303px" %)((( | ||
432 | Battery state (enumeration): | ||
433 | |||
434 | 0 – Unknown; | ||
435 | |||
436 | 1 – Charging ON; | ||
437 | |||
438 | 2 – Charging OFF; | ||
439 | |||
440 | 3 – Relaxed (after charging); | ||
441 | |||
442 | 4 – Discharging ON; | ||
443 | |||
444 | 5 – Discharging OFF; | ||
445 | |||
446 | 6 – Relaxed (after discharging). | ||
447 | )))|(% style="width:62px" %)U16 | ||
448 | |(% style="width:73px" %)**0x2411**|(% style="width:66px" %)2|(% style="width:303px" %)Duration of the battery state (0x2410), seconds|(% style="width:62px" %)U32 | ||
449 | |||
450 | === Holding registers === | ||
451 | |||
452 | (% style="width:616px" %) | ||
453 | |(% style="width:70px" %)**Register address**|(% style="width:66px" %)**Number of registers**|(% style="width:429px" %)**Content**|(% style="width:47px" %)**Type** | ||
454 | |(% 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 | ||
455 | |(% style="width:70px" %)**0x5100**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
456 | Software control of the "Battery cover" signal. Allowable values: | ||
457 | |||
458 | 0 – clear the signal; | ||
459 | |||
460 | 1 – set the signal; | ||
461 | |||
462 | 2-65535 – use the physical input "Battery cover". | ||
463 | )))|(% style="width:47px" %)U16 | ||
464 | |(% style="width:70px" %)**0x5101**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
465 | Software control of the "Charger connected" signal. Allowable values: | ||
466 | |||
467 | 0 – clear the signal; | ||
468 | |||
469 | 1 – set the signal; | ||
470 | |||
471 | 2-65535 – use the physical input "Charger connected". | ||
472 | )))|(% style="width:47px" %)U16 | ||
473 | |(% style="width:70px" %)**0x5102**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
474 | Software control of the "Power up/down request" signal. Allowable values: | ||
475 | |||
476 | 0 – clear the signal; | ||
477 | |||
478 | 1 – set the signal; | ||
479 | |||
480 | 2-65535 – use the physical input "Power down request". | ||
481 | )))|(% style="width:47px" %)U16 | ||
482 | |(% style="width:70px" %)**0x5103**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
483 | Software control of the "Inhibit charging" signal. Allowable values: | ||
484 | |||
485 | 0 – clear the signal; | ||
486 | |||
487 | 1 – set the signal; | ||
488 | |||
489 | 2-65535 – use the physical input "Inhibit charging". | ||
490 | )))|(% style="width:47px" %)U16 | ||
491 | |(% style="width:70px" %)**0x5104**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
492 | Software control of the "Inhibit discharging" signal. Allowable values: | ||
493 | |||
494 | 0 – clear the signal; | ||
495 | |||
496 | 1 – set the signal; | ||
497 | |||
498 | 2-65535 – use the physical input "Inhibit discharging". | ||
499 | )))|(% style="width:47px" %)U16 | ||
500 | |(% style="width:70px" %)**0x5105**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
501 | Software control of the "CH contactor feedback" signal. Allowable values: | ||
502 | |||
503 | 0 – clear the signal; | ||
504 | |||
505 | 1 – set the signal; | ||
506 | |||
507 | 2-65535 – use the physical input "Charging contactor feedback". | ||
508 | )))|(% style="width:47px" %)U16 | ||
509 | |(% style="width:70px" %)**0x5106**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
510 | Software control of the "DCH contactor feedback" signal. Allowable values: | ||
511 | |||
512 | 0 – clear the signal; | ||
513 | |||
514 | 1 – set the signal; | ||
515 | |||
516 | 2-65535 – use the physical input "Discharging contactor feedback". | ||
517 | )))|(% style="width:47px" %)U16 | ||
518 | |(% style="width:70px" %)**0x5107**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
519 | Software control of the "Insulation status" signal. Allowable values: | ||
520 | |||
521 | 0 – clear the signal; | ||
522 | |||
523 | 1 – set the signal; | ||
524 | |||
525 | 2-65535 – use the physical input "Insulation status". | ||
526 | )))|(% style="width:47px" %)U16 | ||
527 | |(% style="width:70px" %)**0x5108**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
528 | Software control of the "Charge request" signal. Allowable values: | ||
529 | |||
530 | 0 – clear the signal; | ||
531 | |||
532 | 1 – set the signal; | ||
533 | |||
534 | 2-65535 – use the physical input "Charge request". | ||
535 | )))|(% style="width:47px" %)U16 | ||
536 | |(% style="width:70px" %)**0x5109**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
537 | Software control of the "Precharge request" signal. Allowable values: | ||
538 | |||
539 | 0 – clear the signal; | ||
540 | |||
541 | 1 – set the signal; | ||
542 | |||
543 | 2-65535 – use the physical input "Precharge request". | ||
544 | )))|(% style="width:47px" %)U16 | ||
545 | |(% style="width:70px" %)**0x510A**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
546 | Software control of the "Discharge request" signal. Allowable values: | ||
547 | |||
548 | 0 – clear the signal; | ||
549 | |||
550 | 1 – set the signal; | ||
551 | |||
552 | 2-65535 – use the physical input "Discharge request". | ||
553 | )))|(% style="width:47px" %)U16 | ||
554 | |(% style="width:70px" %)**0x510B**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
555 | Software control of the "PCH contactor feedback" signal. Allowable values: | ||
556 | |||
557 | 0 – clear the signal; | ||
558 | |||
559 | 1 – set the signal; | ||
560 | |||
561 | 2-65535 – use the physical input "PCH contactor feedback". | ||
562 | )))|(% style="width:47px" %)U16 | ||
563 | |(% style="width:70px" %)**0x510C**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
564 | Software control of the "CH/DCH contactor feedback" signal. Allowable values: | ||
565 | |||
566 | 0 – clear the signal; | ||
567 | |||
568 | 1 – set the signal; | ||
569 | |||
570 | 2-65535 – use the physical input "CH/DCH contactor feedback". | ||
571 | )))|(% style="width:47px" %)U16 | ||
572 | |(% style="width:70px" %)**0x510D**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
573 | Software control of the "Main contactor feedback" signal. Allowable values: | ||
574 | |||
575 | 0 – clear the signal; | ||
576 | |||
577 | 1 – set the signal; | ||
578 | |||
579 | 2-65535 – use the physical input "Main contactor feedback". | ||
580 | )))|(% style="width:47px" %)U16 | ||
581 | |(% style="width:70px" %)**0x510E**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
582 | Software control of the "Interlock" signal. Allowable values: | ||
583 | |||
584 | 0 – clear the signal; | ||
585 | |||
586 | 1 – set the signal; | ||
587 | |||
588 | 2-65535 – use the physical input "Interlock". | ||
589 | )))|(% style="width:47px" %)U16 | ||
590 | |(% style="width:70px" %)**0x510F**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
591 | Software control of the "Fuse 1" signal. Allowable values: | ||
592 | |||
593 | 0 – clear the signal; | ||
594 | |||
595 | 1 – set the signal; | ||
596 | |||
597 | 2-65535 – use the physical input "Fuse 1". | ||
598 | )))|(% style="width:47px" %)U16 | ||
599 | |(% style="width:70px" %)**0x5110**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
600 | Software control of the "Fuse 2" signal. Allowable values: | ||
601 | |||
602 | 0 – clear the signal; | ||
603 | |||
604 | 1 – set the signal; | ||
605 | |||
606 | 2-65535 – use the physical input "Fuse 2". | ||
607 | )))|(% style="width:47px" %)U16 | ||
608 | |(% style="width:70px" %)**0x5111**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
609 | Software control of the "Fuse 3" signal. Allowable values: | ||
610 | |||
611 | 0 – clear the signal; | ||
612 | |||
613 | 1 – set the signal; | ||
614 | |||
615 | 2-65535 – use the physical input "Fuse 3". | ||
616 | )))|(% style="width:47px" %)U16 | ||
617 | |(% style="width:70px" %)**0x5112**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
618 | Software control of the "Circuit breaker status" signal. Allowable values: | ||
619 | |||
620 | 0 – clear the signal; | ||
621 | |||
622 | 1 – set the signal; | ||
623 | |||
624 | 2-65535 – use the physical input "Circuit breaker status". | ||
625 | )))|(% style="width:47px" %)U16 | ||
626 | |(% style="width:70px" %)**0x5113**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
627 | Software control of the "Balancing request" signal. Allowable values: | ||
628 | |||
629 | 0 – clear the signal; | ||
630 | |||
631 | 1 – set the signal; | ||
632 | |||
633 | 2-65535 – use the physical input "Balancing request". | ||
634 | )))|(% style="width:47px" %)U16 | ||
635 | |(% style="width:70px" %)**0x5114**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
636 | Software control of the "Close Main contactor" signal. Allowable values: | ||
637 | |||
638 | 0 – clear the signal; | ||
639 | |||
640 | 1 – set the signal; | ||
641 | |||
642 | 2-65535 – use the physical input "Close Main contactor". | ||
643 | )))|(% style="width:47px" %)U16 | ||
644 | |||
645 |