
Bms Soltaro SingleRack VersionC
The Soltaro SingleRack BMS is a lithium battery management system used in residential and commercial solar-plus-storage installations. This Modbus RTU template reads and writes the full register set of the Bms Soltaro SingleRack VersionC over RS485, covering battery state of charge, cluster average voltage and temperature, cell-level min/max identification, insulation resistance on both DC rails, charge and discharge permission flags, and cluster run state. Configuration registers allow you to set EMS address, baud rate, communication timeout, module count, low-voltage protection, and sleep mode. Firmware version registers for cluster 1 provide traceability without opening a cabinet.
- Protocol
- Modbus RTU
- Connection
- RS485
- Registers
- 43, read and write
- Brand
- Bms
- Last updated
Registers (43)
31 read, 12 write
| Name | Unit | Access | Address (Hidden until you enter your email) | Function (hidden) | Type (hidden) |
|---|---|---|---|---|---|
| system_reset | Write | ||||
| pre_charge_control_a | Write | ||||
| auto_set_slaves_id_a | Write | ||||
| auto_set_slaves_temperature_id_a | Write | ||||
| sleep_a | Write | ||||
| ems_address_a | Write | ||||
| ems_baudrate_a | Write | ||||
| number_of_modules_per_tower_a | Write | ||||
| ems_communication_timeout_a | Write | ||||
| system_total_capacity_a | Write | ||||
| set_sub_master_address_a | Write | ||||
| voltage_low_protection_a | Write | ||||
| ems_address_b | Read | ||||
| ems_baudrate_b | Read | ||||
| pre_charge_control_b | Read | ||||
| auto_set_slaves_id_b | Read | ||||
| set_sub_master_address_b | Read | ||||
| auto_set_slaves_temperature_id_b | Read | ||||
| sleep_b | Read | ||||
| number_of_modules_per_tower_b | Read | ||||
| system_total_capacity_b | Read | ||||
| voltage_low_protection_b | Read | ||||
| ems_communication_timeout_b | Read | ||||
| charge_indication | Read | ||||
| soc | % | 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 | ||||
| cluster_1_average_voltage | V | Read | |||
| cluster_1_system_insulation | Read | ||||
| bp_charge_bms | Read | ||||
| bp_discharge_bms | Read | ||||
| positive_insulation | Read | ||||
| negative_insulation | Read | ||||
| cluster_run_state | Read | ||||
| cluster_1_avg_temperature | °C | Read | |||
| cluster_1_project_id | Read | ||||
| cluster_1_version_major | Read | ||||
| cluster_1_version_sub | Read | ||||
| cluster_1_version_modify | Read | ||||
| cycle_time | Read | ||||
| total_capacity | 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 battery state of charge continuously to detect unexpected capacity loss between service visits.
- Track cluster average temperature against seasonal ambient conditions to verify thermal management is within safe bounds.
- Alert on deviations between cluster minimum and maximum cell voltage IDs to identify early-stage cell imbalance.
- Verify positive and negative insulation resistance registers to catch DC insulation faults before they escalate.
- Compare cluster run state against charge indication to confirm the BMS transitions correctly between charge and discharge cycles.
Installation
Connect the ModbusCloud Gateway to the Soltaro SingleRack BMS RS485 EMS port using a shielded twisted-pair cable, observing correct A/B polarity, and fit a 120-ohm termination resistor at each end of the bus.
Confirm the EMS baud rate and Modbus unit address on the BMS using the BMS Monitor software or by reading the ems_baudrate_b and ems_address_b registers; note the unit ID for portal entry.
In the ModbusCloud portal, add the Gateway, import the Bms Soltaro SingleRack VersionC template, and enter the confirmed unit ID and baud rate under the device communication settings.
Spot-check the soc register and cluster_1_avg_temperature to confirm live data is flowing before saving the configuration and enabling alerts.
Things to watch for
Why do soc and temperature registers return zero or no response?
The BMS will not respond if the Modbus unit ID in the portal does not match the address stored in ems_address_b. Read that register first with a Modbus scanner, then update the portal unit ID to match. Also confirm the baud rate matches ems_baudrate_b; a mismatch produces silence rather than an error code.
RS485 wiring is connected but the Gateway reports timeouts. What now?
Check A/B polarity: Soltaro BMS RS485 labels can differ from gateway labels, so swap A and B if the first attempt fails. Verify that 120-ohm termination resistors are present at both cable ends. If the bus has other devices, isolate the BMS as the only slave temporarily to rule out address conflicts.
Insulation resistance registers read an unexpected fixed value. Is this normal?
The cluster_1_system_insulation, positive_insulation, and negative_insulation registers report a coded status value, not a raw ohm reading. A fixed non-zero value may indicate a fault code rather than a measurement. Cross-check with the cluster_run_state register: a non-running state often accompanies an insulation warning.
Is it safe to write system_reset or sleep_a during normal operation?
No. Writing to system_reset will reboot the BMS and interrupt communication with the inverter, which can cause an unexpected shutdown of the storage system. Writing sleep_a while the battery is actively charging or discharging may trip protection circuits. Only issue these commands when the system is in a known idle state and always confirm with the site owner beforehand.
Want to see how it works?








