Einspeiseleistung via Modbus regeln

  • Hallo,


    ich hoffe ich bin hier im richtigen Bereich für die etwas speziellere Frage:


    Ich möchte mir eine Sunny Boy 2.5 zulegen und diesen möglichst "tief" in meine Heimautomatisierung integrieren.


    Frage diesbezüglich: Ich habe die Modbus-Doku überflogen, bin mir aber dennoch nicht sicher, ob ich die Einspeiseleistung auch via Modus regeln kann. Letztlich würde ich gerne eine Art Zero-Export realisieren, aber ohne weitere SMA-Komponenten.


    Geht sowas ?


    Gruß
    Ben

  • Was machst du denn mit dem Solarstrom-Überschuss?
    einstein0

    30 J Erfahrung mit PV im Netzverbund. Erster zweiachsiger Tracker in Australien.
    1 kW- Insel im Camper ohne PV! EV; Mitsubishi Imiev. 30kW-PV-Anlage Ost/West.
    PV-Notstromversorgung im MFH mit Infini 3 kW Hybrid-WR und 1,2 kW Bi-WR als Testspeicher.

  • Ich gebe mir mal selber die Antwort:


    Die Leistung lässt sich via Modbus regeln. Leider nur in Prozent, aber das reicht.
    Somit kann ich mit einem günstigen SDM630-Zähler eine Zero-Export Lösung realisieren.


    Der SDM630 sowie der Sunny Boy werden jeweils via Modbus-TCP abgefragt und dann über einen Node-Red-Flow erfolgt dann die eigentliche Regelung.


    cu,
    Ben

  • Hallo Ben,


    was wichtig ist, wenn du selber eine Anlagensteuerung realisierst, dass du nur die in der Dokumentation beschrieben und empfohlenen Register verwendest.


    Hintergrund (mit Beispiel Wirkleistung):
    Bei SMA hat man 2 Möglichkeiten die Vorgabe einzustellen.


    - statisch
    - dynamisch



    STATISCH:
    Bei dem Register für die statische Vorgabe wird die Vorgabe einmal im Wechselrichter eingegeben und in einem Flash Speicher abgelegt. Wie aber z.B. bei einem USB Stick hat auch unser Flash Speicher eine bestimmte Anzahl von Schreibzyklen bis er kaputt geht.
    Dieses Register hat also auch seine Daseinsberechtigung und sollte also nur verwendet werden, wenn man eine Vorgabe langfristig speichern möchte. Am besten diese Funktion bei einer Regelung nicht verwenden, deswegen schreibe ich hier auch kein Beispiel :wink:


    DYNAMISCH (das was du machen willst):
    Möchte man die Vorgabe dynamisch ändern, also selber mit einer Steuereinheit setzen, dann dürfen NUR die dafür vorgesehenen Register verwendet werden. Diese Register verwenden einen flüchtigen Speicher (kein Flash) und führen somit auch nicht zur Beschädigung des Wechselrichters.


    Ich habe mal für die Wirkleistung ein paar Register Nummern als Beispiel raus gesucht. Voraussetzung ist die Freigabe des Wechselrichters in der Geräteliste für diese Funktion (ist ja auch nur ein Beispiel :wink: ).


    40210 Betriebsart der Wirkleistung -> 1079 Wirkleistungsbegrenzung P durch Anlagensteuerung
    -> Dieses Register muss auf 1079 gestellt sein um überhaupt externe Befehle z.B. via Modbus oder Power Control Modul empfangen zu dürfen.


    ACHTUNG: Dieses Register ist ein Grid Guard geschütztes Register. d.h. man benötigt ein personalisiertes Installateurspasswort. Bei Änderungen bei Grid Guard geschützen Informationen wird die personalisierte Nummer bei Änderungen im Wechselrichter protokolliert. Ein solches Passwort kann über den Service erworben werden. Alternativ kann diese Einstellung auch in den ersten 10h des Wechselrichter Betriebes ohne Passwort vorgenommen werden


    Zusätzlich sollten noch folgende Punkte eingestellt werden ...
    41193 Betriebsart für ausbleibende Wirkleistungsbegrenzung
    -> Was soll das Gerät machen, wenn es die Wiederholenden Signale ausbleiben? (Werte behalten oder Verwendung einer Fallback Einstellung). Dieses Register ist Grid Guard geschützt.


    Bei Fallback (Rückfallebene):
    41195 Timeout für ausbleibende Wirkleistungsbegrenzung, in sec
    -> Zeit einstellen nach wieviel Sekunden der Rückfall wirksam sein soll. Dieses Register ist Grid Guard geschützt.


    41197 Fallback Wirkleistungsbegrenzung P, in % von WMax für ausbleibende Wirkleistungsbegrenzung
    -> Wert des Rückfalls eingeben wenn Fallback aktiv ist. Dieses Register ist Grid Guard geschützt.


    Die eigentliche Anlagensteuerung macht du hiermit ...


    40016 Wirkleistungssollwert P, in % der maximalen Wirkleistung (PMAX) des Wechselrichters
    -> Write only (WO) Register zum Schreiben des Wertes verwenden


    30775 Wirkleistung über alle Außenleiter, in W
    -> Read only (RO) Register zum Auslesen des Wertes verwenden.


    Ich hoffe das hilft etwas weiter ...

    Falko Schmidt | SMA Solar Technology AG | Team Kundendialog

  • Vielen Dank für den ausführlichen Beitrag !


    Genau die beschriebenen Register verwende ich. In der Modbus-Doku wird ja explizit darauf hingewiesen (Verweis auf S.62), dass nur bestimmte Register (Netzsystemdienstleistungen) zyklisch geändert werden dürfen.


    Ursprünglich habe ich versucht, das Register 40149 (Wirkleistungsvorgabe, in W) zu schreiben, das funktioniert aber leider nicht (Das Datagram wird aber fehlerlos akzeptiert).


    Hast Du einen Hinweis für uns, warum das nicht funktioniert? Die Auflösung wäre halt etwas feiner und nicht auf +-25Watt limitiert (beim 2.5er).


    BTW: In welchen Abständen kann ich die Register verlässlich ändern? Derzeit lese und schreibe ich im 5-Sekunden-Takt. Sekündlich wäre natürlich genauer - die Frage ist nur, ob die Regelung im Sunny-Boy da zuverlässig hinterher kommt, bzw. der Modbus-Stack im Sunny-Boy da nicht ins straucheln gerät.


    cu,
    Ben

  • Mich interessiert auch die Sache mit dem Register setzen


    Jetzt kommt langsam die Jahrezeit wo man besser auf dem Sofa als auf der Terasse aufgehoben ist.


    Womit setzt ihr die Register?


    Ich würde das gerne mit dem PHP Modbus machen weil ich dieses per PHP Script auf dem NAS gut händeln kann

    7,28 kWp, 6000TL20, Ost mit 28 x ReneSola JC260M-24/Bb (02/2013)
    2,65 kWp, 2500TL21, West mit 10 x SolarWorld AG SW 265 mono (EU)
    6,48 kWp, SB5.0, W/NW mit 22 x SolarWorld AG SW 270 mono (EU)
    14,8 kWh Hoppecke Batterie mit SI 6H-11

  • Hallo,


    erstmal vielen Dank an Falko Schmidt für die sehr aufschlussreiche Antwort. Ein paar Fragen bleiben allerdings.


    Du sagst das der Register 40016 zum setzen der Begrenzung verwendet wird und der Register 30775 zum auslesen. Der Register 30775 gibt allerdings nur die aktuelle Leistung und nicht die Begrenzung selbst zurück.


    Meine nächste Frage wäre nun ob der Register 41255 zum setzen nicht besser geeignet wäre. Er ist sowohl lesbar als auch schreibbar und gekennzeichnet als "Verwendbar für Anlagensteuerung"


    Was mich hier verwirrt ist das es 3 Register zur "Normierte Wirkleistungsbegrenzung durch Anlagensteuerung" gibt.


    - 40016 (nur schreibbar und ohne Nachkommastellen)

    - 40023 (nur schreibbar mit 2 Nachkommastellen)

    - 41255 (lesbar und schreibbar mit 2 Nachkommastellen)


    Warum gibt es 3 unterschiedliche Register wenn man doch alles mit dem Register 41255 machen kann. Weiterhin würde mich interessieren ob der Register 41255 den Fallbackwert ausgibt wenn ich ihn entsprechend des Timeouts eine Weile nicht beschrieben habe.


    achso, ich habe übrigens einen SMA Sunny Boy 4.0 und arbeite an einer Integration mit https://www.openhab.org/


    Vielen Dank schon mal im Voraus für die Antwort.


    Holger

  • aktuell zeigt der Register 41255 bei mir übrigens 251,63%. Ich vermute ich das dies eine Art default wert ist der ausgegeben wird, da die eigentliche Anlagensteuerung noch nie zum Einsatz kam bzw noch nie Werte gesetzt wurden.


    Ansonsten sind die restlichen Einstellungen entsprechend dem Beitrag von Falko Schmidt über die Web UI konfiguriert. Konnte es auch über modbus validieren.

  • Hallo Holger und Falko,


    ich scheitere derzeit daran meinen SMA STP25000 Wechselrichter dynamisch zu regeln. Dabei habe ich die in Falkos Beitrag geschilderten Register genutzt. Holger hattest du inzwischen Erfolg?


    Was habe ich gemacht?

    1. Im Sunny Explorer als Installateur angemeldet und

    • Modus TCP aktiviert
    • Betriebsart Wirkleistungsbegrenzung P durch Anlagensteuerung aktiviert ( GG Code durch Installateur eingegeben )
    • PC mit Sunny Explorer abgemeldet

    2. Über Modbus Register senden

    Variante 1

    senden:

    40210 Betriebsart Wirkleistungsbegrenzung =1079

    41193 Betriebsart für ausbleibende Wirkleistungsbegrenzung=2507

    41195 Timeout für Anlagensteuerung=195

    41197 Fallback Wirkleistungsbegrenzung P,=100

    43090 dauerhafte Übermittel GG Code

    40023 Solleistung/Peakleistung =6000

    ODER

    40016 Solleistung/Peakleistung =6000


    lesen:

    30839 Wirkleistungssollwert in %=100

    30835 Betriebsart= 30835


    Variante 2

    40210 Betriebsart Wirkleistungsbegrenzung =1079

    40149 Wirkleistungsvorgabe, in W,=3000

    40151 Anlagensteuerung aktivieren =802

    41193 Betriebsart für ausbleibende Wirkleistungsbegrenzung=2507

    41195 Timeout für Anlagensteuerung=195
    43090 dauerhafte Übermittel GG Code

    41197 Fallback Wirkleistungsbegrenzung P,=100


    Beide Varianten sind leider nicht erfolgreich. Alle Werte werden zyklisch per Modbus geschrieben oder gelesen ( alle 5s oder 10 s)


    Habt ihr Anhaltspunkte für mich die ich prüfen kann?

    Ich hänge mit der Inbetriebnahme an diesem Punkt seit längerem.

    Falko, welches Regelungsverhalten weist der Wechselrichter bei der prozentual geführten Regelung auf, handelt es sich um feste Stufen

    0,30%60%,70%,100% zwischen denen umgeschalten werden kann.


    Viele Grüße


    Michael