NEWS
[gelöst] Modbus Register lesen verhindern (Modbus Adapter)
-
@homoran sagte in Modbus Register lesen verhindern (Modbus Adapter):
Ich hoffe der Multiplus (oder doch der Cerbo?) schreibt die Änderungen nicht jedesmal in den Flashspeicher.
Der hält nur ungefähr 100.000 SchreibvorgängeKann fast nicht sein, weil das ein beschriebener Betriebsmodus ist und ich jetzt bei ca. 2,5 Millionen Schreibvorgängen bin.
Cerbo GX -
@manuel001 sagte in Modbus Register lesen verhindern (Modbus Adapter):
weil das ein beschriebener Betriebsmodus ist
schreiben im Sekundentakt?
Wo finde ich das? -
@homoran
In Mode 3 you have to create your own control loop, and update the set-point frequently.
These registers must be written once every 60 seconds, or the Multi will go into Passthru.Man muss es mindestens 1x pro Minute schreiben. Sonst ist die Doku relativ dünn.
Aber wenn man sich div. Foreneinträge ansieht, wo es darum geht, dass man die Regelung verbessern kann, wenn man Zähler verwendet, welche 250ms Intervall statt 1s haben, dann sollte klar sein, dass das im niedrigen Sekundenbereich liegen muss.
Hier ist das auch Thema: https://communityarchive.victronenergy.com/questions/246834/how-often-can-you-read-and-write-with-ess-mode-3.html
Ich werde mal ein paar Versuche machen. -
@manuel001 Danke!
wie träge ist denn deine Leitung
-
-
@manuel001 also richtig flott!
dann gibt es zwei Möglichkeiten.du müsstest dein Skript mit dem Datepunkt synchronisieren.
Wenn der neue Wert kommt müsstest du umgehend reagieren, damit der neue Wert gesetzt ist, bevor (der alte) nochmal gepollt wird.Das andere, das ich ganzvaus den Augen verloren hatte ist deine history.
ggf. kannst du dort an den Einstellungen spielen.
Hab gerade nicht alle Optionen im Kopf.
Da es auch negative Werte zu geben scheint, kann es also nicht gehen Werte <1 zu ignorieren. -
@homoran
Das mit der History ist kein Problem. Die habe ich nur aktiviert, damit ich das Verhalten hier zeigen kannVielleicht ein paar mehr Infos:
Trigger ist aktuell jeder neue Wert vom Smart Meter. (jede Sekunde)
Ich lese das oben genannte Modbus Register aus, berechne auf Basis von Smart Meter Wert, ob ich zum ESS power setpoint Wert etwas adieren oder subtrahieren muss und schreibe den neuen Wert dann wieder zurück.
Und da sieht man jetzt auch das eigentliche Problem das ich habe, wenn ich einen alten Wert zurück lese. Dann korrigiere ich nämlich falsch.
Prinzipiell funktioniert es eh ganz gut, aber es ist halt nicht ganz sauber.
Einerseits möchte ich natürlich so zeitnah wie möglich auf die Änderung vom Smart Meter reagieren, auf der anderen Seite wäre es sinnvoll, wenn ich mich auf den Datenpunkt synchronisiere.
Ich überlege gerade folgendes: Ev. sollte ich den ESS power setpoint Wert nicht auslesen, sondern als userdata objekt parallel betreiben. Und von diesem einlesen und auf das Modbus Register nur schreiben. Und ev. hin und wieder mal synchronisieren. -
@manuel001 sagte in Modbus Register lesen verhindern (Modbus Adapter):
Trigger ist aktuell jeder neue Wert vom Smart Meter. (jede Sekunde)
und genau das ist das Problem.
Da driften die Zeiten dann auseinander.Bei einem Abfrageintervall von einer Sekunde kommt jedesmall noch die Pollzeit bis zum nächsten Poll hinzu.
Das Intervall ist die "Netto-Ruhezeit"Zeitweise passt es, zeitweise nicht.
@manuel001 sagte in Modbus Register lesen verhindern (Modbus Adapter):
wenn ich einen alten Wert zurück lese.
mal ins unreine:
was ist wenn du den zuletzt gesetzten Wert zur Berechnung nimmst, der möglicherweise noch nicht zurückgeliefert wurde?Andererseits hat diese Änderung ggf. noch gar keine Auswirkung gehabt, wenn der Cerbo den Wert noch nicht bestätigt hatte.
-
@homoran sagte in Modbus Register lesen verhindern (Modbus Adapter):
was ist wenn du den zuletzt gesetzten Wert zur Berechnung nimmst, der möglicherweise noch nicht zurückgeliefert wurde?
Ja das habe ich eh damit jemeint, dass ich mir den Datenpunkt quasi dupliziere.
Also wenn ich den Wert sende, schreibe ich ihn auch in einen 2. Datenpunkt, den ich dann nach 1 Sekunde wieder auslese.
Das werde ich dann am Wochenende testen, wie sich das auswirkt. (bei den aktuellen Strompreisen möchte ich nicht riskieren, dass ich etwas verschlimmbessere)Danke erstmal!
-
@manuel001 sagte in Modbus Register lesen verhindern (Modbus Adapter):
dass ich mir den Datenpunkt quasi dupliziere.
dafür eine Variable nehmen und in das Register schreiben und dann damit weiterrechnen.
[OT]
@manuel001 sagte in Modbus Register lesen verhindern (Modbus Adapter):bei den aktuellen Strompreisen
ist das in A so schlimm?
Ich zahle 25ct. das ist doch nicht viel.
da lass ich den Cerbo rechnen, dafür wird er bezahlt
[/OT] -
@homoran sagte in Modbus Register lesen verhindern (Modbus Adapter):
ist das in A so schlimm?
Gleich wie in Deutschland:
Aktuell 80ct. -
@manuel001 sagte in Modbus Register lesen verhindern (Modbus Adapter):
Aktuell 80ct.
das ist ein Grund warum ich keine dynamischen Tarife mag.
Batterie bis auf Notreserve leer, und keine Sonne in Sicht -
@manuel001 sagte in Modbus Register lesen verhindern (Modbus Adapter):
Ja das habe ich eh damit gemeint, dass ich mir den Datenpunkt quasi dupliziere.
Ich habe das jetzt umgebaut und es funktioniert auch.
Allerdings ändere ich jede Sekunde nur mehr 1/3 der Abweichung weil der Multiplus sowieso nicht so schnell ausregeln kann (Thema 400W/s).
Außerdem habe ich festgestellt, dass die in der Doku angegebenen max. 60 Sekunden Aktualisierungsintervall gar nicht stimmen. Nach 15 Sekunden schaltet der Multiplus II schon in den Passthrough Mode.