Fenecon Fenecon Pro Ess Modbus TCP template

Fenecon Pro Ess

The Fenecon Pro Ess is a three-phase commercial battery energy storage system managed by the FEMS energy management platform. This template connects via Modbus TCP and reads system state, control mode, work mode, battery state of charge, voltage, current, power, cumulative charge and discharge energy, per-phase AC voltage, current, active and reactive power, grid frequency, BMS charge and discharge power limits, and per-section cell voltages and temperatures across sixteen sections. Write registers allow remote setpoints for per-phase active and reactive power, work state, PCS mode, setup mode, and real-time clock synchronization. Use it in your ModbusCloud portal to track battery health and dispatch performance across commercial installations.

Protocol
Modbus TCP
Connection
Ethernet, Modbus TCP
Registers
78, read and write
Brand
Fenecon
Last updated

Registers (78)

63 read, 15 write

NameUnitAccessAddress (Hidden until you enter your email)Function (hidden)Type (hidden)
system_stateRead
control_modeRead
work_modeRead
active_charge_energyWhRead
active_discharge_energyWhRead
battery_group_stateRead
soc%Read
battery_voltageVRead
battery_currentARead
battery_powerWRead
pcs_operation_stateRead
current_l1ARead
current_l2ARead
current_l3ARead
voltage_l1VRead
voltage_l2VRead
voltage_l3VRead
active_power_l1WRead
active_power_l2WRead
active_power_l3WRead
reactive_power_l1WRead
reactive_power_l2WRead
reactive_power_l3WRead
frequency_l1HzRead
frequency_l2HzRead
frequency_l3HzRead
single_phase_allowed_apparentVARead
allowed_charge_powerWRead
allowed_discharge_powerWRead
set_work_stateWrite
set_active_power_l1WWrite
set_reactive_power_l1WWrite
set_active_power_l2WWrite
set_reactive_power_l2WWrite
set_active_power_l3WWrite
set_reactive_power_l3WWrite
battery_voltage_section_1VRead
battery_voltage_section_2VRead
battery_voltage_section_3VRead
battery_voltage_section_4VRead
battery_voltage_section_5VRead
battery_voltage_section_6VRead
battery_voltage_section_7VRead
battery_voltage_section_8VRead
battery_voltage_section_9VRead
battery_voltage_section_10VRead
battery_voltage_section_11VRead
battery_voltage_section_12VRead
battery_voltage_section_13VRead
battery_voltage_section_14VRead
battery_voltage_section_15VRead
battery_voltage_section_16VRead
battery_temperature_section_1°CRead
battery_temperature_section_2°CRead
battery_temperature_section_3°CRead
battery_temperature_section_4°CRead
battery_temperature_section_5°CRead
battery_temperature_section_6°CRead
battery_temperature_section_7°CRead
battery_temperature_section_8°CRead
battery_temperature_section_9°CRead
battery_temperature_section_10°CRead
battery_temperature_section_11°CRead
battery_temperature_section_12°CRead
battery_temperature_section_13°CRead
battery_temperature_section_14°CRead
battery_temperature_section_15°CRead
battery_temperature_section_16°CRead
rtc_yearWrite
rtc_monthWrite
rtc_dayWrite
rtc_hourWrite
rtc_minuteWrite
rtc_secondWrite
setup_mode_aWrite
pcs_mode_aWrite
setup_mode_bRead
pcs_mode_bRead

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 continuously to detect capacity degradation trends across seasons.
  • Track cumulative charge and discharge energy to verify round-trip efficiency against commissioning baselines.
  • Alert on allowed charge or discharge power dropping unexpectedly, signalling BMS thermal or cell limits.
  • Compare per-section cell voltages across all sixteen sections to identify imbalanced or degraded cell groups.
  • Verify per-phase active power setpoints are being followed after each remote dispatch command.

Installation

  1. Enable the FEMS App Modbus/TCP Write Access on the Fenecon Pro Ess via the FEMS online monitoring portal under the App Center, and note the system IP address.

  2. Connect the ModbusCloud Gateway to the same LAN segment as the FEMS controller so it can reach the device IP on TCP port 502.

  3. In the ModbusCloud portal, add a new device, import the Fenecon Pro Ess template, set the unit ID to match your FEMS configuration, and assign the correct gateway.

  4. Spot-check register 109 (soc) in the live data view to confirm a plausible state-of-charge value and verify the connection is active.

Things to watch for

All register reads return errors or zero. What is wrong?

The FEMS Modbus/TCP interface requires the dedicated FEMS App to be installed and active. Without it, the TCP port will not respond. Confirm the app is licensed and running in the FEMS App Center, then retry. Also verify the client base address offset is set to 0, not 1: a base address of 1 shifts all register addresses by one and causes systematic read failures.

Cell section voltage registers 3020 to 3035 read as zero.

These registers are mapped at a different address block from the main ESS registers. Some Modbus masters batch all reads into a single range request. Split your polling into two requests: one for addresses 100 to 142 and one for 3020 to 3051. A single contiguous request spanning the gap will return an illegal data address exception.

Write setpoints for active power are accepted but the system ignores them.

The FEMS write interface has a built-in watchdog timeout, set to 60 seconds by default. A setpoint is only active for 60 seconds after it is written. The setpoint registers must be re-written at an interval shorter than the timeout, otherwise the system reverts to its internal control strategy automatically. ModbusCloud writes registers at most once per minute, so keeping this 60-second window is borderline and not guaranteed.

Is it safe to write to set_active_power and set_work_state remotely?

Use write registers with care. Incorrect active power setpoints that exceed the BMS allowed charge or discharge power limits reported in registers 141 and 142 will be clamped by the system, but repeated out-of-range commands may trigger protection responses. Always read allowed_charge_power and allowed_discharge_power before writing power setpoints. Write to set_work_state only when you understand the state enumeration: commanding an incorrect state can suspend normal operation until manually cleared.

Want to see how it works?

Electrician working in an open distribution board