TapHome
Zajednica Beta Energija i mjerenje

SolaX X1/X3-Hybrid G4 — corrected monitoring (Modbus RTU)

Predložak zajednice za izmjenjivače SolaX X1-HYBRID i X3-HYBRID Gen 4 preko Modbus RTU na RS-485: službeni predložak TapHome Gen 4 s ispravljenim očitanjima (redoslijed riječi koda kvara, mjerilo ukupne energije, brojilo fotonaponske proizvodnje, temperatura baterije s predznakom). Očitava SOC i temperaturu baterije, snagu PV1/PV2, predaju u mrežu, energiju, način rada punjača i SOC noćnog punjenja; upisi su onemogućeni. 19200 baud, 8N1, Slave ID 1.

SolaXModbus RTU9 uređajaRevizija 1.0 Posljednje ažuriranje: 12. studenoga 2026.

Autor Martin Keller

SolaX X1/X3-Hybrid G4 — corrected monitoring (Modbus RTU)

Uvoz u aplikaciju TapHomeHardver › Modbus › Dodaj iz predloška

Preuzmite predložak
Na ovoj stranici

Upute za integraciju

SolaX X1-HYBRID i X3-HYBRID Gen 4 hibridni su izmjenjivači (inverteri) za pohranu energije s fotonaponskim panelima i baterijom, u jednofaznoj (3 – 7,5 kW) i trofaznoj (5 – 15 kW) izvedbi. Ovaj predložak zajednice službeni je predložak TapHome za SolaX Gen 4 s očitanjima ispravljenima prema protokolu SolaX Modbus (V3.21 i V001.02). Komunicira preko Modbus RTU na RS-485 i očitava stanje napunjenosti i temperaturu baterije, snagu fotonaponskih stringova, tok snage mreže, ukupnu energiju, način rada punjača i SOC noćnog punjenja. Nazivi uređaja isti su kao u službenom predlošku, pa se stariji uvoz može usporediti uređaj po uređaj. Sve skripte za upis ostaju zakomentirane, kao u službenom predlošku, pa predložak služi samo za čitanje.

Modul raščlanjuje i 32-bitni kod kvara izmjenjivača te 16-bitni kod pogreške upravljača (manager) i svaki kvar javlja u sustavu TapHome s vlastitim kodom pogreške.

Kako preuzeti predložak

Predlošci zajednice ne nude se na popisu predložaka u aplikaciji TapHome. Prijavite se na portal.taphome.com, preuzmite XML ovog predloška i uvezite ga u centralnu jedinicu Core. Modul koji je ranije uvezen iz službenog predloška SolaX Hybrid X1/X3 Gen 4 ne ažurira se sam: uvezite ovaj predložak kao novi modul ili ispravite skripte starog modula prema tablici u odjeljku „Što ovaj predložak ispravlja” niže.

Hardversko spajanje

Izmjenjivač SolaX Gen 4 na donjoj ploči ima priključak RS-485 COM za komunikaciju Modbus RTU. Priključak COM koristi konektor RJ45.

Donja ploča SolaX X3-HYBRID G4 — raspored priključaka COM, BMS, Meter/CT, PV, BAT i GRID

Raspored pinova priključka COM (RJ45):

PinDodjelaOpis
1Drycontact_A(in)Priključak sklopke sustava
2Drycontact_B(in)Priključak sklopke sustava
3+13V—
4485ARS-485 data+ (za TapHome)
5485BRS-485 data− (za TapHome)
6GNDMasa
7Drycontact_A(out)Spoj generatora
8Drycontact_B(out)Spoj generatora

TapHome spojite na priključak COM izmjenjivača:

  • Pin 4 (485A) na priključku COM izmjenjivača na A+/D+ na TapHome RS-485
  • Pin 5 (485B) na priključku COM izmjenjivača na B-/D- na TapHome RS-485
  • Spoj pina 6 (GND) preporučuje se za pouzdanu komunikaciju

Priručnik SolaX propisuje mrežni kabel CAT5E stisnut u utikač RJ45 koji se isporučuje uz izmjenjivač i duljinu kabela COM od najviše 30 m.

Pin 3 (+13V) i pin 6 (GND) ne smiju se međusobno spojiti. Izolirajte pinove koji se ne koriste.

Sam izmjenjivač ne podržava izvorno Modbus TCP. Modbus TCP dostupan je samo preko modula za nadzor SolaX (Wi-Fi dongl) i ovaj ga predložak ne koristi.

Za instalacije u kojima ožičenje RS-485 nije praktično, predložak SolaX Inverter (Cloud API) omogućuje praćenje preko platforme SolaxCloud putem HTTPS-a, bez fizičkog spajanja. Podržava sve vrste izmjenjivača SolaX, ne samo Gen 4 Hybrid.

Način rada punjača i postavke noćnog punjenja registri su EEPROM-a u izmjenjivaču (SolaX ih označava sa ★, oko milijun ciklusa upisa). Prekomjerni upisi mogu nepovratno oštetiti hardver, zato na njima nikada ne uključujte upis koji se izvodi periodički. Ovaj predložak ima onemogućene sve skripte za upis.

Konfiguracija

Uključivanje komunikacije Modbus

Modbus RTU je prema zadanim postavkama dostupan na priključku RS-485 COM izmjenjivača. Sljedeći parametri moraju biti isti na izmjenjivaču i u modulu TapHome:

  1. Slave ID — zadano 1, može se postaviti na zaslonu izmjenjivača. Predložak ga traži kao jedini parametar uvoza, Modbus Slave ID (zadano 1)
  2. Brzina prijenosa — 19200 baud, tvornička postavka SolaX; predložak također koristi 19200. Ako je izmjenjivač postavljen na drugu brzinu (na primjer 9600), promijenite postavku izmjenjivača ili brzinu sučelja TapHome tako da budu iste
  3. Format podataka — 8 podatkovnih bitova, bez pariteta, 1 stop bit

Za postavljanje na zaslonu izmjenjivača: Menu > Setting > Advance Setting > Modbus. Postavite slave adresu i brzinu prijenosa. Za napredne postavke potrebna je lozinka instalatera, koju možete dobiti od distributera. Brzina prijenosa može se očitati i iz holding registra H:0x00B0, a upisati preko registra 0x00CA (vrijednosti: 0=115200, 1=57600, 2=56000, 3=38400, 4=19200, 5=14400, 6=9600).

U sustavu TapHome predložak se zatim uvozi na sučelje RS-485 Modbus RTU centralne jedinice Core, postavljeno na istu brzinu i isti format podataka, sa Slave ID-om izmjenjivača.

Vremenski parametri komunikacije

Protokol zahtijeva najmanji razmak od 1 sekunde između uzastopnih Modbus naredbi i vrijeme čekanja između znakova od najmanje 100 ms. Vrijeme čekanja na odgovor je 1 sekunda. Predložak koristi zasebne intervale očitavanja za svaki uređaj (od 2,5 s do 150 s) koji zadovoljavaju ta ograničenja.

Funkcija priključka RS-485 COM

Registar H:0x013E (485CommFunSelect) određuje koristi li se priključak RS-485 za komunikaciju Modbus (vrijednost 0) ili za komunikaciju s punionicom (EV Charger, vrijednost 1). Za integraciju sa sustavom TapHome mora biti postavljen na 0 (Modbus 485).

Mogućnosti uređaja

Praćenje baterije

  • Baterija (SOC) — očitava stanje napunjenosti baterije (A:0x001C) u postocima, svakih 15 sekundi. Neobrađena vrijednost registra u jedinicama od 1 % dijeli se sa 100 za raspon analognog ulaza 0 – 1 u sustavu TapHome (npr. 85 % postaje 0,85)
  • Battery Temperature — očitava temperaturu baterije (A:0x0018) u Celzijevim stupnjevima kao vrijednost s predznakom (Int16), pa se temperature ispod 0 °C prikazuju ispravno. Očitava se svakih 80 sekundi

Fotonaponska snaga

  • PV1 — izlazna DC snaga fotonaponskog stringa 1 (A:0x000A), prikazana u kW nakon pretvorbe iz vata (/1000)
  • PV2 — izlazna DC snaga fotonaponskog stringa 2 (A:0x000B), prikazana u kW nakon pretvorbe iz vata (/1000)

PV1 i PV2 obične su vrijednosti bez vrste energije, pa se u Energy Dashboardu ne broje dvaput.

Mjerenje snage i energije mreže

  • Purchase/Feed to Grid — trenutačna snaga mreže (A:0x0046–0x0047, LittleEndianInt32) u kW, obična vrijednost bez vrste energije. Pozitivne vrijednosti znače predaju u mrežu, negativne preuzimanje iz mreže. Izmjenjivač tu vrijednost preuzima od brojila ili strujnog transformatora (CT) koji je spojen na njega
  • Daily/Actual Energy — brojilo fotonaponske proizvodnje za Energy Dashboard. Njegova snaga je PV1 + PV2 (A:0x000A + A:0x000B) u kW, a ukupna vrijednost je ukupna fotonaponska energija (A:0x0094–0x0095, SolarEnergyTotal, jedinice od 0,1 kWh) u kWh. Unatoč nazivu, ukupna se vrijednost noću ne vraća na nulu
  • Total Energy — ukupna energija s AC priključka izmjenjivača od početka rada (A:0x0052–0x0053, LittleEndianUint32, jedinice od 0,1 kWh), prikazana u kWh

Način rada punjača i noćno punjenje

  • Charger Use Mode — očitava aktivni način rada solarnog punjača (H:0x008B): Self Use Mode (0), Feedin Priority (1), Backup Mode (2) ili Manual Mode (3). Registar za upis (H:0x001F) postoji u predlošku, ali je zakomentiran, pa je uređaj samo za čitanje
  • SelfUse Night Charge — očitava gornju ciljnu vrijednost SOC za noćno punjenje u načinu Self Use (H:0x0094) u postocima. Registar za upis (H:0x0063) i registar za uključivanje (H:0x0062) su zakomentirani, pa se postavke noćnog punjenja ne mogu mijenjati preko sustava TapHome

Otkrivanje kvarova

Skripta čitanja modula prati način rada izmjenjivača (A:0x0009) i dva registra pogrešaka. Svaki kvar ima vlastiti kod pogreške:

  • Kvarovi Run mode (način rada) — pogreška 1 kada je način rada 3 (Fault), pogreška 2 kada je 4 (Permanent Fault)
  • Kod kvara izmjenjivača (A:0x0040–0x0041, LittleEndianUint32) — 30 pojedinačnih kvarova s kodovima 100 – 131 (100 + broj bita), uključujući kvarove napona/frekvencije mreže, kvarove fotonaponskog napona, kvarove baterije, kvarove izolacije, pregrijavanje, zaštitu od prekomjerne struje, kvarove releja i komunikacijske pogreške. Nazivi kvarova slijede tablicu za X3 iz protokola SolaX
  • Kod pogreške upravljača (manager) (A:0x0043) — kodovi 200 – 211 (200 + broj bita) za kvarove vrste napajanja, pogreške EEPROM-a, probleme sa senzorom NTC, nisku/visoku temperaturu baterije, kvarove brojila, bypass releja i ventilatora. Port OC Warning (201) javlja se kao upozorenje, ostali kao pogreške

Servisni atribut Run mode na modulu prikazuje trenutačno stanje izmjenjivača kao tekst: Waiting, Checking, Normal, Fault, Permanent fault, Update, Off-grid waiting, Off-grid, Self testing, Idle ili Standby.

Što ovaj predložak ispravlja

Službeni predložak TapHome SolaX Hybrid X1/X3 Gen 4 pogrešno očitava nekoliko registara (provjereno prema protokolu SolaX Modbus V3.21 i V001.02). Ovaj ih predložak ispravlja:

GdjeSlužbeni predložakOvaj predložakPosljedica pogreške u službenom predlošku
Modul — skripta čitanjavar x3 := MODBUSR(A, 0x0040, Uint32);VAR inv := MODBUSR(A, 0x0040, LittleEndianUint32);Dvije polovice 32-bitnog koda kvara zamijenjene su: kvar u bitu 1 (Grid Lost Fault) javlja se kao bit 17 (Bat Power Low)
Total EnergyMODBUSR(A, 0x52, LittleEndianInt32) / 1000MODBUSR(A, 0x0052, LittleEndianUint32) / 10Vrijednost 100× premala (registar broji u jedinicama od 0,1 kWh)
Daily/Actual Energy — ukupnoMODBUSR(A, 0x50, UInt16) /10MODBUSR(A, 0x0094, LittleEndianUint32) / 100x0050 je dnevni brojač AC priključka izmjenjivača koji svake noći padne na 0; 0x0094 je ukupna fotonaponska energija
Daily/Actual Energy — snagaMODBUSR(A,0x02, Int16)/1000(MODBUSR(A, 0x000A, UInt16) + MODBUSR(A, 0x000B, UInt16)) / 10000x0002 je snaga mreže jednofaznih modela X1, a ne fotonaponska proizvodnja; na mnogim jedinicama X3 očitava 0
Battery TemperatureMODBUSR(A,0x0018, UInt16)MODBUSR(A, 0x0018, Int16)Ispod 0 °C službeni predložak prikazuje oko 65535 °C
Brzina sučelja9600 baud19200 baud19200 je tvornička postavka SolaX

S ispravljenim skriptama brojilo Daily/Actual Energy mjeri fotonaponsku proizvodnju (PV1 + PV2), što i očekuje njegova vrsta energije u Energy Dashboardu. PV1, PV2 i Purchase/Feed to Grid više nemaju vrstu energije, nego su obične vrijednosti. Svi upisi ostaju onemogućeni, kao u službenom predlošku.

Rješavanje problema

Nema komunikacije s izmjenjivačem

  1. Provjerite spojeve kabela RS-485: A+ na A+, B- na B-, GND na GND
  2. Provjerite je li registar H:0x013E postavljen na 0 (način Modbus 485, ne EV Charger)
  3. Provjerite je li brzina prijenosa na izmjenjivaču i u sustavu TapHome ista: predložak koristi 19200, tvorničku postavku izmjenjivača; ako je izmjenjivač postavljen na 9600, jednu stranu treba promijeniti
  4. Provjerite odgovara li Modbus Slave ID u sustavu TapHome postavci izmjenjivača (zadano: 1)
  5. Provjerite da na istu sabirnicu RS-485 nije spojen nijedan drugi Modbus master: Modbus podržava samo jednog mastera

Vrijednosti izgledaju kao u službenom predlošku

Ako je Total Energy 100× premala, ako Daily/Actual Energy svake noći padne na 0 ili ako Battery Temperature ispod nule pokazuje oko 65535 °C, modul još uvijek izvodi skripte službenog predloška. Modul se ne ažurira sam iz novijeg predloška: uvezite ovaj predložak kao novi modul ili ispravite skripte prema gornjoj tablici.

Netočno očitanje uređaja Baterija (SOC)

Registar uređaja Baterija (SOC) (A:0x001C) javlja vrijednosti u jedinicama od 1 %. Predložak ih dijeli sa 100 za raspon analognog ulaza 0 – 1 u sustavu TapHome. Ako se prikazana vrijednost čini pogrešnom, provjerite je li uređaj TapHome konfiguriran kao analogni ulaz (raspon 0 – 1, ne 0 – 100).

Predznak snage mreže

Purchase/Feed to Grid (A:0x0046) koristi konvenciju predznaka u kojoj pozitivne vrijednosti znače predaju (izvoz u mrežu), a negativne preuzimanje (potrošnju iz mreže). Izmjenjivač tu vrijednost dobiva od svojeg brojila ili strujnog transformatora (CT), pa ovisi o ispravno spojenom brojilu ili CT-u.

Razlike između X1 i X3

Predložak očitava fotonaponsku snagu (A:0x000A i A:0x000B) umjesto registra snage mreže za X1, pa brojilo Daily/Actual Energy jednako radi na modelima X1 i X3. Nazivi kvarova slijede tablicu za X3 iz protokola SolaX. Na izmjenjivaču X1 neki bitovi kvarova znače druge kvarove: bit 9 i većina bitova od bita 15 naviše (na primjer, bit 15 je na X1 Missed CT Fault, a na X3 Off-grid Overload).

Dostupni uređaji 9

Ovi se uređaji pojavljuju u TapHomeu nakon uvoza.

SolaX X3-Hybrid G4 Modul
Servisni atributi
Run mode

SolaX X3-Hybrid G4

Čitanje (modul)
VAR mode := MODBUSR(A, 0x0009, UInt16);
IF(mode = 3, ADDERROR(1, "Inverter fault (run mode 3)"));
IF(mode = 4, ADDERROR(2, "Inverter permanent fault (run mode 4)"));
VAR inv := MODBUSR(A, 0x0040, LittleEndianUint32);
IF(GETBIT(inv, 0) = 1, ADDERROR(100, "TZ Protect Fault"));
IF(GETBIT(inv, 1) = 1, ADDERROR(101, "Grid Lost Fault"));
IF(GETBIT(inv, 2) = 1, ADDERROR(102, "Grid Volt Fault"));
IF(GETBIT(inv, 3) = 1, ADDERROR(103, "Grid Freq Fault"));
IF(GETBIT(inv, 4) = 1, ADDERROR(104, "PV Volt Fault"));
IF(GETBIT(inv, 5) = 1, ADDERROR(105, "Bus Volt Fault"));
IF(GETBIT(inv, 6) = 1, ADDERROR(106, "Bat Volt Fault"));
IF(GETBIT(inv, 7) = 1, ADDERROR(107, "AC10mins Volt Fault"));
IF(GETBIT(inv, 8) = 1, ADDERROR(108, "DCI OCP Fault"));
IF(GETBIT(inv, 9) = 1, ADDERROR(109, "DCV OCP Fault"));
IF(GETBIT(inv, 10) = 1, ADDERROR(110, "SW OCP Fault"));
IF(GETBIT(inv, 11) = 1, ADDERROR(111, "RC OCP Fault"));
IF(GETBIT(inv, 12) = 1, ADDERROR(112, "Isolation Fault"));
IF(GETBIT(inv, 13) = 1, ADDERROR(113, "Temp Over Fault"));
IF(GETBIT(inv, 14) = 1, ADDERROR(114, "BatConnDir Fault"));
IF(GETBIT(inv, 15) = 1, ADDERROR(115, "Off-grid Overload"));
IF(GETBIT(inv, 16) = 1, ADDERROR(116, "Overload"));
IF(GETBIT(inv, 17) = 1, ADDERROR(117, "Bat Power Low"));
IF(GETBIT(inv, 18) = 1, ADDERROR(118, "BMS Lost"));
IF(GETBIT(inv, 19) = 1, ADDERROR(119, "Fan Fault"));
IF(GETBIT(inv, 20) = 1, ADDERROR(120, "Low Temp Fault"));
IF(GETBIT(inv, 23) = 1, ADDERROR(123, "INV Volt Sample Fault"));
IF(GETBIT(inv, 24) = 1, ADDERROR(124, "Inner Comm Fault"));
IF(GETBIT(inv, 25) = 1, ADDERROR(125, "INV EEPROM Fault"));
IF(GETBIT(inv, 26) = 1, ADDERROR(126, "RCD Fault"));
IF(GETBIT(inv, 27) = 1, ADDERROR(127, "Grid Relay Fault"));
IF(GETBIT(inv, 28) = 1, ADDERROR(128, "Off-grid Relay Fault"));
IF(GETBIT(inv, 29) = 1, ADDERROR(129, "PV ConnDir Fault"));
IF(GETBIT(inv, 30) = 1, ADDERROR(130, "Charger Relay Fault"));
IF(GETBIT(inv, 31) = 1, ADDERROR(131, "Earth Relay Fault"));
VAR mgr := MODBUSR(A, 0x0043, UInt16);
IF(GETBIT(mgr, 0) = 1, ADDERROR(200, "Power Type Fault"));
IF(GETBIT(mgr, 1) = 1, ADDWARNING(201, "Port OC Warning"));
IF(GETBIT(mgr, 2) = 1, ADDERROR(202, "Mgr EEPROM Fault"));
IF(GETBIT(mgr, 4) = 1, ADDERROR(204, "NTC Sample Invalid"));
IF(GETBIT(mgr, 5) = 1, ADDERROR(205, "Battery Temperature Low"));
IF(GETBIT(mgr, 6) = 1, ADDERROR(206, "Battery Temperature High"));
IF(GETBIT(mgr, 9) = 1, ADDERROR(209, "Meter Fault"));
IF(GETBIT(mgr, 10) = 1, ADDERROR(210, "Bypass Relay Fault"));
IF(GETBIT(mgr, 11) = 1, ADDERROR(211, "Fan 2 Fault"));
Servisni atributi
Run mode
SWITCH(MODBUSR(A, 0x0009, 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")
${deviceType_BatterySOC} Analogni ulaz

${deviceType_BatterySOC}

Čitanje razine ulaza
MODBUSR(A, 0x001C, UInt16) / 100
Battery Temperature Senzor temperature

Battery Temperature

Čitanje temperature
MODBUSR(A, 0x0018, Int16)
Daily/Actual Energy Brojilo električne energije

Daily/Actual Energy

Čitanje ukupne potrošnje
MODBUSR(A, 0x0094, LittleEndianUint32) / 10
Čitanje zahtjeva
(MODBUSR(A, 0x000A, UInt16) + MODBUSR(A, 0x000B, UInt16)) / 1000
Charger Use Mode Prekidač s više vrijednosti
Vrijednosti / stanja: Self Use Mode · Feedin Priority · Backup Mode · Manual Mode

Charger Use Mode

Čitanje stanja sklopke
MODBUSR(H, 0x008B, UInt16)
Zapis stanja sklopke
#MODBUSW(SH, 0x001F, Uint16, Mu)
Purchase/Feed to Grid Varijabla

Purchase/Feed to Grid

Čitanje
MODBUSR(A, 0x0046, LittleEndianInt32) / 1000
PV1 Varijabla

PV1

Čitanje
MODBUSR(A, 0x000A, UInt16) / 1000
PV2 Varijabla

PV2

Čitanje
MODBUSR(A, 0x000B, UInt16) / 1000
SelfUse Night Charge Dimer

SelfUse Night Charge

Inicijalizacija
#MODBUSWNE(SH, 0x0062, Uint16, 1);
Čitanje razine
MODBUSR(H, 0x0094, UInt16) / 100
Zapis razine
#MODBUSW(SH, 0x0063, Uint16, Le * 100)
Total Energy Varijabla

Total Energy

Čitanje
MODBUSR(A, 0x0052, LittleEndianUint32) / 10
Povezivanje: Modbus RTU • 19200 baud• 8N1 • Slave ID: $[SlaveId]

Parametri uvoza

Ove vrijednosti unosite pri uvozu XML-a.

Pitanje u aplikacijiZadano
Modbus Slave ID1

Pronašli ste problem s ovim predloškom uređaja?

Recite nam što ne radi, što nedostaje ili kako bi se predložak trebao ponašati. Vaše povratne informacije pomažu nam da katalog bude točan.

Predložak · TapHome portal SolaX X1/X3-Hybrid G4 — corrected monitoring (Modbus RTU) Otvorite ovaj predložak na portalu Customer Portal kako biste ga primijenili na jedan od svojih domova ili predložili poboljšanje i poslali ga natrag u katalog. Modbus RTU Pogledaj u TapHome portalu