Wiki source code of 6.2 Modbus protocol
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
1.1 | 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 | |||
![]() |
4.1 | 9 | The BMS Main X 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. |
![]() |
1.1 | 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 | |||
![]() |
2.1 | 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" %)((( | ||
![]() |
1.1 | 42 | Hardware version: |
43 | |||
44 | byte 0 — minor; | ||
45 | |||
46 | byte 1 — major. | ||
![]() |
2.1 | 47 | )))|(% colspan="2" style="width:16px" %)U8[2] |
48 | |(% style="width:72px" %)**0x0001-0x0002**|(% style="width:67px" %)2|(% style="width:457px" %)((( | ||
![]() |
1.1 | 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). | ||
![]() |
2.1 | 58 | )))|(% colspan="2" style="width:16px" %)U8[4] |
59 | |(% style="width:72px" %)**0x0003-0x0004**|(% style="width:67px" %)2|(% style="width:457px" %)((( | ||
60 | Bootloader version: | ||
![]() |
1.1 | 61 | |
62 | byte 0 — patch; | ||
63 | |||
64 | byte 1 — minor; | ||
65 | |||
66 | byte 2 — major; | ||
67 | |||
68 | byte 3 — not used (set to 0). | ||
![]() |
2.1 | 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), % | ||
![]() |
1.1 | 74 | |
![]() |
2.1 | 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, % | ||
![]() |
1.1 | 79 | |
![]() |
2.1 | 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): | ||
![]() |
1.1 | 84 | |
![]() |
2.1 | 85 | 0 – Off (battery is off); |
![]() |
1.1 | 86 | |
![]() |
2.1 | 87 | 1 – Pre-balancing (the battery modules are precharging); |
![]() |
1.1 | 88 | |
![]() |
2.1 | 89 | 2 – Balancing (the battery modules are joined and balancing); |
![]() |
1.1 | 90 | |
![]() |
2.1 | 91 | 3 – Precharging (the modular battery is precharging); |
![]() |
1.1 | 92 | |
![]() |
2.1 | 93 | 4 – Idle (the modular battery is idle (charging and discharging currents are not detected)); |
![]() |
1.1 | 94 | |
![]() |
2.1 | 95 | 5 – Charging (the modular battery is charging); |
![]() |
1.1 | 96 | |
![]() |
2.1 | 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): | ||
![]() |
1.1 | 115 | |
![]() |
2.1 | 116 | bit 0 – signal “Init” (current sensor calibration or battery modules scanning is performed); |
![]() |
1.1 | 117 | |
![]() |
2.1 | 118 | bit 1 – signal “Charging” (0 – open, 1 – closed); |
![]() |
1.1 | 119 | |
![]() |
2.1 | 120 | bit 2 – signal “Discharging” (0 – open, 1 – closed); |
![]() |
1.1 | 121 | |
![]() |
2.1 | 122 | bit 3 – signal “Charging current present”; |
![]() |
1.1 | 123 | |
![]() |
2.1 | 124 | bit 4 – signal “Discharging current present”; |
![]() |
1.1 | 125 | |
![]() |
2.1 | 126 | bit 5 – signal “Charging/Discharging” (0 – open, 1 – closed); |
![]() |
1.1 | 127 | |
![]() |
2.1 | 128 | bit 6 – signal “Precharging” (0 – open, 1 – closed); |
![]() |
1.1 | 129 | |
![]() |
2.1 | 130 | bit 7 – signal “Interlock”; |
![]() |
1.1 | 131 | |
![]() |
2.1 | 132 | bit 8 – signal “Fuse 1”; |
![]() |
1.1 | 133 | |
![]() |
2.1 | 134 | bit 9 – signal “Fuse 2”; |
![]() |
1.1 | 135 | |
![]() |
2.1 | 136 | bit 10 – signal “Fuse 3”; |
![]() |
1.1 | 137 | |
![]() |
2.1 | 138 | bit 11 – signal “Heater” (0 – off, 1 – on); |
![]() |
1.1 | 139 | |
![]() |
2.1 | 140 | bit 12 – signal “Cooler” (0 – off, 1 – on); |
![]() |
1.1 | 141 | |
![]() |
2.1 | 142 | bit 13 – signal “Main contactor” (0 – open, 1 – closed); |
![]() |
1.1 | 143 | |
![]() |
2.1 | 144 | bits 14-29 – reserved (set to 0); |
![]() |
1.1 | 145 | |
![]() |
2.1 | 146 | bit 30 – reserved (set to “1”); |
![]() |
1.1 | 147 | |
![]() |
2.1 | 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): | ||
![]() |
1.1 | 152 | |
![]() |
2.1 | 153 | bit 0 – error “Battery cover”; |
![]() |
1.1 | 154 | |
![]() |
2.1 | 155 | bit 1 – error “Modules offline”; |
![]() |
1.1 | 156 | |
![]() |
2.1 | 157 | bit 2 – “Critical error”; |
![]() |
1.1 | 158 | |
![]() |
2.1 | 159 | bit 3 – error “Voltage unbalance (CH)”; |
![]() |
1.1 | 160 | |
![]() |
2.1 | 161 | bit 4 – error “Voltage unbalance (DCH)”; |
![]() |
1.1 | 162 | |
![]() |
2.1 | 163 | bit 5 – error “Current unbalance (CH)”; |
![]() |
1.1 | 164 | |
![]() |
2.1 | 165 | bit 6 – error “Current unbalance (DCH)”; |
![]() |
1.1 | 166 | |
![]() |
2.1 | 167 | bit 7 – error “Charging current unbalance”; |
![]() |
1.1 | 168 | |
![]() |
2.1 | 169 | bit 8 – error “Discharging current unbalance”; |
![]() |
1.1 | 170 | |
![]() |
2.1 | 171 | bit 9 – reserved (set to 0); |
![]() |
1.1 | 172 | |
![]() |
2.1 | 173 | bit 10 – “CH contactor feedback error”; |
![]() |
1.1 | 174 | |
![]() |
2.1 | 175 | bit 11 – “DCH contactor feedback error”; |
![]() |
1.1 | 176 | |
![]() |
2.1 | 177 | bit 12 – “CH/DCH contactor feedback error”; |
![]() |
1.1 | 178 | |
![]() |
2.1 | 179 | bit 13 – “Insulation fault”; |
![]() |
1.1 | 180 | |
![]() |
2.1 | 181 | bit 14 – error “WDT reset”; |
![]() |
1.1 | 182 | |
![]() |
2.1 | 183 | bits 15-24 – reserved (set to 0); |
![]() |
1.1 | 184 | |
![]() |
2.1 | 185 | bit 25 – “Mount error”; |
![]() |
1.1 | 186 | |
![]() |
2.1 | 187 | bit 26 – “FS error”; |
![]() |
1.1 | 188 | |
![]() |
2.1 | 189 | bit 27 – reserved (set to 0); |
![]() |
1.1 | 190 | |
![]() |
2.1 | 191 | bit 28 – “PCH contactor feedback error”; |
![]() |
1.1 | 192 | |
![]() |
2.1 | 193 | bit 29 – “Main contactor feedback error”; |
![]() |
1.1 | 194 | |
![]() |
2.1 | 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 | |||
![]() |
1.1 | 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. | ||
![]() |
2.1 | 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): | ||
![]() |
1.1 | 288 | |
![]() |
2.1 | 289 | bit 0 — error "Overcurrent"; |
![]() |
1.1 | 290 | |
![]() |
2.1 | 291 | bit 1 — error "Undervoltage"; |
![]() |
1.1 | 292 | |
![]() |
2.1 | 293 | bit 2 — error "Overvoltage"; |
![]() |
1.1 | 294 | |
![]() |
2.1 | 295 | bit 3 — error "Low temperature (DCH)"; |
![]() |
1.1 | 296 | |
![]() |
2.1 | 297 | bit 4 — error "High temperature (DCH)"; |
![]() |
1.1 | 298 | |
![]() |
2.1 | 299 | bit 5 — error "Battery cover"; |
![]() |
1.1 | 300 | |
![]() |
2.1 | 301 | bit 6 — error "High humidity"; |
![]() |
1.1 | 302 | |
![]() |
2.1 | 303 | bit 7 — error "Water"; |
![]() |
1.1 | 304 | |
![]() |
2.1 | 305 | bit 8 — error "Logic high temperature"; |
![]() |
1.1 | 306 | |
![]() |
2.1 | 307 | bit 9 — error "Logic offline"; |
![]() |
1.1 | 308 | |
![]() |
2.1 | 309 | bit 10 — "Critical error"; |
![]() |
1.1 | 310 | |
![]() |
2.1 | 311 | bit 11 — "Crown error"; |
![]() |
1.1 | 312 | |
![]() |
2.1 | 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 | |||
![]() |
1.1 | 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 | |||
![]() |
2.1 | 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. | ||
![]() |
1.1 | 386 | |
![]() |
2.1 | 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): | ||
![]() |
1.1 | 391 | |
![]() |
2.1 | 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): | ||
![]() |
1.1 | 396 | |
![]() |
2.1 | 397 | bit 0 – signal “Battery cover”; |
![]() |
1.1 | 398 | |
![]() |
2.1 | 399 | bit 1 – signal “Charge request”; |
![]() |
1.1 | 400 | |
![]() |
2.1 | 401 | bit 2 – signal “Precharge request”; |
![]() |
1.1 | 402 | |
![]() |
2.1 | 403 | bit 3 – signal “Discharge request”; |
![]() |
1.1 | 404 | |
![]() |
2.1 | 405 | bit 4 – signal “CH contactor feedback”; |
![]() |
1.1 | 406 | |
![]() |
2.1 | 407 | bit 5 – signal “DCH contactor feedback”; |
![]() |
1.1 | 408 | |
![]() |
2.1 | 409 | bit 6 – signal “CH/DCH contactor feedback”; |
![]() |
1.1 | 410 | |
![]() |
2.1 | 411 | bit 7 – signal “Insulation status”; |
![]() |
1.1 | 412 | |
![]() |
2.1 | 413 | bit 8 – signal “Join to charge”; |
![]() |
1.1 | 414 | |
![]() |
2.1 | 415 | bit 9 – signal “Join to discharge; |
![]() |
1.1 | 416 | |
![]() |
2.1 | 417 | bit 10 – signal “PCH contactor feedback”; |
![]() |
1.1 | 418 | |
![]() |
2.1 | 419 | bit 11 – signal “Main contactor feedback”; |
![]() |
1.1 | 420 | |
![]() |
2.1 | 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): | ||
![]() |
1.1 | 425 | |
![]() |
2.1 | 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): | ||
![]() |
1.1 | 430 | |
![]() |
2.1 | 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): | ||
![]() |
1.1 | 435 | |
![]() |
2.1 | 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): | ||
![]() |
1.1 | 440 | |
![]() |
2.1 | 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** | ||
![]() |
1.1 | 468 | |
![]() |
2.1 | 469 | **(offset 0x0000)** |
470 | )))|(% style="width:67px" %)1|(% style="width:457px" %)((( | ||
471 | Module state (enumeration): | ||
![]() |
1.1 | 472 | |
![]() |
2.1 | 473 | 0 – Unknown; |
![]() |
1.1 | 474 | |
![]() |
2.1 | 475 | 1 – Charging ON; |
![]() |
1.1 | 476 | |
![]() |
2.1 | 477 | 2 - Charging OFF; |
![]() |
1.1 | 478 | |
![]() |
2.1 | 479 | 3 – Relaxed (after charging); |
![]() |
1.1 | 480 | |
![]() |
2.1 | 481 | 4 – Discharging ON; |
![]() |
1.1 | 482 | |
![]() |
2.1 | 483 | 5 – Discharging OFF; |
![]() |
1.1 | 484 | |
![]() |
2.1 | 485 | 6 – Relaxed (after discharging). |
486 | )))|(% colspan="2" style="width:16px" %)U16 | ||
487 | |(% style="width:72px" %)((( | ||
488 | **0x2001** | ||
![]() |
1.1 | 489 | |
![]() |
2.1 | 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** | ||
![]() |
1.1 | 494 | |
![]() |
2.1 | 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** | ||
![]() |
1.1 | 499 | |
![]() |
2.1 | 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. | ||
![]() |
1.1 | 504 | |
![]() |
2.1 | 505 | Example: “1.59.1” |
506 | )))|(% colspan="2" style="width:16px" %)CHAR[10] | ||
507 | |(% style="width:72px" %)((( | ||
508 | **0x2009** | ||
![]() |
1.1 | 509 | |
![]() |
2.1 | 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** | ||
![]() |
1.1 | 514 | |
![]() |
2.1 | 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** | ||
![]() |
1.1 | 519 | |
![]() |
2.1 | 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** | ||
![]() |
1.1 | 524 | |
![]() |
2.1 | 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** | ||
![]() |
1.1 | 529 | |
![]() |
2.1 | 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** | ||
![]() |
1.1 | 534 | |
![]() |
2.1 | 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** | ||
![]() |
1.1 | 539 | |
![]() |
2.1 | 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** | ||
![]() |
1.1 | 544 | |
![]() |
2.1 | 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** | ||
![]() |
1.1 | 549 | |
![]() |
2.1 | 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** | ||
![]() |
1.1 | 554 | |
![]() |
2.1 | 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** | ||
![]() |
1.1 | 559 | |
![]() |
2.1 | 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** | ||
![]() |
1.1 | 564 | |
![]() |
2.1 | 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** | ||
![]() |
1.1 | 569 | |
![]() |
2.1 | 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 | |||
![]() |
1.1 | 833 | === Holding registers === |
834 | |||
![]() |
2.1 | 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" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 846 | )))|(% style="width:47px" %)U16 |
847 | |(% style="width:70px" %)**0x5101**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 855 | )))|(% style="width:47px" %)U16 |
856 | |(% style="width:70px" %)**0x5102**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 864 | )))|(% style="width:47px" %)U16 |
865 | |(% style="width:70px" %)**0x5103**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 873 | )))|(% style="width:47px" %)U16 |
874 | |(% style="width:70px" %)**0x5104**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 882 | )))|(% style="width:47px" %)U16 |
883 | |(% style="width:70px" %)**0x5105**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 891 | )))|(% style="width:47px" %)U16 |
892 | |(% style="width:70px" %)**0x5106**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 900 | )))|(% style="width:47px" %)U16 |
901 | |(% style="width:70px" %)**0x5107**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 909 | )))|(% style="width:47px" %)U16 |
910 | |(% style="width:70px" %)**0x5108**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 918 | )))|(% style="width:47px" %)U16 |
919 | |(% style="width:70px" %)**0x5109**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 927 | )))|(% style="width:47px" %)U16 |
928 | |(% style="width:70px" %)**0x510A**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 936 | )))|(% style="width:47px" %)U16 |
937 | |(% style="width:70px" %)**0x510B**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 945 | )))|(% style="width:47px" %)U16 |
946 | |(% style="width:70px" %)**0x510C**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 954 | )))|(% style="width:47px" %)U16 |
955 | |(% style="width:70px" %)**0x510D**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 963 | )))|(% style="width:47px" %)U16 |
964 | |(% style="width:70px" %)**0x510E**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 972 | )))|(% style="width:47px" %)U16 |
973 | |(% style="width:70px" %)**0x510F**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 981 | )))|(% style="width:47px" %)U16 |
982 | |(% style="width:70px" %)**0x5110**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 990 | )))|(% style="width:47px" %)U16 |
991 | |(% style="width:70px" %)**0x5111**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
2.1 | 999 | )))|(% style="width:47px" %)U16 |
1000 | |(% style="width:70px" %)**0x5112**|(% style="width:66px" %)1|(% style="width:429px" %)((( | ||
![]() |
1.1 | 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". | ||
![]() |
3.1 | 1008 | )))|(% style="width:47px" %)U16 |
![]() |
2.1 | 1009 | |(% style="width:70px" %)**0x5113**|(% style="width:66px" %)1|(% style="width:429px" %)((( |
![]() |
1.1 | 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". | ||
![]() |
3.1 | 1017 | )))|(% style="width:47px" %)U16 |
![]() |
2.1 | 1018 | |(% style="width:70px" %)**0x5114**|(% style="width:66px" %)1|(% style="width:429px" %)((( |
![]() |
1.1 | 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". | ||
![]() |
3.1 | 1026 | )))|(% style="width:47px" %)U16 |
![]() |
1.1 | 1027 | |
1028 |