Fenecon Fenecon Commercial Modbus TCP template

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

NameUnitAccessAddress (Hidden until you enter your email)Function (hidden)Type (hidden)
master_mcu_hardware_versionRead
master_mcu_firmware_versionRead
slave_mcu_hardware_versionRead
slave_mcu_firmware_versionRead
master_serial_numberRead
submaster_map_aRead
online_towerRead
running_towerRead
voltageVRead
currentARead
battery_soc%Read
soh%Read
nominal_capacityWhRead
total_charge_capacity_ampere_hoursRead
total_discharge_capacity_ampere_hoursRead
max_soc%Read
max_soc_tower_idRead
min_soc%Read
min_soc_tower_idRead
max_cell_voltagemVRead
min_cell_voltagemVRead
max_cell_temperature°CRead
min_cell_temperature°CRead
insulation_resistance_at_positive_poleΩRead
insulation_resistance_at_negative_poleΩRead
total_charge_capacity_watt_hoursWhRead
total_discharge_capacity_watt_hoursWhRead
system_fault_counterscountRead
insulation_resistance_detection_statusRead
relay_statusRead
battery_max_cell_voltmVRead
battery_min_cell_voltmVRead
battery_nominal_powerWRead
battery_available_powerWRead
start_charge_voltage_limitmVRead
start_discharge_voltage_limitmVRead
bp_charge_bmsWRead
bp_discharge_bmsWRead
charge_max_powerWRead
discharge_max_powerWRead
battery_nominal_currentARead
battery_available_currentARead
soc_for_inverter%Read
charge_max_voltageVRead
discharge_min_voltageVRead
force_to_chargeRead
charge_readyRead
discharge_readyRead
heart_beat_aRead
number_of_modules_per_towercountRead
number_of_cells_per_modulecountRead
unit_idWrite
unit_numberWrite
submaster_map_bWrite
baudrateWrite
heart_beat_bWrite

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 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

  1. 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.

  2. 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.

  3. 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.

  4. 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?

Electrician working in an open distribution board