Modbus Abfrageintervall

Ich hab in den letzten Tagen mehrere Geräte über Modbus an IPS angebunden.

Darunter zwei Wechselrichter.

Bei beiden Wechselrichtern (Growatt und Solis) wird ein maximales Abfrageintervall angegeben.
Beispiel Growatt:

grafik

Momentan habe ich da in IPS aber keinen Einfluss.
Wäre es nicht gut, wenn ich das im Modbus-Gateway einstellen könnte.

An manche Stellen hab ich auch schon mal mit Datenfehlern gekämpft, eventuell ist das ja die Ursache.

Gruß Schuggi

also in meinen ModBus-Registern ist jeweils der Intervall einstellbar !

Ich rede nicht vom Abfrageintervall eines einzelnen Registers sondern von der Zeitlichen Abfolge zwischen zwei Abfragen auf dem Bus.

Wenn ich 2 Register abfrage und jeweils 2000ms einstelle, so erfolgen die Abfragen alle 2s aber halt ohne Abstand direkt hintereinander.

Gruß Schuggi

Du kannst im ModBus Gateway unter Expertenoptionen->Blöcke abfragen einen Block definieren, der alle deine benötigten Register umfasst. Das geht aber glaube ich nur, wenn die Register nicht zu weit voneinander entfernt liegen, da die maximale Blockgröße nach ModBus-Protokoll beschränkt ist. Dann wird nur eine Abfrage gestellt, um den ganzen Block abzufragen. In der jeweiligen Instanz kannst du dann das Intervall auf 0 setzten.

Das mache ich schon.

grafik

Da ich aber mehrere Blöcke definiert habe erfolgen die Abfragen direkt hintereinander auf dem Bus.

Gruß Schuggi

kannst du die nicht alle in einen Block zusammenfassen?

Die Anzahl der gleichzeitig abfragbaren Register in einem Block ist auch oft begrenzt.
In diesem Fall auf maximal 50 Register.

Beim Growatt sind das 125 Register beim Solis sind es 50.

Gruß Schuggi

Ok, dann bleibt mit als Idee nur noch, die Abfragen koordiniert in einem Skript oder Ablaufplan durchzuführen (mittel ModBus_ReadRequest) und da dann auf die minimalen Intervalle zu achten. In den Instanzen/Gateway dann alle Intervalle auf 0

Meine Antwort wäre
Frage nur ein Register so ab, dass die 850ms unterschritten werden, dann gibt es kein Timeout.
Oder geht es Dir nicht darum?

Nein, darum geht es nicht.

Also Growatt zum Beispiel definiert, das zwischen zwei Abfragen mindesten 850ms liegen sollen, besser eine Sekunde.

Ich war etwas trottelig, lesen und dann denken und dann schreiben, sorry.
Dann würde ich Dir empfehlen, baue Dir 2 Modus Geräte/Gateway auf.

Was soll das für das eine Gerät ändern?

Ich dachte, Du hast 2 Wechselrichter an einem Bus, dass die sich stören.

Es geht darum das die Nachrichten zu einem Gerät nicht beliebig schnell hintereinander erfolgen dürfen. Es soll zwischen jeder Nachricht eine Pause eingehalten werden.
Die Hersteller schreiben leider nicht, was passiert wenn man die nicht einhält.
Nur weil es meistens geht, bedeutet das aber nicht, das es immer geht.
Solche Angaben gibt es, damit man die auch einhält.

Zwei Geräte auf einem Bus (was ich auch habe) spielt dabei keine Rolle. Beide Geräte ignorieren ja die Nachrichten an das andere Gerät.

Dann sollte der Hersteller sich an das übliche Protokoll von Modbus halten, dass sind 2,5 Zeichen Pause und nicht 850ms. :sweat_smile:

Das stimmt so pauschal nicht, weil der Bus immer nur von einem Teilnehmer zur Zeit belegt (Daten senden) werden kann. Also entweder dem Master (Symcon) oder den beiden Slaves (WR).
Auch wenn die Slaves dann nur lesen und bei der falschen Geräte ID nicht antworten, so muss auch hier mindestens die Pause von 2,5 Zeichen sein.

Ich habe auch Geräte welche leider sehr träge sind und nach dem senden von ihren Daten eine Pause brauchen. Darum ist damals das B+G E-Tech Modul für die Stromzähler entstanden. Da wird die Pause beim Abfragen eingefügt.
Michael

Stimmt schon, wenn aber der nichtbeteiligte Slave nicht antorten muss, so ergibt sich für den schon mal eine große Pause. Da der Master alle Anforderungen initiiert ist der für das grundsätzliche Timing zwischen den Anforderungen verantwortlich.

Das mit den 2,5 Zeichen ist schon richtig, was nützt es aber, wenn die Slaves das nicht machen bzw. nicht können.

Ich hab ja erst mit Modbus angefangen und beide Geräte haben vom Timing her Begrenzungen die ich mit den Standardkomponenten von IPS nicht einhalten kann.

Prinzipiell funktioniert ja auf den ersten Blick auch alles. Da ich mich aber schon lange mit Schnittstellensystemen beschäftige, fallen mir so Ungereimtheiten auf.

Ich hab mal Nachgeschaut.

Das ist wohl die mindestpause die einzuhalten ist. Länger ist wohl erlaubt, nur nicht kürzer.

So lange Antwortzeiten sind wohl doch erlaubt und typisch.

Ah 3,5 nicht 2,5 Zeichen :sweat_smile:.
Was du aber da markiert hast, ist das Timeout. Wie lange ein master auf eine Antwort warten soll.
Das ist bei Symcon imho 5 Sekunden. Dann kommt die Timeout Meldung. Turnaroud wäre die Zeit welche ein Gerät zum Antworten nicht überschreiten sollte. Das sind aber alles nicht WaitTime welche deine WR haben wollen.
Michael

Schon richtig.
Darum hätte ich da ja gerne eine Einstellung im Gateway!