Magazyny energii · BYD Battery-Box · Modbus TCP · KNX · 9 min czytania

BYD Battery-Box HVM: SOC i moc do KNX przez Modbus TCP falownika

Odczyt SOC i mocy ładowania/rozładowania BYD Battery-Box HVM przez interfejs Modbus TCP sparowanego falownika — rejestry SolarEdge StorEdge, Fronius SunSpec Model 802 i SMA Sunny Boy Storage. Przepływ polling Node-RED i mapowanie KNX DPT dla automatyzacji autokonsumpcji.

Dlaczego BYD nie ma bezpośredniego portu Modbus

BYD Battery-Box HVM (system wysokonapięciowy 403,2 V, 2,76–22,1 kWh na stos) komunikuje się z falownikiem przez własnościowy protokół CAN-bus / EnergyLink na porcie CAN między baterią a falownikiem. BYD nie udostępnia dostępnego dla użytkownika portu Modbus TCP ani RS485 na samej baterii. Wszystkie dane baterii muszą być odczytywane pośrednio przez certyfikowanego partnera falownika.

SolarEdge StorEdge + BYD: mapa rejestrów

SolarEdge SE5K-RWS00BNN4 (StorEdge) z BYD Battery-Box HVM: Modbus TCP port 1502, unit ID 1.

Rejestry holding specyficzne dla baterii (FC3, uint16 / int16):

RejestrOpisTyp / Skalowanie
62784 (0xF540)Średnia temperatura baterii 1int16, °C x10
62786 (0xF542)Napięcie DC baterii 1uint16, V x100
62794 (0xF54A)Chwilowa moc baterii 1int16, W — dodatnie=ładowanie, ujemne=rozładowanie
62798 (0xF54E)Stan naładowania baterii 1 (SOC)uint16, %
62800 (0xF550)Stan zdrowia baterii 1 (SOH)uint16, %
62852 (0xF584)Maska bitowa statusu baterii 1uint16: bit 3=ładowanie, bit 4=rozładowanie, bit 11=błąd

Mapowanie KNX: rejestr 62794 (int16, W) podzielony przez 1000 mapuje na KNX DPT 9.001 (moc baterii kW), rejestr 62798 na KNX DPT 5.001 (SOC %). Uwaga: rejestr 62794 jest liczbą całkowitą ze znakiem — bramka MDT Modbus powinna być skonfigurowana na typ danych signed int16 dla tego rejestru.

Fronius Symo Gen24 + BYD: SunSpec Model 802

Fronius Symo Gen24 5.0-1 z BYD Battery-Box HVM: Modbus TCP port 502, unit ID 1. Rejestry SunSpec zaczynają się od 40001 (adres bazowy).

SunSpec Model 802 (Battery Base Model) jest dołączany po Model 103 (Inverter). Aby dynamicznie zlokalizować Model 802: skanować listę bloków SunSpec od bazy. W praktyce dla Fronius Gen24 z firmware 1.24.x rejestry baterii zaczynają się od około 40331:

Fronius Gen24 SunSpec Model 802 — kluczowe rejestry

Register 40331: SunSpec Model 802 ID (value 802)
Register 40333: Battery SOC (uint16, SF from register 40372)
Register 40337: Battery instantaneous power (int16, W — positive=charging)
Register 40341: Battery status (enum16: 1=off, 3=charging, 4=discharging, 7=fault)
Register 40361: Battery SOC (float32 alternative, direct %)

Do zastosowań produkcyjnych: bramka MDT Modbus odczytuje rejestr 40361 (2 rejestry, float32 big-endian) dla SOC i rejestr 40337 (int16) dla mocy. Mapowanie na adresy grupowe KNX.

SMA Sunny Boy Storage + BYD: adresy rejestrów

SMA SBS6.0-10 z BYD Battery-Box: Modbus TCP port 502, unit ID 3 (SMA typowo używa unit ID 3 dla falowników magazynowania).

RejestrOpisTyp
30845-30846SOC baterii (0–100 %)uint32
30851-30852Stan zdrowia baterii (0–100 %)uint32
30775-30776Moc ładowania baterii (W — dodatnie=ładowanie, ujemne=rozładowanie)int32
30843-30844Status operacyjny baterii (2291=pusty, 2292=ładowanie, 2293=rozładowanie, 2294=pełny)uint32

Uwaga: SMA używa typów uint32 (po 2 rejestry) nawet dla wartości procentowych. Bramka MDT Modbus: typ danych 'unsigned 32-bit integer', kolejność bajtów 'big-endian', wartość rejestru SOC dzielić przez 1 (już w procentach, skalowanie niepotrzebne).

Przepływ polling Node-RED

Zainstaluj pakiety Node-RED: node-red-contrib-modbus (Modbus TCP polling). Struktura przepływu:

Przepływ Node-RED — SolarEdge BYD SOC i moc do KNX

Inject (30s interval)
  → Modbus Read (server: 192.168.1.100, port 1502, unit 1,
      FC3, start 62798, count 1, datatype INT)
  → Function: msg.payload = msg.payload[0]; return msg;
  → KNX-Classic Out (GA: 6/4/1, DPT 5.001 — Battery SOC %)

Second branch from inject (register 62794 — battery power):
  → Modbus Read (same server, start 62794, count 1, datatype INT)
  → Function:
      var value = msg.payload[0];
      if (value > 32767) { value = value - 65536; }
      msg.payload = value / 1000;
      return msg;
  → KNX-Classic Out (GA: 6/4/2, DPT 9.001 — Battery power kW,
      positive = charging)

Automatyzacja autokonsumpcji KNX

Sterownik logiczny ETS6 (MDT Logic Controller lub Weinzierl IP 731): Reguła — jeśli GA 6/4/1 (SOC baterii) powyżej 85 I GA 7/0/0 (eksport PV, DPT 9.001) powyżej 0,5 kW, aktywuj wyjście KNX GA 1/5/4 (boost CWU, timer 30 min). Reguła — jeśli GA 6/4/1 (SOC) spada poniżej 20, dezaktywuj wyjście KNX GA 1/6/1 (zezwolenie ładowania EV, DPT 1.001). Histereza: SOC musi wzrosnąć powyżej 30, aby ponownie włączyć ładowanie EV.

Obsługa liczb całkowitych ze znakiem: Rejestr SolarEdge 62794 (moc baterii) jest 16-bitową liczbą całkowitą ze znakiem. Gdy jest odczytywany jako wartość bez znaku przez niektóre bramki, moc ładowania pojawia się jako duża liczba dodatnia (np. 65436 zamiast -100W). Zawsze konfiguruj bramkę MDT SCN-MOD.02 lub równoważną na signed int16 dla tego rejestru, lub stosuj formułę odejmowania (jeśli wartość powyżej 32767: odejmij 65536) w Node-RED lub sterowniku logicznym.

Potrzebujecie rozdzielni KNX z integracją Modbus baterii BYD wykonanej według specyfikacji?

Projektujemy rozdzielnice niskiego napięcia z integracją Modbus baterii SolarEdge, Fronius i SMA, logiką autokonsumpcji KNX i pełną dokumentacją rozruchową — dostarczane przetestowane i zweryfikowane na Waszym obiekcie.

Zapytaj o ofertę →
Ładowanie...
Powrót do góry