Hi Sven,
Robosoc hat geschrieben: ↑So Sep 15, 2019 7:33 am
Hat jemand eine Idee, warum? Und wie ich es umgehen kann.
Die VAR<...!?> Darstellung ist ein Platzhalter für eine Reihe mehrerer Levels.
Und das klappt nur richtig an Stellen, an denen eine variable Anzahl von Levels angeben werden kann.
Wie z.B. beim Statistic Modul: ein Array mit beliebig vielen Eingängen:
["Statistic",["$VAR<TempIn!>"],0,0,"$Controlled",0]
Das Modul Monoflop erwartet keine variable Anzahl von Levels. Darum geht das hier nicht.
["Monoflop","$Trigger","$Reset","$State","$Time",1]
Aber es kommt noch schlimmer:
Als Trigger wird ein Boolscher Wert erwartet, also nur True/False.
Wenn du hier einen Float-Wert verwendet, kommt es zu einer impliziten Typumwandlung, d.h. der Wert 0.0 wird zu False und alles ungleich 0.0 wird zu True.
Mit anderen Worten, deine Sensorausfall-Überwachung funktioniert so nicht.
Eine einfache Überwachung, die nur auswertet, ob irgendein Wert die Logik regelmäßig triggert wäre folgende:
["Monoflop","$KonstTrue",0,"$internStatus","$watchdogTime",1] // mit $KonstTrue fest auf true
Dann würde der Watchdog zuschlagen wenn eine "$watchdogTime" lange kein Trigger die Logik angestoßen hat.