Modbus RTU über TCP - Aktualisierung stoppt

Hallo in die Runde,

habe schon die Suchfunktion und Google genutzt, um dem Problem auf die Spur zu kommen. Leider ohne Erfolg, zumindest habe ich nichts gefunden, was mir in Verbindung mit meiner Kenntnis über das System hilft.

Hintergrund:
Ich habe seit 2018 IPS auf einem Raspi laufen. Über die Feiertage habe ich (von Buster und IPS 6.1) auf Bookworm und IPS 7.0 aktualisiert. Soweit alles geklappt. Danke an das Entwicklerteam für die tolle Arbeit.

Ich frage seit ca. 3 Jahren mittels USR-N540 als Gateway via Modbus RTU über TCP zwei Stromzähler SDM630 ab. Das hat die ganzen Jahre funktioniert. Dabei sind die beiden SDM360 jeder in seinem eigenen Modbus-Netz, d.h. die kennen und stören sich nicht.
Eine Auslesung läuft etwas „illegal“, d.h. sie hängt als zweiter Master mit auf dem Bus (der erste Master ist mein Wechselrichter, der braucht den SDM630 für die Einspeiseregelung). Der IPS-Master lief parallel immer mit, hat immer mal dazwischengefunkt, dann und wann ein paar Fehlermeldungen, aber es lief die ganzen Jahre. Auch der WR und seine Arbeitsweise haben darunter nicht „gelitten“.

Seit Update auf 7.0 aktualisiert der „illegale“ nicht mehr. Er bleibt irgendwann (so nach ein paar Stunden) stehen. Fehlermeldungen gibt es, Buffer time out. Wenn ich in der Instanz auf Aktualisieren drücke, liest er artig die Daten. Aber über das gewählte 5000ms Intervall passiert nix mehr. Komischerweise liest er auch nicht durch Skript (via ModBus_RequestRead ($ID_ModInstanz)) - ich dachte immer, das wäre identisch zum „Aktualisieren“-Button?

Ist das Problem bekannt? Wie kann ich mich der Ursache annähern (und jetzt bitte nicht den Tipp, noch einen Zähler zu installieren… dann habe ich 3 Stück in Reihe…) und die Fähigkeit des Systems von vor dem Update wieder herstellen?

Danke Euch.

MfG
Fuchskusu

Das ist es tatsächlich auch. Und auch der Timer macht da nichts anderes. Gibt es dann eine Fehlermeldung? <— Das klingt irgendwie nach einem Hinweis, dem man nachgehen könnte.

Bisher ist nichts bekannt. Zwar haben wir viel geändert an ModBus zur 7.0, aber an der Grundlegenden Logik wie wir abfragen hat sich nichts verändert.

paresy

So ein ähnliches Verhalten hatte ich auch bei meinem Modbus Problem. Am Anfang lief die Abfrage ohne Probleme und nach kurzer Zeit wurden einige Variablen nicht mehr aktualisiert.

1 „Gefällt mir“

Mal ganz anders gefragt: Wieso muss man überhaupt abfragen, wenn der Wechselrichter die Abfrage schon macht. Reicht hier ‚hören‘ nicht aus? Hast du dir den Client-Socket der Modbus-Verbindung mal angesehen, wenn Symcon NICHT abfragt? Da müssten die Daten doch trotzdem auftauchen? Ggf. könnte man dann die Logik IN Symcon bzw. notgedrungen in einem Script/RegisterVariable anpassen?

1 „Gefällt mir“

Vielen Dank für die Antwort.

Der WR fragt nur die Leistung ab, ich benötige aber noch die Zählerstände (Import und Export). Und dafür muss ich halt fragen…

Habe jetzt für alle 3 ausgelesenen Werte die „internen“ Timer auf 0 gesetzt und extern mit Timer und Script die Abfrage laufen. Momentan geht es, mal sehen wie lange.
Im Status kommt dann und wann folgender Fehler (vermutlich, wenn sich die zwei Master in die Quere kommen:
08.01.2024, 20:41:54 | FlowHandler | Could not forward data to instance #32784: Waiting for buffer usage timed out

Die 32784 ist mein Modbusgateway (also die Splitter-Instanz welche den USR als Schnittstelle nutzt).