Skip to main content
Version: v2.0

Integration guide

The CBEB 300 is a grid-forming battery container. Its dispatch is driven by demand-response signals, so the EMS does not write power setpoints over Modbus. The EMS writes WSetEna once to turn the container on, then polls a small set of SunSpec points for headroom and state of charge.

Get your scope reviewed first

Before you start integrating, contact support@c-battery.technology so we can walk through your scope together. The operational mode you target (off-grid vs on-grid) can change how the BESS is controlled, and aligning this up front avoids rework later.

At a glance

PropertyValue
ProtocolSunSpec over Modbus TCP
Port502
Base address40000
Models implemented1, 701, 704, 713, 714, 802
Device typeGrid-forming BESS container
EMS control surfaceWrite WSetEna to turn the container on. WSet is not written.

The CBEB 300 uses the same SunSpec model layout as the 75 kWh rack, at the same register addresses. The difference is operational: Model 704 is present, but the EMS-facing role of the CBEB 300 is observation rather than control.

What the EMS writes (and doesn't)

The container manages its own dispatch through demand-response signals, so the EMS does not need to write a power setpoint. The only Model 704 write the EMS performs is:

RegisterAddressValueMeaning
WSetEna402991Turn the container on. Set once after commissioning; the rack remembers the setting.
WSetEna402990Turn the container off (e.g. for maintenance).

WSet (4030140302) is not written by the EMS on the CBEB 300. Dispatch is handled by the container itself.

Registers the EMS should read

Five points cover the entire EMS integration:

RegisterPointModelTypeMeaning
40348SoC713uint16State of charge (%). Scaled by Pct_SF = -1.
40358DCA714int16Battery DC current (A). Scaled by DCA_SF = -1.
40359DCW714int16Battery DC power (W). Scaled by DCW_SF = 2. Positive = discharge, negative = charge.
40411WChaRteMax802uint16Max charge power (W) the container can currently accept. Scaled by WChaDisChaMax_SF = 2.
40412WDisChaRteMax802uint16Max discharge power (W) the container can currently deliver. Scaled by WChaDisChaMax_SF = 2.

WChaRteMax and WDisChaRteMax are dynamic: they reflect the headroom available right now (taking into account SoC, temperature, and other live limits). Re-read them at whatever cadence your EMS uses for decisions; do not cache the values across long intervals.

For the full register listing (Model 1, 701, 704, 713, 714, 802) see the 75 kWh rack register map; the addresses and scale factors are identical.

These five points, polled at the cadence your EMS needs, cover the complete CBEB 300 integration surface.