Bms Bms Soltaro SingleRack VersionB Modbus RTU template

Bms Soltaro SingleRack VersionB

The Soltaro SingleRack VersionB is a lithium battery storage system with an integrated BMS that communicates over Modbus RTU via RS485. This template reads system state, contactor status, charge indication, SOC, state of health, per-cell voltage and temperature extremes, insulation resistance, environment temperature, and cumulative fault counters. It also exposes the full set of protection and alarm thresholds for both stop-level and warn-level events, and provides write access to those thresholds, contactor control, sleep mode, and SOC calibration. Connecting the Bms Soltaro SingleRack VersionB to your ModbusCloud Gateway gives installers and asset managers a continuous, timestamped view of battery health and safety state.

Protocol
Modbus RTU
Connection
RS485
Registers
242, read and write
Brand
Bms
Last updated

Registers (242)

166 read, 76 write

NameUnitAccessAddress (Hidden until you enter your email)Function (hidden)Type (hidden)
bms_contactor_control_aWrite
system_reset_aWrite
ems_communication_timeout_asWrite
sleep_aWrite
work_parameter_number_of_modulescountWrite
auto_set_slaves_id_aWrite
auto_set_slaves_temperature_id_aWrite
fan_statusRead
main_contactor_stateRead
dry_contact_1_exportRead
dry_contact_2_exportRead
system_reset_bRead
system_run_modeRead
pre_contactor_statusRead
alarm_flag_register_1Read
alarm_flag_register_2Read
protect_flag_register_1Read
protect_flag_register_2Read
short_circuit_functionRead
testing_ioRead
soft_shutdownRead
bms_contactor_control_bRead
current_box_self_calibrationRead
pcs_alarm_resetRead
insulation_sensor_functionRead
auto_set_slaves_id_bRead
auto_set_slaves_temperature_id_bRead
transparent_masterRead
set_ems_addressRead
ems_communication_timeout_bsRead
sleep_bRead
voltage_low_protectionRead
charge_indicationRead
soc%Read
cluster_1_soh%Read
cluster_1_max_cell_voltage_idRead
cluster_1_min_cell_voltage_idRead
cluster_1_max_cell_temperature_idRead
cluster_1_min_cell_temperature_idRead
max_cell_resistance_idRead
max_cell_resistanceΩRead
min_cell_resistance_idRead
min_cell_resistanceΩRead
positive_insulationΩRead
negative_insulationΩRead
main_contactor_flagRead
environment_temperature°CRead
system_insulationΩRead
cell_voltage_differenceVRead
total_voltage_differenceVRead
power_temperature°CRead
power_supply_voltageVRead
cluster_run_stateRead
maximum_cell_voltage_number_when_alarmRead
maximum_cell_voltage_when_alarmVRead
maximum_cell_voltage_number_when_stoppedRead
maximum_cell_voltage_when_stoppedVRead
minimum_cell_voltage_number_when_alarmRead
minimum_cell_voltage_when_alarmVRead
minimum_cell_voltage_number_when_stoppedRead
minimum_cell_voltage_when_stoppedVRead
over_voltage_value_when_alarmVRead
over_voltage_value_when_stoppedVRead
under_voltage_value_when_alarmVRead
under_voltage_value_when_stoppedVRead
over_charge_current_when_alarmARead
over_charge_current_when_stoppedARead
over_discharge_current_when_alarmARead
over_discharge_current_when_stoppedARead
number_of_temperature_when_alarmcountRead
other_alarm_equipment_failureRead
bp_charge_bmsRead
bp_discharge_bmsRead
cycle_timecountRead
total_capacity_high_bitsWhRead
total_capacity_low_bitsWhRead
system_time_highRead
system_time_lowRead
last_time_charge_capacity_low_bitsWhRead
last_time_charge_end_time_high_bitsRead
last_time_charge_end_time_low_bitsRead
last_time_discharge_capacity_low_bitsWhRead
last_time_discharge_end_time_high_bitsRead
last_time_discharge_end_time_low_bitsRead
cell_over_voltage_stop_timescountRead
battery_over_voltage_stop_timescountRead
battery_charge_over_current_stop_timescountRead
cell_voltage_low_stop_timescountRead
battery_voltage_low_stop_timescountRead
battery_discharge_over_current_stop_timescountRead
battery_over_temperature_stop_timescountRead
battery_temperature_low_stop_timescountRead
cell_over_voltage_alarm_timescountRead
battery_over_voltage_alarm_timescountRead
battery_charge_over_current_alarm_timescountRead
cell_voltage_low_alarm_timescountRead
battery_voltage_low_alarm_timescountRead
battery_discharge_over_current_alarm_timescountRead
battery_over_temperature_alarm_timescountRead
battery_temperature_low_alarm_timescountRead
system_short_circuit_protection_timescountRead
system_gr_over_temperature_stop_timescountRead
system_gr_over_temperature_alarm_timescountRead
battery_voltage_difference_alarm_timescountRead
battery_voltage_difference_stop_timescountRead
slave_temperature_communication_error_highRead
slave_temperature_communication_error_lowRead
stop_parameter_cell_over_voltage_protection_aVWrite
stop_parameter_cell_over_voltage_recover_aVWrite
stop_parameter_system_over_voltage_protection_aVWrite
stop_parameter_system_over_voltage_recover_aVWrite
stop_parameter_system_charge_over_current_protection_aAWrite
stop_parameter_system_charge_over_current_recover_aAWrite
stop_parameter_cell_under_voltage_protection_aVWrite
stop_parameter_cell_under_voltage_recover_aVWrite
stop_parameter_system_under_voltage_protection_aVWrite
stop_parameter_system_under_voltage_recover_aVWrite
stop_parameter_system_discharge_over_current_protection_aAWrite
stop_parameter_system_discharge_over_current_recover_aAWrite
stop_parameter_cell_over_temperature_protection_a°CWrite
stop_parameter_cell_over_temperature_recover_a°CWrite
stop_parameter_cell_under_temperature_protection_a°CWrite
stop_parameter_cell_under_temperature_recover_a°CWrite
stop_parameter_soc_low_protection_a%Write
stop_parameter_soc_low_protection_recover_a%Write
stop_parameter_soc_high_protection_a%Write
stop_parameter_soc_high_protection_recover_a%Write
stop_parameter_connector_temperature_high_protection_a°CWrite
stop_parameter_connector_temperature_high_protection_recover_a°CWrite
stop_parameter_insulation_protection_aΩWrite
stop_parameter_insulation_protection_recover_aΩWrite
stop_parameter_cell_voltage_difference_protection_aVWrite
stop_parameter_cell_voltage_difference_protection_recover_aVWrite
stop_parameter_total_voltage_difference_protection_aVWrite
stop_parameter_total_voltage_difference_protection_recover_aVWrite
stop_parameter_discharge_temperature_high_protection_a°CWrite
stop_parameter_discharge_temperature_high_protection_recover_a°CWrite
stop_parameter_discharge_temperature_low_protection_a°CWrite
stop_parameter_discharge_temperature_low_protection_recover_a°CWrite
stop_parameter_temperature_difference_protection_a°CWrite
stop_parameter_temperature_difference_protection_recover_a°CWrite
warn_parameter_cell_over_voltage_alarm_aVWrite
warn_parameter_cell_over_voltage_recover_aVWrite
warn_parameter_system_over_voltage_alarmVWrite
warn_parameter_system_over_voltage_recover_aVWrite
warn_parameter_system_charge_over_current_alarm_aAWrite
warn_parameter_system_charge_over_current_recover_aAWrite
warn_parameter_cell_under_voltage_alarm_aVWrite
warn_parameter_cell_under_voltage_recover_aVWrite
warn_parameter_system_under_voltage_alarmVWrite
warn_parameter_system_under_voltage_recover_aVWrite
warn_parameter_system_discharge_over_current_alarm_aAWrite
warn_parameter_system_discharge_over_current_recover_aAWrite
warn_parameter_cell_over_temperature_alarm_a°CWrite
warn_parameter_cell_over_temperature_recover_a°CWrite
warn_parameter_cell_under_temperature_alarm_a°CWrite
warn_parameter_cell_under_temperature_recover_a°CWrite
warn_parameter_soc_low_alarm_a%Write
warn_parameter_soc_low_alarm_recover_a%Write
warn_parameter_soc_high_alarm_a%Write
warn_parameter_soc_high_alarm_recover_a%Write
warn_parameter_connector_temperature_high_alarm_a°CWrite
warn_parameter_connector_temperature_high_alarm_recover_a°CWrite
warn_parameter_insulation_alarm_aΩWrite
warn_parameter_insulation_alarm_recover_aΩWrite
warn_parameter_cell_voltage_difference_alarm_aVWrite
warn_parameter_cell_voltage_difference_alarm_recover_aVWrite
warn_parameter_total_voltage_difference_alarm_aVWrite
warn_parameter_total_voltage_difference_alarm_recover_aVWrite
warn_parameter_discharge_temperature_high_alarm_a°CWrite
warn_parameter_discharge_temperature_high_alarm_recover_a°CWrite
warn_parameter_discharge_temperature_low_alarm_a°CWrite
warn_parameter_discharge_temperature_low_alarm_recover_a°CWrite
warn_parameter_temperature_difference_alarm_a°CWrite
warn_parameter_temperature_difference_alarm_recover_a°CWrite
set_soc%Write
stop_parameter_cell_over_voltage_protection_bVRead
stop_parameter_cell_over_voltage_recover_bVRead
stop_parameter_system_over_voltage_protection_bVRead
stop_parameter_system_over_voltage_recover_bVRead
stop_parameter_system_charge_over_current_protection_bARead
stop_parameter_system_charge_over_current_recover_bARead
stop_parameter_cell_under_voltage_protection_bVRead
stop_parameter_cell_under_voltage_recover_bVRead
stop_parameter_system_under_voltage_protection_bVRead
stop_parameter_system_under_voltage_recover_bVRead
stop_parameter_system_discharge_over_current_protection_bARead
stop_parameter_system_discharge_over_current_recover_bARead
stop_parameter_cell_over_temperature_protection_b°CRead
stop_parameter_cell_over_temperature_recover_b°CRead
stop_parameter_cell_under_temperature_protection_b°CRead
stop_parameter_cell_under_temperature_recover_b°CRead
stop_parameter_soc_low_protection_b%Read
stop_parameter_soc_low_protection_recover_b%Read
stop_parameter_soc_high_protection_b%Read
stop_parameter_soc_high_protection_recover_b%Read
stop_parameter_connector_temperature_high_protection_b°CRead
stop_parameter_connector_temperature_high_protection_recover_b°CRead
stop_parameter_insulation_protection_bΩRead
stop_parameter_insulation_protection_recover_bΩRead
stop_parameter_cell_voltage_difference_protection_bVRead
stop_parameter_cell_voltage_difference_protection_recover_bVRead
stop_parameter_total_voltage_difference_protection_bVRead
stop_parameter_total_voltage_difference_protection_recover_bVRead
stop_parameter_discharge_temperature_high_protection_b°CRead
stop_parameter_discharge_temperature_high_protection_recover_b°CRead
stop_parameter_discharge_temperature_low_protection_b°CRead
stop_parameter_discharge_temperature_low_protection_recover_b°CRead
stop_parameter_temperature_difference_protection_b°CRead
stop_parameter_temperature_difference_protection_recover_b°CRead
warn_parameter_cell_over_voltage_alarm_bVRead
warn_parameter_cell_over_voltage_recover_bVRead
warn_parameter_system_over_voltage_recover_bVRead
warn_parameter_system_charge_over_current_alarm_bARead
warn_parameter_system_charge_over_current_recover_bARead
warn_parameter_cell_under_voltage_alarm_bVRead
warn_parameter_cell_under_voltage_recover_bVRead
warn_parameter_system_under_voltage_recover_bVRead
warn_parameter_system_discharge_over_current_alarm_bARead
warn_parameter_system_discharge_over_current_recover_bARead
warn_parameter_cell_over_temperature_alarm_b°CRead
warn_parameter_cell_over_temperature_recover_b°CRead
warn_parameter_cell_under_temperature_alarm_b°CRead
warn_parameter_cell_under_temperature_recover_b°CRead
warn_parameter_soc_low_alarm_b%Read
warn_parameter_soc_low_alarm_recover_b%Read
warn_parameter_soc_high_alarm_b%Read
warn_parameter_soc_high_alarm_recover_b%Read
warn_parameter_connector_temperature_high_alarm_b°CRead
warn_parameter_connector_temperature_high_alarm_recover_b°CRead
warn_parameter_insulation_alarm_bΩRead
warn_parameter_insulation_alarm_recover_bΩRead
warn_parameter_cell_voltage_difference_alarm_bVRead
warn_parameter_cell_voltage_difference_alarm_recover_bVRead
warn_parameter_total_voltage_difference_alarm_bVRead
warn_parameter_total_voltage_difference_alarm_recover_bVRead
warn_parameter_discharge_temperature_high_alarm_b°CRead
warn_parameter_discharge_temperature_high_alarm_recover_b°CRead
warn_parameter_discharge_temperature_low_alarm_b°CRead
warn_parameter_discharge_temperature_low_alarm_recover_b°CRead
warn_parameter_temperature_difference_alarm_b°CRead
warn_parameter_temperature_difference_alarm_recover_b°CRead

Loading registers…

Send your device list

If a device is not in the library yet, we build the template for free as soon as we have the register data.

Number of installations (optional)

Use cases

  • Monitor SOC trends over time to verify the Soltaro SingleRack is cycling within expected depth-of-discharge limits.
  • Track cell voltage spread using cell_voltage_difference to detect early-stage cell imbalance before it triggers a protection trip.
  • Alert on rising cumulative fault counters such as battery_over_temperature_stop_times to catch recurring thermal issues.
  • Compare positive_insulation and negative_insulation values against warn thresholds to identify deteriorating DC isolation before a shutdown.
  • Verify contactor state and system_run_mode after a protection trip to confirm the Soltaro BMS has recovered correctly.

Installation

  1. Enable RS485 Modbus RTU communication on the Soltaro SingleRack by confirming the BMS Monitor software shows a valid unit address for the master battery, defaulting to address 0 for the master rack.

  2. Wire the RS485 A and B terminals of the Soltaro BMS communication port to the corresponding RS485 terminals on the ModbusCloud Gateway, keeping cable length short and adding a 120-ohm termination resistor at each end of the bus.

  3. In the ModbusCloud portal, add the Gateway, import the Bms Soltaro SingleRack VersionB template, and set the Modbus unit ID to match the address configured in the BMS Monitor software.

  4. Spot-check the connection by verifying that the soc register at address 8451 returns a plausible percentage value and that alarm_flag_register_1 at address 8201 reads zero under normal conditions.

Things to watch for

Why do all registers return zero or no response?

Check that the Modbus unit ID in the portal matches the address set in the BMS Monitor software. The master battery defaults to address 0, but if auto-addressing was run or the address was changed manually, the ID may differ. Also verify RS485 A/B polarity: swapping the two wires is the most common wiring error and produces silence or framing errors.

The SOC value looks wrong or jumps unexpectedly. What causes this?

The BMS may need a calibration cycle to anchor its SOC estimate. If the battery has never been fully charged to 100 percent or fully discharged to the low-protection threshold, the SOC offset can drift. Use the set_soc write register (address 8415) only after confirming the actual charge level; writing an incorrect value will cause the BMS to operate with a false state of charge.

Is it safe to write protection thresholds remotely through the portal?

Writing to the stop-parameter and warn-parameter registers changes the BMS protection limits immediately and persistently. Setting a threshold outside the cell manufacturer's specifications, such as raising cell overvoltage protection above the rated maximum, can cause irreversible cell damage and may void the battery warranty. Always verify new values against the Soltaro documentation before writing, and restrict portal write access to qualified personnel.

The gateway connects but insulation values read as zero. Why?

The insulation monitoring function may be disabled. Read the insulation_sensor_function register at address 8211. If it returns 0, the feature is turned off in the BMS configuration. Additionally, insulation values are only meaningful when the main contactor is closed and the battery is connected to the DC bus; check main_contactor_state at address 8193 first.

Want to see how it works?

Electrician working in an open distribution board