TapHome

SolaX Hybrid X1/X3 Gen 4

Modbus RTU
Beküldő
Utoljára frissítve: 03. 2026
SolaX Hybrid X1/X3 Gen 4

A SolaX X1-HYBRID és X3-HYBRID Gen 4 energiatároló inverterek egyfázisú (3–7,5 kW) és háromfázisú (5–15 kW) konfigurációkat egyaránt támogatnak. A TapHome sablon Modbus RTU-n keresztül kommunikál RS-485 felett, és bemeneti, illetve holding regisztereket olvas az akkumulátor töltöttségi állapotához, a PV-string teljesítményéhez, a hálózati teljesítményáramláshoz, az energiamennyiségekhez, a töltési módhoz és az éjszakai töltési SOC-hoz. Minden írási szkript megjegyezve van, így a sablon hatékonyan csak olvasható.

A sablon ezenkívül átfogó hibakeresést valósít meg a 32 bites inverter hibakódok és a 16 bites kezelői hibakódok elemzésével, amelyeket egyedi hibákként jelent a TapHome-ban.

Hardver csatlakoztatása

A SolaX Gen 4 inverter RS-485 COM portot biztosít a Modbus RTU kommunikációhoz az alsó panelen. A COM port RJ45 csatlakozót használ.

SolaX X3-HYBRID G4 alsó panel — csatlakozó elrendezés COM, BMS, Meter/CT, PV, BAT és GRID csatlakozókkal

A COM csatlakozó tűkiosztása (RJ45):

KiosztásLeírás
1Drycontact_A(in)Rendszerkapcsoló csatlakozás
2Drycontact_B(in)Rendszerkapcsoló csatlakozás
3+13V
4485ARS-485 data+ (TapHome-hoz)
5485BRS-485 data− (TapHome-hoz)
6GNDFöldelés
7Drycontact_A(out)Generátor csatlakozás
8Drycontact_B(out)Generátor csatlakozás

Csatlakoztassa a TapHome-ot az inverter COM portjához:

  • Pin 4 (485A) az inverter COM portján a TapHome RS-485 A+/D+ csatlakozójához
  • Pin 5 (485B) az inverter COM portján a TapHome RS-485 B-/D- csatlakozójához
  • Pin 6 (GND) — ajánlott a megbízható kommunikációhoz

Az inverter maga nem támogatja natívan a Modbus TCP-t. A Modbus TCP csak a SolaX monitorozó modulon (Wi-Fi dongle) keresztül érhető el, és a TapHome sablon nem használja.

Olyan telepítésekhez, ahol az RS-485 bekötés nem praktikus, a SolaX Inverter (Cloud API) sablon monitorozást biztosít a SolaxCloud platformon keresztül HTTPS-en — fizikai csatlakozás nélkül. Az összes SolaX invertertípust támogatja, nem csak a Gen 4 Hybridet.

Néhány holding regiszter korlátozott EEprom írási ciklusokkal van megjelölve. A túlzott írási műveletek visszafordíthatatlan hardverschárosodást okozhatnak. A TapHome sablon minden írási szkriptet letiltott, így ez az aktuális sablonnál nem jelent problémát.

Konfiguráció

A Modbus kommunikáció engedélyezése

A Modbus RTU alapértelmezés szerint elérhető az inverter RS-485 COM portján. A következő paramétereknek egyezniük kell az inverter és a TapHome modul között:

  1. Slave ID – alapértelmezés szerint 1, az inverter kijelzőjén konfigurálható
  2. Baud rate – az inverter alapértelmezése 19200 baud, de a TapHome sablon 9600 baudot használ. Módosítsa az egyiket, hogy egyezzenek
  3. Adatformátum – 8 adatbit, nincs paritás, 1 stopbit

Konfigurálás az inverter kijelzőjén: Menu > Setting > Advance Setting > Modbus. Állítsa be a slave-azonosítót és a baud rate-et. A baud rate a H:0x00B0 holding regiszterből is olvasható, és a 0x00CA regiszteren keresztül írható (értékek: 0=115200, 1=57600, 2=56000, 3=38400, 4=19200, 5=14400, 6=9600).

Az inverter beállításainak módosítása elkerülhető, ha a TapHome modul beállításaiban a baud rate-et 19200-ra állítja, hogy megfeleljen az inverter alapértelmezettjének.

Kommunikációs időzítés

A protokoll legalább 1 másodperces minimális intervallumot igényel az egymást követő Modbus utasítások között, és legalább 100 ms karakterköz-időtúllépést. A válaszidőtúllépés 1 másodperc. A TapHome sablon eszközönkénti egyedi lekérdezési intervallumokat használ (2,5 s-tól 150 s-ig), amelyek ezeket a feltételeket teljesítik.

RS-485 COM port funkció

A H:0x013E (485CommFunSelect) regiszter meghatározza, hogy az RS-485 port Modbus kommunikációhoz (0 érték) vagy EV töltő kommunikációhoz (1 érték) kerül-e felhasználásra. Ügyeljen arra, hogy TapHome integrációhoz ez 0 (Modbus 485) értékre legyen állítva.

Eszközfunkciók

Akkumulátor-felügyelet
  • Battery SOC – az akkumulátor töltöttségi állapotát olvassa (A:0x1C) százalékban. A nyers regiszterérték 1%-os egységekben 100-zal van osztva a TapHome 0–1 analóg bemeneti tartományhoz (pl. 85% → 0,85 lesz)
  • Battery Temperature – az akkumulátor hőmérsékletét olvassa (A:0x18) Celsius-fokban. Lekérdezés 80 másodpercenként
Napelemes PV teljesítmény
  • PV1 Power – a PV-string 1 egyenáramú teljesítménye (A:0x0A), kW-ban megjelenítve a wattból /1000 konverzió után
  • PV2 Power – a PV-string 2 egyenáramú teljesítménye (A:0x0B), kW-ban megjelenítve a wattból /1000 konverzió után
Hálózati teljesítmény és energiamérés
  • Grid Feed-in Power – pillanatnyi hálózati teljesítmény (A:0x46, LittleEndianInt32) kW-ban. A pozitív értékek hálózatba táplálást, a negatív értékek hálózatból való fogyasztást jeleznek
  • Daily / Actual Energy – kombinálja az inverter AC portjáról érkező napi energiakimenetet (A:0x50, 0,1 kWh felbontás) és a valós idejű hálózati teljesítményt (A:0x02) kW-ban. A hálózati teljesítmény regiszter X1-specifikus (egyfázisú)
  • Total Energy – az inverter AC portjáról érkező teljes kumulatív energiakimenet (A:0x52, LittleEndianInt32), MWh-ban megjelenítve
Töltési mód és éjszakai töltés
  • Charger Use Mode – az aktív naptöltési módot olvassa (H:0x8B): Self Use Mode (0), Feedin Priority (1), Backup Mode (2) vagy Manual Mode (3). A 4–9 értékek fenntartottak. Az írási regiszter (H:0x1F) a sablonban létezik, de megjegyezve van, így csak olvasható
  • Self-Use Night Charge SOC – az éjszakai töltés felső SOC-célértékét olvassa Self-Use módban (H:0x94) százalékban. Az írási regiszter (H:0x63) és az engedélyező regiszter (H:0x62) egyaránt megjegyezve van, így az éjszakai töltés konfigurációja nem módosítható TapHome-on keresztül
Hibakeresés

A modul szintű ReadScript figyeli az inverter üzemmódját (A:0x09) és két hibaregisztert:

  • Run Mode hibák – hibát vált ki, ha a Run Mode 3 (Hiba) vagy 4 (Állandó hiba)
  • Inverter hibakódok (A:0x40) – 32 bites bitmapa 28 egyedi hibára elemezve, beleértve hálózati feszültség-/frekvenciahibákat, PV feszültséghibákat, akkumulátorhibákat, szigetelési hibákat, túlmelegedést, túláramvédelmet, relé hibákat és kommunikációs hibákat
  • Kezelői hibakódok (A:0x43) – 16 bites bitmapa teljesítménytípus-hibákra, EEPROM hibákra, NTC érzékelő problémákra, akkumulátor-hőmérséklet figyelmeztetésekre, mérőeszköz-hibákra és ventilátor-hibákra elemezve

A Run Mode szolgáltatás attribútum a modulon szövegként jeleníti meg az inverter aktuális állapotát: Waiting, Checking, Normal, Fault, Permanent Fault, Update, Off-grid waiting, Off-grid, Self Testing, Idle vagy Standby.

További lehetőségek

Az inverter átfogó regisztertérképet kínál több mint 300 holding regiszterrel és 200 bemeneti regiszterrel. A sablonban még nem implementált figyelemre méltó funkciók közé tartozik a PV-stringenkénti feszültség- és árammérés (A:0x03–0x06), akkumulátor feszültség/áram/teljesítmény mérések, BMS csatlakozási állapot, hálózati be/ki állapot, X3 fázonkénti hálózati feszültség/áram/teljesítmény (12 regiszter A:0x6A–0x75), kumulált hálózati betáplálás és fogyasztás energiája (mérőn keresztül), teljes napenergia-termelés, BMS felhasználói SOC és SOH, valamint akkumulátor cellák minimális/maximális hőmérséklete és feszültsége. Az írási funkciók közé tartozik a rendszer be/ki vezérlés, töltési mód kiválasztása, kényszeres töltés/kisütés, minimális kisütési SOC, éjszakai töltési konfiguráció és távoli teljesítményszabályozás aktív/reaktív teljesítménycélokkal. Ezek egy jövőbeli sablon-frissítésben adhatók hozzá.

A sablon jelenleg az X1 (egyfázisú) hálózati teljesítményt olvassa az A:0x02 regiszterből. X3 (háromfázisú) telepítéseknél a fázonkénti hálózati teljesítmény az A:0x6C, A:0x70 és A:0x74 regisztereken érhető el, de az aktuális sablonban nem szerepel.

Hibaelhárítás

Nincs kommunikáció az inverterrel
  1. Ellenőrizze az RS-485 kábel csatlakozásait: A+ az A+-hoz, B- a B–hez, GND a GND-hez
  2. Ellenőrizze, hogy a H:0x013E regiszter 0-ra van-e állítva (Modbus 485 mód, nem EV töltő)
  3. Győződjön meg arról, hogy a baud rate egyezik az inverter és a TapHome között – az inverter alapértelmezette 19200, a sablonban 9600
  4. Ellenőrizze, hogy a TapHome Slave ID-ja egyezik-e az inverter beállításával (alapértelmezés: 1)
  5. Győződjön meg arról, hogy nincs más Modbus master csatlakoztatva ugyanahhoz az RS-485 buszhoz – a Modbus csak egyetlen mastert támogat
Helytelen Battery SOC leolvasás

A Battery SOC regiszter (A:0x1C) 1%-os egységekben jelenti az értékeket. A sablon 100-zal oszt a TapHome 0–1 analóg bemeneti tartományhoz. Ha a megjelenített érték helytelennek tűnik, ellenőrizze, hogy a TapHome eszköz AnalogInput-ként van-e konfigurálva (0–1 tartomány, nem 0–100).

Hálózati teljesítmény előjelkonvenció

A Grid Feed-in Power (A:0x46) olyan előjelkonvenciót alkalmaz, ahol a pozitív értékek exportot (termelés/hálózatba táplálás), a negatív értékek importot (hálózatból fogyasztás) jeleznek. A Daily/Actual Energy hálózati teljesítmény regisztere (A:0x02) szintén megjeleníthet negatív értékeket hálózatból való fogyasztás esetén.

X1 vs X3 regiszter különbségek

Néhány regiszter modell-specifikus. A hálózati feszültség (A:0x00), áram (A:0x01) és teljesítmény (A:0x02) X1 egyfázisú regiszterek. A háromfázisú X3 modelleknél a megfelelő fázonkénti leolvasások az A:0x6A–0x75 regisztereken találhatók. A sablon az X1 hálózati teljesítmény regisztert használja, amely X3 modelleken esetleg nem jelent helyesen.

Elérhető eszközök

SolaX Hybrid Gen 4 Modul
Szerviz attribútumok
ÜzemmódInverter üzemi állapota — Waiting, Checking, Normal, Fault, Permanent Fault, Update, Off-grid waiting, Off-grid, Self Testing, Idle, Standby

SOLAX Hybrid Gen 4

Olvasás (modul)
var reg := MODBUSR(A, 0x09, UInt16);
IF(reg = 3, ADDERROR("Run Mode Fault"));
IF(reg = 4, ADDERROR("Run Mode Permanent Fault"));
#error table  2-3 for x3
var x3 := MODBUSR(A, 0x0040, Uint32);
IF(GETBIT(x3, 0) = 1, ADDERROR("TZ Protect Fault"));
IF(GETBIT(x3, 1) = 1, ADDERROR("Grid Lost Fault"));
IF(GETBIT(x3, 2) = 1, ADDERROR("Grid Volt Fault"));
IF(GETBIT(x3, 3) = 1, ADDERROR("Grid Freq Fault"));
IF(GETBIT(x3, 4) = 1, ADDERROR("PV Volt Fault"));
IF(GETBIT(x3, 5) = 1, ADDERROR("Bus Volt Fault"));
IF(GETBIT(x3, 6) = 1, ADDERROR("Bat Volt Fault"));
IF(GETBIT(x3, 7) = 1, ADDERROR("AC10mins Volt Fault"));
IF(GETBIT(x3, 8) = 1, ADDERROR("DCI OCP Fault"));
IF(GETBIT(x3, 9) = 1, ADDERROR("DCV OCP Fault"));
IF(GETBIT(x3, 10) = 1, ADDERROR("SW OCP Fault"));
IF(GETBIT(x3, 11) = 1, ADDERROR("RC OCP Fault"));
IF(GETBIT(x3, 12) = 1, ADDERROR("Isolation Fault"));
IF(GETBIT(x3, 13) = 1, ADDERROR("Temp Over Fault"));
IF(GETBIT(x3, 14) = 1, ADDERROR("BatConnDir Fault"));
IF(GETBIT(x3, 15) = 1, ADDERROR("Off-grid Overload"));
IF(GETBIT(x3, 16) = 1, ADDERROR("Overload"));
IF(GETBIT(x3, 17) = 1, ADDERROR("Bat Power Low"));
IF(GETBIT(x3, 18) = 1, ADDERROR("BMS Lost"));
IF(GETBIT(x3, 19) = 1, ADDERROR("Fan Fault"));
IF(GETBIT(x3, 20) = 1, ADDERROR("Low Temp Fault"));
IF(GETBIT(x3, 23) = 1, ADDERROR("INV Volt Sample Fault"));
IF(GETBIT(x3, 24) = 1, ADDERROR("Inner Comm Fault"));
IF(GETBIT(x3, 25) = 1, ADDERROR("INV EEPROM Fault"));
IF(GETBIT(x3, 26) = 1, ADDERROR("RCD Fault"));
IF(GETBIT(x3, 27) = 1, ADDERROR("Grid Relay Fault"));
IF(GETBIT(x3, 28) = 1, ADDERROR("Off-grid Relay Fault"));
IF(GETBIT(x3, 29) = 1, ADDERROR("PV ConnDir Fault"));
IF(GETBIT(x3, 30) = 1, ADDERROR("Charger Relay Fault"));
IF(GETBIT(x3, 31) = 1, ADDERROR("Earth Relay Fault"));

#error 2-5 Manager error code
var err := MODBUSR(A, 0x0043, Uint16);
IF(GETBIT(err, 0) = 1, ADDERROR("Power Type Fault"));
IF(GETBIT(err, 1) = 1, ADDERROR("Port OC Warning"));
IF(GETBIT(err, 2) = 1, ADDERROR("Mgr EEPROM Fault"));
IF(GETBIT(err, 4) = 1, ADDERROR("NTC Sample Invalid"));
IF(GETBIT(err, 5) = 1, ADDERROR("Battery Temperature Low"));
IF(GETBIT(err, 6) = 1, ADDERROR("Battery Temperature High"));
IF(GETBIT(err, 9) = 1, ADDERROR("Meter Fault"));
IF(GETBIT(err, 10) = 1, ADDERROR("Bypass Relay Fault"));
IF(GETBIT(err, 11) = 1, ADDERROR("Fan 2 Fault"));
Szerviz attribútumok
Run Mode
SWITCH(MODBUSR(A, 0x09, UInt16), 
0, "Waiting",
1, "Checking",
2, "Normal",
3, "Fault",
4, "Permanent Fault",
5, "Update",
6, "Off-grid waiting",
7, "Off-grid",
8, "Self Testing ",
9, "Idle",
10, "Standby",
"Other"
);
Akkumulátor SOC Analóg bemenet Csak olvasható

Akkumulátor töltöttségi állapot százalékban (0–100%) — TapHome-ban 0–1 analóg bemenetként megjelenítve

Regiszter: A:0x1C UInt16 Egység: % numeric

Akkumulátor SOC

Bemeneti szint olvasása
MODBUSR(A, 0x1C, UInt16)/100
Akkumulátor hőmérséklete Hőmérséklet-érzékelő Csak olvasható
Regiszter: A:0x18 UInt16 Egység: °C numeric

Akkumulátor hőmérséklete

Hőmérséklet olvasása
MODBUSR(A,0x0018, UInt16)
Napi / aktuális energia Villanyóra Csak olvasható

Kombinálja a napi hálózatba táplált energiát (kWh) és a valós idejű hálózati teljesítményt (kW) — negatív hálózati teljesítmény importot jelez

Regiszter: A:0x50, A:0x02 UInt16, Int16 Egység: kWh / kW numeric

Napi / aktuális energia

Összes fogyasztás olvasása
MODBUSR(A, 0x50, UInt16) /10
Igény olvasása
MODBUSR(A,0x02, Int16)/1000
Töltési mód Többértékű kapcsoló Csak olvasható

Aktív naptöltési mód — Self Use, Feedin Priority, Backup vagy Manual (csak olvasható)

Regiszter: H:0x8BH:0x1F UInt16 numeric
Értékek / Állapotok: Self Use Mode · Feedin Priority · Backup Mode · Manual Mode

Töltési mód

Kapcsoló állapot olvasása
MODBUSR(H, 0x008B, Uint16)
Kapcsoló állapot írása
#MODBUSW(H, 0x001F, uint16, Mu)
Hálózati betáplálási teljesítmény Változó Csak olvasható

Pillanatnyi hálózati teljesítmény kW-ban — pozitív értékek exportot, negatív értékek importot jeleznek

Regiszter: A:0x46 LittleEndianInt32 Egység: kW numeric

Hálózati betáplálási teljesítmény

Olvasás
MODBUSR(A, 0x46,LittleEndianInt32)/1000
PV1 teljesítmény Változó Csak olvasható
Regiszter: A:0x0A UInt16 Egység: kW numeric

PV1 teljesítmény

Olvasás
MODBUSR(A,0x0a, UInt16)/1000
PV2 teljesítmény Változó Csak olvasható
Regiszter: A:0x0B UInt16 Egység: kW numeric

PV2 teljesítmény

Olvasás
MODBUSR(A,0x0b, UInt16)/1000
Éjszakai töltési SOC (saját felhasználás) Fényerőszabályzó Csak olvasható

Felső SOC célérték az éjszakai töltéshez saját felhasználási módban (csak olvasható, 10–100%)

Regiszter: H:0x94H:0x63 UInt16 Egység: % numeric

Éjszakai töltési SOC (saját felhasználás)

Inicializálás
#MODBUSWNE(H, 0x0062, Uint16, 1);
Szint olvasása
MODBUSR(H, 0x0094, Uint16) / 100
Szint írása
#MODBUSW(H, 0x0063, Uint16, Le * 100)
Teljes energia Változó Csak olvasható

Teljes kumulatív energiakimenet az inverter AC portjáról MWh-ban

Regiszter: A:0x52 LittleEndianInt32 Egység: MWh numeric

Teljes energia

Olvasás
MODBUSR(A, 0x52,LittleEndianInt32) / 1000
Kapcsolat: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Lehetséges fejlesztések (25)
  • A:0x00 Grid Voltage (X1) — 0.1V, UInt16. X3 per-phase voltages at A:0x6A/0x6E/0x72
  • A:0x01 Grid Current (X1) — 0.1A, Int16. X3 per-phase currents at A:0x6B/0x6F/0x73
  • A:0x03, A:0x04 PV Voltage 1 & 2 — 0.1V, UInt16. Useful for string-level diagnostics
  • A:0x05, A:0x06 PV Current 1 & 2 — 0.1A, UInt16. Useful for string-level diagnostics
  • A:0x08 Radiator Temperature — 1°C, Int16. Inverter internal radiator/heatsink temperature
  • A:0x14 Battery Voltage — 0.1V, Int16. Battery pack voltage
  • A:0x15 Battery Current — 0.1A, Int16. Positive=charge, negative=discharge
  • A:0x16 Battery Power — 1W, Int16. Positive=charging, negative=discharging
  • A:0x17 BMS Connect State — 0=Disconnected, 1=Connected. Critical for battery health monitoring
  • A:0x1A Grid Status — 0=OnGrid, 1=OffGrid. Important for backup/off-grid scenarios
  • A:0x48–0x49 Feed-in Energy Total (Meter) — 0.01kWh, UInt32 LE. Cumulative energy exported to grid via meter
  • A:0x4A–0x4B Consumed Energy Total (Meter) — 0.01kWh, UInt32 LE. Cumulative energy consumed from grid via meter
  • A:0x6A–0x75 X3 Per-Phase Grid Readings — Voltage/current/power/frequency per phase R/S/T. 12 registers total. Essential for 3-phase monitoring
  • A:0x94–0x95 Solar Energy Total — 0.1kWh, UInt32 LE. Cumulative PV production (both strings combined)
  • A:0x96 Solar Energy Today — 0.1kWh, UInt16. Today PV production
  • A:0xBE BMS User SOC — 1%, UInt16. SOC as reported by BMS (may differ from A:0x1C)
  • A:0xBF BMS User SOH — 1%, UInt16. Battery state of health
  • Write 0x001C System ON/OFF — 0=OFF, 1=ON. Remote system power control
  • Write 0x001F Charger Use Mode (write) — Write register exists in template but is COMMENTED OUT. 0=Self Use, 1=Feed-in, 2=Backup, 3=Manual
  • Write 0x0020 Manual Mode — 0=Stop, 1=Force charge, 2=Force discharge. Requires Charger Use Mode = 3 (Manual)
  • Write 0x0061 SelfUse Discharge Min SOC — 10%–100%. Minimum SOC before discharge stops in Self-Use mode
  • H:0x8C Manual Mode Readback — 0=Stop, 1=Force charge, 2=Force discharge. Readback of current manual mode setting
  • A:0xBA, A:0xBB Battery Temp High/Low — 0.1°C, Int16. Min/max battery cell temperatures
  • A:0xBC, A:0xBD Cell Voltage High/Low — 0.001V, UInt16. Min/max individual cell voltages. Important for battery health
  • Write 0x007C–0x0082 Remote Power Control — Active/reactive power targets, duration. Enables advanced energy management and grid services

Források