TapHome
Społeczność Beta Energia i pomiar

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

Szablon społecznościowy dla trójfazowego falownika hybrydowego SolaX X3-Ultra przez Modbus RTU na porcie RS-485 COM 1: liczniki Energy Dashboard dla PV, sieci, baterii i zużycia, SOC baterii, napięcie sieci i kody błędów, ustawienia falownika zapisywane tylko przy zmianie oraz zdalne sterowanie mocą AC (tryb 1 zdalnego sterowania SolaX) do ładowania i rozładowania według cen spot. 19200 bodów, 8N1, Slave ID 1.

SolaXModbus RTU19 urządzeńRewizja 1.0 Ostatnia aktualizacja: 10 listopada 2026

Dodane przez Martin Keller

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

Import do aplikacji TapHomeSprzęt › Modbus › Dodaj z szablonu

Pobierz szablon
Na tej stronie

Poradnik integracji

SolaX X3-Ultra (X3-ULT-15K, 20K, 25K, 30K) to trójfazowy falownik hybrydowy do PV i baterii. Ten szablon społecznościowy autorstwa Martina Kellera łączy go z TapHome przez Modbus RTU na porcie RS-485 COM 1 (19200 bodów, 8N1) i opiera się na rejestrach odczytu protokołu SolaX Modbus V3.29 oraz na protokole SolaX Modbus V001.02. Zapewnia pełny zestaw liczników dla Energy Dashboard, monitorowanie baterii, sieci i błędów, ustawienia falownika zapisywane tylko wtedy, gdy ich wartość naprawdę się zmienia, oraz zdalne sterowanie mocą AC (tryb 1 zdalnego sterowania SolaX) — ładowanie baterii z sieci lub rozładowanie jej do sieci na polecenie, na przykład według cen spot energii elektrycznej.

Jak uzyskać szablon

Szablony społecznościowe nie są oferowane na liście szablonów w aplikacji TapHome. Zaloguj się na portal.taphome.com, pobierz XML tego szablonu i zaimportuj go do Core na interfejsie Modbus RTU (albo na interfejsie Modbus TCP, gdy używasz bramy RS-485-Ethernet). Do monitorowania bez zdalnego sterowania mocą dostępny jest oficjalny szablon SolaX X3 Hybrid Ultra. Moduł zaimportowany wcześniej z oficjalnego szablonu nie aktualizuje się sam — zaimportuj ten szablon jako nowy moduł i usuń stary.

Połączenie sprzętowe

X3-Ultra ma jeden wielofunkcyjny port COM 1 (złącze RJ45 z oznakowanym mocowaniem kabla). Te same fizyczne piny pełnią różne funkcje w zależności od tego, która oznakowana pozycja mocowania kabla jest użyta. Do integracji Modbus innej firmy użyj pozycji RS485 — linii REMOTE_485A i REMOTE_485B.

Pinout portu COM 1

Przypisanie pinów portu COM 1 SolaX X3-Ultra dla wszystkich sześciu oznakowanych pozycji (Parallel-1, Parallel-2, BMS-1, BMS-2, RS485, DRM)

Przypisanie pinów pozycji RS485 (jedynej pozycji istotnej dla TapHome):

PinSygnałOkablowanie TapHome
1REMOTE_485AA+ / D+
2REMOTE_485BB− / D−
3PARALLEL_485AAnie używać (tylko akcesoria SolaX)
4PARALLEL_485AAnie używać (tylko akcesoria SolaX)
5PARALLEL_485BBnie używać (tylko akcesoria SolaX)
6PARALLEL_485BBnie używać (tylko akcesoria SolaX)
7REMOTE_485Aten sam sygnał co pin 1
8REMOTE_485Bten sam sygnał co pin 2

Piny 3–6 należą do kanału SolaX PARALLEL_485 i są zarezerwowane dla produktów SolaX (Adapter Box G2, EV-Charger, DataHub). Piny 1, 2, 7 i 8 są przeznaczone dla urządzeń innych niż produkty SolaX. Nie podłączaj mastera Modbus innej firmy do pinów 3–6.

Okablowanie RS-485

Instalacja terminala RJ45 w pozycji RS485 mocowania kabla COM 1

Zasady okablowania z instrukcji obsługi X3-Ultra (sekcja 8.6.4):

  • Typ kabla: kabel sieciowy CAT5E lub CAT6
  • Maksymalna długość: kabel komunikacyjny RS-485 nie może przekraczać 30 m
  • Wtyk RJ45: istniejący wtyk kabla należy odciąć i zacisnąć nowy wtyk RJ45 zgodnie z przypisaniem pinów; nie wszystkie urządzenia akceptują w pełni okablowany 8-żyłowy kabel sieciowy
  • Pozycja w mocowaniu kabla: wtyk RJ45 wkłada się do gniazda oznaczonego RS485 (nie do Parallel-1, Parallel-2, BMS-1, BMS-2 ani DRM); złącze zatrzaskuje się w porcie COM 1 i jest zabezpieczone nakrętką obrotową
  • Jeden master Modbus: z portu może korzystać tylko jeden master Modbus. Odłącz inne monitorowanie Modbus na tym samym porcie, w przeciwnym razie falownik odpowiada obu i odczyty stają się niestabilne

Instrukcja obsługi nie podaje zasady terminacji magistrali RS-485 na pozycji RS485 portu COM 1.

Licznik lub CT dla wartości sieci

Urządzenia sieciowe tego szablonu (Grid - power balance, Z sieci, Do sieci, Konsumpcja) odczytują moc oddawaną do sieci, którą falownik mierzy własnym licznikiem lub CT. Licznik lub CT podłącza się do portu COM 2 (Meter/CT: METER_485A na pinie 4, METER_485B na pinie 5 albo wejścia CT) i konfiguruje na wyświetlaczu falownika w Menu → Setting → Advance Setting → Meter/CT Setting. To osobna linia RS-485 — nie podłączaj do niej TapHome.

Opcje połączenia

  • Bezpośrednie połączenie Modbus RTU: podłącz parę RS485 portu COM 1 bezpośrednio do magistrali RS-485 TapHome Core. Najniższe opóźnienie, zalecane do zdalnego sterowania mocą.
  • Brama RS-485-Ethernet: gdy falownik jest daleko od TapHome Core, można użyć bramy RS-485-Ethernet innej firmy na parze RS485 portu COM 1; szablon importuje się wtedy na interfejsie Modbus TCP.
  • Moduł monitorujący SolaX: sam falownik nie obsługuje Modbus TCP. Modbus TCP (port 502) jest dostępny tylko przez moduł monitorujący SolaX, z cyklem zapytań około 1 sekundy (protokół V3.29).

Konfiguracja

Włączanie komunikacji Modbus na falowniku

Na wyświetlaczu LCD falownika przejdź do:

1
Menu → Setting → Advance Setting → Modbus

Menu Advance Setting wymaga hasła instalatora (według instrukcji obsługi początkowo 2014; instrukcja zaleca jego zmianę). W menu Modbus ustaw Baud Rate i Address zewnętrznego protokołu komunikacyjnego:

ParametrDomyślnie w szablonieDomyślnie w falowniku (protokół V3.29)
Adres Modbus (Slave ID)11
Prędkość transmisji1920019200
ParzystośćNoneNone
Bity danych88
Bity stopu11

Prędkość transmisji musi być taka sama w falowniku i w interfejsie Modbus RTU TapHome. Jeśli komunikacja zawodzi, najpierw sprawdź prędkość transmisji.

Falownik podaje też adres Modbus w rejestrze holding H:0x00AF i prędkość transmisji w rejestrze holding H:0x00B0 (protokół V3.29).

Parametr importu

Podczas importu szablonu parametr importu Modbus Slave ID (domyślnie 1) musi być zgodny z adresem Modbus ustawionym na wyświetlaczu falownika.

Możliwości urządzenia

Energy Dashboard

UrządzenieOdczyt
Produkcja fotowoltaicznaMoc wejściowa PV1 + PV2 + PV3 (A:0x000A, A:0x000B, A:0x0124) w kW; całkowita energia PV (A:0x0094–0x0095) w kWh. Moc PV1–PV3 i całkowita energia wyjściowa AC falownika (A:0x0052) są atrybutami serwisowymi.
Z sieci / Do sieciCzęść poboru i oddawania mocy sieci z licznika lub CT (A:0x0046–0x0047, młodsze słowo najpierw) wraz z ich licznikami energii całkowitej (A:0x004A i A:0x0048, 0,01 kWh).
Do akumulatora / Z bateriiCzęść ładowania i rozładowania mocy baterii 1 (A:0x0016) wraz z całkowitą energią ładowania i rozładowania (A:0x0021, A:0x001D).
KonsumpcjaObliczone zużycie domu: moc AC falownika minus moc oddawana do sieci. SolaX nie ma rejestru zużycia; odbiorniki na wyjściu EPS (zasilanie awaryjne) nie są uwzględnione.
Bateria (SOC)Stan naładowania baterii 1 (A:0x001C). Pozostała energia i energia możliwa do naładowania (A:0x0118, A:0x0116) są atrybutami serwisowymi.

Menedżer energii

Dla smart rule Menedżer energii wybierz Grid - power balance. Ma ono znak: dodatni przy poborze z sieci, ujemny przy oddawaniu nadwyżki. Liczniki Z sieci i Do sieci nigdy nie są ujemne i nie pokazują nadwyżki.

Monitorowanie

  • Battery 2 - state of charge — drugie przyłącze baterii (BAT 2), z jego mocą i temperaturą jako atrybutami serwisowymi; bez drugiej baterii odczytuje 0
  • Battery - temperature — odczytywana jako wartość ze znakiem, więc temperatury poniżej 0 °C są pokazywane poprawnie
  • Inverter - AC power — suma mocy trzech faz na porcie AC falownika w kW
  • Grid - voltage L1 — z napięciem sieci L2, L3 i trzema częstotliwościami sieci jako atrybutami serwisowymi

Ustawienia falownika

UrządzenieOdczytZapis
Settings - work modeH:0x008B: Self use, Feed-in priority, Backup, Manual, Peak shaving, Time of use (dwa ostatnie zależą od firmware)0x001F
Settings - manual modeH:0x008C: Stop charge and discharge, Force charge, Force discharge (działa tylko w trybie pracy Manual)0x0020
Settings - self-use minimum SOCstarszy bajt H:0x00930x0061
Settings - night charge from gridmłodszy bajt H:0x00930x0062
Settings - night charge target SOCH:0x00940x0063
Settings - export limitH:0x00B6, w kW (10 W na jednostkę w X3)0x0042

SolaX odczytuje te ustawienia z innych adresów, niż je zapisuje, dlatego nie można użyć wbudowanej funkcji TapHome „zapisuj tylko przy różnicy”. Każdy skrypt zapisu najpierw odczytuje więc ustawienie i zapisuje (funkcja 06) tylko wtedy, gdy nowa wartość jest inna; gdy falownik zgłasza ustawienia jako zablokowane, najpierw zapisuje hasło ustawień 2014 do rejestru 0x0000. Minimalny SOC i docelowy SOC ładowania nocnego nigdy nie spadają poniżej 10 % (zakres SolaX). Żadne z tych urządzeń nie zapisuje okresowo.

Te ustawienia to rejestry EEPROM (SolaX oznacza je ★, około 1 miliona cykli zapisu). Zmieniaj je rzadko i nigdy z częstych automatyzacji — do ładowania i rozładowania według cen spot używaj Remote control - AC power target.

Remote control - AC power target

To urządzenie korzysta z trybu 1 zdalnego sterowania SolaX (VPP) — sterowania mocą na porcie AC falownika.

  • Znak: dodatni cel oznacza, że falownik pobiera moc na swoim porcie AC (ładuje baterię, z sieci, jeśli PV nie wystarcza); ujemny cel oznacza, że oddaje moc (rozładowuje baterię, a to, czego dom nie zużyje, trafia do sieci). Wartość w kW.
  • 0 kończy zdalne sterowanie: szablon jednorazowo zapisuje tryb 0 i falownik wraca do swojego trybu pracy. Cele poniżej 0,5 W liczą się jako 0.
  • Każda inna wartość: jeśli falownik jest zablokowany, szablon najpierw zapisuje hasło ustawień 2014 (odblokowanie ginie po każdym restarcie falownika), a następnie zapisuje 13 rejestrów 0x007C–0x0088 w jednym żądaniu Modbus (funkcja 0x10): tryb 1, cel, czas trwania 120 s i limit czasu 60 s. Polecenie jest powtarzane co 60 s, dopóki cel nie wynosi 0. Jeśli TapHome przestanie je wysyłać, falownik utrzymuje cel do 2 minut, przez kolejną 1 minutę utrzymuje 0 W na swoim porcie AC, a potem sam wraca do swojego trybu pracy.
  • Tryb pracy Manual blokuje zdalne sterowanie. SolaX nie uruchamia zdalnego sterowania, dopóki falownik jest w trybie pracy Manual — najpierw przełącz go na Self use (lub inny tryb).
  • Falownik ogranicza cel do zakresu pokazanego w atrybutach modułu (minimalny i maksymalny cel zdalnego sterowania).
  • Akcja modułu End remote control natychmiast zapisuje tryb 0. Dopóki cel nie wynosi 0, kolejne powtórzenie ponownie uruchamia zdalne sterowanie — ustaw cel na 0, aby zakończyć je na dobre.
  • Nie łącz tego urządzenia ze zdalnym sterowaniem z SolaX Cloud ani od agregatora energii: gdy cel wynosi 0, szablon kończy każdy tryb zdalnego sterowania w ciągu 60 s.
  • Zdalne sterowanie wymaga Core, który zapisuje wszystkie 13 rejestrów w jednym żądaniu. Tak jest w każdym Core od 2022 roku, jeśli moduł zachowuje MaxPrefetchGroupSize 32 z tego szablonu.
  • Atrybut serwisowy Actual AC power pokazuje moc czynną, którą falownik raportuje na swoim porcie AC, w W (A:0x0106).

SolaX w swoim protokole nie oznacza rejestrów zdalnego sterowania (0x007C–0x0088) jako rejestrów EEPROM, ale też nie potwierdza na piśmie, że nimi nie są. Ten szablon opiera się na doświadczeniach społeczności Home Assistant i openHAB, które zapisują te rejestry co kilka sekund do kilku minut.

Atrybuty i akcje modułu

  • Run mode (atrybut serwisowy) — stan falownika jako tekst: Waiting, Checking, Normal, Fault, Permanent fault, Update, Off-grid waiting, Off-grid, Self testing, Idle, Standby, Remote control (kod 20); inne kody są pokazywane jako Other
  • Machine type (atrybut serwisowy) — X1 (single-phase) lub X3 (three-phase), rejestr holding H:0x0105
  • Settings lock (atrybut serwisowy) — Locked lub Unlocked (A:0x0054)
  • Remote control mode (atrybut serwisowy) — aktywny tryb zdalnego sterowania (A:0x0100): Off, Power control, Energy target, SOC target
  • Remote control - maximum target / minimum target (atrybuty serwisowe) — dozwolony zakres celu mocy raportowany przez falownik w W (A:0x010A, A:0x010C)
  • Unlock settings (password 2014) (akcja serwisowa) — zapisuje 2014 do rejestru 0x0000
  • End remote control (akcja serwisowa) — zapisuje tryb 0 do rejestrów zdalnego sterowania 0x007C–0x0088

Wykrywanie błędów

Skrypt odczytu modułu zgłasza błąd TapHome, gdy stan pracy (A:0x0009) wynosi 3 (Fault) lub 4 (Permanent fault). Analizuje też bit po bicie dwa rejestry błędów, każdy błąd z własnym kodem błędu:

  • Kod błędu falownika (32-bitowy, A:0x0040–A:0x0041, odczytywany młodszym słowem najpierw) — wszystkie 32 bity, od TZ Protect Fault, błędów napięcia sieci, PV, szyny DC i baterii, błędów izolacji i przegrzania po Parallel Fault, Hard Limit Fault i błędy przekaźników
  • Kod błędu Managera (16-bitowy, A:0x0043) — Power Type Fault, Mgr EEPROM Fault, NTC Sample Invalid, niska i wysoka temperatura baterii, Meter Fault, Bypass Relay Fault i Fan 2 Fault jako błędy, Port OC Warning jako ostrzeżenie

Rozwiązywanie problemów

Brak komunikacji z falownikiem

  1. Sprawdź, czy przewody RS-485 są na pinach REMOTE_485A / REMOTE_485B (1 + 2 lub 7 + 8 w pozycji RS485 mocowania kabla COM 1), a nie na pinach PARALLEL_485 3–6 ani na linii licznika portu COM 2
  2. Sprawdź, czy prędkość transmisji jest zgodna między falownikiem (Menu → Setting → Advance Setting → Modbus) a interfejsem Modbus RTU TapHome — domyślnie 19200
  3. Potwierdź, że parametr importu Modbus Slave ID jest zgodny z adresem Modbus falownika (domyślnie 1)
  4. Upewnij się, że do portu podłączony jest tylko jeden master Modbus
  5. Zamień przewody A i B, jeśli polaryzacja kabla jest niepewna
  6. Potwierdź, że kabel RS-485 nie przekracza 30 m

Cel zdalnego sterowania wraca do 0 zaraz po ustawieniu

Falownik jest w trybie pracy Manual, firmware nie obsługuje trybu 1 zdalnego sterowania albo cel jest poza minimalnym i maksymalnym celem pokazanym w atrybutach modułu. Najpierw sprawdź tryb pracy.

Zapis ustawień jest odrzucany

Falownik jest zablokowany. Uruchom akcję modułu Unlock settings (password 2014); blokada wraca po każdym restarcie falownika (atrybut modułu Settings lock).

Wartości sieci wynoszą 0 lub Konsumpcja wygląda źle

Grid - power balance, Z sieci, Do sieci i Konsumpcja zależą od licznika lub CT falownika. Sprawdź jego okablowanie na porcie COM 2 i konfigurację w Menu → Setting → Advance Setting → Meter/CT Setting.

Moc PV3 lub Bateria 2 pokazuje 0

PV3 istnieje tylko w modelach z trzema trackerami (na przykład X3-ULT-25K i X3-ULT-30K, patrz liczba MPPT w instrukcji obsługi); Bateria 2 tylko wtedy, gdy do BAT 2 podłączona jest druga bateria. Ukryj nieużywane urządzenia w TapHome.

Dostępne urządzenia 19

Te urządzenia pojawią się w TapHome po imporcie.

SolaX X3-Ultra Moduł
Atrybuty serwisowe
Run mode
Machine type
Settings lock
Remote control mode
Remote control - maximum target
Remote control - minimum target
Akcje serwisowe
Unlock settings (password 2014)
End remote control

SolaX X3-Ultra

Odczyt (moduł)
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"));
Atrybuty serwisowe
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"
Akcje serwisowe
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} Licznik energii
Atrybuty serwisowe
PV1 power
PV2 power
PV3 power
Inverter AC output - total energy

${deviceType_PVProduction}

Odczyt całkowitego zużycia
MODBUSR(A, 0x0094, LittleEndianUint32) / 10
Odczyt zapotrzebowania
(MODBUSR(A, 0x000A, UInt16) + MODBUSR(A, 0x000B, UInt16) + MODBUSR(A, 0x0124, UInt16)) / 1000
Atrybuty serwisowe
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 Licznik energii

Grid - power balance

Odczyt zapotrzebowania
MODBUSR(A, 0x0046, LittleEndianInt32) / -1000
${deviceType_PVFromGrid} Licznik energii

${deviceType_PVFromGrid}

Odczyt całkowitego zużycia
MODBUSR(A, 0x004A, LittleEndianUint32) / 100
Odczyt zapotrzebowania
MAX(-MODBUSR(A, 0x0046, LittleEndianInt32), 0) / 1000
${deviceType_PVToGrid} Licznik energii

${deviceType_PVToGrid}

Odczyt całkowitego zużycia
MODBUSR(A, 0x0048, LittleEndianUint32) / 100
Odczyt zapotrzebowania
MAX(MODBUSR(A, 0x0046, LittleEndianInt32), 0) / 1000
${deviceType_PVToBattery} Licznik energii

${deviceType_PVToBattery}

Odczyt całkowitego zużycia
MODBUSR(A, 0x0021, LittleEndianUint32) / 10
Odczyt zapotrzebowania
MAX(MODBUSR(A, 0x0016, Int16), 0) / 1000
${deviceType_PVFromBattery} Licznik energii

${deviceType_PVFromBattery}

Odczyt całkowitego zużycia
MODBUSR(A, 0x001D, LittleEndianUint32) / 10
Odczyt zapotrzebowania
MAX(-MODBUSR(A, 0x0016, Int16), 0) / 1000
${deviceType_PVLoad} Licznik energii

${deviceType_PVLoad}

Odczyt zapotrzebowania
((MODBUSR(A, 0x006C, Int16) + MODBUSR(A, 0x0070, Int16) + MODBUSR(A, 0x0074, Int16)) - MODBUSR(A, 0x0046, LittleEndianInt32)) / 1000
${deviceType_BatterySOC} Wejście analogowe
Atrybuty serwisowe
Remaining energy
Chargeable energy

${deviceType_BatterySOC}

Odczyt poziomu wejściowego
MODBUSR(A, 0x001C, UInt16) / 100
Atrybuty serwisowe
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 Wejście analogowe
Atrybuty serwisowe
Battery 2 power
Battery 2 temperature

Battery 2 - state of charge

Odczyt poziomu wejściowego
MODBUSR(A, 0x012D, UInt16) / 100
Atrybuty serwisowe
Battery 2 power
TOSTRING(MODBUSR(A, 0x0129, Int16)) + " W"
Battery 2 temperature
TOSTRING(MODBUSR(A, 0x0131, Int16)) + " °C"
Battery - temperature Czujnik temperatury

Battery - temperature

Odczyt temperatury
MODBUSR(A, 0x0018, Int16)
Inverter - AC power Zmienna

Inverter - AC power

Odczyt
(MODBUSR(A, 0x006C, Int16) + MODBUSR(A, 0x0070, Int16) + MODBUSR(A, 0x0074, Int16)) / 1000
Grid - voltage L1 Zmienna
Atrybuty serwisowe
Grid voltage L2
Grid voltage L3
Grid frequency L1
Grid frequency L2
Grid frequency L3

Grid - voltage L1

Odczyt
MODBUSR(A, 0x006A, UInt16) / 10
Atrybuty serwisowe
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 Przełącznik wielowartościowy
Wartości / Stany: Self use · Feed-in priority · Backup · Manual · Peak shaving · Time of use

Settings - work mode

Odczyt stanu przełącznika
MODBUSR(H, 0x008B, UInt16)
Zapis stanu przełącznika
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 Przełącznik wielowartościowy
Wartości / Stany: Stop charge and discharge · Force charge · Force discharge

Settings - manual mode

Odczyt stanu przełącznika
MODBUSR(H, 0x008C, UInt16)
Zapis stanu przełącznika
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 Ściemniacz

Settings - self-use minimum SOC

Odczyt poziomu
GETBYTE(MODBUSR(H, 0x0093, UInt16), 1) / 100
Zapis poziomu
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 Przełącznik
Wartości / Stany: ON · OFF

Settings - night charge from grid

Odczyt stanu przełącznika
GETBYTE(MODBUSR(H, 0x0093, UInt16), 0)
Zapis stanu przełącznika
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 Ściemniacz

Settings - night charge target SOC

Odczyt poziomu
MODBUSR(H, 0x0094, UInt16) / 100
Zapis poziomu
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 Zmienna

Settings - export limit

Odczyt
MODBUSR(H, 0x00B6, UInt16) / 100
Zapis
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 Zmienna
Atrybuty serwisowe
Actual AC power

Remote control - AC power target

Odczyt
IF(MODBUSR(A, 0x0100, UInt16) = 1, MODBUSR(A, 0x0102, LittleEndianInt32) / 1000, 0)
Zapis
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));
Atrybuty serwisowe
Actual AC power
TOSTRING(MODBUSR(A, 0x0106, LittleEndianInt32)) + " W"
Połączenie: Modbus RTU • 19200 baud• 8N1 • Slave ID: $[SlaveId]

Parametry importu

Te wartości podajesz podczas importu pliku XML.

Pytanie w aplikacjiDomyślnie
Modbus Slave ID1

Znalazłeś problem z tym szablonem urządzenia?

Napisz nam, co nie działa, czego brakuje lub jak powinien zachowywać się szablon. Twoja opinia pomaga nam utrzymać katalog dokładnym.

Szablon · portal TapHome SolaX X3-Ultra Hybrid Inverter — monitoring and power control (Modbus RTU) Otwórz ten szablon w portalu klienta, aby zastosować go w swoim domu, lub zaproponuj modyfikację i wyślij ją z powrotem do katalogu. Modbus RTU Zobacz w portalu TapHome