User Tools

Site Tools


wiki:01_btms:01_bm-gw_web_ui:modbus

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
wiki:01_btms:01_bm-gw_web_ui:modbus [2023/03/21 12:06] – removed - external edit (Unknown date) 127.0.0.1wiki:01_btms:01_bm-gw_web_ui:modbus [2023/05/26 13:04] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== 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                        |
 +