Changes for page 5.2 Modbus protocol

Last modified by Admin on 2026/04/24 10:30

From version 11.2
edited by Admin
on 2025/02/04 10:24
Change comment: There is no comment for this version
To version 5.1
edited by Admin
on 2024/12/02 05:39
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -5.2 Modbus protocol
1 +4.2 Modbus protocol
Parent
... ... @@ -1,1 +1,1 @@
1 -Battery management systems.BMS Main 2\.1.5\. Communication protocols.WebHome
1 +drafts.BMS Main 2\.1.4\. Communication protocols.WebHome
Content
... ... @@ -1,11 +1,5 @@
1 -(% data-numbered-headings-start="5" style="--numbered-headings-start: 4;font-size: 0px;color: rgba(0, 0, 0, 0.0);margin-bottom: 0px; margin-top: 0px;" %)
2 -= Communication protocols =
1 +== 4.2.1 General information ==
3 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 9  The BMS Main 2.x device provides the information about the battery system using Modbus protocol. The BMS is a Modbus-server and it responds to the Modbus-client’s commands.
10 10  
11 11  Interaction with the device is performed over the RS-485 bus (Modbus RTU) or the Ethernet network (Modbus TCP).
... ... @@ -34,7 +34,7 @@
34 34  
35 35  Words are in the **little endian**.
36 36  
37 -=== Input registers ===
31 +== 4.2.2 Input registers ==
38 38  
39 39  (% style="width:651px" %)
40 40  |(% style="width:92px" %)**Register address**|(% style="width:94px" %)**Number of registers**|(% style="width:368px" %)**Content**|(% style="width:96px" %)**Type**
... ... @@ -240,11 +240,7 @@
240 240  
241 241  bit 25 – “Power up”;
242 242  
243 -bit 26 — signal “External 1”;
244 -
245 -bit 27 — signal “Heater (AUX)”;
246 -
247 -bits 28-31 — not used.
237 +bits 26-31 – reserved.
248 248  )))|(% style="width:96px" %)U32
249 249  |(% style="width:92px" %)**0x200B**|(% style="width:94px" %)1|(% style="width:368px" %)(((
250 250  Discrete output signals (bitfield):
... ... @@ -272,7 +272,7 @@
272 272  
273 273  bits 4-15 — not used.
274 274  )))|(% style="width:96px" %)U16
275 -|(% style="width:92px" %)**0x200E-0x200F**|(% style="width:94px" %)2|(% style="width:368px" %)(((
265 +|(% style="width:92px" %)**0x200E**|(% style="width:94px" %)2|(% style="width:368px" %)(((
276 276  Errors 2 (bitfield):
277 277  
278 278  bit 0 – "Low CH temperature", temperature is too low for charging;
... ... @@ -303,15 +303,7 @@
303 303  
304 304  bit 13 – “General error”;
305 305  
306 -bit 14 — reserved (set to 0);
307 -
308 -bit 15 — reserved (set to 0);
309 -
310 -bit 16 — reserved (set to 0);
311 -
312 -bit 17 — “Precharge error”;
313 -
314 -bits 18-31 — not used.
296 +bits 14-31 — reserved.
315 315  )))|(% style="width:96px" %)U32
316 316  |(% style="width:92px" %)**0x2010**|(% style="width:94px" %)1|(% style="width:368px" %)Address or the BMS Logic device whose parameters are in registers 0x2011-0x20C9|(% style="width:96px" %)U16
317 317  |(% style="width:92px" %)**0x2011**|(% style="width:94px" %)1|(% style="width:368px" %)(((
... ... @@ -365,19 +365,13 @@
365 365  |(% style="width:92px" %)**0x20F4**|(% style="width:94px" %)1|(% style="width:368px" %)(((
366 366  Discrete input signals 2 (bitfield):
367 367  
368 -bit 0 “Fuse 2”;
350 +bit 0 “Fuse 2”;
369 369  
370 -bit 1 “Fuse 3”;
352 +bit 1 “Fuse 3”;
371 371  
372 -bit 2 “Circuit breaker status”;
354 +bit 2 “Circuit breaker status”;
373 373  
374 -bit 3 — signal "Balancing request";
375 -
376 -bit 4 — signal "Close Main contactor";
377 -
378 -bit 5 — signal "Close External 1";
379 -
380 -bits 6-15 — not used.
356 +bits 3-15 – reserved.
381 381  )))|(% style="width:96px" %)U16
382 382  |(% style="width:92px" %)**0x2100-0x2101**|(% style="width:94px" %)2|(% style="width:368px" %)Battery state of charge (SOC), %|(% style="width:96px" %)REAL32
383 383  |(% style="width:92px" %)**0x2102**|(% style="width:94px" %)1|(% style="width:368px" %)Number of BMS Logic devices|(% style="width:96px" %)U16
... ... @@ -440,15 +440,15 @@
440 440  |(% style="width:92px" %)**0x2181-0x2182**|(% style="width:94px" %)2|(% style="width:368px" %)Ethernet netmask|(% style="width:96px" %)U8[4]
441 441  |(% style="width:92px" %)**0x2183-0x2184**|(% style="width:94px" %)2|(% style="width:368px" %)Ethernet gateway|(% style="width:96px" %)U8[4]
442 442  |(% style="width:92px" %)**0x2185-0x2186**|(% style="width:94px" %)2|(% style="width:368px" %)Calibrated voltage in the reference line of the current sensor, V|(% style="width:96px" %)REAL32
443 -|(% style="width:92px" %)**0x218E-0x218F**|(% style="width:94px" %)2|(% style="width:368px" %)Voltage from the current sensor, V|(% style="width:96px" %)REAL32
444 -|(% style="width:92px" %)**0x2190-0x2191**|(% style="width:94px" %)2|(% style="width:368px" %)Voltage in the reference line of the current sensor, V|(% style="width:96px" %)REAL32
445 -|(% style="width:92px" %)**0x2192-0x2193**|(% style="width:94px" %)2|(% style="width:368px" %)Voltage from the auxiliary current sensor, V|(% style="width:96px" %)REAL32
446 -|(% style="width:92px" %)**0x2194-0x2195**|(% style="width:94px" %)2|(% style="width:368px" %)Voltage in the reference line of the auxiliary current sensor, V|(% style="width:96px" %)REAL32
447 -|(% style="width:92px" %)**0x219F-0x21A0**|(% style="width:94px" %)2|(% style="width:368px" %)Charge current limit, A|(% style="width:96px" %)REAL32
448 -|(% style="width:92px" %)**0x21A1-0x21A2**|(% style="width:94px" %)2|(% style="width:368px" %)Discharge current limit, A|(% style="width:96px" %)REAL32
419 +|(% style="width:92px" %)**0x218E**|(% style="width:94px" %)2|(% style="width:368px" %)Voltage from the current sensor, V|(% style="width:96px" %)REAL32
420 +|(% style="width:92px" %)**0x2190**|(% style="width:94px" %)2|(% style="width:368px" %)Voltage in the reference line of the current sensor, V|(% style="width:96px" %)REAL32
421 +|(% style="width:92px" %)**0x2192**|(% style="width:94px" %)2|(% style="width:368px" %)Voltage from the auxiliary current sensor, V|(% style="width:96px" %)REAL32
422 +|(% style="width:92px" %)**0x2194**|(% style="width:94px" %)2|(% style="width:368px" %)Voltage in the reference line of the auxiliary current sensor, V|(% style="width:96px" %)REAL32
423 +|(% style="width:92px" %)**0x219F**|(% style="width:94px" %)2|(% style="width:368px" %)Charge current limit, A|(% style="width:96px" %)REAL32
424 +|(% style="width:92px" %)**0x21A1**|(% style="width:94px" %)2|(% style="width:368px" %)Discharge current limit, A|(% style="width:96px" %)REAL32
449 449  |(% style="width:92px" %)**0x21B8**|(% style="width:94px" %)1|(% style="width:368px" %)Flag indicating that the cells are balancing|(% style="width:96px" %)U16
450 -|(% style="width:92px" %)**0x21C6-0x21C7**|(% style="width:94px" %)2|(% style="width:368px" %)Calibrated voltage in the reference line of the auxiliary current sensor, V|(% style="width:96px" %)REAL32
451 -|(% style="width:92px" %)**0x21CA-0x21CB**|(% style="width:94px" %)2|(% style="width:368px" %)Average cell voltage, V|(% style="width:96px" %)REAL32
426 +|(% style="width:92px" %)**0x21C6**|(% style="width:94px" %)2|(% style="width:368px" %)Calibrated voltage in the reference line of the auxiliary current sensor, V|(% style="width:96px" %)REAL32
427 +|(% style="width:92px" %)**0x21CA**|(% style="width:94px" %)2|(% style="width:368px" %)Average cell voltage, V|(% style="width:96px" %)REAL32
452 452  |(% style="width:92px" %)**0x2200-0x2203**|(% style="width:94px" %)4|(% style="width:368px" %)(((
453 453  Record #1 from the errors journal. First 32-bit word contains a timestamp, second 32-bit word contains errors 1 flags (see 0x2007-0x2008).
454 454  
... ... @@ -470,12 +470,12 @@
470 470  |(% style="width:92px" %)**0x2208-0x227B**|(% style="width:94px" %) |(% style="width:368px" %)Records #3-31 from the errors journal|(% style="width:96px" %)
471 471  |(% style="width:92px" %)**0x227C-0x227F**|(% style="width:94px" %)4|(% style="width:368px" %)Record #32 from the errors journal|(% style="width:96px" %)U32[2]
472 472  |(% style="width:92px" %)**0x2300**|(% style="width:94px" %)1|(% style="width:368px" %)Number of the last record from the errors journal (1..32)|(% style="width:96px" %)U16
473 -|(% style="width:92px" %)**0x2380-0x2383**|(% style="width:94px" %)4|(% style="width:368px" %)Record data #1 from the errors journal. First 32-bit word contains errors 2 flags (see 0x200E-0x200F).|(% style="width:96px" %)U32[2]
449 +|(% style="width:92px" %)**0x2380**|(% style="width:94px" %)4|(% style="width:368px" %)Record data #1 from the errors journal. First 32-bit word contains errors 2 flags (see 0x200E-0x200F).|(% style="width:96px" %)U32[2]
474 474  |(% style="width:92px" %)**0x2384-0x2387**|(% style="width:94px" %)4|(% style="width:368px" %)Record data #2 from the errors journal|(% style="width:96px" %)U32[2]
475 475  |(% style="width:92px" %)**0x2388-0x23FB**|(% style="width:94px" %) |(% style="width:368px" %)Records data #3-31 from the errors journal|(% style="width:96px" %)
476 476  |(% style="width:92px" %)**0x23FC-0x23FF**|(% style="width:94px" %)4|(% style="width:368px" %)Record data #32 from the errors journal|(% style="width:96px" %)U32[2]
477 -|(% style="width:92px" %)**0x2400-0x2401**|(% style="width:94px" %)2|(% style="width:368px" %)Current measured by the auxiliary current sensor, A|(% style="width:96px" %)REAL32
478 -|(% style="width:92px" %)**0x2402-**|(% style="width:94px" %)2|(% style="width:368px" %)(((
453 +|(% style="width:92px" %)**0x2400**|(% style="width:94px" %)2|(% style="width:368px" %)Current measured by the auxiliary current sensor, A|(% style="width:96px" %)REAL32
454 +|(% style="width:92px" %)**0x2402**|(% style="width:94px" %)2|(% style="width:368px" %)(((
479 479  Final battery current, A
480 480  
481 481  Note — Typically it is the sum of the values measured by the main and auxiliary current sensors
... ... @@ -504,7 +504,7 @@
504 504  |(% style="width:92px" %)**0x2426**|(% style="width:94px" %)2|(% style="width:368px" %)Maximum charge current, A|(% style="width:96px" %)REAL32
505 505  |(% style="width:92px" %)**0x2428**|(% style="width:94px" %)2|(% style="width:368px" %)Maximum discharge current, A|(% style="width:96px" %)REAL32
506 506  
507 -=== Holding registers ===
483 +== 4.2.3 Holding registers ==
508 508  
509 509  (% style="width:653px" %)
510 510  |(% style="width:92px" %)**Register address**|(% style="width:94px" %)**Number of registers**|(% style="width:368px" %)**Content**|(% style="width:96px" %)**Type**