
Fenecon Commercial
The Fenecon Commercial is a modular, commercial-scale lithium iron phosphate battery energy storage system built around the FENECON Energy Management System (FEMS). It supports multi-tower configurations and communicates via Modbus TCP through the FEMS box. This template reads BMS identity, pack voltage and current, state of charge and health, per-tower SOC, individual cell voltages and temperatures, insulation resistance, cumulative charge and discharge energy, relay status, and available power limits. Write registers allow heartbeat refresh, unit ID assignment, and baud rate configuration. The result is complete battery health visibility for commercial sites inside your ModbusCloud portal.
- Protocol
- Modbus TCP
- Connection
- Ethernet, Modbus TCP
- Registers
- 56, read and write
- Brand
- Fenecon
- Last updated
Registers (56)
51 read, 5 write
| Name | Unit | Access | Address (Hidden until you enter your email) | Function (hidden) | Type (hidden) |
|---|---|---|---|---|---|
| master_mcu_hardware_version | Read | ||||
| master_mcu_firmware_version | Read | ||||
| slave_mcu_hardware_version | Read | ||||
| slave_mcu_firmware_version | Read | ||||
| master_serial_number | Read | ||||
| submaster_map_a | Read | ||||
| online_tower | Read | ||||
| running_tower | Read | ||||
| voltage | V | Read | |||
| current | A | Read | |||
| battery_soc | % | Read | |||
| soh | % | Read | |||
| nominal_capacity | Wh | Read | |||
| total_charge_capacity_ampere_hours | Read | ||||
| total_discharge_capacity_ampere_hours | Read | ||||
| max_soc | % | Read | |||
| max_soc_tower_id | Read | ||||
| min_soc | % | Read | |||
| min_soc_tower_id | Read | ||||
| max_cell_voltage | mV | Read | |||
| min_cell_voltage | mV | Read | |||
| max_cell_temperature | °C | Read | |||
| min_cell_temperature | °C | Read | |||
| insulation_resistance_at_positive_pole | Ω | Read | |||
| insulation_resistance_at_negative_pole | Ω | Read | |||
| total_charge_capacity_watt_hours | Wh | Read | |||
| total_discharge_capacity_watt_hours | Wh | Read | |||
| system_fault_counters | count | Read | |||
| insulation_resistance_detection_status | Read | ||||
| relay_status | Read | ||||
| battery_max_cell_volt | mV | Read | |||
| battery_min_cell_volt | mV | Read | |||
| battery_nominal_power | W | Read | |||
| battery_available_power | W | Read | |||
| start_charge_voltage_limit | mV | Read | |||
| start_discharge_voltage_limit | mV | Read | |||
| bp_charge_bms | W | Read | |||
| bp_discharge_bms | W | Read | |||
| charge_max_power | W | Read | |||
| discharge_max_power | W | Read | |||
| battery_nominal_current | A | Read | |||
| battery_available_current | A | Read | |||
| soc_for_inverter | % | Read | |||
| charge_max_voltage | V | Read | |||
| discharge_min_voltage | V | Read | |||
| force_to_charge | Read | ||||
| charge_ready | Read | ||||
| discharge_ready | Read | ||||
| heart_beat_a | Read | ||||
| number_of_modules_per_tower | count | Read | |||
| number_of_cells_per_module | count | Read | |||
| unit_id | Write | ||||
| unit_number | Write | ||||
| submaster_map_b | Write | ||||
| baudrate | Write | ||||
| heart_beat_b | Write |
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 and state of health across all towers to detect capacity fade over time.
- Track maximum and minimum cell voltages to identify weak cells before they trigger a BMS protection event.
- Alert on rising system fault counters to catch recurring BMS errors before they cause unplanned downtime.
- Compare charge and discharge energy totals over billing periods to verify actual throughput against design expectations.
- Verify insulation resistance at the positive and negative poles to flag potential ground-fault conditions early.
Installation
Enable the FEMS App Modbus/TCP Read Access (and Write Access if required) in the FENECON App Center on the FEMS box, then note the IP address assigned to the FEMS box on your local network.
Connect the ModbusCloud Gateway to the same LAN as the FEMS box, ensuring TCP port 502 is reachable between them with no firewall blocking the connection.
In the ModbusCloud portal, add a new device, import the Fenecon Commercial template, set the Modbus unit ID to match the ID configured in the FEMS app (default is typically 1), and assign the correct Gateway.
Spot-check the battery_soc register (address 2684) and voltage register (address 2680) in the portal live view against the FEMS online monitoring display to confirm correct values and zero offset.
Things to watch for
All register values show zero or are missing. What is wrong?
The FEMS App Modbus/TCP Read Access must be installed and licensed in the FENECON App Center. Without the app active, the FEMS box does not expose a Modbus TCP server. Confirm the app status in the FEMS live view before troubleshooting the network.
Register addresses seem shifted by one compared to the datasheet. Why?
The FEMS Modbus implementation uses zero-based addressing. Some Modbus tools default to a base address of 1, which shifts every register by one position. Set the base address to 0 in your Modbus client or in the ModbusCloud Gateway configuration to align with the addresses in this template.
The heartbeat write register stops refreshing and the BMS loses control. What now?
The FEMS write watchdog has a default timeout of 60 seconds. Any write command, including the heart_beat_b register, must be refreshed before that window expires. The heartbeat should be written well within that window, typically every 30 seconds. ModbusCloud writes registers at most once per minute, so keeping this 60-second window is borderline and not guaranteed. If the watchdog fires, the BMS reverts to autonomous control.
Is it safe to write unit_id or baudrate registers during normal operation?
Writing unit_id or baudrate while the system is in active charge or discharge can disrupt the Modbus session and cause the BMS to lose communication with the inverter, potentially triggering a protection shutdown. Only write these configuration registers during a scheduled maintenance window with the system in standby, and confirm the new settings before resuming operation.
Want to see how it works?









