ich habe ein ModBus-Gerät angelegt und mehrere Variablen (Register) darunter.
Manche nur lesen, manche nur schreiben. Soweit scheint alles zu funktionieren.
Jetzt möchte ich gerne aus einem Skript heraus einen Wert schreiben und komme nicht dahinter wie das funktioniert…
Kann mir bitte jemand auf die Sprünge helfen
Jetzt hab ich noch Register in meinem Gerät hinzugefügt die nur zum Schreiben sind.
Warum werden die nicht als Variable unterhalb des Gerätes angelegt und nicht unter „Befehl testen“ angeboten?
Ich möchte gerne meine SMA Batterie zum Laden aus dem Netz bewegen. Dazu gibt es verschiedene ModBus Werte, die man schreiben muss. Soweit alles klar.
Aber: die Adressen sind write-only. Wenn ich die nun in der ModBus Geräteinstanz anlege, dann werden keine Variablen angelegt, da sie ja nur schreibbar sind. Wie schreibe ich die Werte aber nun? Ich habe auch keine Funktion gefunden
@paresy Gibt es zu dem Thema „virtuelle Adressen aktualisieren nicht wenn man nur Datenblöcke läd“ schon etwas neues? Hatte gehofft das ginge inzwischen, aber musste leider feststellen das es wohl noch nicht angepasst wurde. Wechselrichter mit sunspec int+SF zB kann man so mit dem standard modbus device nicht zuverlässig lesen; damit das klappt müssten in einer „atomischen operation“ die beiden register für value & scalefactor gelesen werden (geht mit datenblöcken), und dann direkt auf die virtuelle adresse kombiniert werden, damit man sich zuverlässig an das update event von der einen kombinierten variable subscriben kann
@paresy wie sieht es hier nun aus, wann wird es nun gefixt sein? Das Thema ist nun wohl seit > 1 Jahr bekannt und bisher gab meines Wissens keine Rückmeldung hierzu, dass das Problem gelöst wurde (es hiess mal, dass es in der 7.2 gefixt sei… aber ich glaube, das war wohl nicht so…)
Wir haben das Problem für die 8.2 auf der Roadmap. Dort müssen wir auch für die Darstellungen an das ModBus Modul ran und würden die Datenblöcke dann ebenfalls auf ModBus Geräte Instanz ziehen, um genau dieses Problem zu lösen.
Wird es da auch etwas bzgl. der Darstellungen zu 8.2 geben? Momentan muss man noch für Wertebereiche etc. Profile erstellen, was es etwas unhandlich macht.
Eine Möglichkeit, auch Darstellungen zu exportieren wäre super.
Ich starte gerade mit meinen ersten ModBus-Implementierungen und bin direkt über dieses Problem gestolpert. Die Einzelabfragen der Register in der ModBus-Geräteinstanz funktionieren bei mir nicht so gut. Dauert nach meinem Geschmack verhältnismäßig lange, bringt Last auf den Bus und müllt mir auf Dauer das Meldungsfenster mit Fehlern zu, weil es häufiger zu Timeouts einzelner Register kommt.
Daher wollte ich direkt auf Blockabfragen setzen. Dabei bin ich dann darüber gesolpert, dass zwar die Variablen aktualisiert werden, aber die virtuellen Variablen auf der Strecke bleiben.
Wobei das mit dem Aktualisieren der Variablen auch noch nicht so richtig klappt, ich aber nicht verstehe wieso. Wenn ich beispielsweise ein paar zusammenhängende Register, die auch in einem virtuellen Gerät als Variablen angelegt sind, über den Splitter periodisch (z.B. alle 5 Sekunden) als Block abfrage, dann sehe ich im Debug des Splitters die regelmäßigen Abfragen. Wenn ich mir dann aber die Variablen in der Geräte-Instanz ansehe, aktualisieren (nicht ändern) sich einige in dem 5-Sekunden-Rythmus, andere hingegen ziemlich genau jede Minute. Ich verstehe aber nicht wo diese Minute her kommt. Das scheint ganz unterschiedlich zu sein und es gibt keine anderen Abfragen über den Splitter. Auch das ModBus-Gerät selbst fragt nichts ab (Intervall 0). Schalte ich die Blockabfrage wieder aus, wird im Gerät auch gar nichts mehr aktualisiert. Also müssen die minütlichen Aktualisierungen einiger Variablen irgendwie mit den 5-sekündlichen Blockabfragen zusammenhängen. Aber wieso dann eine Minute und nicht 5 Sekunden?