
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
| Name | Unit | Access | Address (Hidden until you enter your email) | Function (hidden) | Type (hidden) |
|---|---|---|---|---|---|
| bms_contactor_control_a | Write | ||||
| system_reset_a | Write | ||||
| ems_communication_timeout_a | s | Write | |||
| sleep_a | Write | ||||
| work_parameter_number_of_modules | count | Write | |||
| auto_set_slaves_id_a | Write | ||||
| auto_set_slaves_temperature_id_a | Write | ||||
| fan_status | Read | ||||
| main_contactor_state | Read | ||||
| dry_contact_1_export | Read | ||||
| dry_contact_2_export | Read | ||||
| system_reset_b | Read | ||||
| system_run_mode | Read | ||||
| pre_contactor_status | Read | ||||
| alarm_flag_register_1 | Read | ||||
| alarm_flag_register_2 | Read | ||||
| protect_flag_register_1 | Read | ||||
| protect_flag_register_2 | Read | ||||
| short_circuit_function | Read | ||||
| testing_io | Read | ||||
| soft_shutdown | Read | ||||
| bms_contactor_control_b | Read | ||||
| current_box_self_calibration | Read | ||||
| pcs_alarm_reset | Read | ||||
| insulation_sensor_function | Read | ||||
| auto_set_slaves_id_b | Read | ||||
| auto_set_slaves_temperature_id_b | Read | ||||
| transparent_master | Read | ||||
| set_ems_address | Read | ||||
| ems_communication_timeout_b | s | Read | |||
| sleep_b | Read | ||||
| voltage_low_protection | Read | ||||
| charge_indication | Read | ||||
| soc | % | Read | |||
| cluster_1_soh | % | Read | |||
| cluster_1_max_cell_voltage_id | Read | ||||
| cluster_1_min_cell_voltage_id | Read | ||||
| cluster_1_max_cell_temperature_id | Read | ||||
| cluster_1_min_cell_temperature_id | Read | ||||
| max_cell_resistance_id | Read | ||||
| max_cell_resistance | Ω | Read | |||
| min_cell_resistance_id | Read | ||||
| min_cell_resistance | Ω | Read | |||
| positive_insulation | Ω | Read | |||
| negative_insulation | Ω | Read | |||
| main_contactor_flag | Read | ||||
| environment_temperature | °C | Read | |||
| system_insulation | Ω | Read | |||
| cell_voltage_difference | V | Read | |||
| total_voltage_difference | V | Read | |||
| power_temperature | °C | Read | |||
| power_supply_voltage | V | Read | |||
| cluster_run_state | Read | ||||
| maximum_cell_voltage_number_when_alarm | Read | ||||
| maximum_cell_voltage_when_alarm | V | Read | |||
| maximum_cell_voltage_number_when_stopped | Read | ||||
| maximum_cell_voltage_when_stopped | V | Read | |||
| minimum_cell_voltage_number_when_alarm | Read | ||||
| minimum_cell_voltage_when_alarm | V | Read | |||
| minimum_cell_voltage_number_when_stopped | Read | ||||
| minimum_cell_voltage_when_stopped | V | Read | |||
| over_voltage_value_when_alarm | V | Read | |||
| over_voltage_value_when_stopped | V | Read | |||
| under_voltage_value_when_alarm | V | Read | |||
| under_voltage_value_when_stopped | V | Read | |||
| over_charge_current_when_alarm | A | Read | |||
| over_charge_current_when_stopped | A | Read | |||
| over_discharge_current_when_alarm | A | Read | |||
| over_discharge_current_when_stopped | A | Read | |||
| number_of_temperature_when_alarm | count | Read | |||
| other_alarm_equipment_failure | Read | ||||
| bp_charge_bms | Read | ||||
| bp_discharge_bms | Read | ||||
| cycle_time | count | Read | |||
| total_capacity_high_bits | Wh | Read | |||
| total_capacity_low_bits | Wh | Read | |||
| system_time_high | Read | ||||
| system_time_low | Read | ||||
| last_time_charge_capacity_low_bits | Wh | Read | |||
| last_time_charge_end_time_high_bits | Read | ||||
| last_time_charge_end_time_low_bits | Read | ||||
| last_time_discharge_capacity_low_bits | Wh | Read | |||
| last_time_discharge_end_time_high_bits | Read | ||||
| last_time_discharge_end_time_low_bits | Read | ||||
| cell_over_voltage_stop_times | count | Read | |||
| battery_over_voltage_stop_times | count | Read | |||
| battery_charge_over_current_stop_times | count | Read | |||
| cell_voltage_low_stop_times | count | Read | |||
| battery_voltage_low_stop_times | count | Read | |||
| battery_discharge_over_current_stop_times | count | Read | |||
| battery_over_temperature_stop_times | count | Read | |||
| battery_temperature_low_stop_times | count | Read | |||
| cell_over_voltage_alarm_times | count | Read | |||
| battery_over_voltage_alarm_times | count | Read | |||
| battery_charge_over_current_alarm_times | count | Read | |||
| cell_voltage_low_alarm_times | count | Read | |||
| battery_voltage_low_alarm_times | count | Read | |||
| battery_discharge_over_current_alarm_times | count | Read | |||
| battery_over_temperature_alarm_times | count | Read | |||
| battery_temperature_low_alarm_times | count | Read | |||
| system_short_circuit_protection_times | count | Read | |||
| system_gr_over_temperature_stop_times | count | Read | |||
| system_gr_over_temperature_alarm_times | count | Read | |||
| battery_voltage_difference_alarm_times | count | Read | |||
| battery_voltage_difference_stop_times | count | Read | |||
| slave_temperature_communication_error_high | Read | ||||
| slave_temperature_communication_error_low | Read | ||||
| stop_parameter_cell_over_voltage_protection_a | V | Write | |||
| stop_parameter_cell_over_voltage_recover_a | V | Write | |||
| stop_parameter_system_over_voltage_protection_a | V | Write | |||
| stop_parameter_system_over_voltage_recover_a | V | Write | |||
| stop_parameter_system_charge_over_current_protection_a | A | Write | |||
| stop_parameter_system_charge_over_current_recover_a | A | Write | |||
| stop_parameter_cell_under_voltage_protection_a | V | Write | |||
| stop_parameter_cell_under_voltage_recover_a | V | Write | |||
| stop_parameter_system_under_voltage_protection_a | V | Write | |||
| stop_parameter_system_under_voltage_recover_a | V | Write | |||
| stop_parameter_system_discharge_over_current_protection_a | A | Write | |||
| stop_parameter_system_discharge_over_current_recover_a | A | Write | |||
| stop_parameter_cell_over_temperature_protection_a | °C | Write | |||
| stop_parameter_cell_over_temperature_recover_a | °C | Write | |||
| stop_parameter_cell_under_temperature_protection_a | °C | Write | |||
| stop_parameter_cell_under_temperature_recover_a | °C | Write | |||
| 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 | °C | Write | |||
| stop_parameter_connector_temperature_high_protection_recover_a | °C | Write | |||
| stop_parameter_insulation_protection_a | Ω | Write | |||
| stop_parameter_insulation_protection_recover_a | Ω | Write | |||
| stop_parameter_cell_voltage_difference_protection_a | V | Write | |||
| stop_parameter_cell_voltage_difference_protection_recover_a | V | Write | |||
| stop_parameter_total_voltage_difference_protection_a | V | Write | |||
| stop_parameter_total_voltage_difference_protection_recover_a | V | Write | |||
| stop_parameter_discharge_temperature_high_protection_a | °C | Write | |||
| stop_parameter_discharge_temperature_high_protection_recover_a | °C | Write | |||
| stop_parameter_discharge_temperature_low_protection_a | °C | Write | |||
| stop_parameter_discharge_temperature_low_protection_recover_a | °C | Write | |||
| stop_parameter_temperature_difference_protection_a | °C | Write | |||
| stop_parameter_temperature_difference_protection_recover_a | °C | Write | |||
| warn_parameter_cell_over_voltage_alarm_a | V | Write | |||
| warn_parameter_cell_over_voltage_recover_a | V | Write | |||
| warn_parameter_system_over_voltage_alarm | V | Write | |||
| warn_parameter_system_over_voltage_recover_a | V | Write | |||
| warn_parameter_system_charge_over_current_alarm_a | A | Write | |||
| warn_parameter_system_charge_over_current_recover_a | A | Write | |||
| warn_parameter_cell_under_voltage_alarm_a | V | Write | |||
| warn_parameter_cell_under_voltage_recover_a | V | Write | |||
| warn_parameter_system_under_voltage_alarm | V | Write | |||
| warn_parameter_system_under_voltage_recover_a | V | Write | |||
| warn_parameter_system_discharge_over_current_alarm_a | A | Write | |||
| warn_parameter_system_discharge_over_current_recover_a | A | Write | |||
| warn_parameter_cell_over_temperature_alarm_a | °C | Write | |||
| warn_parameter_cell_over_temperature_recover_a | °C | Write | |||
| warn_parameter_cell_under_temperature_alarm_a | °C | Write | |||
| warn_parameter_cell_under_temperature_recover_a | °C | Write | |||
| 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 | °C | Write | |||
| warn_parameter_connector_temperature_high_alarm_recover_a | °C | Write | |||
| warn_parameter_insulation_alarm_a | Ω | Write | |||
| warn_parameter_insulation_alarm_recover_a | Ω | Write | |||
| warn_parameter_cell_voltage_difference_alarm_a | V | Write | |||
| warn_parameter_cell_voltage_difference_alarm_recover_a | V | Write | |||
| warn_parameter_total_voltage_difference_alarm_a | V | Write | |||
| warn_parameter_total_voltage_difference_alarm_recover_a | V | Write | |||
| warn_parameter_discharge_temperature_high_alarm_a | °C | Write | |||
| warn_parameter_discharge_temperature_high_alarm_recover_a | °C | Write | |||
| warn_parameter_discharge_temperature_low_alarm_a | °C | Write | |||
| warn_parameter_discharge_temperature_low_alarm_recover_a | °C | Write | |||
| warn_parameter_temperature_difference_alarm_a | °C | Write | |||
| warn_parameter_temperature_difference_alarm_recover_a | °C | Write | |||
| set_soc | % | Write | |||
| stop_parameter_cell_over_voltage_protection_b | V | Read | |||
| stop_parameter_cell_over_voltage_recover_b | V | Read | |||
| stop_parameter_system_over_voltage_protection_b | V | Read | |||
| stop_parameter_system_over_voltage_recover_b | V | Read | |||
| stop_parameter_system_charge_over_current_protection_b | A | Read | |||
| stop_parameter_system_charge_over_current_recover_b | A | Read | |||
| stop_parameter_cell_under_voltage_protection_b | V | Read | |||
| stop_parameter_cell_under_voltage_recover_b | V | Read | |||
| stop_parameter_system_under_voltage_protection_b | V | Read | |||
| stop_parameter_system_under_voltage_recover_b | V | Read | |||
| stop_parameter_system_discharge_over_current_protection_b | A | Read | |||
| stop_parameter_system_discharge_over_current_recover_b | A | Read | |||
| stop_parameter_cell_over_temperature_protection_b | °C | Read | |||
| stop_parameter_cell_over_temperature_recover_b | °C | Read | |||
| stop_parameter_cell_under_temperature_protection_b | °C | Read | |||
| stop_parameter_cell_under_temperature_recover_b | °C | Read | |||
| 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 | °C | Read | |||
| stop_parameter_connector_temperature_high_protection_recover_b | °C | Read | |||
| stop_parameter_insulation_protection_b | Ω | Read | |||
| stop_parameter_insulation_protection_recover_b | Ω | Read | |||
| stop_parameter_cell_voltage_difference_protection_b | V | Read | |||
| stop_parameter_cell_voltage_difference_protection_recover_b | V | Read | |||
| stop_parameter_total_voltage_difference_protection_b | V | Read | |||
| stop_parameter_total_voltage_difference_protection_recover_b | V | Read | |||
| stop_parameter_discharge_temperature_high_protection_b | °C | Read | |||
| stop_parameter_discharge_temperature_high_protection_recover_b | °C | Read | |||
| stop_parameter_discharge_temperature_low_protection_b | °C | Read | |||
| stop_parameter_discharge_temperature_low_protection_recover_b | °C | Read | |||
| stop_parameter_temperature_difference_protection_b | °C | Read | |||
| stop_parameter_temperature_difference_protection_recover_b | °C | Read | |||
| warn_parameter_cell_over_voltage_alarm_b | V | Read | |||
| warn_parameter_cell_over_voltage_recover_b | V | Read | |||
| warn_parameter_system_over_voltage_recover_b | V | Read | |||
| warn_parameter_system_charge_over_current_alarm_b | A | Read | |||
| warn_parameter_system_charge_over_current_recover_b | A | Read | |||
| warn_parameter_cell_under_voltage_alarm_b | V | Read | |||
| warn_parameter_cell_under_voltage_recover_b | V | Read | |||
| warn_parameter_system_under_voltage_recover_b | V | Read | |||
| warn_parameter_system_discharge_over_current_alarm_b | A | Read | |||
| warn_parameter_system_discharge_over_current_recover_b | A | Read | |||
| warn_parameter_cell_over_temperature_alarm_b | °C | Read | |||
| warn_parameter_cell_over_temperature_recover_b | °C | Read | |||
| warn_parameter_cell_under_temperature_alarm_b | °C | Read | |||
| warn_parameter_cell_under_temperature_recover_b | °C | Read | |||
| 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 | °C | Read | |||
| warn_parameter_connector_temperature_high_alarm_recover_b | °C | Read | |||
| warn_parameter_insulation_alarm_b | Ω | Read | |||
| warn_parameter_insulation_alarm_recover_b | Ω | Read | |||
| warn_parameter_cell_voltage_difference_alarm_b | V | Read | |||
| warn_parameter_cell_voltage_difference_alarm_recover_b | V | Read | |||
| warn_parameter_total_voltage_difference_alarm_b | V | Read | |||
| warn_parameter_total_voltage_difference_alarm_recover_b | V | Read | |||
| warn_parameter_discharge_temperature_high_alarm_b | °C | Read | |||
| warn_parameter_discharge_temperature_high_alarm_recover_b | °C | Read | |||
| warn_parameter_discharge_temperature_low_alarm_b | °C | Read | |||
| warn_parameter_discharge_temperature_low_alarm_recover_b | °C | Read | |||
| warn_parameter_temperature_difference_alarm_b | °C | Read | |||
| warn_parameter_temperature_difference_alarm_recover_b | °C | Read |
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.
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
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.
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.
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.
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?








