Sungrow SG25-50CX-P2

Commercial PV inverter

Sungrow SG25CX-P2, SG30CX-P2, SG33CX-P2, SG36CX-P2, SG40CX-P2 and SG50CX-P2 inverters connect to EpiSensor Edge over Modbus RTU on the COM2 RS485 terminals, or over Modbus TCP through a WiNet-S module. Sungrow's public protocol V1.1.80 gives the device type code for each model and FC04 running data. Read the device type first, then active power, and compare with the iSolarCloud or local reading.

Sungrow SG25CX-P2 to SG50CX-P2
  • Modbus RTU
  • Modbus TCP

Commercial PV inverter

Ask an engineer

Compatibility

Compatible with EpiSensor Edge over Modbus RTU or Modbus TCP

The SG25-50CX-P2 user manual Ver114 documents RS485 terminals A1 and B1 on COM2 for monitoring devices. Sungrow's Communication Protocol of Residential & Commercial PV Grid-Connected Inverters V1.1.80 lists every model in this family with its device type code and defines read-only FC04 running registers. Edge reads them as a Modbus RTU client through a ZMB-31 Modbus Interface or the Gateway serial port, or as a Modbus TCP client through the WiNet-S Ethernet port.

SG25CX-P2, SG30CX-P2, SG33CX-P2, SG36CX-P2, SG40CX-P2 and SG50CX-P2 (global versions), from user manual SG25_30_33_36_40_50CX-P2-UEN-Ver114-202604 and protocol V1.1.80 of 27 March 2026. The CN, P2H, LV and JP variants have other device type codes. Site check: read the device type code and nominal power, then compare active power with the inverter's own reading.

Connect it with

Route into Edge

When COM2 RS485 is free for one polling master and no WiNet-S or logger uses the inverter's monitoring link

  • Modbus
  • Wireless
  • Edge
  • Platforms
Commercial PV inverter
Interface
Gateway
Edge
Output
SG25-50CX-P2SG-CX-P2 COM2 terminals A1 and B1
ZMB-31Modbus RTU to the EpiSensor wireless network
ZGW-20 GatewayHosts Edge locally
EpiSensor EdgeModbus client + register map
Customer platformMQTT · API · files
Modbus RTU · RS-485
EpiSensor wireless
Runs locally
Optional onward data
Wire A1 and B1 on the COM2 connector, not A2 and B2, which belong to the Smart Energy Meter. The slave address is 1 by default and settable from 1 to 247. Edge reads FC04 running registers only. Sungrow's manual says not to connect a data logger on RS485 while a communication module is in use. The customer-platform output is optional; Edge remains the local system of record.

When a WiNet-S or WiNet-S2 module is fitted on COM1 and connected to the site network by Ethernet

  • Modbus
  • Edge
  • Platforms
Commercial PV inverter
Interface
Gateway
Edge
Output
SG25-50CX-P2SG-CX-P2 COM1 with WiNet-S or WiNet-S2
Protected EthernetSegmented LAN
ZGW-20 GatewayHosts Edge locally
EpiSensor EdgeModbus client + register map
Customer platformMQTT · API · files
Modbus TCP
Protected Ethernet
Runs locally
Optional onward data
The protocol gives Modbus TCP on port 502 through the WiNet-S, WiNet-S2 or Logger1000 Ethernet interface, with DHCP enabled by default. Use the inverter's slave address as the unit ID and confirm it with the device type read. The protocol says its read-write registers do not support frequent periodic access through these modules, which does not affect FC04 monitoring reads. The customer-platform output is optional; Edge remains the local system of record.

Models

Download
ModelsInterfaceRoute into Edge
SG25CX-P2 / SG30CX-P2 / SG33CX-P225, 30 or 33 kW; three MPPTs; device type codes 0x2C33, 0x2C34 and 0x2C35Read MPPT 1 to 3 at 5011 to 5016 and total active power at 5031 to 5032.
SG36CX-P2 / SG40CX-P2 / SG50CX-P236, 40 or 50 kW; four MPPTs; device type codes 0x2C36, 0x2C37 and 0x2C32Add MPPT 4 at 5115 to 5116; the rest of the running map is the same.
SG33CX / SG40CX / SG50CX (first generation)Device type codes 0x2C00, 0x2C01 and 0x2C02 in the same protocolThe register map applies; take the wiring from that model's own manual, not the P2 terminal labels.

Specifications

The SG-CX-P2 family covers 25 to 50 kW three-phase string inverters with two PV strings per MPPT, three MPPTs on the 25, 30 and 33 kW models and four on the 36, 40 and 50 kW models. COM2 carries the RS485 monitoring port, the meter port and the DI, DRM and DO contacts; COM1 takes a Sungrow communication module.2

Rated AC output power
25, 30, 33, 36, 40 and 50 kW2
Maximum AC output power
27.5, 33, 36.3, 40, 44 and 55 kVA (SG30CX-P2: 30 kVA in Germany, Belgium, Austria, Ukraine and Denmark)2
Independent MPP inputs
3 (SG25/30/33CX-P2); 4 (SG36/40/50CX-P2); 2 strings per MPPT12
Max. PV input voltage
1100 V2
Communication
RS485; WLAN and Ethernet through an optional module2
RS485 defaults
Slave address 1 (1 to 247), 9600 bit/s, 8 data bits, 1 stop bit, RTU; parity none or settable1
Modbus TCP
Through WiNet-S, WiNet-S2 or Logger1000 Ethernet, port 502, DHCP by default1
Degree of protection
IP66, corrosion class C52
Operating ambient temperature
-30 to 60 °C; altitude up to 4000 m2

Interface

Documented measurements and integration boundaries for SG25-50CX-P2.

  • FC04 input registers. Sungrow numbers registers from 5000 and the address sent is one less: register 5000 is wire address 4999 (0x1387).
  • Identity: 4990 to 4999 serial number (UTF-8), 5000 device type code (U16), 5001 nominal active power (U16, 0.1 kW), 5002 output type (0 two phase, 1 3P4L, 2 3P3L).
  • Energy: 5003 daily yield (U16, 0.1 kWh), 5004 to 5005 total yield (U32, kWh), 5144 to 5145 total yield (U32, 0.1 kWh).
  • AC: 5019 to 5021 phase or line voltage (U16, 0.1 V, chosen by output type), 5022 to 5024 phase currents (U16, 0.1 A), 5031 to 5032 total active power (S32, W), 5033 to 5034 reactive power (S32, var), 5035 power factor (S16, 0.001), 5036 grid frequency (U16, 0.1 Hz), 5148 grid frequency (U16, 0.01 Hz).
  • DC: 5011 to 5016 MPPT 1 to 3 voltage and current (0.1 V, 0.1 A), 5115 to 5116 MPPT 4, 5017 to 5018 total DC power (U32, W), 7013 onward string currents (U16, 0.01 A) where the hardware supports them.
  • State: 5038 work state 1 (0x0 run, 0x8000 stop, 0x1400 standby, 0x5500 fault, 0x9100 alarm run), 5008 internal temperature (S16, 0.1 °C), 5071 array insulation resistance (U16, 1 kΩ).
  • 32-bit values send the low-order register first: U32 0x01020304 arrives as 03 04 01 02. Unavailable reads return 0xFFFF (U16), 0xFFFFFFFF (U32), 0x7FFF (S16) or 0x7FFFFFFF (S32).

Assessment

SG25CX-P2, SG30CX-P2, SG33CX-P2, SG36CX-P2, SG40CX-P2 and SG50CX-P2, from user manual Ver114 (April 2026) and protocol V1.1.80 (27 March 2026). Record the device type code and compare the first reads with the inverter's own reading.

InteroperabilitySupported with conditions
The public protocol gives serial settings, address convention, word order, device type codes and FC04 running registers; RS485 and module links are mutually exclusive for a logger.12
AccuracySupported with conditions
Active and reactive power, phase quantities, MPPT values and energy counters carry documented types and scales. Inverter values do not replace a meter at the point of connection.1
SecurityNot yet assessed
The protocol defines no authentication or encryption for RS485 or Modbus TCP reads.1
ReliabilityNot yet assessed
The protocol defines unavailable values but no polling interval, recovery or backfill behaviour for third-party clients.1
RuggednessWell supported
The manual gives IP66, corrosion class C5, -30 to 60 °C and operation up to 4000 m.2
ScalabilitySupported with conditions
Inverters can share an RS485 daisy chain with addresses 1 to 247; each needs a unique address on one master.12
LifecycleSupported with conditions
The protocol carries a dated change history and the manual a version code; repeat the device type check after a firmware or module change.12

Setup

Identify an SG50CX-P2, then decode active power

Sungrow registers start at 5000 for running data; the address sent is the register minus one, with FC04. Slave address 1 is the default. These are synthetic decoder checks with correct CRCs, not captured inverter responses.

Identity request
01 04 13 87 00 02 C5 66 reads registers 5000 and 5001 from wire address 4999. The protocol's own example sends 01 04 1387 00 02 + CRC for the same registers.
Synthetic identity reply
01 04 04 2C 32 01 F4 52 CC gives device type 0x2C32, the SG50CX-P2, and nominal active power 0x01F4 = 500 × 0.1 kW = 50.0 kW.
Power request
01 04 13 A6 00 02 95 6C reads total active power at registers 5031 and 5032 from wire address 5030.
Synthetic power reply
01 04 04 C3 50 00 00 C7 D1: low word 0xC350 arrives first, high word 0x0000 second, so the S32 value is 0x0000C350 = 50000 W.
Unavailable value
Data FF FF 7F FF combines high word 0x7FFF and low word 0xFFFF into 0x7FFFFFFF, the S32 unavailable value. Do not plot it as generation.

Acceptance: Accept the read when the device type matches the nameplate model and active power agrees with the inverter's own reading. If the code is not in the SG25-50CX-P2 list, use the protocol's appendix 1 for the installed model before mapping MPPT inputs.

  1. Choose one monitoring link

    Use either COM2 RS485 (A1 and B1) or a WiNet-S module on COM1. The user manual says that once a communication module is in use, a data logger must not be connected on RS485 at the same time. Keep A2 and B2 for the Smart Energy Meter.

  2. Match the serial settings

    This guide uses protocol V1.1.80 and user manual Ver114. The protocol gives slave address 1 by default (settable from 1 to 247), 9600 bit/s, 8 data bits, 1 stop bit and RTU mode; parity is none or settable. Keep one Modbus master on the line.

  3. Read the device type code first

    Send FC04 to wire address 4999 (register 5000), quantity 2. The first word is the device type code (0x2C32 for SG50CX-P2, 0x2C35 for SG33CX-P2) and the second is nominal active power in 0.1 kW. Record both with the nameplate before reading measurements.

  4. Decode 32-bit values low word first

    Total active power is S32 at registers 5031 to 5032: send FC04 to 5030, quantity 2. Sungrow sends the low-order word first, so combine as high × 65536 + low and subtract 4294967296 if bit 31 is set. A reply of 0x7FFFFFFF is unavailable, not real power.

  5. Compare and keep control out of scope

    Compare active power and grid frequency with the iSolarCloud or local app reading while the inverter is running (work state 0x0). The RW registers in section 2.2 (start and stop, power limits) use FC03, FC06 and FC10 and are outside this guide; control needs the site owner's and Sungrow's agreement.

Common questions

Which function code does the SG50CX-P2 use for running data?
FC04, read input registers. Table 3 of the protocol marks the running information as read-only with Modbus command 0x04. The parameter registers in table 4 use FC03, FC06 and FC10.1
Why is register 5031 sent as address 5030?
The protocol says to visit every register by subtracting 1 from its address: register 5000 to 5001 is read at address 4999 to 5000. The same rule moves 5031 to 5030.1
Can I use COM2 RS485 and a WiNet-S module at the same time?
The user manual says that once a communication module is in use, the inverter must not be connected to a data logger over RS485 at the same time. Choose one monitoring link for Edge.2
How do I tell an SG36CX-P2 from an SG40CX-P2 over Modbus?
Read register 5000. The SG36CX-P2 returns 0x2C36 and the SG40CX-P2 returns 0x2C37. Both have four MPPTs, so the device type, not the MPPT count, identifies the model.1