====== Modbus TCP/IP slave variables v2 ======
BM-GW as a Modbus TCP/IP slave (server).
===== UPS =====
**ui = UPS index (1-32)**
|< 900pt 150pt 75pt 90pt 50pt 50pt >|
^ 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)**
|< 900pt 150pt 75pt 90pt 50pt 50pt >|
^ 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)**
|< 900pt 150pt 75pt 90pt 50pt 50pt >|
^ var ^ unit ID ^ address ^ type ^ scale ^ description ^
| cell_status | 100 + **si** | 100 * **ci** + 0 | int | - | Cell status (0=disabled, 1=OK, 2=error) |
| cell_voltage | ::: | 100 * **ci** + 1 | int | 0.001 | Cell voltage [0.001 V] |
| cell_resistance | ::: | 100 * **ci** + 2,3 | long | 0.001 | Cell resistance [0.001 mΩ] |
| cell_temperature | ::: | 100 * **ci** + 4 | int | 0.1 | Cell temperature [0.1 °C] |
| cell_soc | ::: | 100 * **ci** + 5 | int | 1 | Cell state of charge [%] |
| cell_soh | ::: | 100 * **ci** + 6 | int | 1 | Cell state of health [%] |
| cell_alarm | ::: | 100 * **ci** + 7 | int | - | 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 | Cell remaining time [0.1 h] |
===== Legend =====
|< 250pt 50pt >|
^ type ||
^ bit | 1 bit (0..1) |
^ int | 16 bit signed (-32768..32767) |
^ long | 32 bit signed (-2147483648..2147483647) |
^ scale ||
^ 0.01 | 12345 => 123.45 |