Sungrow SG CX/RT/RS String Inverters Modbus register map

Sungrow residential and commercial string inverters share one Modbus register definition. Read-only running data such as MPPT inputs, AC output, energy and working state sits in input registers; settings such as start or stop, power limits and reactive power control sit in holding registers.

Protocol
Modbus RTU and Modbus TCP
Defaults
RS485: slave address 1 by default (1 to 247), 9600 bit/s, 8 data bits, 1 stop bit, RTU. Optional Ethernet Modbus TCP on port 502 (p. 4-5).
Addresses in the manual
1-based register numbers (wire address is the number minus 1)
32 and 64-bit values
Low word first (CD AB)
Registers listed
80
Checked against
Version V1.1.80, release date 2026-03-27

Address base. The manual says to read every register at its printed number minus 1. Its example reads registers 5000 to 5001 with a request addressed at 4999, shown as hex 01 04 1387 00 02 (p. 5). For example 4950 in the manual (Protocol number) is address 4949 on the wire.

Word order. The manual states that 32-bit values are little-endian by word: 0x01020304 is sent as 03 04 01 02, so the low word comes first (p. 4). Running data is read with function 04 and settings with functions 03, 06 and 10. The same numbers (5000 and up) appear in both areas with different meanings.

Modbus Poll and the Modbus protocol itself count from 0. The "Wire address" column is the number to type into Modbus Poll.

Downloads

The register table has every column on this page. The blocks file imports into Modbus Poll. The template JSON holds the same blocks plus unit, scale and access for scripts.

Registers

80 registers
Manual Wire Register Type Regs Unit Scale Access Area
4950 4949 Protocol numberProtocol_Number uint32 2 1 R Input (FC04)
4952 4951 Protocol versionProtocol_Version uint32 2 1 R Input (FC04)
4954 4953 ARM software versionARM_Software_Version string 15 1 R Input (FC04)
4969 4968 DSP software versionDSP_Software_Version string 15 1 R Input (FC04)
4990 4989 Serial numberSerial_Number string 10 1 R Input (FC04)
5000 4999 Device type codeDevice_Type_Code · Code maps to a model in the manual appendix of adaptive inverter models. uint16 1 1 R Input (FC04)
5001 5000 Nominal active powerNominal_Active_Power uint16 1 kW 0.1 R Input (FC04)
5002 5001 Output typeOutput_Type · 0 two-phase, 1 three-phase four-wire, 2 three-phase three-wire. Decides whether 5019 to 5021 hold phase or line voltages. uint16 1 1 R Input (FC04)
5003 5002 Daily energy yieldDaily_Energy_Yield uint16 1 kWh 0.1 R Input (FC04)
5004 5003 Total energy yieldTotal_Energy_Yield · Same quantity as 5144 with a coarser resolution. uint32 2 kWh 1 R Input (FC04)
5006 5005 Total running timeTotal_Running_Time uint32 2 h 1 R Input (FC04)
5008 5007 Internal temperatureInternal_Temperature int16 1 °C 0.1 R Input (FC04)
5009 5008 Total apparent powerTotal_Apparent_Power uint32 2 VA 1 R Input (FC04)
5011 5010 MPPT 1 voltageMPPT1_Voltage · Which MPPT inputs exist depends on the model. uint16 1 V 0.1 R Input (FC04)
5012 5011 MPPT 1 currentMPPT1_Current uint16 1 A 0.1 R Input (FC04)
5013 5012 MPPT 2 voltageMPPT2_Voltage uint16 1 V 0.1 R Input (FC04)
5014 5013 MPPT 2 currentMPPT2_Current uint16 1 A 0.1 R Input (FC04)
5015 5014 MPPT 3 voltageMPPT3_Voltage uint16 1 V 0.1 R Input (FC04)
5016 5015 MPPT 3 currentMPPT3_Current uint16 1 A 0.1 R Input (FC04)
5115 5114 MPPT 4 voltageMPPT4_Voltage uint16 1 V 0.1 R Input (FC04)
5116 5115 MPPT 4 currentMPPT4_Current uint16 1 A 0.1 R Input (FC04)
5017 5016 Total DC powerTotal_DC_Power uint32 2 W 1 R Input (FC04)
5019 5018 A-B line voltage or phase A voltageVoltage_AB_or_A · Meaning depends on the output type in register 5002. uint16 1 V 0.1 R Input (FC04)
5020 5019 B-C line voltage or phase B voltageVoltage_BC_or_B · Meaning depends on the output type in register 5002. uint16 1 V 0.1 R Input (FC04)
5021 5020 C-A line voltage or phase C voltageVoltage_CA_or_C · Meaning depends on the output type in register 5002. uint16 1 V 0.1 R Input (FC04)
5022 5021 Phase A currentCurrent_A uint16 1 A 0.1 R Input (FC04)
5023 5022 Phase B currentCurrent_B uint16 1 A 0.1 R Input (FC04)
5024 5023 Phase C currentCurrent_C uint16 1 A 0.1 R Input (FC04)
5031 5030 Total active powerTotal_Active_Power int32 2 W 1 R Input (FC04)
5033 5032 Total reactive powerTotal_Reactive_Power int32 2 var 1 R Input (FC04)
5035 5034 Power factorPower_Factor · Positive means leading, negative means lagging. int16 1 0.001 R Input (FC04)
5036 5035 Grid frequency, 0.1 Hz resolutionGrid_Frequency_Coarse uint16 1 Hz 0.1 R Input (FC04)
5038 5037 Working state 1Work_State_1 · 0x0000 run, 0x8000 stop, 0x1300 key stop, 0x1500 emergency stop, 0x1400 standby, 0x1200 initial standby, 0x1600 starting, 0x9100 alarm run, 0x8100 derating run, 0x8200 dispatch run, 0x5500 fault, 0x2500 communication fault, 0x1111 uninitialized. uint16 1 1 R Input (FC04)
5045 5044 Fault or alarm codeFault_Alarm_Code_1 · Valid only while the working state is fault (0x5500) or alarm (0x9100). The time of the event is in 5039 to 5044. uint16 1 1 R Input (FC04)
5049 5048 Nominal reactive powerNominal_Reactive_Power uint16 1 kvar 0.1 R Input (FC04)
5071 5070 Array insulation resistanceArray_Insulation_Resistance uint16 1 kΩ 1 R Input (FC04)
5077 5076 Active power regulation setpointActive_Power_Setpoint_Readback uint32 2 W 1 R Input (FC04)
5079 5078 Reactive power regulation setpointReactive_Power_Setpoint_Readback int32 2 var 1 R Input (FC04)
5081 5080 Working state 2Work_State_2 · Bit coding is in the manual appendix on working state 2. uint32 2 1 R Input (FC04)
5083 5082 Meter powerMeter_Power · Only supported where a smart energy meter is connected for feed-in limitation. int32 2 W 1 R Input (FC04)
5091 5090 Load powerLoad_Power · Only supported where a smart energy meter is connected for feed-in limitation. int32 2 W 1 R Input (FC04)
5093 5092 Daily feed-in energyDaily_Feed_In_Energy · Valid only for some models listed in the manual. uint32 2 kWh 0.1 R Input (FC04)
5095 5094 Total feed-in energyTotal_Feed_In_Energy · Valid only for some models listed in the manual. uint32 2 kWh 0.1 R Input (FC04)
5097 5096 Daily purchased energyDaily_Purchased_Energy · Valid only for some models listed in the manual. uint32 2 kWh 0.1 R Input (FC04)
5099 5098 Total purchased energyTotal_Purchased_Energy · Valid only for some models listed in the manual. uint32 2 kWh 0.1 R Input (FC04)
5113 5112 Daily running timeDaily_Running_Time uint16 1 min 1 R Input (FC04)
5114 5113 Present country codePresent_Country uint16 1 1 R Input (FC04)
5125 5124 Power factor setpointPower_Factor_Setpoint_Readback int16 1 0.001 R Input (FC04)
5128 5127 Monthly energy yieldMonthly_Energy_Yield uint32 2 kWh 0.1 R Input (FC04)
5144 5143 Total energy yield, 0.1 kWh resolutionTotal_Energy_Yield_Fine uint32 2 kWh 0.1 R Input (FC04)
5146 5145 Negative voltage to groundNegative_Voltage_To_Ground int16 1 V 0.1 R Input (FC04)
5147 5146 Bus voltageBus_Voltage uint16 1 V 0.1 R Input (FC04)
5148 5147 Grid frequency, 0.01 Hz resolutionGrid_Frequency uint16 1 Hz 0.01 R Input (FC04)
5150 5149 PID work statePID_Work_State · 2 PID recover operation, 4 anti-PID operation, 8 PID abnormality. uint16 1 1 R Input (FC04)
5151 5150 PID alarm codePID_Alarm_Code uint16 1 1 R Input (FC04)
7013 7012 String 1 currentString1_Current · Check that the hardware supports string current monitoring before relying on these registers. uint16 1 A 0.01 R Input (FC04)
7014 7013 String 2 currentString2_Current uint16 1 A 0.01 R Input (FC04)
7015 7014 String 3 currentString3_Current uint16 1 A 0.01 R Input (FC04)
7016 7015 String 4 currentString4_Current uint16 1 A 0.01 R Input (FC04)
5000 4999 Clock yearClock_Year · Used to synchronize the inverter clock from the monitoring system. uint16 1 1 RW Holding (FC03)
5001 5000 Clock monthClock_Month uint16 1 1 RW Holding (FC03)
5002 5001 Clock dayClock_Day uint16 1 1 RW Holding (FC03)
5003 5002 Clock hourClock_Hour uint16 1 1 RW Holding (FC03)
5004 5003 Clock minuteClock_Minute uint16 1 1 RW Holding (FC03)
5005 5004 Clock secondClock_Second uint16 1 1 RW Holding (FC03)
5006 5005 Start or stop commandStart_Stop · 0xCF starts the inverter, 0xCE stops it. uint16 1 1 RW Holding (FC03)
5007 5006 Power limitation switchPower_Limit_Switch · 0xAA enable, 0x55 disable. uint16 1 1 RW Holding (FC03)
5008 5007 Power limitation settingPower_Limit_Setting · Range is 0 to 1000 when active power overload (5020) is enabled; otherwise see the manual appendix of adaptive models. Takes effect when 5007 is enabled. uint16 1 % 0.1 RW Holding (FC03)
5010 5009 Feed-in power limit switchFeed_In_Limit_Switch · 0xAA enable, 0x55 disable. Needs a smart energy meter connected to the inverter. uint16 1 1 RW Holding (FC03)
5011 5010 Feed-in power limit valueFeed_In_Limit_Value · Range 0 to rated active power. uint16 1 kW 0.01 RW Holding (FC03)
5015 5014 Feed-in power limit ratioFeed_In_Limit_Ratio · Range 0 to 1000. Valid only for some models listed in the manual. uint16 1 % 0.1 RW Holding (FC03)
5019 5018 Power factor settingPF_Setting · Range -1000 to -800 and 800 to 1000. Positive means leading, negative lagging. Used when 5036 is set to 0xA1. int16 1 0.001 RW Holding (FC03)
5020 5019 Active power overload enableActive_Power_Overload · 0xAA enable, 0x55 disable. Enabled means the inverter dispatches against maximum apparent power rather than rated power. uint16 1 1 RW Holding (FC03)
5033 5032 Reactive power ratio at nightReactive_Ratio_At_Night · Range -1000 to 1000. Used when night reactive power generation (5035) is enabled. int16 1 % 0.1 RW Holding (FC03)
5034 5033 Local or remote control modeLocal_Remote_Control · 1 remote only (this protocol), 2 local only (app), 3 local and remote with the latest setting winning. uint16 1 1 RW Holding (FC03)
5035 5034 Night SVG switchNight_SVG_Switch · 0xAA enable, 0x55 disable. uint16 1 1 RW Holding (FC03)
5036 5035 Reactive power adjustment modeReactive_Adjustment_Mode · 0x55 off (power factor 1), 0xA1 power factor setting valid, 0xA2 reactive power percentage valid, 0xA3 Q(P) curve, 0xA4 Q(U) curve. uint16 1 1 RW Holding (FC03)
5037 5036 Reactive power percentage settingReactive_Percent_Setting · Range -1000 to 1000. Used when 5036 is set to 0xA2. int16 1 % 0.1 RW Holding (FC03)
5039 5038 Power limitation adjustmentPower_Limit_Adjustment · Range depends on model, see the manual appendix of adaptive models. uint16 1 kW 0.1 RW Holding (FC03)
5040 5039 Reactive power adjustmentReactive_Power_Adjustment · Range depends on model. Used when 5036 is set to 0xA2. int16 1 kvar 0.1 RW Holding (FC03)

Scale is the number to multiply the raw value by to get the unit. Types with more than one register (32 and 64-bit) follow the word order above.

Open in Modbus Poll

  1. Download the Modbus Poll blocks file.
  2. Open Modbus Poll, connect to the device and set its unit ID. In Modbus Poll set Word order to CD AB.
  3. In the blocks panel on the right, click Import CSV and pick the file. CSV import is a Pro feature. Without Pro, Modbus Poll polls the first 20 values of your blocks.
  4. The wire addresses are already in the file, so there is no 0-based or 1-based conversion to do.

Once the values look right, export the tag list to Ignition, Kepware, Node-RED, Home Assistant or Voltrus SCADA.

Source and accuracy

Manufacturer document: Communication Protocol of Residential & Commercial PV Grid-Connected Inverters (info-support.sungrowpower.com)

Version V1.1.80, release date 2026-03-27, p. 4-11, 30. Read on 2026-10-24.

Addresses, types, units and scale are taken from the document above. Names and descriptions are written by Voltrus. Firmware versions can differ, so confirm a value on your own device before you rely on it.

Found a mistake? Report it by email with the register address and the manual page.

Other solar inverters

All register maps · Modbus addressing explained