TapHome
Comunitate Beta Energie și contorizare

SolaX X3-Ultra Hybrid Inverter — monitoring and power control (Modbus RTU)

Șablon comunitar pentru invertorul solar hibrid trifazat SolaX X3-Ultra prin Modbus RTU pe portul RS-485 COM 1: contoare Energy Dashboard pentru PV, rețea, baterie și consum, SOC-ul bateriei, tensiunea rețelei și codurile de defecțiune, setări ale invertorului scrise doar la schimbare și controlul de la distanță al puterii AC (modul 1 SolaX) pentru încărcare și descărcare după prețul spot. 19200 baud, 8N1, Slave ID 1.

SolaXModbus RTU19 dispozitiveRevizia 1.0 Ultima actualizare: 10 noiembrie 2026

Trimis de Martin Keller

SolaX X3-Ultra Hybrid Inverter — monitoring and power control (Modbus RTU)

Import în aplicația TapHomeHardware › Modbus › Adăugați din șablon

Descărcați șablon
Pe această pagină

Ghid de integrare

SolaX X3-Ultra (X3-ULT-15K, 20K, 25K, 30K) este un invertor solar hibrid trifazat pentru PV și baterie. Acest șablon comunitar creat de Martin Keller îl conectează la TapHome prin Modbus RTU pe portul RS-485 COM 1 (19200 baud, 8N1) și se bazează pe registrele de citire din protocolul SolaX Modbus V3.29 și pe protocolul SolaX Modbus V001.02. Oferă un set complet de contoare pentru Energy Dashboard, monitorizarea bateriei, a rețelei și a defecțiunilor, setări ale invertorului care se scriu doar când valoarea lor se schimbă cu adevărat și controlul de la distanță al puterii AC (modul 1 al controlului de la distanță SolaX) — încărcarea bateriei din rețea sau descărcarea ei în rețea la comandă, de exemplu în funcție de prețurile spot ale energiei electrice.

Cum obțineți șablonul

Șabloanele comunitare nu sunt oferite în lista de șabloane din aplicația TapHome. Autentificați-vă pe portal.taphome.com, descărcați fișierul XML al acestui șablon și importați-l în Core pe interfața Modbus RTU (sau pe o interfață Modbus TCP, când se folosește un gateway RS-485–Ethernet). Pentru monitorizare fără controlul de la distanță al puterii este disponibil șablonul oficial SolaX X3 Hybrid Ultra. Un modul importat anterior din șablonul oficial nu se actualizează singur — importați acest șablon ca modul nou și eliminați-l pe cel vechi.

Conectarea hardware

X3-Ultra are un singur port COM 1 multifuncțional (conector RJ45 cu suport de cablu etichetat). Aceiași pini fizici au funcții diferite, în funcție de poziția etichetată a suportului de cablu care se folosește. Pentru integrarea Modbus cu sisteme terțe folosiți poziția RS485 — liniile REMOTE_485A și REMOTE_485B.

Alocarea pinilor portului COM 1

Alocarea pinilor portului COM 1 al SolaX X3-Ultra pentru toate cele șase poziții etichetate (Parallel-1, Parallel-2, BMS-1, BMS-2, RS485, DRM)

Alocarea pinilor pentru poziția RS485 (singura poziție relevantă pentru TapHome):

PinSemnalCablare TapHome
1REMOTE_485AA+ / D+
2REMOTE_485BB− / D−
3PARALLEL_485AAnu se folosește (doar accesorii SolaX)
4PARALLEL_485AAnu se folosește (doar accesorii SolaX)
5PARALLEL_485BBnu se folosește (doar accesorii SolaX)
6PARALLEL_485BBnu se folosește (doar accesorii SolaX)
7REMOTE_485Aacelași semnal ca pinul 1
8REMOTE_485Bacelași semnal ca pinul 2

Pinii 3–6 aparțin canalului SolaX PARALLEL_485 și sunt rezervați pentru produsele SolaX (Adapter Box G2, EV-Charger, DataHub). Pinii 1, 2, 7 și 8 sunt destinați altor dispozitive decât produsele SolaX. Nu conectați un master Modbus terț la pinii 3–6.

Cablarea RS-485

Montarea terminalului RJ45 în poziția RS485 a suportului de cablu COM 1

Reguli de cablare din manualul de utilizare X3-Ultra (secțiunea 8.6.4):

  • Tip de cablu: cablu de rețea CAT5E sau CAT6
  • Lungime maximă: cablul de comunicație RS-485 nu trebuie să depășească 30 m
  • Terminal RJ45: conectorul existent al cablului se taie și se sertizează un terminal RJ45 nou conform alocării pinilor; nu toate dispozitivele acceptă un cablu de rețea cu toate cele 8 fire conectate
  • Poziția în suportul de cablu: terminalul RJ45 se introduce în slotul etichetat RS485 (nu în Parallel-1, Parallel-2, BMS-1, BMS-2 sau DRM); conectorul se fixează cu un clic în portul COM 1 și se asigură cu piulița rotativă
  • Un singur master Modbus: portul poate fi folosit de un singur master Modbus. Deconectați orice altă monitorizare Modbus de pe același port, altfel invertorul le răspunde ambelor și citirile devin instabile

Manualul de utilizare nu oferă nicio regulă pentru terminarea magistralei RS-485 în poziția RS485 a portului COM 1.

Contor sau CT pentru valorile rețelei

Dispozitivele de rețea ale acestui șablon (Grid - power balance, Din rețea, Spre rețea, Consum) citesc puterea injectată pe care invertorul o măsoară cu propriul contor sau CT. Contorul sau CT-ul se conectează la portul COM 2 (Meter/CT: METER_485A pe pinul 4, METER_485B pe pinul 5 sau intrările CT) și se configurează pe afișajul invertorului în Menu → Setting → Advance Setting → Meter/CT Setting. Aceasta este o linie RS-485 separată — nu conectați TapHome la ea.

Variante de conectare

  • Modbus RTU direct: conectați perechea RS485 de la COM 1 direct la magistrala RS-485 a TapHome Core. Oferă cea mai mică latență și este recomandată pentru controlul de la distanță al puterii.
  • Gateway RS-485–Ethernet: când invertorul este departe de TapHome Core, se poate folosi un gateway RS-485–Ethernet terț pe perechea RS485 de la COM 1; șablonul se importă atunci pe o interfață Modbus TCP.
  • Modul de monitorizare SolaX: invertorul în sine nu acceptă Modbus TCP. Modbus TCP (portul 502) este disponibil doar printr-un modul de monitorizare SolaX, cu un ciclu de interogare de aproximativ 1 secundă (protocolul V3.29).

Configurare

Activarea comunicației Modbus pe invertor

Pe afișajul LCD al invertorului mergeți la:

1
Menu → Setting → Advance Setting → Modbus

Meniul Advance Setting necesită parola de instalator (inițial 2014 conform manualului de utilizare, care recomandă schimbarea ei). În meniul Modbus setați Baud Rate și Address pentru protocolul de comunicație extern:

ParametruValoare implicită în șablonValoare implicită în invertor (protocolul V3.29)
Adresă Modbus (Slave ID)11
Baud rate1920019200
ParitateNoneNone
Biți de date88
Biți de stop11

Baud rate-ul trebuie să fie același pe invertor și pe interfața Modbus RTU TapHome. Dacă comunicarea eșuează, verificați mai întâi baud rate-ul.

Invertorul raportează și adresa Modbus în registrul holding H:0x00AF și baud rate-ul în registrul holding H:0x00B0 (protocolul V3.29).

Parametrul de import

La importul șablonului, parametrul de import Modbus Slave ID (implicit 1) trebuie să corespundă adresei Modbus setate pe afișajul invertorului.

Funcțiile dispozitivului

Energy Dashboard

DispozitivValoare citită
Productie PVPuterea de intrare PV1 + PV2 + PV3 (A:0x000A, A:0x000B, A:0x0124) în kW; energia PV totală (A:0x0094–0x0095) în kWh. Puterea PV1–PV3 și energia AC totală la ieșirea invertorului (A:0x0052) sunt atribute de service.
Din rețea / Spre rețeaPartea de import și de export a puterii rețelei de la contor sau CT (A:0x0046–0x0047, cuvântul inferior primul), cu contoarele lor de energie totală (A:0x004A și A:0x0048, 0,01 kWh).
La baterie / De la bateriePartea de încărcare și de descărcare a puterii bateriei 1 (A:0x0016), cu energia totală încărcată și descărcată (A:0x0021, A:0x001D).
ConsumConsumul calculat al casei: puterea AC a invertorului minus exportul în rețea. SolaX nu are registru pentru consum; consumatorii de pe ieșirea EPS (de rezervă) nu sunt incluși.
Baterie (SOC)Starea de încărcare a bateriei 1 (A:0x001C). Energia rămasă și energia care mai poate fi încărcată (A:0x0118, A:0x0116) sunt atribute de service.

Energy Manager

Pentru smart rule-ul Energy Manager selectați Grid - power balance. Valoarea are semn: pozitivă la importul din rețea, negativă la exportul surplusului. Contoarele Din rețea și Spre rețea nu devin niciodată negative și nu afișează surplusul.

Monitorizare

  • Battery 2 - state of charge — al doilea terminal de baterie (BAT 2), cu puterea și temperatura sa ca atribute de service; fără a doua baterie afișează 0
  • Battery - temperature — citită ca valoare cu semn, astfel încât temperaturile sub 0 °C se afișează corect
  • Inverter - AC power — suma celor trei puteri de fază la portul AC al invertorului, în kW
  • Grid - voltage L1 — cu tensiunea rețelei L2, L3 și cele trei frecvențe ale rețelei ca atribute de service

Setările invertorului

DispozitivCitireScriere
Settings - work modeH:0x008B: Self use, Feed-in priority, Backup, Manual, Peak shaving, Time of use (ultimele două depind de firmware)0x001F
Settings - manual modeH:0x008C: Stop charge and discharge, Force charge, Force discharge (au efect doar în modul de lucru Manual)0x0020
Settings - self-use minimum SOCoctetul superior al H:0x00930x0061
Settings - night charge from gridoctetul inferior al H:0x00930x0062
Settings - night charge target SOCH:0x00940x0063
Settings - export limitH:0x00B6, în kW (10 W pe unitate la X3)0x0042

SolaX citește aceste setări de la alte adrese decât cele la care le scrie, așa că funcția integrată TapHome „scrie doar dacă diferă" nu se poate folosi. De aceea, fiecare script de scriere citește mai întâi setarea și scrie (funcția 06) doar când noua valoare diferă; când invertorul raportează setările ca blocate, scrie mai întâi parola de setări 2014 în registrul 0x0000. SOC-ul minim și ținta încărcării de noapte nu scad niciodată sub 10 % (intervalul SolaX). Niciunul dintre aceste dispozitive nu scrie periodic.

Aceste setări sunt registre EEPROM (marcate cu ★ de SolaX, aproximativ 1 milion de cicluri de scriere). Modificați-le rar și niciodată din automatizări frecvente — pentru încărcarea și descărcarea în funcție de prețurile spot folosiți Remote control - AC power target.

Remote control - AC power target

Acest dispozitiv folosește modul 1 al controlului de la distanță SolaX (VPP) — controlul puterii la portul AC al invertorului.

  • Semn: o țintă pozitivă înseamnă că invertorul preia putere la portul său AC (încarcă bateria, din rețea dacă PV nu este suficient); o țintă negativă înseamnă că livrează putere (descarcă bateria, iar ce nu consumă casa ajunge în rețea). Valoare în kW.
  • 0 încheie controlul de la distanță: șablonul scrie o singură dată modul 0, iar invertorul revine la modul său de lucru. Țintele sub 0,5 W contează ca 0.
  • Orice altă valoare: dacă invertorul este blocat, șablonul scrie mai întâi parola de setări 2014 (deblocarea se pierde după fiecare repornire a invertorului), apoi scrie cele 13 registre 0x007C–0x0088 într-o singură cerere Modbus (funcția 0x10): modul 1, ținta, durata de 120 s și timeout-ul de 60 s. Comanda se repetă la fiecare 60 s cât timp ținta nu este 0. Dacă TapHome nu o mai trimite, invertorul păstrează ținta cel mult 2 minute, menține 0 W la portul AC încă 1 minut și apoi revine singur la modul său de lucru.
  • Modul de lucru Manual blochează controlul de la distanță. SolaX nu pornește controlul de la distanță cât timp invertorul este în modul de lucru Manual — comutați-l mai întâi pe Self use (sau pe alt mod).
  • Invertorul limitează ținta la intervalul afișat în atributele modulului (ținta minimă și maximă a controlului de la distanță).
  • Acțiunea de modul End remote control scrie imediat modul 0. Cât timp ținta nu este 0, următoarea repetare pornește din nou controlul de la distanță — pentru oprirea definitivă setați ținta la 0.
  • Nu combinați acest dispozitiv cu controlul de la distanță din SolaX Cloud sau de la un agregator de energie: cât timp ținta este 0, șablonul încheie orice mod de control de la distanță în 60 s.
  • Controlul de la distanță necesită un Core care scrie toate cele 13 registre într-o singură cerere. Așa este fiecare Core începând din 2022, dacă modulul păstrează valoarea MaxPrefetchGroupSize 32 din acest șablon.
  • Atributul de service Actual AC power afișează puterea activă pe care invertorul o raportează la portul său AC, în W (A:0x0106).

SolaX nu marchează în protocolul său registrele de control de la distanță (0x007C–0x0088) ca registre EEPROM, dar nici nu confirmă în scris contrariul. Acest șablon se bazează pe experiența comunităților Home Assistant și openHAB, care scriu aceste registre la intervale de câteva secunde până la câteva minute.

Atributele și acțiunile modulului

  • Run mode (atribut de service) — starea invertorului ca text: Waiting, Checking, Normal, Fault, Permanent fault, Update, Off-grid waiting, Off-grid, Self testing, Idle, Standby, Remote control (codul 20); celelalte coduri apar ca Other
  • Machine type (atribut de service) — X1 (monofazat) sau X3 (trifazat), registrul holding H:0x0105
  • Settings lock (atribut de service) — Locked sau Unlocked (A:0x0054)
  • Remote control mode (atribut de service) — modul activ de control de la distanță (A:0x0100): Off, Power control, Energy target, SOC target
  • Remote control - maximum target / minimum target (atribute de service) — intervalul permis al țintei de putere raportat de invertor, în W (A:0x010A, A:0x010C)
  • Unlock settings (password 2014) (acțiune de service) — scrie 2014 în registrul 0x0000
  • End remote control (acțiune de service) — scrie modul 0 în registrele de control de la distanță 0x007C–0x0088

Detectarea defecțiunilor

Scriptul de citire al modulului raportează o eroare TapHome când modul de funcționare (A:0x0009) este 3 (Fault) sau 4 (Permanent fault). De asemenea, analizează bit cu bit două registre de eroare, fiecare defecțiune cu propriul cod de eroare:

  • Codul de defecțiune al invertorului (32 de biți, A:0x0040–A:0x0041, citit cu cuvântul inferior primul) — toți cei 32 de biți, de la TZ Protect Fault, defecțiunile de tensiune ale rețelei, PV, magistralei și bateriei, defecțiunile de izolație și de supratemperatură până la Parallel Fault, Hard Limit Fault și defecțiunile releelor
  • Codul de eroare al managerului (16 biți, A:0x0043) — Power Type Fault, Mgr EEPROM Fault, NTC Sample Invalid, temperatura scăzută și ridicată a bateriei, Meter Fault, Bypass Relay Fault și Fan 2 Fault ca erori, Port OC Warning ca avertisment

Rezolvarea problemelor

Nu există comunicare cu invertorul

  1. Verificați dacă firele RS-485 sunt pe pinii REMOTE_485A / REMOTE_485B (1 + 2 sau 7 + 8 în poziția RS485 a suportului de cablu COM 1), nu pe pinii PARALLEL_485 3–6 și nu pe linia contorului de la COM 2
  2. Verificați dacă baud rate-ul coincide între invertor (Menu → Setting → Advance Setting → Modbus) și interfața Modbus RTU TapHome — implicit 19200
  3. Confirmați că parametrul de import Modbus Slave ID corespunde adresei Modbus a invertorului (implicit 1)
  4. Asigurați-vă că la port este conectat un singur master Modbus
  5. Inversați firele A și B dacă polaritatea cablului este incertă
  6. Confirmați că cablul RS-485 nu depășește 30 m

Ținta controlului de la distanță revine la 0 imediat după setare

Invertorul este în modul de lucru Manual, firmware-ul nu acceptă modul 1 al controlului de la distanță sau ținta este în afara intervalului dintre ținta minimă și maximă afișate în atributele modulului. Verificați mai întâi modul de lucru.

Scrierea setărilor este respinsă

Invertorul este blocat. Rulați acțiunea de modul Unlock settings (password 2014); blocarea revine după fiecare repornire a invertorului (atributul de modul Settings lock).

Valorile rețelei sunt 0 sau Consum pare greșit

Grid - power balance, Din rețea, Spre rețea și Consum depind de contorul sau CT-ul invertorului. Verificați cablarea acestuia la COM 2 și configurarea în Menu → Setting → Advance Setting → Meter/CT Setting.

Puterea PV3 sau Battery 2 afișează 0

PV3 există doar la modelele cu trei trackere (de exemplu X3-ULT-25K și X3-ULT-30K; consultați numărul de MPPT în manualul de utilizare); Battery 2 doar când la BAT 2 este conectată a doua baterie. Ascundeți în TapHome dispozitivele neutilizate.

Dispozitive disponibile 19

Aceste dispozitive apar în TapHome după import.

SolaX X3-Ultra Modul
Atribute de service
Run mode
Machine type
Settings lock
Remote control mode
Remote control - maximum target
Remote control - minimum target
Acțiuni de service
Unlock settings (password 2014)
End remote control

SolaX X3-Ultra

Citire (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, 21) = 1, ADDERROR(121, "Parallel Fault"));
IF(GETBIT(inv, 22) = 1, ADDERROR(122, "Hard Limit 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"));
Atribute de service
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", 20, "Remote control", "Other")
Machine type
SWITCH(MODBUSR(H, 0x0105, UInt16), 1, "X1 (single-phase)", 3, "X3 (three-phase)", "Unknown")
Settings lock
SWITCH(MODBUSR(A, 0x0054, UInt16), 0, "Locked", 1, "Unlocked", "Unknown")
Remote control mode
SWITCH(MODBUSR(A, 0x0100, UInt16), 0, "Off", 1, "Power control", 2, "Energy target", 3, "SOC target", "Other")
Remote control - maximum target
TOSTRING(MODBUSR(A, 0x010A, LittleEndianInt32)) + " W"
Remote control - minimum target
TOSTRING(MODBUSR(A, 0x010C, LittleEndianInt32)) + " W"
Acțiuni de service
Unlock settings (password 2014)
MODBUSW(SH, 0x0000, Uint16, 2014);
End remote control
MODBUSW(H, 0x007C, Uint16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
${deviceType_PVProduction} Contor electric
Atribute de service
PV1 power
PV2 power
PV3 power
Inverter AC output - total energy

${deviceType_PVProduction}

Citirea consumului total
MODBUSR(A, 0x0094, LittleEndianUint32) / 10
Citirea cererii
(MODBUSR(A, 0x000A, UInt16) + MODBUSR(A, 0x000B, UInt16) + MODBUSR(A, 0x0124, UInt16)) / 1000
Atribute de service
PV1 power
TOSTRING(MODBUSR(A, 0x000A, UInt16)) + " W"
PV2 power
TOSTRING(MODBUSR(A, 0x000B, UInt16)) + " W"
PV3 power
TOSTRING(MODBUSR(A, 0x0124, UInt16)) + " W"
Inverter AC output - total energy
TOSTRING(MODBUSR(A, 0x0052, LittleEndianUint32) / 10, "F1") + " kWh"
Grid - power balance Contor electric

Grid - power balance

Citirea cererii
MODBUSR(A, 0x0046, LittleEndianInt32) / -1000
${deviceType_PVFromGrid} Contor electric

${deviceType_PVFromGrid}

Citirea consumului total
MODBUSR(A, 0x004A, LittleEndianUint32) / 100
Citirea cererii
MAX(-MODBUSR(A, 0x0046, LittleEndianInt32), 0) / 1000
${deviceType_PVToGrid} Contor electric

${deviceType_PVToGrid}

Citirea consumului total
MODBUSR(A, 0x0048, LittleEndianUint32) / 100
Citirea cererii
MAX(MODBUSR(A, 0x0046, LittleEndianInt32), 0) / 1000
${deviceType_PVToBattery} Contor electric

${deviceType_PVToBattery}

Citirea consumului total
MODBUSR(A, 0x0021, LittleEndianUint32) / 10
Citirea cererii
MAX(MODBUSR(A, 0x0016, Int16), 0) / 1000
${deviceType_PVFromBattery} Contor electric

${deviceType_PVFromBattery}

Citirea consumului total
MODBUSR(A, 0x001D, LittleEndianUint32) / 10
Citirea cererii
MAX(-MODBUSR(A, 0x0016, Int16), 0) / 1000
${deviceType_PVLoad} Contor electric

${deviceType_PVLoad}

Citirea cererii
((MODBUSR(A, 0x006C, Int16) + MODBUSR(A, 0x0070, Int16) + MODBUSR(A, 0x0074, Int16)) - MODBUSR(A, 0x0046, LittleEndianInt32)) / 1000
${deviceType_BatterySOC} Intrare analogică
Atribute de service
Remaining energy
Chargeable energy

${deviceType_BatterySOC}

Citirea nivelului de intrare
MODBUSR(A, 0x001C, UInt16) / 100
Atribute de service
Remaining energy
TOSTRING(MODBUSR(A, 0x0118, LittleEndianUint32) / 1000, "F2") + " kWh"
Chargeable energy
TOSTRING(MODBUSR(A, 0x0116, LittleEndianUint32) / 1000, "F2") + " kWh"
Battery 2 - state of charge Intrare analogică
Atribute de service
Battery 2 power
Battery 2 temperature

Battery 2 - state of charge

Citirea nivelului de intrare
MODBUSR(A, 0x012D, UInt16) / 100
Atribute de service
Battery 2 power
TOSTRING(MODBUSR(A, 0x0129, Int16)) + " W"
Battery 2 temperature
TOSTRING(MODBUSR(A, 0x0131, Int16)) + " °C"
Battery - temperature Senzor de temperatură

Battery - temperature

Citirea temperaturii
MODBUSR(A, 0x0018, Int16)
Inverter - AC power Variabilă

Inverter - AC power

Citire
(MODBUSR(A, 0x006C, Int16) + MODBUSR(A, 0x0070, Int16) + MODBUSR(A, 0x0074, Int16)) / 1000
Grid - voltage L1 Variabilă
Atribute de service
Grid voltage L2
Grid voltage L3
Grid frequency L1
Grid frequency L2
Grid frequency L3

Grid - voltage L1

Citire
MODBUSR(A, 0x006A, UInt16) / 10
Atribute de service
Grid voltage L2
TOSTRING(MODBUSR(A, 0x006E, UInt16) / 10, "F1") + " V"
Grid voltage L3
TOSTRING(MODBUSR(A, 0x0072, UInt16) / 10, "F1") + " V"
Grid frequency L1
TOSTRING(MODBUSR(A, 0x006D, UInt16) / 100, "F2") + " Hz"
Grid frequency L2
TOSTRING(MODBUSR(A, 0x0071, UInt16) / 100, "F2") + " Hz"
Grid frequency L3
TOSTRING(MODBUSR(A, 0x0075, UInt16) / 100, "F2") + " Hz"
Settings - work mode Comutator cu mai multe valori
Valori / Stări: Self use · Feed-in priority · Backup · Manual · Peak shaving · Time of use

Settings - work mode

Citirea stării comutatorului
MODBUSR(H, 0x008B, UInt16)
Scrierea stării comutatorului
IF(MODBUSR(H, 0x008B, UInt16) != Mu AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x008B, UInt16) != Mu, MODBUSW(SH, 0x001F, Uint16, Mu));
Settings - manual mode Comutator cu mai multe valori
Valori / Stări: Stop charge and discharge · Force charge · Force discharge

Settings - manual mode

Citirea stării comutatorului
MODBUSR(H, 0x008C, UInt16)
Scrierea stării comutatorului
IF(MODBUSR(H, 0x008C, UInt16) != Mu AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x008C, UInt16) != Mu, MODBUSW(SH, 0x0020, Uint16, Mu));
Settings - self-use minimum SOC Dimmer

Settings - self-use minimum SOC

Citirea nivelului
GETBYTE(MODBUSR(H, 0x0093, UInt16), 1) / 100
Scrierea nivelului
VAR v := MAX(ROUND(Le * 100), 10);
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 1) != v AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 1) != v, MODBUSW(SH, 0x0061, Uint16, v));
Settings - night charge from grid Comutator
Valori / Stări: ON · OFF

Settings - night charge from grid

Citirea stării comutatorului
GETBYTE(MODBUSR(H, 0x0093, UInt16), 0)
Scrierea stării comutatorului
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 0) != St AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 0) != St, MODBUSW(SH, 0x0062, Uint16, St));
Settings - night charge target SOC Dimmer

Settings - night charge target SOC

Citirea nivelului
MODBUSR(H, 0x0094, UInt16) / 100
Scrierea nivelului
VAR v := MAX(ROUND(Le * 100), 10);
IF(MODBUSR(H, 0x0094, UInt16) != v AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x0094, UInt16) != v, MODBUSW(SH, 0x0063, Uint16, v));
Settings - export limit Variabilă

Settings - export limit

Citire
MODBUSR(H, 0x00B6, UInt16) / 100
Scriere
VAR v := MAX(ROUND(Va * 100), 0);
IF(MODBUSR(H, 0x00B6, UInt16) != v AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x00B6, UInt16) != v, MODBUSW(SH, 0x0042, Uint16, v));
Remote control - AC power target Variabilă
Atribute de service
Actual AC power

Remote control - AC power target

Citire
IF(MODBUSR(A, 0x0100, UInt16) = 1, MODBUSR(A, 0x0102, LittleEndianInt32) / 1000, 0)
Scriere
VAR w := ROUND(Va * 1000);
VAR u := IF(w < 0, w + 4294967296, w);
IF(w = 0 AND MODBUSR(A, 0x0100, UInt16) != 0, MODBUSW(H, 0x007C, Uint16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
IF(w != 0 AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(w != 0, MODBUSW(H, 0x007C, Uint16, 1, 1, MOD(u, 65536), FLOOR(u / 65536), 0, 0, 120, 0, 0, 0, 0, 0, 60));
Atribute de service
Actual AC power
TOSTRING(MODBUSR(A, 0x0106, LittleEndianInt32)) + " W"
Conexiune: Modbus RTU • 19200 baud• 8N1 • Slave ID: $[SlaveId]

Parametri de import

Introduceți aceste valori când importați XML-ul.

Solicitat în aplicațieImplicit
Modbus Slave ID1

Ați găsit o problemă la acest șablon de dispozitiv?

Spuneți-ne ce nu funcționează, ce lipsește sau cum ar trebui să se comporte șablonul. Feedbackul dvs. ne ajută să păstrăm catalogul corect.

Șablon · portalul TapHome SolaX X3-Ultra Hybrid Inverter — monitoring and power control (Modbus RTU) Deschideți acest șablon în Customer Portal pentru a-l aplica într-una dintre locuințele dvs. sau pentru a propune o îmbunătățire și a o trimite înapoi în catalog. Modbus RTU Vezi în portalul TapHome