SolaX Power X1 and X3 energy storage inverters Modbus register map

One Modbus register map from SolaX for its single-phase (X1) and three-phase (X3) energy storage inverters. The document lists the inverters that share the map by name and inverter ID. It covers firmware and serial data, status and fault words, PV, grid, meter, battery and energy history values, and the common operating settings. The inverter reports its own type code, and some registers apply only to X1 or only to X3. This file is a selection of the document, not every register: battery serial numbers, time of use and charge period tables, generator, VPP, parallel and other settings are left out.

Protocol
Modbus RTU over RS485 (function codes 0x03, 0x04, 0x06, 0x10). Modbus TCP is provided by SolaX monitoring modules, not by the inverter itself.
Defaults
Slave address 1 (default), allowed 1 to 247. RS485: 19200 baud (default), 8 data bits, 1 stop bit, no parity (p. 2). Modbus TCP via the monitoring module: port 502, unit ID 0x01 by default (p. 3). The document asks for at least 1 s between two instructions and a response timeout of 1 s (p. 4).
Addresses in the manual
0-based protocol addresses, as sent on the wire
32 and 64-bit values
Low word first (CD AB)
Registers listed
198
Checked against
Version V001.02, revision dated 2026/2/10, SolaX Power Network Technology (Zhejiang) Co., Ltd. (copy hosted by a third party; a vendor-hosted copy could not be fetched, and the SolaX knowledge base tells integrators to ask SolaX for the document)

Address base. The document prints register addresses in hex (for example 0x0000) and its frame examples use them directly as the start address on the wire: reading the inverter serial number sends start address 0x0000 for 7 registers, and the Modbus protocol version read uses 0x0082 (pp. 12-13). Addresses here are those hex values converted to decimal. Reading uses function 0x03 (holding) for firmware info and settings and function 0x04 (input) for real-time and history data. Setting registers are read and written at different addresses; the write address is given in each setting's note. The unlock password (write 0x0000, function 0x06, p. 38) is not listed because it shares an address with Inverter_SN. Some registers exist only on X1 or only on X3 (marked _X1 or _X3), and dual battery registers only on dual battery models (Appendix A). Address 0 in the manual is address 0 on the wire.

Word order. For 32-bit values the tables label the first register address LSB and the second MSB (for example 0x0052 LSB, 0x0053 MSB for Etotal_Togrid), so the low word comes first. The VPP example on p. 76 confirms this: ACActivePower of -1000 W is sent as 0xFC18 then 0xFFFF. Bytes inside each register are big endian (p. 3). The document does not define its Gain column (the changelog only says the attribute was added to all tables in V001.00), so the meaning is inferred: a raw register value equals the physical value times Gain, and scale here is 1 divided by Gain (gain 10 gives scale 0.1, gain 100 gives 0.01, gain 1000 gives 0.001). This is the only reading that fits the document's own ranges: the cell voltage gain of 1000 on a V unit only makes sense for millivolt counts, and the export power limit (Table 3.5.2) prints gain X1: 1 and X3: 0.1 with ranges 0 to 60000 W (X1) and 0 to 30000 W (X3) in a 16-bit register, which fits only if an X3 count is 10 W. The document gives no worked example for a register with a gain other than 1.

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

198 registers
Manual Wire Register Type Regs Unit Scale Access Area
0 0 Inverter serial numberInverter_SN · ASCII text, 7 registers. string 7 1 R Holding (FC03)
7 7 Factory nameFactory_Name · ASCII text, 7 registers. string 7 1 R Holding (FC03)
14 14 Inverter nameInverter_Name · ASCII text, 7 registers. string 7 1 R Holding (FC03)
21 21 Inverter type codeInverter_Type · Codes in Appendix A, for example 0x0E is X3-Hybrid G4 and 0x0F is X1-Hybrid G4. Appendix A also lists 0x2B X3-ULTRA-GLV, which is not in the inverter list on p. iv. uint16 1 1 R Holding (FC03)
89 89 Total battery port numberBat_Port_Num uint16 1 1 R Holding (FC03)
123 123 Full DSP firmware versionFirmware_Version_DSP uint16 1 1 R Holding (FC03)
124 124 Full ARM firmware versionFirmware_Version_ARM · Full version is ARM major * 100 + ARM minor, so 109 means V001.09 (p. 13 example). Supported from Modbus protocol version V001.00. uint16 1 1 R Holding (FC03)
125 125 Minor DSP software versionFirmware_Version_DSP_Minor uint16 1 1 R Holding (FC03)
126 126 Hardware versionHardware_Version uint16 1 1 R Holding (FC03)
127 127 Major DSP software versionFirmware_Version_DSP_Major uint16 1 1 R Holding (FC03)
128 128 Major ARM software versionFirmware_Version_ARM_Major uint16 1 1 R Holding (FC03)
130 130 Modbus protocol document version supported by the firmwareFirmware_Version_Modbus · The p. 13 example reads 0x0064 (100), which the document says is protocol version V001.00. uint16 1 1 R Holding (FC03)
131 131 Minor ARM software versionFirmware_Version_ARM_Minor uint16 1 1 R Holding (FC03)
132 132 ARM bootloader versionFirmware_Version_ARM_Boot uint16 1 1 R Holding (FC03)
133 133 Real time clock, secondsRTC_Seconds · Set the clock by writing 0x0000 to 0x0005 with function 0x10 (p. 20). uint16 1 1 R Holding (FC03)
134 134 Real time clock, minutesRTC_Minutes uint16 1 1 R Holding (FC03)
135 135 Real time clock, hoursRTC_Hours uint16 1 1 R Holding (FC03)
136 136 Real time clock, daysRTC_Days uint16 1 1 R Holding (FC03)
137 137 Real time clock, monthsRTC_Months uint16 1 1 R Holding (FC03)
138 138 Real time clock, yearsRTC_Years uint16 1 1 R Holding (FC03)
170 170 Communication module serial numberModule_SN · ASCII text, 5 registers. string 5 1 R Holding (FC03)
186 186 Inverter rated AC output powerRated_Output_Power uint16 1 W 1 R Holding (FC03)
9 9 Inverter working mode codeInverter_Run_Mode · Codes: 0 Wait, 1 Check, 2 Normal, 3 Fault, 4 Permanent fault, 5 Update, 6 EPS check, 7 EPS, 8 Self test, 9 Idle, 10 Standby, 11 Fault charging, 20 VPP normal, 21 to 25 TOU sub modes, 26 Generator normal, 27 Wait charge, 28 Smart schedule (Appendix B). uint16 1 1 R Input (FC04)
84 84 Parameter unlock statusInverter_Lock_State · 0: locked, 1: unlocked. Unlocked state allows parameter configuration. uint16 1 1 R Input (FC04)
64 64 Inverter fault bit fieldInverter_Fault_Message · 32-bit bit field, bits listed in Appendix C. The appendix uses the X3-Hybrid G4 as its example and says fault codes may vary across inverters. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 1 R Input (FC04)
94 94 Inverter fault bit field, extendedInv_Fault_Message_Extend · 32-bit bit field, see Appendix C. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 1 R Input (FC04)
67 67 Manager fault bit fieldManager_Fault_Message bitfield16 1 1 R Input (FC04)
68 68 BMS1 fault bit fieldBMS1_Fault_Message · 32-bit bit field, see Appendix C. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 1 R Input (FC04)
214 214 BMS1 fault bit field, extendedBMS1_Fault_Message_Extend · 32-bit bit field, see Appendix C. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 1 R Input (FC04)
298 298 BMS2 fault bit fieldBMS2_Fault_Message · 32-bit bit field, see Appendix C. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 1 R Input (FC04)
775 775 BMS2 fault bit field, extendedBMS2_Fault_Message_Extend · 32-bit bit field, see Appendix C. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 1 R Input (FC04)
50 50 Sum of all PV powerPv_Power_Sum · Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 W 1 R Input (FC04)
52 52 On-grid total active power of the inverterOn_Grid_Power_Sum · Positive for output, negative for input. Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 W 1 R Input (FC04)
54 54 Off-grid total active power of the inverterOff_Grid_Power_Sum · Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 W 1 R Input (FC04)
56 56 Total power of the battery systemBat_Power_Sum · Positive for charge, negative for discharge. Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 W 1 R Input (FC04)
58 58 Total capacity of the battery systemBat_Sys_Installed_Capacity · Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 Wh 1 R Input (FC04)
60 60 Total SOC of the battery systemBat_System_SOC uint16 1 % 1 R Input (FC04)
61 61 Total SOH of the battery systemBat_System_SOH uint16 1 % 1 R Input (FC04)
27 27 Total number of PV stringsMPPT_Count uint16 1 1 R Input (FC04)
3 3 PV1 voltagePv_Voltage1 · Table gain 10. uint16 1 V 0.1 R Input (FC04)
5 5 PV1 currentPv_Current1 · Table gain 10. uint16 1 A 0.1 R Input (FC04)
10 10 PV1 powerPv_Power1 uint16 1 W 1 R Input (FC04)
4 4 PV2 voltagePv_Voltage2 · Table gain 10. uint16 1 V 0.1 R Input (FC04)
6 6 PV2 currentPv_Current2 · Table gain 10. uint16 1 A 0.1 R Input (FC04)
11 11 PV2 powerPv_Power2 uint16 1 W 1 R Input (FC04)
290 290 PV3 voltagePv_Voltage3 · Table gain 10. uint16 1 V 0.1 R Input (FC04)
291 291 PV3 currentPv_Current3 · Table gain 10. uint16 1 A 0.1 R Input (FC04)
292 292 PV3 powerPv_Power3 uint16 1 W 1 R Input (FC04)
40 40 PV4 voltagePv_Voltage4 · Table gain 10. uint16 1 V 0.1 R Input (FC04)
43 43 PV4 currentPv_Current4 · Table gain 10. uint16 1 A 0.1 R Input (FC04)
46 46 PV4 powerPv_Power4 uint16 1 W 1 R Input (FC04)
41 41 PV5 voltagePv_Voltage5 · Table gain 10. uint16 1 V 0.1 R Input (FC04)
44 44 PV5 currentPv_Current5 · Table gain 10. uint16 1 A 0.1 R Input (FC04)
47 47 PV5 powerPv_Power5 uint16 1 W 1 R Input (FC04)
42 42 PV6 voltagePv_Voltage6 · Table gain 10. uint16 1 V 0.1 R Input (FC04)
45 45 PV6 currentPv_Current6 · Table gain 10. uint16 1 A 0.1 R Input (FC04)
48 48 PV6 powerPv_Power6 uint16 1 W 1 R Input (FC04)
26 26 Grid statusGrid_Status · 0: on-grid, 1: off-grid. uint16 1 1 R Input (FC04)
0 0 On-grid voltage, single-phase inverterGrid_Voltage_X1 · Table gain 10. uint16 1 V 0.1 R Input (FC04)
1 1 On-grid current, single-phase inverterGrid_Current_X1 · Table gain 10. int16 1 A 0.1 R Input (FC04)
2 2 On-grid active power, single-phase inverterGrid_Power_X1 int16 1 W 1 R Input (FC04)
7 7 On-grid frequency, single-phase inverterGrid_Frequency_X1 · Table gain 100. uint16 1 Hz 0.01 R Input (FC04)
106 106 R-phase on-grid voltage, three-phase inverterGrid_Voltage_R_X3 · Table gain 10. uint16 1 V 0.1 R Input (FC04)
107 107 R-phase on-grid current, three-phase inverterGrid_Current_R_X3 · Table gain 10. int16 1 A 0.1 R Input (FC04)
108 108 R-phase on-grid active power, three-phase inverterGrid_Power_R_X3 int16 1 W 1 R Input (FC04)
109 109 R-phase on-grid frequency, three-phase inverterGrid_Frequency_R_X3 · Table gain 100. uint16 1 Hz 0.01 R Input (FC04)
110 110 S-phase on-grid voltage, three-phase inverterGrid_Voltage_S_X3 · Table gain 10. uint16 1 V 0.1 R Input (FC04)
111 111 S-phase on-grid current, three-phase inverterGrid_Current_S_X3 · Table gain 10. int16 1 A 0.1 R Input (FC04)
112 112 S-phase on-grid active power, three-phase inverterGrid_Power_S_X3 int16 1 W 1 R Input (FC04)
113 113 S-phase on-grid frequency, three-phase inverterGrid_Frequency_S_X3 · Table gain 100. The description column for the S-phase frequency says R-phase, which looks like a typo. uint16 1 Hz 0.01 R Input (FC04)
114 114 T-phase on-grid voltage, three-phase inverterGrid_Voltage_T_X3 · Table gain 10. uint16 1 V 0.1 R Input (FC04)
115 115 T-phase on-grid current, three-phase inverterGrid_Current_T_X3 · Table gain 10. int16 1 A 0.1 R Input (FC04)
116 116 T-phase on-grid active power, three-phase inverterGrid_Power_T_X3 int16 1 W 1 R Input (FC04)
117 117 T-phase on-grid frequency, three-phase inverterGrid_Frequency_T_X3 · Table gain 100. uint16 1 Hz 0.01 R Input (FC04)
96 96 On-grid total reactive power of the inverterGrid_Reactive_Power_Sum · Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 Var 1 R Input (FC04)
98 98 On-grid total apparent power of the inverterGrid_Apparent_Power_Sum · Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 VA 1 R Input (FC04)
100 100 R-phase on-grid reactive powerGrid_Reactive_Power_R int16 1 Var 1 R Input (FC04)
101 101 S-phase on-grid reactive powerGrid_Reactive_Power_S int16 1 Var 1 R Input (FC04)
102 102 T-phase on-grid reactive powerGrid_Reactive_Power_T int16 1 Var 1 R Input (FC04)
103 103 R-phase on-grid apparent powerGrid_Apparent_Power_R uint16 1 VA 1 R Input (FC04)
104 104 S-phase on-grid apparent powerGrid_Apparent_Power_S uint16 1 VA 1 R Input (FC04)
105 105 T-phase on-grid apparent powerGrid_Apparent_Power_T uint16 1 VA 1 R Input (FC04)
136 136 On-grid run timeOn_Grid_Run_Time · Table gain 10. Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 h 0.1 R Input (FC04)
76 76 Off-grid voltage, single-phase inverterOff_Grid_Voltage_X1 · Table gain 10. uint16 1 V 0.1 R Input (FC04)
77 77 Off-grid current, single-phase inverterOff_Grid_Current_X1 · Table gain 10. uint16 1 A 0.1 R Input (FC04)
78 78 Off-grid power, single-phase inverterOff_Grid_Power_X1 · The table prints the unit as VA for this register. uint16 1 VA 1 R Input (FC04)
79 79 Off-grid frequencyOff_Grid_Frequency · Table gain 100. uint16 1 Hz 0.01 R Input (FC04)
118 118 R-phase off-grid voltage, three-phase inverterOff_Grid_Volt_R_X3 · Table gain 10. uint16 1 V 0.1 R Input (FC04)
119 119 R-phase off-grid current, three-phase inverterOff_Grid_Current_R_X3 · Table gain 10. uint16 1 A 0.1 R Input (FC04)
120 120 R-phase off-grid active power, three-phase inverterOff_Grid_Power_R_X3 int16 1 W 1 R Input (FC04)
121 121 R-phase off-grid apparent power, three-phase inverterOff_Grid_Power_Apparent_R_X3 uint16 1 VA 1 R Input (FC04)
122 122 S-phase off-grid voltage, three-phase inverterOff_Grid_Volt_S_X3 · Table gain 10. uint16 1 V 0.1 R Input (FC04)
123 123 S-phase off-grid current, three-phase inverterOff_Grid_Current_S_X3 · Table gain 10. uint16 1 A 0.1 R Input (FC04)
124 124 S-phase off-grid active power, three-phase inverterOff_Grid_Power_S_X3 int16 1 W 1 R Input (FC04)
125 125 S-phase off-grid apparent power, three-phase inverterOff_Grid_Power_Apparent_S_X3 uint16 1 VA 1 R Input (FC04)
126 126 T-phase off-grid voltage, three-phase inverterOff_Grid_Volt_T_X3 · Table gain 10. uint16 1 V 0.1 R Input (FC04)
127 127 T-phase off-grid current, three-phase inverterOff_Grid_Current_T_X3 · Table gain 10. uint16 1 A 0.1 R Input (FC04)
128 128 T-phase off-grid active power, three-phase inverterOff_Grid_Power_T_X3 int16 1 W 1 R Input (FC04)
129 129 T-phase off-grid apparent power, three-phase inverterOff_Grid_Power_Apparent_T_X3 uint16 1 VA 1 R Input (FC04)
138 138 Off-grid run timeOff_Grid_Run_Time · Table gain 10. Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 h 0.1 R Input (FC04)
70 70 Power at the grid connection point measured by meter or CTFeedin_Power · Positive: power to the grid. Negative: power from the grid. Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 W 1 R Input (FC04)
130 130 R-phase feed-in power (meter or CT), three-phase inverterFeedin_Power_R_Phase_X3 · Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 W 1 R Input (FC04)
132 132 S-phase feed-in power (meter or CT), three-phase inverterFeedin_Power_S_Phase_X3 · Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 W 1 R Input (FC04)
134 134 T-phase feed-in power (meter or CT), three-phase inverterFeedin_Power_T_Phase_X3 · Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 W 1 R Input (FC04)
210 210 Total reactive power (meter or CT)Grid_Reactive_Power_Total_Meter · Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 Var 1 R Input (FC04)
222 222 R-phase reactive power (meter or CT)Grid_Reactive_Power_R_Meter · Moved to this address from 0x00C0 in protocol V001.02 (changelog, p. iv). Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 Var 1 R Input (FC04)
224 224 S-phase reactive power (meter or CT)Grid_Reactive_Power_S_Meter · Moved to this address from 0x00C2 in protocol V001.02 (changelog, p. iv). Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 Var 1 R Input (FC04)
212 212 T-phase reactive power (meter or CT)Grid_Reactive_Power_T_Meter · Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 Var 1 R Input (FC04)
196 196 Total grid power factor (meter or CT)Grid_Power_Factor_Total_Meter int16 1 % 1 R Input (FC04)
197 197 R-phase grid power factor (meter or CT)Grid_Power_Factor_R_Meter int16 1 % 1 R Input (FC04)
198 198 S-phase grid power factor (meter or CT)Grid_Power_Factor_S_Meter int16 1 % 1 R Input (FC04)
199 199 T-phase grid power factor (meter or CT)Grid_Power_Factor_T_Meter int16 1 % 1 R Input (FC04)
200 200 Grid frequency (meter or CT)Grid_Frequency_Meter · Table gain 100. uint16 1 Hz 0.01 R Input (FC04)
201 201 Total grid voltage (meter or CT)Grid_Voltage_Total_Meter · Table gain 10. uint16 1 V 0.1 R Input (FC04)
202 202 R-phase grid voltage (meter or CT)Grid_Voltage_R_Meter · Table gain 10. uint16 1 V 0.1 R Input (FC04)
203 203 S-phase grid voltage (meter or CT)Grid_Voltage_S_Meter · Table gain 10. uint16 1 V 0.1 R Input (FC04)
204 204 T-phase grid voltage (meter or CT)Grid_Voltage_T_Meter · Table gain 10. uint16 1 V 0.1 R Input (FC04)
205 205 Total grid current (meter or CT)Grid_Current_Total_Meter · Table gain 10. int16 1 A 0.1 R Input (FC04)
206 206 R-phase grid current (meter or CT)Grid_Current_R_Meter · Table gain 10. int16 1 A 0.1 R Input (FC04)
207 207 S-phase grid current (meter or CT)Grid_Current_S_Meter · Table gain 10. int16 1 A 0.1 R Input (FC04)
208 208 T-phase grid current (meter or CT)Grid_Current_T_Meter · Table gain 10. int16 1 A 0.1 R Input (FC04)
184 184 Communication state of meter 1Meter1_Communication_State · 0: communication error, 1: normal. uint16 1 1 R Input (FC04)
185 185 Communication state of meter 2Meter2_Communication_State · 0: communication error, 1: normal. uint16 1 1 R Input (FC04)
168 168 Power value of meter 2 or CT2Feedin_Power_Meter2 · The table gives data format S32 and an address range of two registers but prints length 1. Treated here as two registers. Positive when used under the MicroGrid function. Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 W 1 R Input (FC04)
178 178 R-phase power of meter 2 or CT2Feedin_Power_R_Phase_Meter2 · The table gives data format S32 and an address range of two registers but prints length 1. Treated here as two registers. Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 W 1 R Input (FC04)
180 180 S-phase power of meter 2 or CT2Feedin_Power_S_Phase_Meter2 · The table gives data format S32 and an address range of two registers but prints length 1. Treated here as two registers. Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 W 1 R Input (FC04)
182 182 T-phase power of meter 2 or CT2Feedin_Power_T_Phase_Meter2 · The table gives data format S32 and an address range of two registers but prints length 1. Treated here as two registers. Low word at the lower address (the table marks the first address LSB and the second MSB). int32 2 W 1 R Input (FC04)
23 23 BMS1 connection stateBMS1_Connect_State · 0: disconnected, 1: connected. uint16 1 1 R Input (FC04)
31 31 BMS2 connection stateBMS2_Connect_State · 0: disconnected, 1: connected. uint16 1 1 R Input (FC04)
24 24 BMS1 ambient temperatureBat1_Temperature int16 1 degC 1 R Input (FC04)
305 305 BMS2 ambient temperatureBat2_Temperature int16 1 degC 1 R Input (FC04)
20 20 BMS1 voltageBat_Voltage_Charge1 · Table gain 10. int16 1 V 0.1 R Input (FC04)
21 21 BMS1 currentBat_Current_Charge1 · Table gain 10. int16 1 A 0.1 R Input (FC04)
22 22 BMS1 powerBat_Power_Charge1 int16 1 W 1 R Input (FC04)
295 295 BMS2 voltageBat_Voltage_Charge2 · Table gain 10. int16 1 V 0.1 R Input (FC04)
296 296 BMS2 currentBat_Current_Charge2 · Table gain 10. int16 1 A 0.1 R Input (FC04)
297 297 BMS2 powerBat_Power_Charge2 int16 1 W 1 R Input (FC04)
25 25 BMS charging and discharging statusBDC_Status · 0: discharge, 1: charge, 2: stop. uint16 1 1 R Input (FC04)
28 28 BMS1 SOCBattery1_Capacity uint16 1 % 1 R Input (FC04)
301 301 BMS2 SOCBattery2_Capacity uint16 1 % 1 R Input (FC04)
191 191 BMS1 SOHBMS1_SOH uint16 1 % 1 R Input (FC04)
785 785 BMS2 SOHBMS2_SOH uint16 1 % 1 R Input (FC04)
36 36 BMS1 maximum charge currentBMS1_Charge_Max_Current · Table gain 10. uint16 1 A 0.1 R Input (FC04)
37 37 BMS1 maximum discharge currentBMS1_Discharge_Max_Current · Table gain 10. uint16 1 A 0.1 R Input (FC04)
38 38 BMS1 battery capacityBMS1_Battery_Capacity · Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 Wh 1 R Input (FC04)
186 186 BMS1 cell high temperatureBMS1_Cell_Temp_High · Table gain 10. int16 1 degC 0.1 R Input (FC04)
187 187 BMS1 cell low temperatureBMS1_Cell_Temp_Low · Table gain 10. int16 1 degC 0.1 R Input (FC04)
188 188 BMS1 cell high voltageBMS1_Cell_Voltage_High · Table gain 1000. uint16 1 V 0.001 R Input (FC04)
189 189 BMS1 cell low voltageBMS1_Cell_Voltage_Low · Table gain 1000. uint16 1 V 0.001 R Input (FC04)
777 777 BMS2 maximum charge currentBMS2_Charge_Max_Current · Table gain 10. uint16 1 A 0.1 R Input (FC04)
778 778 BMS2 maximum discharge currentBMS2_Discharge_Max_Current · Table gain 10. uint16 1 A 0.1 R Input (FC04)
768 768 BMS2 cell high temperatureBattery2_Temp_High · Table gain 10. int16 1 degC 0.1 R Input (FC04)
769 769 BMS2 cell low temperatureBattery2_Temp_Low · Table gain 10. int16 1 degC 0.1 R Input (FC04)
770 770 BMS2 cell high voltageBat2_Cell_Voltage_High · Table gain 1000. uint16 1 V 0.001 R Input (FC04)
771 771 BMS2 cell low voltageBat2_Cell_Voltage_Low · Table gain 1000. uint16 1 V 0.001 R Input (FC04)
162 162 Battery maximum allowed charge powerBat_Max_Allowed_Chg_Power · Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 W 1 R Input (FC04)
164 164 Battery maximum allowed discharge powerBat_Max_Allowed_Dischg_Power · Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 W 1 R Input (FC04)
80 80 Today's on-grid output energy (inverter grid port)Etoday_Togrid · Table gain 10. uint16 1 kWh 0.1 R Input (FC04)
82 82 Total on-grid output energy (inverter grid port)Etotal_Togrid · Table gain 10. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 kWh 0.1 R Input (FC04)
145 145 Today's on-grid input energy (inverter grid port)Echarge_Today · Table gain 10. uint16 1 kWh 0.1 R Input (FC04)
146 146 Total on-grid input energy (inverter grid port)Echarge_Total · Table gain 10. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 kWh 0.1 R Input (FC04)
144 144 Off-grid yield (register named Today), inverter EPS portOff_Grid_Yield_Today · The description column reads 'Total On-Grid output energy (Inverter EPS Port)' although the variable name says Today. Table gain 10. uint16 1 kWh 0.1 R Input (FC04)
142 142 Off-grid yield (register named Total), inverter EPS portOff_Grid_Yield_Total · Table gain 10. The description column reads 'Today's Off-Grid output energy' although the variable name says Total. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 kWh 0.1 R Input (FC04)
152 152 Today's output energy (meter 1 or CT1)Feedin_Energy_Today · Table gain 100. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 kWh 0.01 R Input (FC04)
72 72 Total output energy (meter 1 or CT1)Feedin_Energy_Total · Table gain 100. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 kWh 0.01 R Input (FC04)
154 154 Today's input energy (meter 1 or CT1)Consum_Energy_Today · Table gain 100. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 kWh 0.01 R Input (FC04)
74 74 Total input energy (meter 1 or CT1)Consum_Energy_Total · Table gain 100. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 kWh 0.01 R Input (FC04)
176 176 Today's input energy (meter 2 or CT2)Consum_Energy_Today_Meter2 · Table gain 100. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 kWh 0.01 R Input (FC04)
172 172 Total input energy (meter 2 or CT2)Consum_Energy_Total_Meter2 · Table gain 100. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 kWh 0.01 R Input (FC04)
174 174 Today's output energy (meter 2 or CT2)Feedin_Energy_Today_Meter2 · Table gain 100. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 kWh 0.01 R Input (FC04)
170 170 Total output energy (meter 2 or CT2)Feedin_Energy_Total_Meter2 · Table gain 100. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 kWh 0.01 R Input (FC04)
148 148 Total PV energy (inverter PV port)Solar_Energy_Total · Table gain 10. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 kWh 0.1 R Input (FC04)
150 150 Today's PV energy (inverter PV port)Solar_Energy_Today · Table gain 10. uint16 1 kWh 0.1 R Input (FC04)
29 29 Total battery discharge energy (inverter battery port)Bat_Discharge_Energy_Total · Table gain 10. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 kWh 0.1 R Input (FC04)
32 32 Today's battery discharge energy (inverter battery port)Bat_Discharge_Energy_Today · Table gain 10. uint16 1 kWh 0.1 R Input (FC04)
33 33 Total battery charge energy (inverter battery port)Bat_Charge_Energy_Total · Table gain 10. The LSB and MSB labels in the table read 0x1D and 0x1E, which looks like a copy error. Low word at the lower address (the table marks the first address LSB and the second MSB). uint32 2 kWh 0.1 R Input (FC04)
35 35 Today's battery charge energy (inverter battery port)Bat_Charge_Energy_Today · Table gain 10. uint16 1 kWh 0.1 R Input (FC04)
218 218 System on or offInverter_Output_Switch · Read at this address. Write with function 0x06 to address 0x001C (28). 1 is on, 0 is off. Marked as limited EEPROM writes. Parameter writes need the unlock password written first (p. 39 example). uint16 1 1 RW Holding (FC03)
29 29 Safety codeSafety_Code · Read at this address. Write with function 0x06 to address 0x0009 (9). Codes in Appendix D (p. 93). Marked as limited EEPROM writes. uint16 1 1 RW Holding (FC03)
139 139 Inverter work modeInverter_Work_Mode · Read at this address. Write with function 0x06 to address 0x001F (31). 0 Self use, 1 Feed-in priority, 2 Back up, 3 Manual, 4 Peak shaving, 5 TOU. Marked as limited EEPROM writes. uint16 1 1 RW Holding (FC03)
147 147 Self use mode: discharge cut-off SOC (high byte) and charge from grid enable (low byte)SelfUse_Min_SOC_And_Grid_Charge · Read at this address. Write the two bytes with function 0x06 to 0x0061 (97, high byte, SOC 10 to 100 %) and 0x0062 (98, low byte, 0 disable, 1 enable). Marked as limited EEPROM writes. bitfield16 1 1 RW Holding (FC03)
148 148 Self use mode: charge upper SOCSelfUse_Charge_Upper_SOC · Read at this address. Write with function 0x06 to address 0x0063 (99). Range 10 to 100 %. Enabled if the charge from grid enable is 1. uint16 1 % 1 RW Holding (FC03)
149 149 Feed-in mode: charging cut-off SOC (high byte) and discharging cut-off SOC (low byte)Feedin_Soc_Limits · Read at this address. Write with function 0x06 to 0x0064 (100, charging cut-off SOC) and 0x0065 (101, discharging cut-off SOC), each 10 to 100 %. bitfield16 1 1 RW Holding (FC03)
150 150 Backup mode: charging cut-off SOC (high byte) and discharging cut-off SOC (low byte)BackUp_Soc_Limits · Read at this address. Write with function 0x06 to 0x0066 (102, charging cut-off SOC) and 0x0067 (103, discharging cut-off SOC), each 30 to 100 %. bitfield16 1 1 RW Holding (FC03)
140 140 Manual mode commandManual_Mode · Read at this address. Write with function 0x06 to address 0x0020 (32). 0 Stop charging and discharging, 1 Force charging, 2 Force discharging. uint16 1 1 RW Holding (FC03)
37 37 Export power control limit percentage (inverter grid port)Export_Power_Percentage · Read at this address. Write with function 0x06 to address 0x0011 (17). Range 0 to 100 %. uint16 1 % 1 RW Holding (FC03)
215 215 Main breaker current limitMain_Breaker_Current_Limit · Read at this address. Write with function 0x06 to address 0x0071 (113). Range 10 to 100 A (X1) or 10 to 250 A (X3). uint16 1 A 1 RW Holding (FC03)
92 92 Inverter maximum battery current settingInv_Max_Set_Bat_Cur · Table gain 10. Read only (no write address listed). uint16 1 A 0.1 R Holding (FC03)
144 144 Battery charge maximum currentBat_Charge_Max_Current · Read at this address. Write with function 0x06 to address 0x0024 (36). Table gain 10. Range is referenced to Inv_Max_Set_Bat_Cur. uint16 1 A 0.1 RW Holding (FC03)
145 145 Battery discharge maximum currentBat_Discharge_Max_Current · Read at this address. Write with function 0x06 to address 0x0025 (37). Table gain 10. Range is referenced to Inv_Max_Set_Bat_Cur. uint16 1 A 0.1 RW Holding (FC03)
270 270 Lithium battery charger upper limitBat_Charge_Max_SOC · Read at this address. Write with function 0x06 to address 0x00E0 (224). Range 10 to 100 %. uint16 1 % 1 RW Holding (FC03)
277 277 Meter or CT selectionMeter_CT_Select · Read at this address. Write with function 0x06 to address 0x00AA (170). 0 Meter, 1 CT. uint16 1 1 RW Holding (FC03)
265 265 Meter 1 IDMeter1_ID · Read at this address. Write with function 0x06 to address 0x00A1 (161). Range 1 to 200. uint16 1 1 RW Holding (FC03)
266 266 Meter 2 IDMeter2_ID · Read at this address. Write with function 0x06 to address 0x00A2 (162). Range 1 to 200. uint16 1 1 RW Holding (FC03)
267 267 Meter or CT 1 directionDirection_Meter_CT1 · Read at this address. Write with function 0x06 to address 0x00A4 (164). 0 Positive, 1 Negative. uint16 1 1 RW Holding (FC03)
268 268 Meter or CT 2 directionDirection_Meter_CT2 · Read at this address. Write with function 0x06 to address 0x00A5 (165). 0 Positive, 1 Negative. uint16 1 1 RW Holding (FC03)
185 185 Output frequency in EPS (off-grid) modeEPS_Frequency · Read at this address. Write with function 0x06 to address 0x0045 (69). 0 is 50 Hz, 1 is 60 Hz. uint16 1 1 RW Holding (FC03)
160 160 SOC to charge to before restoring EPS (off-grid) modeEPS_Restart_Soc · Read at this address. Write with function 0x06 to address 0x008E (142). Between 15 and 100 %, and at least EPS_MinSoc plus 5. uint16 1 % 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: SolaX Power Energy Storage Inverter MODBUS Communication protocols (community.symcon.de)

Version V001.02, revision dated 2026/2/10, SolaX Power Network Technology (Zhejiang) Co., Ltd. (copy hosted by a third party; a vendor-hosted copy could not be fetched, and the SolaX knowledge base tells integrators to ask SolaX for the document), p. 2-5, 11-13, 18-37, 38-54, 83-87. 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