Documentatie

lezen en besturen van cFos Charging Manager via Modbus

Naast HTTP en MQTT biedt de cFos Charging Manager ook een Modbus API. Deze is gemodelleerd naar SunSpec. Je kunt een TCP poort of COM poort parameter en een Modbus ID specificeren onder "SunSpec adres instellingen" in de Charging Manager configuratie. Dit zorgt ervoor dat de cFos Laadmanager luistert naar de TCP poort of COM poort onder de gespecificeerde parameters en naar de Modbus ID en Modbus ID + 1. Algemene Laadmanager waarden, parameters, vlaggen en variabelen zijn beschikbaar onder de Modbus ID. Apparaten die zijn ingesteld in de Charging Manager (wallboxen en meters) kunnen worden opgevraagd onder ID + 1. Als Modbus-functie kun je 3 en 4 gebruiken voor lezen en 6 en 16 voor schrijven. Let op: Op Raspberry zijn TCP-poorten lager dan 1024 gereserveerd voor programma's met beheerdersrechten. Het is daarom beter om een hoger poortnummer te kiezen, bijvoorbeeld 1502.

In de SunSpec Modbus specificatie staat dat het Modbus adresbereik begint met een identifier "SunS" en dan zogenaamde SunSpec modellen bevat. Elk model heeft een modelidentificatienummer op offset 0 en een lengtespecificatie van de overige registers die bij het model horen op offset 1. De waarden van het model volgen dan vanaf offset 2. Belangrijk: U moet het adresbereik van SunSpec scannen en altijd de lengte op offset 1 schatten. Ga niet uit van vaste lengtes of vaste registeradressen, omdat het zeer waarschijnlijk is dat we in de loop van de tijd meer waarden aan de modellen zullen toevoegen. Model 1 (Common) komt altijd als eerste, met details over de fabrikant, versienummers, etc. Download de SunSpec Modbus specificaties van de SunSpec Alliance voor gedetailleerde informatie. Het SunSpec adresbereik voor de cFos LaadManager begint met adres 40000.

De cFos LaadManager toont aanvankelijk de volgende waarden als Model 213 (driefasige meter, zwevend) onder de Modbus ID na het Common model:
Grid consumption
Total consumers
Total generators
PV surplus
Utilised wallbox power
Available wallbox power
Fault power

Daarna volgt "custom" model 60000 met instelparameters van de cFos Charging Manager: 8 floatwaarden volgen momenteel na model en lengte: Maximum totale stroom, reserve, overdraw, maximum totale wallbox stroom in mA per fase, maximum fase onbalans (in mA), load management active (1 = actief, 0 = inactief), onbalans incl. verbruikers (1 = actief, 0 = inactief), load management active (1 = actief, 0 = inactief), load management inactive (1 = actief, 0 = inactief), load imbalance incl. verbruikers (1 = actief, 0 = inactief). Belasting (1 = actief, 0 = inactief), maximale totale stroom in procenten. Dit zijn de globale Charging Manager parameters die ook in de UI kunnen worden ingesteld. Wijzigingen aan deze waarden worden opgeslagen (met een maximale vertraging van 150 seconden). De totale stroom in procenten kan bijvoorbeeld worden gebruikt om het laadvermogen dynamisch aan te passen op verzoek van de netbeheerder.

Dit wordt gevolgd door "custom" model 60001. Na het model en de lengte volgen 32 registers (16 bits). Deze kunnen de waarden 0 en 1 bevatten en maximaal 32 Laadmanager-flags lezen of schrijven. De status van deze vlaggen kan dan worden opgevraagd in formules met CM._flag1 tot CM._flag32 en worden gebruikt voor berekeningen.

Dit wordt gevolgd door "custom" model 60002, gevolgd door mogelijke Charging Manager variabelen na model en lengte. Er zijn 22 registers beschikbaar voor elke variabele. De eerste 20 registers zijn een Modbus-string voor de variabelenaam (te lange namen worden afgekapt). De volgende 2 registers bevatten de huidige floatwaarde van de variabele. Als je de floatwaarde van een Laadmanager-variabele schrijft, wis je alle bestaande formules en stel je de variabele in op een vaste waarde.

Onder Modbus ID + 1 worden meters en wallboxen die zijn ingesteld in de Charging Manager als volgt weergegeven. Wallboxen wisselen uit als SunSpec model 113 uitgebreid met 2 16-bits registers. Offset 62 bevat de status van de wallbox (1=wachtend, 2= aangesloten, 3=ladend, 4=ladend met ventilatie, 5=fout) en offset 63 bevat de apparaat-ID. 1 = E1, 2 = E2, enz. Tellers worden weergegeven met het model 213 uitgebreid met 2 16-bits registers. Offset 126 bevat de rol van de meter (0=display, 1=verbruik, 2=opwekking, 3=netverbruik, 4=verbruik elektrische auto, 5=opslag thuis, 6=opslag alles), offset 127 bevat de apparaat-ID (-1 voor M1, -2 voor M2, enz.). Als de meter een opslagapparaat is (rol 5 of 6), wordt model 213 gevolgd door model 124, dat wordt uitgebreid met een 16-bits register. Offset 26 bevat opnieuw de apparaat-ID. Om apparaten onder Modbus ID + 1 weer te geven, moet je "Publish device information via Modbus" activeren in de apparaatinstellingen.

Aufstellung Start-Addressen der Modelle:
Modbus ID:
Model: 1, Addr: 40002
Model: 213, Addr: 40070, Netzbezugszähler
Model: 213, Addr: 40196, Summe Verbraucher
Model: 213, Addr: 40322, Sume Erzeuger
Model: 213, Addr: 40448, PV Überschuss
Model: 213, Addr: 40574, Genutzte Wallboxleistung
Model: 213, Addr: 40700, Verfügbare Wallboxleistung
Model: 213, Addr: 40826, Fehler-Leistung
Model: 60000, Addr: 40952
Model: 60001, Addr: 40970
Model: 60002, Addr: 41004
Die konkreten Start-Addressen können bei späteren Versionen des cFos Charging Managers variieren, daher sollte der Register-Bereich, wie oben beschrieben, gescannt werden.
Modbus ID + 1:
Modelle und Startadressen hängen von den eingeblendeten Geräten ab.

Lijst met waarden voor model 213:
Offset 0: 213
Offset 1: Lengte
Offset 2: Totale stromen L1-L3 (A)
Offset 4: Stroom L1 (A)
Offset 6: Stroom L2 (A)
Offset 8: Stroom L3 (A)
Offset 10: Spanning (V)
Offset 12: Spanning L1 (V)
Offset 14: Spanning L2 (V)
Offset 16: Spanning L3 (V)
Offset 26: 50 Hz
Offset 28: Vermogen (W)
Offset 30: Vermogen L1 (W)
Offset 32: Vermogen L2 (W)
Offset 34: Vermogen L3 (W)
Offset 36: Schijnbaar vermogen (VA)
Offset 38: Schijnbaar vermogen L1 (VA)
Offset 40: Schijnbaar vermogen L2 (VA)
Offset 42: Schijnbaar vermogen L3 (VA)
Offset 44: Reactief vermogen (VAr)
Offset 60: Export, actief vermogen (Wh)
Offset 68: Import, actief vermogen (Wh)
Offset 126: Rol (voor Modbus ID + 1)
Offset 127: Apparaat-ID (voor Modbus ID + 1)

Lijst met waarden voor model 113:
Offset 0: 113
Offset 1: Lengte
Offset 2: Totale stromen L1-L3 (A)
Offset 4: Stroom L1 (A)
Offset 6: Stroom L2 (A)
Offset 8: Stroom L3 (A)
Offset 16: Spanning L1 (V)
Offset 18: Spanning L2 (V)
Offset 20: Spanning L3 (V)
Offset 22: Vermogen (W)
Offset 24: 50 Hz
Offset 26: Schijnbaar vermogen (VA)
Offset 32: Invoer, actief vermogen (Wh)
Offset 62: Status (voor Modbus ID + 1)
Offset 63: Apparaat-ID (voor Modbus ID + 1)

Lijst met waarden voor model 124:
Offset 0: 124
Offset 1: Lengte
Offset 2: Max. laad-/ontlaadvermogen (W)
Offset 3: Percentage van huidige laadvermogenslimiet
Offset 4: Percentage van huidige ontlaadvermogenslimiet
Offset 8: Laadstatus in procenten
Offset 18: Schaalfactor voor offset 2
Offset 19: Schaalfactor voor offset 3 en 4
Offset 26: Device ID (voor Modbus ID + 1)

Lijst met waarden voor model 60000:
Alle waarden in float, lees/schrijftoegang, zorgt ervoor dat de flash wordt bijgewerkt, d.w.z. niet vaak wijzigen om schade te voorkomen.d.w.z. niet vaak wijzigen om schade te voorkomen.
Offset 0: 60000 (unt16, alleen-lezen)
Offset 1: Lengte (uint16, alleen-lezen)
Offset 2: Max. Totale stroom (mA)
Offset 4: Power Reserve (mA)
Offset 6: Overdraw (mA)
Offset 8: Max Wallbox totale stroom (mA)
Offset 10: Max. Fase onbalans (mA)
Offset 12: 1 = Load management actief, 0 = inactief
Offset 14: 1 = Thuisverbruik toevoegen aan onbalans, 0 = inactief
Offset 16: Percentage van max. totale stroom, wordt niet opgeslagen, kan vaak worden gewijzigd.

Lijst met waarden voor model 60001:
Alle waarden 0 of 1, int16, lees/schrijftoegang, wordt niet opgeslagen, kan vaak worden gewijzigd.
Offset 0: 60001 (uint16, alleen-lezen)
Offset 1: Length (uint16, alleen-lezen)
Offset 2: CM._flag1
...
Offset 33: CM._flag32

Lijst met waarden voor model 60002:
Alle waarden zijn float, lees-/schrijftoegang, worden niet opgeslagen, kunnen vaak worden gewijzigd. Offset 0: 60002 (uint16, alleen-lezen)
Offset 1: Lengte (uint16, alleen-lezen)
Offset 2..22: Naam Laadmanagervariabele 1
Offset 23..24: Waarde Laadmanagervariabele 1
Offset 25..45: Naam Laadmanagervariabele 2
Offset 46..47: Waarde Laadmanagervariabele 2
...