Redflow BMS as a MODBUS-TCP Slave or a JSON server
The Redflow BMS contains internal self-documentation regarding the MODBUS register maps that it supports (acting as a MODBUS-TCP Slave) for lookup from a remote MODBUS Master.
Simply log in to the Redflow BMS and go to the "Help" menu, and select 'Data Access Information'.
The resulting page (see screen shot below) contains two tabs. The first tab ("Field Access Information") lists the MODBUS (and JSON) access details to retrieve system-wide summary data for the entire storage array.
The second tab ("Battery Access Information") lists the MODBUS and JSON access details to retrieve 'per battery' status information.
Note that the BMS does not yet directly support access via MODBUS-RS485, but a low cost TCP<->RS485 adaptor box can be used to solve this interface challenge if you need to. Direct support for the BMS to interface with MODBUS-RS485 as a MODBUS slave is on the development roadmap to avoid the need to add in that converter box.
An example of this page is shown below, however you should simply bring this page up on any active BMS to obtain the latest version. This contains substantially more fields than the example below (taken some time ago).
Importantly - as noted below - the MODBUS unit number to retrieve the 'System Level' information is '201', with the Modbus Register Address and Multiplier and Type fields being as shown. Most field names are self-explanatory.
Contact Redflow support if you require more information about a specific field or if you need to have additional fields created to suit your application.
Please note that the internal BMS communications architecture uses MQTT, and it is also possible to use MQTT topic subscription to obtain BMS status information. Contact Redflow support if you have a business requirement to do this.
The fields commonly accessed include:
- soc_all: The default system State-Of-Charge field - appropriate for most purposes
- ah_all: The default system charge energy total in Amp Hours
- Any_Alarm: A boolean that indicates whether any battery is logging an operational alarm at this time
- Voltage, Current: internal (stack) battery voltage and total system current measured (positive means discharging, negative means charging)
- Bus_Voltage: external battery voltage observed
- Permitted_Charge, Permitted_Discharge: Present capabilities of the battery array in terms of charge and discharge maxima (in amps).
- Max_Charge_Voltage: The target (and maximum) voltage to set, when charging (not shown on the slightly outdated field example list below, but present in the current software release)
Viewing the current field values
You can view the current values for all calculated fields on-screen on the BMS, by going to the Configuration->Digital I/O page and selecting the 'Fields' tab.