Moin zusammen,
ich habe jetzt seit einiger Zeit ein Skript laufen und (vermutlich) seit der Umstellung von einem Trigger auf 1 Sekunde von 15 Sekunden arge Probleme mit den Timeouts.
Das sich Timeouts mehrfach starten können, ist mir klar. Daher habe ich neben einem Timeout das nächste Timeout wieder gestoppt. Bei 15 Sekunden Ausführungszeit hat das augenscheinlich auch gut geklappt (vielleicht ist es mir aber auch einfach nicht aufgefallen). Bei einer Sekunde schafft er es aber jetzt nicht, die Timeouts, welche laufen zu beenden und führt die dann mitten drin mal wieder aus.
Ausschnitt meines Blocklys:
Zur Erklärung:
Wenn der Wert von "PowerAC" gleich oder größer als "LadenStart" ist und die PV nicht Manuell ausgeschaltet ist ("PV_Aus"), soll für 2 Minuten gewartet werden, bis das Laden erlaubt wird, der Status "Aktiv" auf wahr gesetzt wird und die "PV_Stufe" je nach Benutzereingabe auf 3 oder 4 gesetzt wird. Sollte innerhalb dieser 2 Minuten der Wert von "PowerAC" kurzzeitig geringer als der "LadenStart" Wert sein, soll die Zeit neu beginnen.
Sollte das alles nicht wahr sein, soll nach 4 Minuten die PV auf Stufe 1 gestellt werden und anschließend, 1 Minute später, soll der Rest "zurückgestellt" werden.
Die anderen "Stops" welche NICHT "PV-Laden_Start" oder "PV-Laden_Stop" und "PV-Laden_Stop2" heißen, könnt ihr erstmal ignorieren. Das Problem ist bei denen das gleiche, würde dann aber zu umfangreich werden...
Wenn nun der Pfad mit dem Debug: "PV_Start1" kommt, zwischenzeitig aber die 1. Bedingung nicht mehr "TRUE" ist, kommt nach 4 Minuten die Debug Meldung: "PV_Stop1"... Dabei wird der timeout (meiner Meinung nach) durch das "stop PV-Laden_Stop" beendet. Sollte zumindest...
Das ganze zieht sich dann mit dem Debug: "PV_Stop2" ebenso durch...
In dem restlichen Skript habe ich maximal noch mal ein Timeout "Stop" genutzt, aber nirgends das Timeout noch einmal gestartet (wenn sowas überhaupt geht).
Hat jemand eine Idee woran das liegen kann? Ich habe schon viel gelesen zu Timeouts... Viele Videos geschaut. Aber noch keins hat mir die Lösung erbracht, welche ich benötige... Ich komme eher aus der SPS Programmierung. Da setzt sich ein Timer normalerweise immer zurück, wenn der Eingang FALSE wird...
Grüße Johannes