Accumulo batteria · BYD Battery-Box · Modbus TCP · KNX · 9 min di lettura

BYD Battery-Box HVM: SOC e potenza verso KNX tramite Modbus TCP inverter

Lettura del SOC e della potenza di carica/scarica della BYD Battery-Box HVM tramite l'interfaccia Modbus TCP dell'inverter accoppiato — registri SolarEdge StorEdge, Fronius SunSpec Model 802 e SMA Sunny Boy Storage. Flusso di polling Node-RED e mappatura KNX DPT per l'automazione dell'autoconsumo.

Perché BYD non ha una porta Modbus diretta

BYD Battery-Box HVM (sistema ad alta tensione 403,2 V, 2,76–22,1 kWh per stack) comunica con l'inverter tramite un protocollo proprietario CAN-bus / EnergyLink sulla porta CAN tra batteria e inverter. BYD non espone una porta Modbus TCP o RS485 accessibile all'utente sulla batteria stessa. Tutti i dati della batteria devono essere letti indirettamente tramite il partner inverter certificato.

SolarEdge StorEdge + BYD: mappa dei registri

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

Registri holding specifici per la batteria (FC3, uint16 / int16):

RegistroDescrizioneTipo / Scala
62784 (0xF540)Temperatura media batteria 1int16, °C x10
62786 (0xF542)Tensione DC batteria 1uint16, V x100
62794 (0xF54A)Potenza istantanea batteria 1int16, W — positivo=carica, negativo=scarica
62798 (0xF54E)Stato di carica batteria 1 (SOC)uint16, %
62800 (0xF550)Stato di salute batteria 1 (SOH)uint16, %
62852 (0xF584)Maschera di bit stato batteria 1uint16: bit 3=carica, bit 4=scarica, bit 11=guasto

Mappatura KNX: il registro 62794 (int16, W) diviso per 1000 corrisponde a KNX DPT 9.001 (potenza batteria kW), il registro 62798 a KNX DPT 5.001 (SOC %). Nota: il registro 62794 è un intero con segno — il gateway MDT Modbus deve essere configurato sul tipo di dato signed int16 per questo registro.

Fronius Symo Gen24 + BYD: SunSpec Model 802

Fronius Symo Gen24 5.0-1 con BYD Battery-Box HVM: Modbus TCP porta 502, unit ID 1. I registri SunSpec iniziano a 40001 (indirizzo base).

SunSpec Model 802 (Battery Base Model) viene aggiunto dopo il Model 103 (Inverter). Per localizzare dinamicamente il Model 802: scansionare l'elenco dei blocchi SunSpec dalla base. In pratica per Fronius Gen24 con firmware 1.24.x, i registri batteria iniziano a circa 40331:

Fronius Gen24 SunSpec Model 802 — registri chiave

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 %)

Per uso in produzione: il gateway MDT Modbus legge il registro 40361 (2 registri, float32 big-endian) per il SOC e il registro 40337 (int16) per la potenza. Mappatura sugli indirizzi di gruppo KNX.

SMA Sunny Boy Storage + BYD: indirizzi dei registri

SMA SBS6.0-10 con BYD Battery-Box: Modbus TCP porta 502, unit ID 3 (SMA utilizza tipicamente unit ID 3 per gli inverter di accumulo).

RegistroDescrizioneTipo
30845-30846SOC batteria (0–100 %)uint32
30851-30852Stato di salute batteria (0–100 %)uint32
30775-30776Potenza di carica batteria (W — positivo=carica, negativo=scarica)int32
30843-30844Stato operativo batteria (2291=vuota, 2292=carica, 2293=scarica, 2294=piena)uint32

Nota: SMA utilizza tipi uint32 (2 registri ciascuno) anche per i valori percentuali. Gateway MDT Modbus: tipo di dato 'unsigned 32-bit integer', ordine byte 'big-endian', dividere il valore del registro SOC per 1 (già in percentuale, nessuna scala necessaria).

Flusso di polling Node-RED

Installare i pacchetti Node-RED: node-red-contrib-modbus (polling Modbus TCP). Struttura del flusso:

Flusso Node-RED — SolarEdge BYD SOC e potenza verso 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)

Automazione dell'autoconsumo KNX

Controllore logico ETS6 (MDT Logic Controller o Weinzierl IP 731): Regola — se GA 6/4/1 (SOC batteria) è superiore a 85 E GA 7/0/0 (export PV, DPT 9.001) è superiore a 0,5 kW, attivare l'uscita KNX GA 1/5/4 (boost ACS, timer 30 min). Regola — se GA 6/4/1 (SOC) scende sotto 20, disattivare l'uscita KNX GA 1/6/1 (abilitazione ricarica VE, DPT 1.001). Isteresi: il SOC deve risalire oltre 30 per riabilitare la ricarica VE.

Gestione degli interi con segno: Il registro SolarEdge 62794 (potenza batteria) è un intero con segno a 16 bit. Quando viene letto come valore senza segno da alcuni gateway, la potenza di carica appare come un grande numero positivo (es. 65436 invece di -100W). Configurare sempre il gateway MDT SCN-MOD.02 o equivalente su signed int16 per questo registro, oppure applicare la formula di sottrazione (se valore superiore a 32767: sottrarre 65536) in Node-RED o nel controllore logico.

Avete bisogno di un quadro KNX con integrazione Modbus batteria BYD realizzato su specifica?

Progettiamo quadri di bassa tensione con integrazione Modbus batteria SolarEdge, Fronius e SMA, logica di autoconsumo KNX e documentazione completa di messa in servizio — consegnati testati e verificati presso il vostro sito.

Richiedi un preventivo →
Caricamento in corso ...
Torna all'inizio