[ModBus Vorlage] SolarEdge WR

Im Gateway trägst du die Geräte-ID ein und über dem Gateway steht die Schnittstelle - dort wird die IP-Adresse des WR eingetragen.

LG. Werner

1 „Gefällt mir“

Hallo Christian,

habe gerade meinen Modbus SL (RS 485) zum Laufen bekommen.
War nicht ganz ohne. Hat mich einiges an Nerven gekostet, aber dabei habe ich zumindest die Philosophie der Modbus Projektierung in IPS verstanden, glaube ich zumindest!?

Sehe gerade, dass Werner dir schon geantwortet hat. Egal, ich gebe meinen Senf einfach noch dazu …

Vorab, Modbus TCP habe ich in IPS noch nicht projektiert, aber ich denke nachfolgende Vorgehensweise führt ans Ziel

Schau dir zunächst die Spec „Implementation Technical Note.pdf“ (Beitrag 1 von paresy) an. Du musst den Modbus TCP am WE erst aktivieren. Das „Wie“ wird dort beschrieben.

Zur Projektierung Modbus TCP in IPS (von „unten“ nach „oben“)

Schritt 1 => I/O Instance (Kommunikationskanal)

Erzeuge einen „Client Socket“.
Hier kannst du unter „Host“ die IP des Teilnehmers (WR) eingeben und bei Port „502“ ein. Ist der Modbus TCP Standard Port.

In der erwähnten WR Doku steht zum Port einmal „1502“ und zwei Seiten weiter „502“!? Habe ich nicht verstanden. Probiere „502“

Damit hast du dann die unterste Ebene (Kommunikationsebene) eingerichtet.

Schritt 2 => Splitter Instance (Datenaufbereiter )

Erzeuge hier eine „Modbus Gateway“ Instanz. Bei „Modus“ muss „Modbus TCP“ eingestellt werden (Ist der IPS Default-Wert).

Die Server ID (Eigentlich „Unit Identifier“, in der Spec zum WR „Device ID“ ) ist für Modbus Gateways oder Modbus TCP Server mit verschiedene Serverbereiche relevant. Entspricht bei Gateways der Modbus SL Adresse des Teilnehmers am RS485 Bus. Das nur zu Info.
In der Doku zu dem WR steht „1“. Also hier die „1“

WICHTIG, du musst oben in der Reihe von „Instanzkonfiguration“ auf „Schnittstelle ändern“ gehen und prüfen, ob die unter Schritt 1 erzeugte I/O Instance ausgewählt ist!

Hier kannst du auch über die Experten Einstellung die Abfrage der Daten in Blöcken einstellen, aber das würde ich, wenn überhaupt, später machen! Bei Modbus SL durchaus sinnvoll, bei Modbus TCP eigentlich egal. Ist bei der Ersteinrichtung aber nur eine Fehlerquelle mehr.

Schritt 3 => Geräte Instanz (Mapping auf die Gerätevariablen)

Jetzt müsstest du hier eine „Modbus Geräte“ Instanz anlegen. Ich denke, das hast du schon getan, da hier ja auch die Vorlagen importiert werden.

WICHTIG, hier musst du oben in der Reihe von „Instanzkonfiguration“ auf „Gateway ändern“ gehen und prüfen, ob die unter Schritt 2 erzeugte „Splitter Instanz“ ausgewählt ist.

Bzgl. Abfragezyklus scheiben sie in der WR Doku, dass nach 2 Sek die TCP Verbindung durch den WR geschlossen wird. Macht zwar nix, würde sie aber trotzdem < 2Sek einstellen

Um Modbus Funktion Codes musst du dich nicht mehr kümmern, die sind in der Vorlage enthalten.

Und los geht’s (hoffentlich) => I/O Instanz aus Schritt 1 starten und Werte checken.

Das müsste eigentlich funktionieren!? Habe es, wir erwähnt, noch nicht gemacht, aber so würde ich an die Sache rangehen.

Hoffe es klappt …

VG Teckie

1 „Gefällt mir“

Mega :slight_smile: Vielen Dank so klappt´s!

Wie berechne ich jetzt die aktuelle PV Leistung? Sollte das nicht mit <? SetValue(37247,GetValue(44416)*pow(10,GetValue(40260))); ?> Register 40100 und 40101 funktionieren?

Danke

Nach einem Gespräch mit Michael Maroszek auf der Light&Building 2024 bin ich dabei von USB weg auf Ethernet umzustellen. Ein Deye 12K lässt sich auch per Modbus RTU über TCP und 4-CH RS485 TO POE ETH (B) Adapter auslesen aber mit immer wiederkehrenden Aussetzern.
Nun habe ich bei meinem Solaredge Modbus TCP aktiviert und lese da die Daten auch aus (1,9s Intervall). Gleiches Phänomen da, oft kommen minutenlang keine Daten an.
Da ich die produzierte Leistung vom Solaredge auch noch per IR Lesekopf/USB auslese (5s Intervall), habe ich mal beide Daten graphisch verglichen:


Man kann die Aussetzer bzw. das nicht Aktualisieren der Daten recht gut erkennen.
IPS 7.1 läuft bei mir auf einem Mini PC (ZOTAC ZBOX CI329 nano) mit Linux drauf (nur IPS, also der MiniPC sollte sich eigentlich langweilen).
An der Netzwerkauslastung liegt es nicht, das habe ich geprüft.
Nächster Ansatz wäre nun mit Wireshark zu untersuchen, wo die Daten liegen bleiben. Das ist aber sehr mühsam.
Von daher die Frage ob so ein Verhalten jemandem bekannt ist und ob es Lösungen gibt oder andere gute Vorschläge …?
Danke schon mal vorab!

Also ich lese meinen WR aller 15 Sekunden aus und habe relativ selten mal Aussetzer. Kommt aber schon mal vor.

wenn man nur auf das rote Aufrufezeichen in der Verwaltungskonsole achtet, scheint das zuerst so. Daher hat mich die Grafik doch überrascht und wie häufig das ist. Eine vernüftige PV geführte Autoladung geht so nicht mehr :face_with_head_bandage:

Nach einigen Wireshark Sessions hat sich heraus gestellt, dass der Haupt-Switch überlastet war. Nun hängt der Symcon Rechner am Technik-Switch (war vorher hinter dem Haupt-Switch) und so kollidiert der ganze „Symcon-Traffic“ (goe-Wallbox, Shelly Pro 3em, Shelly Plus H&T, Solaredge WR und Deye WR) nicht mit dem Büro / Tablet Traffic.
Hätte aber trotzdem nicht gedacht, dass so ein Zyxcel Switch so schnell an seine Grenzen kommt.

Ich habe bei einem Kunden einen SE8K hängen, ModBus TCP ist aktiv, jedoch springt die i/o Instanz nach wenigen Sekunden auf Fehler…
Habt ihr eine Idee wo ich nachschauen könnte?

@Wuwu : welchen Zyxel Switch verwendest du?
Wir bringen Zyxel Switche an ihre Limits, aber da hängen dann viele Hunderte Clients dran, mit sehr vielen Regeln!

Hängt noch ein weiteres Gerät am SolarEdge per ModBus dran? Wir hatten das auch bei einem Kunden und es stellte sich heraus, dass der SE nur eine Verbindung gleichzeitig kann.

paresy

Es hängt noch KNX dran, aber ob am WR oder am SmartMeter, das weiß ich leider nicht.
Ich komme nicht drum herum noch einmal vor Ort zu schauen

Aber traurig das man nur 1 Verbindung aufbauen kann, das Problem ist, dass die KNX nicht alle Werte liefert :frowning:

war ein alter GS1200-8HP.
Jetzt mit einem neuen XMG1915-18EP läuft alles prima.
Einziges Problem beim SE17K ist, dass er manchmal die Werte mit falschem Multiplikator sendet. Das ist wohl im Solaredge nicht sauber synchron gehalten.

1 „Gefällt mir“

hab das Problem mit meinem Huawei WR auch - eine Verbindung und selbst wenn die zu oft anfragt, dann geht er in Timeout, weil er nicht mehr hinterher kommt.

Bei mir hat ein Modbus-Proxy Abhilfe geschaffen und seitdem keine Probleme mehr. Bediene aktuell (auch zu Testzwecken) 11 Instanzen mit dem Modbus-Proxy.

1 „Gefällt mir“

Hallo , frage meinen Solaredge WR bisher problemlos alle 5min über TCP ab und möchte nun aktuellere Werte über ModBus abfragen.
Ich verstehe nur noch nicht ganz die Herangehensweise bei der Installation von ModBus - was habe ich bisher unternommen:
a. einen Modbus Gateway erstellt (ModBus: ModBus TCP, Geräte-ID: 1 , Abfrageverzögerung: 10ms)
b. einen ClientSocket erstellt (Host: IP des WR, Port: 1502, Benutze SSL: deaktiviert)
c. ein ModBus-Gerät erstellt und darin die Vorlage importiert, es werden Variablen angelegt welche keine Werte enthalten.

Wie geht es nun weiter?
Ist diese Solaredge-Vorlage generell für alle WR von SolarEdge?

Vielen Dank für Unterstützung!

Hallo

Als erstes ändere bitte mal das ab abfrageintervall von 10ms auf z.b. 5000ms. 10 ist viiiiiieeeel zu kurz.

Ist beim Modbus Gerät das richtige Gateway eingestellt?

Viele Grüße
Stephan

Das ist nicht ganz korrekt:
wenn ich 5000ms einstelle wird eine Variable nach der anderen im 5s-Takt aktualisiert, d.h. bei 50 Variablen für ein Gerät benötigt die gesamte Aktualisierung eines Gerätes ca. 4,2min…

Ich habe mal meine komplette Installation gelöscht und mit dem ModBus-Gerät angefangen zu installieren, nun erhalte ich auch Werte…

Ich habe folgende Geräte mit entsprechenden Vorlagen erstellt:

a. Wechselrichter mit Vorlage: modbus_SE_INVERTER.json (erstellt von @pitti )
b. Energiezähler mit Vorlage: modbus_SE_METER.json (erstellt von @pitti)
c. Speicher mit Vorlage: Solaredge_SESTI-S04_LG_Resu_10H.json (erstellt von dir)

Muss mal schauen ob diese ganzen Werte plausible sind oder ob mir noch was fehlt.
Ich gehe mal davon aus das die Vorlagen immer auf den aktuellen Stand gehalten werden?
Eine Übersicht mit allen verfügbaren Vorlagen einschließlich dem Änderungsstand würde der Übersicht bestimmt gut dienen :eyes:

@yansoph
Welchen WR von SE hast du?
Wie hast du ihn angelegt?
Ich erhalte immer noch Fehlermeldungen beim Abfragen :frowning:

Also das glaube ich nicht! Ich bin absolut kein ModbusExperte und hole mir die Daten eigentlich nur zum Spaß und mache damit eigentlich nichts, aber …

  • ich habe 15000ms eingestellt (reicht mir vollkommen) und die Daten sind fast alle auf einen Schlag da (siehe Screenshot)

  • im Gateway ist aber eine Abfrageverzögerung von 10 ms eingestellt

image

Wie gesagt ich keine Modbus-Experte, aber interpretiere das für mich so:

  • am ModBus-Gerät stellt man das globale Abfrageintervall ein (bei mir 15 Sek = 15000 ms)
  • das Gateway holt dann alle Werte mit einer kurzen Verzögerung von 10ms pro Wert

Heißt bei 50 Werten dauert eine Abfrage 500ms (50 x 10 ms). Ich würde sagen das globale Abfrageintervall darf somit nicht unter 500 ms liegen weil dann ja schon die nächste Abfrage kommen würde!

Gruß Heiko

Bin auch kein Experte, aber wir reden gerade alle aneinander vorbei :slight_smile:
Ich habe hier meine Einstellungen gepostet: Thread
Darauf wurde mir empfohlen, den Intervall von 10ms auf 5000ms zu erhöhen, und das bezieht sich aufgrund meines Posts wohl immer noch, wie von dir sehr gut erkannt, auf die Einstellung des ModBus Gateway, da ich ja keine Einstellungen vom ModBus Gerät geschrieben hatte…

Mein WR nennt sich SE10K-RWS, Fehlermeldungen habe ich keine…