====== 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)** |< 900pt 150pt 75pt 90pt 50pt 50pt 50pt 100pt >| ^ 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)** |< 900pt 150pt 75pt 90pt 50pt 50pt 50pt 100pt >| ^ 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)** |< 900pt 150pt 75pt 90pt 50pt 50pt 50pt 100pt >| ^ 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 ===== |< 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 | ^ origin ^^ ^ IC | Internal calculation | ^ SS | String Sensor | ^ MC | Master Controller |