User Tools

Site Tools


wiki:01_btms:01_bm-gw_web_ui:modbus

Modbus protocol

BM-GW enables reading of all real-time data via the Modbus TCP/IP protocol. It is intended for the connection of 3rd party control applications (SCADA, BMS, …) to the BTMS system. The Modbus TCP/IP server is accessible on the WAN (and also LAN) IP address, standard port 502.

UPS data

ui = UPS index (1-32)

var Unit ID address type scale origin description
ups_status ui 0 int - IC iot.ups.status UPS status (0 = disabled, 1 = OK (all strings OK), 2 = ERR (at least one string error))
ups_voltage 1,2 long 0.01 IC iot.ups.voltage UPS voltage (average of strings voltages) [0.01 V]
ups_current 3,4 long 0.01 IC iot.ups.current UPS current (sum of string currents) [0.01 A]; + = charge, - = discharge
ups_soc 5 int 1 IC iot.ups.soc UPS state of charge (average of strings SOC) [%]

Strings data

si = string index (1-32)

var unit ID address type scale origin description
string_ups_id 100 + si 0 int - IC iot.string.@inst.meta.ups_index UPS id where the string is connected (1..32; 0=not connected/disabled)
string_status 1 int - IC iot.string.status String status (0 = disabled, 1 = OK, 2 = Error)
string_voltage 2,3 long 0.01 SS modbus.uint.HR(1,0) String voltage [0.01 V]
string_current 4,5 long 0.01 SS modbus.int.HR(3,2) String current [0.01 A]; + = charge, - = discharge
string_soc 6 int 1 SS modbus.ushort.HR(4) String state of charge [%]
string_balance 7 int 0.01 SS modbus.ushort.HR(6) String balancing state [0.01 %]
string_state 8 int - SS modbus.ushort.HR(7) 0=floating charge, 1=equalizing charge, 2=discharge, 3=idle, 5=abnormal
string_alarm 9 int - SS modbus.ushort.HR(13) 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 SS modbus.ushort.HR(10) Number of string cells
string_ambient_temperature 11 int 0.1 MC cybro.th_temperature[si] String ambient temperature [0.1 °C]
string_ambient_humidity 12 int 0.1 MC cybro.th_humidity[si] String ambient relative humidity [0.1% RH]
string_relay_status 13 int MC cybro.lc_output[si] String relay status (0=open, 1=closed)
string_aux_input_status 14 int MC cybro.lc_input[si] String auxiliary input status (0=off, 1=on)

Cells data

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_btms/01_bm-gw_web_ui/modbus.txt · Last modified: 2023/05/26 13:04 by 127.0.0.1