Modbus Schreibzyklen reduzieren

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • IronPät
    Azubi
    • 28.11.2025
    • 2

    #1

    Modbus Schreibzyklen reduzieren

    Hi zusammen,

    bei meiner IDM Wärmepumpe dürfen bestimmte Werte nur in begrenzten Zyklen geschrieben werden, da ansonsten der Speicher der IDM die grätsche macht.
    Ich habe diese Parameter bereits mit sehr langen Schreib-Zyklen ausgestattet, jetzt ist aber das Problem dass die Werte bei Änderung aktualisiert werden. Mir ist bis jetzt leider noch keine Möglichkeit eingefallen wie ich dieses Problem lösen kann.
    Hat dieses Problem womöglich schon jemand gelöst?

    Grüße Patrick
  • Jan W.
    Lox Guru
    • 30.08.2015
    • 1546

    #2
    Ich habe diese Parameter bereits mit sehr langen Schreib-Zyklen ausgestattet, jetzt ist aber das Problem dass die Werte bei Änderung aktualisiert werden.
    Wiederholtes Schreiben bei gleichen Werten ist eigentlich nicht notwendig. Ich habe für alle meine Modbus Aktoren den Wert 0 definiert, d.h. die Werte werden nie wiederholt geschrieben. Bei jeder Werteänderung von Modbus Aktoren werden Werte via Modbus geschrieben. Das gilt für alle Ausgangstypen und ist nicht spezifisch für Modbus. Im Normalfall möchte man ja, dass geänderte Einstellungen sofort an die jeweiligen Geräte gemeldet werden, d.h. via Modbus geschrieben werden. Da Modbus TCP verwendet, werden Pakete über TCP nochmals gesendet, falls ein Paket im Netz verloren ging. Das kommt aber sehr selten vor.

    Verhindern kann man das Schreiben über ein Analogspeicher vor dem Aktor. Dieser Baustein benötigt ein Trigger auf 'Set' (steigende Flanke), damit der (neue) analoge Wert an den Aktor übermittelt wird. Mit einer geeigneten Logik kannst Du das beliebig steuern, z.B. über eine Verzögerung, ein Mindestwartezeit, ein Intervall oder gar nicht senden, wenn das Gerät nicht aktiv ist.

    Die Logik für maximal einmal Schreiben pro 10 min, aber bei Änderung möglichst schnell, könntest Du lösen, indem ein Ungleich Baustein den Ein- und Ausgang des Analogspeichers vergleicht und bei Ungleichheit auf 1 geht. Dieser Ausgang wird mit 'Set' des Bausteins verbunden. Das löst eine Übernahme des Eingangswertes in den Ausgangswert aus und dann sind Ein- und Ausgang gleich, was Set wieder zurücksetzt. Um ein weiteres Schreiben zu verzögern, startet z.B. ein Monoflop, der ebenfalls am Ungleich-Ausgang angeschlossen ist. Solange der Monoflop auf 1 ist, kannst Du über UND mit Verneinung das Signal in Richtung Analogspeicher für die Laufzeit den Monoflops blockieren, d.h. dafür sorgen, dass es 0 bleibt. Es gibt wahrscheinlich noch 10 andere Lösungsmöglichkeiten.

    Nativ kann man Ausgänge (als auch Eingänge) leider nicht sperren. Das wäre z.B. bei PV-Anlagen sehr praktisch, wenn die Anlage nachts manchmal unsinnige Werte liefert oder man das Gerät nicht unnötig aufwecken möchte.
    Zuletzt geändert von Jan W.; 16.02.2026, 20:47.
    Miniserver v14.5.12.7, 2x Ext., 2x Relay Ext., 2x Dimmer Ext., DMX Ext., 1-Wire Ext., Gira KNX Tastsensor 3 Komfort, Gira KNX Präsenzmelder, Fenster- und Türkontakte, Loxone Regen- und Windsensor, Gira Dual Q Rauchmelder vernetzt, 1x Relais-Modul
    Loxberry: SmartMeter, MS Backup, CamConnect, Weather4Lox
    Lüftung: Helios KWL EC 370W ET mit Modbus TCP - via Pico-C
    Heizung: Stiebel Eltron WPF 5 cool (Sole-Wasser WP) mit ISG, FB-Heizung mit 18 Kreisen, Erdsonde - via modbus/TCP
    Node-RED: IKEA Tradfri

    Kommentar

    Lädt...