Solaire · SunSpec · Modbus · KNX · Table des registres · 10 min de lecture

Table des registres SunSpec Modbus : Puissance AC, SOC batterie et énergie pour toutes les marques solaires

SunSpec définit une disposition standard des registres Modbus pour les onduleurs solaires, permettant à une seule configuration de passerelle KNX Modbus de fonctionner avec plusieurs marques. Savoir quels registres contiennent la puissance AC, l'état de charge de la batterie et les totaux d'énergie – et connaître les différences de port et d'ID d'unité spécifiques aux marques – est le fondement de toute intégration solaire KNX.

SunSpec Alliance et la table des registres standard

La SunSpec Alliance est un consortium de fabricants de l'industrie solaire qui définit des mappages de registres Modbus standard. Tout onduleur étiqueté conforme SunSpec utilise les mêmes adresses de registre pour les mesures de base, quelle que soit la marque. Cette standardisation simplifie considérablement la configuration de la passerelle KNX Modbus lors de l'intégration de plusieurs marques d'onduleurs sur un même site.

Le modèle de base SunSpec commence au registre de maintien Modbus 40001 (adressage Modbus basé sur 1) ou à l'adresse de registre 40000 (basé sur 0). Ce bloc contient le nom du fabricant, la chaîne de modèle et la version du firmware sous forme de texte ASCII — utile pour vérifier que le bon appareil est connecté lors de la mise en service.

Modèle SunSpec 103 — registres clés de l'onduleur triphasé

All registers: Holding Registers (FC3), 1-based addressing

40001-40002: SunSpec ID (0x5375 0x6e53 = "SunS") — verify connectivity
40003:       Base model length
40004-40021: Manufacturer name (ASCII, 32 chars)
40022-40037: Model string (ASCII, 32 chars)

SunSpec Model 103 (Three-Phase Inverter):
40083:  AC Power (int16, W) — current output power
40085:  AC Power Scale Factor (int16, typically -1 or -2)
        Apply: actual_W = reg40083 * 10^(reg40085)

40089:  AC Frequency (uint16, Hz, scale factor at 40090)
        Typical value: 5000 = 50.00 Hz with SF -2

40093-40094: AC Energy (uint32, Wh) — lifetime production
40095:  AC Energy Scale Factor (int16)

40101:  DC Voltage (uint16, V, scale factor at 40102)
        Typical: 3500 with SF -1 = 350.0V

40107:  Operating state (uint16):
        1=Off, 2=Sleeping, 3=Starting, 4=Running, 5=Throttled
        6=ShuttingDown, 7=Fault, 8=Standby

Référence du port et de l'ID d'unité spécifique à la marque

Bien que SunSpec standardise les adresses de registre, le port TCP Modbus et l'ID d'unité varient selon la marque. L'utilisation d'un mauvais port ou d'un mauvais ID d'unité est la cause la plus fréquente d'échec de mise en service de la passerelle KNX. Le tableau ci-dessous couvre les marques les plus courantes installées en Allemagne, aux Pays-Bas et au Benelux.

Marque / ModèlePort TCPID d'unitéRemarques
SolarEdge HD-Wave15021Activer dans l'application SE : Communication → Modbus TCP
KOSTAL PLENTICORE150271Modbus TCP activé par défaut
Fronius GEN24 Plus5021Activer : Paramètres → Modbus → TCP
GoodWe ES / ET502247ID d'unité par défaut 247 — certaines versions FW utilisent 1
SMA Sunny Boy Storage5023Activer via SMA Sunny Portal → Modbus
Sungrow SH series5021Activer dans l'application iSolarCloud ou l'interface Web locale
Huawei SUN200066070Nécessite Smart Dongle — PAS le port 502
Enphase IQ8 gateway80 (HTTP/JSON)N/AEnphase utilise l'API HTTP Envoy, pas Modbus

Huawei SUN2000 note critique : Le Huawei SUN2000 utilise le port 6607 (pas le standard 502) et l'ID d'unité 0 (pas 1). C'est l'erreur de configuration la plus courante lors de l'intégration des onduleurs Huawei avec les passerelles KNX. Vérifiez toujours avec Modbus Poll avant de configurer la passerelle.

SunSpec Model 802 — registres de stockage batterie

SunSpec Model 802 définit des registres standard pour les systèmes de stockage batterie. Toutes les marques d'onduleurs n'implémentent pas Model 802 — vérifiez le manuel de l'onduleur ou le scan de modèle SunSpec (à partir du registre 40001) pour confirmer la présence du modèle batterie. Sinon, utilisez les registres propriétaires de la marque documentés ci-dessous.

SunSpec Model 802 — registres clés de stockage batterie

SunSpec Model 802 (Battery Storage):
40255: Battery SOC (uint16, %) — state of charge 0-100
40258-40259: Battery Power (int32, W)
  Positive = charging, Negative = discharging
40261: Battery Voltage (uint16, 0.01V)
40263: Battery Current (int16, 0.01A)
40265: Battery Temperature (int16, 0.1°C)
40267: Battery State (uint16):
  1=Disconnected, 2=Initialising, 3=Connected
  4=Standby, 5=SOC Protection, 6=Fault, 7=Charging
  8=Discharging

Proprietary battery registers (where Model 802 absent):
  SolarEdge: reg 0xE140 (battery level %), 0xE18D (battery power W)
  Fronius GEN24: reg 40352 (today generation float32 Wh)
                 reg 40358 (grid power float32 W)
  KOSTAL PLENTICORE: register 154 (battery SOC, uint16, 1%)

Configure 2-register reads for int32 values:
  In KNX gateway: set data type to 32-bit signed integer
  High word first (big-endian) for all SunSpec int32 registers

Configuration de la passerelle KNX Modbus

Weinzierl 5010 et MDT SCN-MIG.01 sont les passerelles KNX Modbus TCP les plus couramment utilisées dans les projets KNX européens. Les deux prennent en charge plusieurs appareils Modbus et un mappage DPT flexible. Configurez chaque onduleur comme un appareil Modbus distinct avec son adresse IP, son port et son ID d'unité spécifiques à la marque.

Configuration Weinzierl 5010 pour onduleur SolarEdge

Weinzierl KNX Modbus Gateway 5010 — ETS5/6 plug-in config:

Device 1 — SolarEdge HD-Wave:
  IP: 192.168.1.50
  Port: 1502
  Unit ID: 1
  Protocol: Modbus TCP

Poll task 1 — AC Power:
  Register: 40082 (0-based = 40083 - 1)
  Type: int16, signed
  Scale: read register 40084 (SF), apply: value * 10^SF
  KNX GA: 6/0/1
  DPT: 9.001 (2-byte float, kW — divide by 1000 in gateway)
  Poll interval: 10 seconds

Poll task 2 — Battery SOC:
  Register: 0xE140 (SolarEdge proprietary, 0-based)
  Type: uint16
  KNX GA: 6/0/3
  DPT: 5.001 (1-byte %, 0-100)
  Poll interval: 60 seconds

Poll task 3 — AC Energy lifetime:
  Registers: 40092-40093 (2 registers, uint32)
  Type: 32-bit unsigned integer, big-endian
  KNX GA: 6/0/4
  DPT: 13.013 (4-byte signed, Wh)
  Poll interval: 300 seconds

Facteurs d'échelle – l'erreur d'intégration la plus courante

SunSpec définit des registres de facteur d'échelle qui doivent être appliqués aux valeurs brutes des registres. Le facteur d'échelle est un entier signé représentant un multiplicateur de puissance de 10. Ne pas appliquer le facteur d'échelle entraîne des erreurs de 10x ou 100x dans les valeurs de puissance et d'énergie – un système mis en service semblera fonctionner mais rapportera des données incorrectes.

Application du facteur d'échelle – exemple de puissance AC

Register 40083 raw value: 3500 (int16)
Register 40085 SF value: -1 (int16)

Actual AC power = 3500 * 10^(-1) = 350.0 W

Without SF: gateway would report 3500W (10x error)
With SF correctly applied: 350W (correct)

Weinzierl 5010 auto-SF option:
  Enable "Read Scale Factor register" in poll task config
  Gateway reads SF register automatically, applies to value
  Outputs scaled float to KNX DPT 9.001

MDT SCN-MIG.01:
  Manually enter the SF value as a fixed divisor
  If SF is always -1 for your inverter: enter divisor 10
  Not suitable if SF value changes dynamically

Best practice: verify SF value with Modbus Poll tool first
  Read register 40085 — confirm it returns -1 or -2
  Only then configure gateway with that fixed SF
  Most residential inverters have fixed SF values

Vérification de la mise en service avec Modbus Poll

Avant de configurer la passerelle KNX, vérifiez la connexion Modbus TCP de l'onduleur et les valeurs des registres à l'aide de Modbus Poll (logiciel Windows gratuit). Cette étape détecte les erreurs de connexion, de port, d'ID d'unité et d'adresse de registre avant qu'elles ne se propagent dans la configuration de la passerelle KNX.

Étapes de vérification de la mise en service Modbus Poll

1. Open Modbus Poll → Connection → Connect
   Mode: Modbus TCP/IP
   IP: <inverter IP or Smart Dongle IP>
   Port: <brand-specific port from table above>
   Slave ID: <brand-specific unit ID>

2. Setup → Read/Write Definition:
   Function: 03 (Read Holding Registers)
   Start address: 40000 (0-based = reg 40001)
   Quantity: 130 (reads registers 40001-40130)
   Click OK

3. Verify register 40001-40002 contains SunSpec ID:
   Should read: 21843 and 28243 (0x5375 and 0x6E53)
   Confirms SunSpec-compliant device at this address

4. Find register 40083 — AC Power raw value
   Compare with inverter display ± 5W
   Read register 40085 for scale factor

5. Apply scale factor: raw * 10^SF = actual watts
   Verify result matches inverter LCD or app display

6. Only configure KNX gateway after confirming:
   - Correct IP, port, unit ID connects successfully
   - AC power register matches inverter display
   - Battery SOC register (40255 or brand-specific) is correct

Astuce de lecture de registre uint32

Pour les registres 32 bits (énergie AC, puissance batterie), lisez 2 registres holding consécutifs. Modbus Poll les affiche séparément — combinez : (reg_n * 65536) + reg_n+1 pour uint32 big-endian. La plupart des passerelles KNX gèrent cela automatiquement lorsqu'elles sont configurées en type 32 bits.

Activation de Modbus sur les onduleurs

La plupart des onduleurs sont livrés avec Modbus TCP désactivé pour des raisons de sécurité. Activez-le via l'application du fabricant ou l'interface Web locale avant de tenter la connexion. SolarEdge nécessite la connexion installateur dans l'application SE installer. Fronius GEN24 active Modbus dans l'interface Web locale sous Paramètres.

Besoin d'un panneau solaire avec intégration KNX Modbus sur mesure ?

Nous concevons et fabriquons des armoires basse tension avec des passerelles Modbus TCP vérifiées SunSpec, un mappage DPT KNX pour la puissance CA et le SOC de la batterie, et une documentation de mise en service complète livrée testée sur votre site.

Demander un devis →
Loading...
Back to top