wiki:01.battery_iq:01.btms:06.integration:modbus
This version is outdated by a newer approved version.
This version (2025/06/26 09:33) is a draft.
Approvals: 0/1The Previously approved version (2025/06/26 09:30) is available.
This version (2025/06/26 09:33) is a draft.Approvals: 0/1The Previously approved version (2025/06/26 09:30) is available.

This is an old revision of the document!
Table of Contents
Modbus TCP/IP slave variables v2
BM-GW as a Modbus TCP/IP slave (server).
UPS
ui = UPS index (1-32)
| var | Unit ID | address | type | scale | description |
|---|---|---|---|---|---|
| ups_status | ui | 0 | int | - | UPS status (0 = disabled, 1 = OK (all strings OK), 2 = ERR (at least one string error)) |
| ups_voltage | 1,2 | long | 0.01 | UPS voltage (average of strings voltages) [0.01 V] | |
| ups_current | 3,4 | long | 0.01 | UPS current (sum of string currents) [0.01 A]; + = charge, - = discharge | |
| ups_soc | 5 | int | 1 | UPS state of charge (average of strings SOC) [%] |
Strings
si = string index (1-32)
| var | unit ID | address | type | scale | description |
|---|---|---|---|---|---|
| string_ups_id | 100 + si | 0 | int | - | UPS id where the string is connected (1..32; 0=not connected/disabled) |
| string_status | 1 | int | - | String status (0 = disabled, 1 = OK, 2 = Error) | |
| string_voltage | 2,3 | long | 0.01 | String voltage [0.01 V] | |
| string_current | 4,5 | long | 0.01 | String current [0.01 A]; + = charge, - = discharge | |
| string_soc | 6 | int | 1 | String state of charge [%] | |
| string_balance | 7 | int | 0.01 | String balancing state [0.01 %] | |
| string_state | 8 | int | - | 0=floating charge, 1=equalizing charge, 2=discharge, 3=idle, 5=abnormal | |
| string_alarm | 9 | int | - | bit coded; b0=current hi (charging), b1=current lo (discharging), b2=voltage hi, b3=voltage lo, b4=SOC lo, b5=SOH lo, b6=hall disconnected | |
| string_cell_count | 10 | int | 1 | Number of string cells | |
| string_ambient_temperature | 11 | int | 0.1 | String ambient temperature [0.1 °C] | |
| string_ambient_humidity | 12 | int | 0.1 | String ambient relative humidity [0.1% RH] | |
| string_relay_status | 13 | int | String relay status (0=open, 1=closed) | ||
| string_aux_input_status | 14 | int | String auxiliary input status (0=off, 1=on) |
Cells
si = string index (1..32); ci = cell index (1..120)
| var | unit ID | address | type | scale | origin | description | |
|---|---|---|---|---|---|---|---|
| cell_status | 100 + si | 100 * ci + 0 | int | - | SS | modbus.ushort.HR(1300+ci-1) | Cell status (0=disabled, 1=OK, 2=error) |
| cell_voltage | 100 * ci + 1 | int | 0.001 | SS | modbus.ushort.HR(1600+ci-1) | Cell voltage [0.001 V] | |
| cell_resistance | 100 * ci + 2,3 | long | 0.001 | SS | modbus.uint.HR(1901+(ci-1)*2,1900+(ci-1)*2) | Cell resistance [0.001 mΩ] | |
| cell_temperature | 100 * ci + 4 | int | 0.1 | SS | modbus.short.HR(2500+ci-1) | Cell temperature [0.1 °C] | |
| cell_soc | 100 * ci + 5 | int | 1 | SS | modbus.ushort.HR(2800+ci-1) | Cell state of charge [%] | |
| cell_soh | 100 * ci + 6 | int | 1 | SS | modbus.ushort.HR(3100+ci-1) | Cell state of health [%] | |
| cell_alarm | 100 * ci + 7 | int | - | SS | modbus.ushort.HR(3400+ci-1) | Cell alarm (bit coded): b0=voltage hi, b1=voltage lo, b2=resistance hi, b3=SOC lo, b4=SOH lo, b5=temperature hi | |
| cell_remaining_time | 100 * ci + 8 | int | 0.1 | SS | modbus.ushort.HR(3700+ci-1) | Cell remaining time [0.1 h] | |
Legend
| type | |
|---|---|
| bit | 1 bit (0..1) |
| int | 16 bit signed (-32768..32767) |
| long | 32 bit signed (-2147483648..2147483647) |
| scale | |
| 0.01 | 12345 ⇒ 123.45 |
| origin | |
| IC | Internal calculation |
| SS | String Sensor |
| MC | Master Controller |
wiki/01.battery_iq/01.btms/06.integration/modbus.1750930431.txt.gz · Last modified: by goran.kocjancic
