MODBUS TCP, MODBUS RTU und MODBUS Gateway

Allgemeine Informationen zum Nachbau und zum Forum.
PV-Monitorung / PV Überwachung

Moderator: Ulrich

Benutzeravatar
Ulrich
Administrator
Beiträge: 6082
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 153 Mal
Danksagung erhalten: 824 Mal
Kontaktdaten:

MODBUS TCP, MODBUS RTU und MODBUS Gateway

Beitrag von Ulrich »

Immer mehr Wechselrichter und Laderegler benutzen das MODBUS Protokoll auf der Kommunikationsschnittstelle. Dabei ist zu beachten, dass in der Regel nur ein Gerät diese MODBUS Schnittstelle zum Auslesen der Daten benutzen darf! Bei MODBUS RTU immer, bei MODBUS TCP hängt es von dem Treiber im Gerät ab. D.h. wenn die Solaranzeige den Wechselrichter ausließt, darf kein weiteres Gerät wie z.B. ein Smart Meter den Wechselrichter auslesen. In allen Fällen muss der Wechselrichter dafür vorgesehen sein, dass mehrere Geräte ihn auslesen oder steuern. Manche Wechselrichter haben spezielle Anschlüsse für Smart Meter oder Batterie-Management-Systeme usw. Dann funktioniert es. Hat das Gerät aber nur einen MODBUS RTU Anschluss oder eine MODBUS TCP Schnittstelle, dann kann man erst einmal davon ausgehen, dass die nur ein Gerät bedienen kann!

Was passiert, wenn die Schnittstelle nur ein Gerät bedienen kann und mehrere Geräte es aber auslesen möchten?
  • Die Schnittstelle antwortet einfach nicht.
  • Es kommen zeitweise keine Daten an oder es sind 0 Werte. (Spikes)
  • Alle angeschlossenen Geräte kommen sich in die Quere, mit falschen Daten
  • Das Gerät selber kann seltsam reagieren
Das Problem ist, dass der Wechselrichter erwartet, dass nur ein Gerät ihn ausliest und dementsprechend auch nur antwortet. Die Antworten passen nicht zu den Anfragen, was dadurch ein erhöhtes Anfrageaufkommen erzeugt und irgendwann in Timing Problemen endet.
Heute werden immer mehr PV Geräte vernetzt und dadurch kommt es vermehrt zu Problemen. So ganz so einfach lassen sich beliebig viele Geräte nicht vernetzen.

Was ist die Lösung?

Entweder bietet das Gerät schon mehrere unabhängige MODBUS Schnittstellen an, die parallel abgefragt werden können. (Das sind nicht viele Geräte)

Oder man benötigt einen MODBUS TCP Gateway, der die verschiedenen Anfragen zwischenspeichert und nacheinander an den Wechselrichter weiterleitet. Das Gateway muss wissen, welche Anfrage von welchem Gerät kam und die Antworten dann auch richtig zurücksendet.

Verschiedene Mitglieder haben so etwas schon mal installiert und ausprobiert. Eventuell geben sie ja mal ihre Erfahrungen hier preis.
Das Thema wird zunehmend interessanter und wichtiger.
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

schlmich
Beiträge: 52
Registriert: Do 10. Feb 2022, 10:44
Hat sich bedankt: 2 Mal
Danksagung erhalten: 11 Mal

Re: MODBUS TCP, MODBUS RTU und MODBUS Gateway

Beitrag von schlmich »

Grüß euch,
also ich habe mehrere ModbusTCP Geräte in Verwendung die untereinander kommunizieren.
Das funktioniert bei mir auch problemlos, wenn man ein paar Punkte beachtet.
Das Modbus-Protokoll sieht keine herkömmliche Arbitrierung daher muss man die PHP-Skripte etwas "fehlertoleranter" gestalten.
Es sind aber max. 32 Teilnehmer am Bus erlaubt.
Wenn gleichzeitig zwei Clients von einem Server was lesen wollen, dann gibt es Datenkollisionen. Ich prüfe nun in den PHP-Skripten ob 1.) eine Verbindung hergestellt wurde, und ob die Daten sinnvoll sind.
Wenn nicht, dann versuche ich bis zu dreimal die Daten neu zu lesen. Gibt es dann immer noch nix sinnvolles, dann werden alle Daten für diesen Zyklus verworfen.

Bei mir schaut der Modbusbereich folgendermassen aus:
Übersicht_Modbus.JPG
LG,
Michael
Kostal Plenticore Gen1 8,5kW, KSEM Gen2, Solarfabrik Mono S3 Module 375W, installierte Leistung 7,5kWp, BYD HVS 7,68kWh

Sigma1
Beiträge: 46
Registriert: Do 18. Jul 2024, 11:59
Hat sich bedankt: 4 Mal
Danksagung erhalten: 4 Mal

Re: MODBUS TCP, MODBUS RTU und MODBUS Gateway

Beitrag von Sigma1 »

Hallo zusammen,

Ich bin gerade auch in dieser Situation. Offenbar passiert bei mir genau das was Ulrich beschrieben hat. Ich veruche den Deye WR mit 2 Geräten auszulesen und das ergibt wohl diese fehlerhaften Daten. Wenn ich das so lese glaube ich nicht, dass ich das Problem im Moment lösen kann, ausser Deye schaffte es endlich wieder, dass der Morbus Port Daten sendet, denn aktuell lese ich Modbus über den BMS Port aus. Früher ging das mal aber mit der aktuellen Firmware nicht mehr. D.h. der Deye Sun 12k hätte die geforderten 2 Modbus Ports, aktuell zwar Hardware mässig, aber der eine streikt im Moment.

Ja, dann bleibt mir nichts anderes übrig, als zu warten, oder zu hoffen, dass Solaranzeige irgendwann Daten über MQTT empfangen kann oder Modbus TCP kann (was in Meinem Fall aber voraussetzen würde, dass die andere Lösung die ich einsetze ebenfalls Modbus TCP kann, und das müsste ich mal abklären, das war bis jetzt auch kein Thema, darum weiss ich das nicht.

Gruss
Reto

Benutzeravatar
Ulrich
Administrator
Beiträge: 6082
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 153 Mal
Danksagung erhalten: 824 Mal
Kontaktdaten:

Re: MODBUS TCP, MODBUS RTU und MODBUS Gateway

Beitrag von Ulrich »

Frage doch bitte einmal in dem speziellen Deye Forum, ob die Genaueres zu den zwei RS485 Schnittstellen wissen. https://dy-support.org/community/
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

maxy_93
Beiträge: 2
Registriert: So 6. Aug 2023, 19:05
Wohnort: Jahnsdorf/Erzgeb.
Hat sich bedankt: 2 Mal

Re: MODBUS TCP, MODBUS RTU und MODBUS Gateway

Beitrag von maxy_93 »

Hallo zusammen, bei mir ist eine Anlage von sigenergy installiert. Wechselrichter dreiphasig 6.0 KW und ein Speicher 8 kW. Die Anlage ist über ModBus TCP mit einem iobroker verbunden. Datenaustausch funktioniert einwandfrei. Kann ich eine Anlage die mit der Solaranzeige läuft undebenfals mit ModBus TCP verbunden ist, anpassen indem ich die Registeradressen ändere?

Benutzeravatar
Ulrich
Administrator
Beiträge: 6082
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 153 Mal
Danksagung erhalten: 824 Mal
Kontaktdaten:

Re: MODBUS TCP, MODBUS RTU und MODBUS Gateway

Beitrag von Ulrich »

Wenn du so fragst, werden deine PHP Kenntnisse begrenzt sein. Deshalb würde ich sagen, NEIN. Um ein bestehenden Script zu ändern, muss man schon ganz gut PHP kennen. Ein Experte sieht direkt, wie viel Arbeit das ist.

Hast du denn die MODBUS Unterlagen von dem Gerät. Eventuell gibt es ja ein baugleiches Gerät, was schon implementiert ist.
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

maxy_93
Beiträge: 2
Registriert: So 6. Aug 2023, 19:05
Wohnort: Jahnsdorf/Erzgeb.
Hat sich bedankt: 2 Mal

Re: MODBUS TCP, MODBUS RTU und MODBUS Gateway

Beitrag von maxy_93 »

ok, ich bin kein großer Experte. Ich habe von sigenergy die Modbus Protokollbeschreibung. Konnte ja damit die Daten in den iobroker übertragen. Wie ich aber gelesen habe hat ja jeder Hersteller so seine eigenen Rgisteradressen. Ich hatte schon mal mit Huawei verglichen, aber das passte nicht. Habe mal das Protokoll hinzugefügt. Vielleicht gibt es doch was baugleiches.
Vielen Dank erstmal.
Dateianhänge
Sigenergy Modbus Protocol - 20240409.pdf
(600.71 KiB) 400-mal heruntergeladen

Benutzeravatar
Ulrich
Administrator
Beiträge: 6082
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 153 Mal
Danksagung erhalten: 824 Mal
Kontaktdaten:

Re: MODBUS TCP, MODBUS RTU und MODBUS Gateway

Beitrag von Ulrich »

Hallo maxy_93,

ich habe nachgesehen. Diesen Registernummern Kreis benutzt kein Gerät, welches ich bisher implementiert habe. Das muss erst noch alles programmiert werden. Du kannst das Gerät jedoch auf die Wunschliste schreiben.
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

opaque
Beiträge: 4
Registriert: Fr 4. Nov 2022, 14:52

Re: MODBUS TCP, MODBUS RTU und MODBUS Gateway

Beitrag von opaque »

Hallo

Nachdem ich seit Stunden versuche eine Verbindung zw. Huawei SUN2000-10KTL-M und TA CMI via Modbus TCP herzustellen und immer nur einen Timeout bekomme frage ich hier mal nach.

Solaranzeige.de auf einem Rp3 klappt:

Code: Alles auswählen

03.10. 08:43:00 |----------------   Start  huawei_LAN.php  ----------------------------- 
03.10. 08:43:00    -Huawei: 192.168.1.101 Port: 502 GeräteID: 3
03.10. 08:43:03 >  -Gerätetyp: SUN2000-10KTL-M  Modell ID: 429
03.10. 08:43:09    -Batterie-Daten      : (00020000)
03.10. 08:43:11    -MQTT Daten zum [ localhost ] senden.
03.10. 08:43:11 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
03.10. 08:43:13 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: localhost Port: 1883
03.10. 08:43:56    -OK. Datenübertragung erfolgreich.
03.10. 08:43:56 |----------------   Stop   huawei_LAN.php    --------------------------- 
Es ist der einzige Wechselrichter (SW-Version: V100R001C00SPC161) mit einem sDongleA-05 (SW-Version: V200R022C10SPC118). Leider kann ich die GeräteID in der Fusion Solar App nicht ändern. Auch wenn ich es auf 1 stelle und speichere - erscheint anschliessend wieder 3. Aber das sollte ja kein Problem darstellen da ja Solaranzeige.de klappt.

Wenn ich nun Solaranzeige vom Netz nehme (kann ja anscheinend immer nur einer auf den Dongle zugreifen) und es mit der CMI von TA versuche bekomme ich immer nur ein timout.
Im CMI Webportal unter Einstellungen habe ich folgendes eingestellt:

Eingänge > Modbus Master > Analog > 1: PV_Strings
IP: 192.168.1.101
Gerät: 3
Funktion: 03-read holding register
Adresse: 30071
Datentyp: 16-bit unsigned
Byte-Reihenfolge: Big-endian
Intervall (Sek): 60 habe aber auch schon 120 probiert
Timout (min): 5
Eingangswert: 0
Faktor: 1 Einheit usw. sollte eh irrelevant sein.

aktueller Wert: 0 (timeout!)

Mir ist schon klar das dieses Thema nichts mit solaranlage.de zu tun hat, aber da es hier schon manche geschafft haben könnt ihr mir vielleicht helfen.

Danke opaque

Benutzeravatar
Ulrich
Administrator
Beiträge: 6082
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 153 Mal
Danksagung erhalten: 824 Mal
Kontaktdaten:

Re: MODBUS TCP, MODBUS RTU und MODBUS Gateway

Beitrag von Ulrich »

Bist du dir den sicher, dass es Register 30071 überhaupt gibt? Versuche es einmal mit 30068 Das ist die Protokoll Version.
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

Antworten

Zurück zu „Allgemeines“