Hallo zusammen,
ich stehe gerade etwas auf dem Schlauch. Ich würde gerne eine Berechnung im Logikeditor zeit- bzw. Ereignisgesteuert bzw. nach abgeschlossener Modbus-Abfrage durchführen, ich weiß aber nicht wie.
Ich nutze einen Modbus Master, um alle 20 Sek. die Leistungswerte meiner PV-Anlage abzufragen. Das klappt auch wunderbar. Die Leistungswerte müssen allerdings noch mit einem variablen, ebenfalls von der PV-Anlage gelieferten Skalierungsfaktor (dem Exponenten zur Basis 10) multipliziert werden. Auch das klappt, führt aber zu folgendem Problem:
Offenbar werden Leistungswert und Skalierungsfaktor nicht gleichzeitig abgefragt, sondern nacheinander. Das führt dazu, dass meine Berechnung zunächst mit dem aktuellen Leistungswert und dem Skalierungsfaktor aus der vorherigen Abfrage durchgeführt wird. Erst nachdem auch der Skalierungsfaktor abgefragt wurde, wird die Berechnung nochmal durchgeführt, diesmal mit dem aktuellen Skalierungsfaktor. D.h. immer wenn sich der Skalierungsfaktor ändert, habe ich kurzfristig einen falschen Wert im System.
Ich lasse die Werte per Webrequest ebenfalls alle 20 Sek. in eine InfluxDB schreiben. Selten, aber doch gelegentlich wird aufgrund der beschriebenen Problematik ein um den Faktor 10 zu hoher Wert in die Datenbank geschrieben.
Mein Wunsch wäre also, dass die Berechnung erst nach vollständiger Abfrage der Modbus-Werte durchgeführt wird. Wie kann ich das realisieren?
Vielen Dank für eure Hilfe!
Logik-1.jpg
Logik-2.jpg
Grafana.jpg
ich stehe gerade etwas auf dem Schlauch. Ich würde gerne eine Berechnung im Logikeditor zeit- bzw. Ereignisgesteuert bzw. nach abgeschlossener Modbus-Abfrage durchführen, ich weiß aber nicht wie.
Ich nutze einen Modbus Master, um alle 20 Sek. die Leistungswerte meiner PV-Anlage abzufragen. Das klappt auch wunderbar. Die Leistungswerte müssen allerdings noch mit einem variablen, ebenfalls von der PV-Anlage gelieferten Skalierungsfaktor (dem Exponenten zur Basis 10) multipliziert werden. Auch das klappt, führt aber zu folgendem Problem:
Offenbar werden Leistungswert und Skalierungsfaktor nicht gleichzeitig abgefragt, sondern nacheinander. Das führt dazu, dass meine Berechnung zunächst mit dem aktuellen Leistungswert und dem Skalierungsfaktor aus der vorherigen Abfrage durchgeführt wird. Erst nachdem auch der Skalierungsfaktor abgefragt wurde, wird die Berechnung nochmal durchgeführt, diesmal mit dem aktuellen Skalierungsfaktor. D.h. immer wenn sich der Skalierungsfaktor ändert, habe ich kurzfristig einen falschen Wert im System.
Ich lasse die Werte per Webrequest ebenfalls alle 20 Sek. in eine InfluxDB schreiben. Selten, aber doch gelegentlich wird aufgrund der beschriebenen Problematik ein um den Faktor 10 zu hoher Wert in die Datenbank geschrieben.
Mein Wunsch wäre also, dass die Berechnung erst nach vollständiger Abfrage der Modbus-Werte durchgeführt wird. Wie kann ich das realisieren?
Vielen Dank für eure Hilfe!
Logik-1.jpg
Logik-2.jpg
Grafana.jpg
Kommentar