Ich hab mal eine schnelle Lösung gebaut. Nicht parametrisch und ohne Reset / Break.
Im Prinzip ganz einfach gehalten: Timer startet mit Verzögerung, beim Timerablauf wird ein SendExplicit mit fallender Flanke ausgelöst.
Diese fallende Flanke startet gleichzeitig den nächsten Timer...
Lässt sich durch kopieren von einzelnen Zeilen einfach erweitern.
Man könnte auch gleich 16 Ausgänge festlegen und per "+" einblendbar machen. Das wäre nur bedingt smart, denn die restlichen Timer laufen im Hintergrund trotzdem...
Code: Alles auswählen
/**===========================================================
Trigger mit definierbarem Intervall
============================================================*/
{
"Level":[
["$I_Interval","float",5.0],
["$I_Trigger","bool",false],
["$I_Enable","bool",false],
["$Status","bool",false],
["$Reset","bool",false],
["$Output1","bool",true],
["$Output2","bool",true],
["$Output3","bool",true],
["$Output4","bool",true], // ggf. weitere Variablen mit ansteigender Nr. anlegen
["$Touched","bool",false],
["$Timer1Status","bool",false],
["$Timer2Status","bool",false],
["$Timer3Status","bool",false],
["$Timer4Status","bool",false], // ggf. weitere Variablen mit ansteigender Nr. anlegen
["$Konst1","float",1.0],
["$Konst0","float",0.0],
["$KonstTrue","bool",true],
["$KonstFalse","bool",false]
],
"Module":[
// Auswerten, ob der Triggereingang getriggert hat
["Triggered", "$I_Trigger", "$Touched" ],
// Timer 1 wird durch Trigger gestartet
["Monoflop","$Touched","$Reset","$Timer1Status","$I_Interval",0],
// Ablaufender Timer startet jeweils mit fallender Flanke den nächsten Timer
["Monoflop","$Timer1Status","$Reset","$Timer2Status","$I_Interval",4],
["Monoflop","$Timer2Status","$Reset","$Timer3Status","$I_Interval",4],
["Monoflop","$Timer3Status","$Reset","$Timer4Status","$I_Interval",4], // weiter kopieren und TimerNr anpassen
["SendExplicit","$Timer1Status","$Output1",2],
["SendExplicit","$Timer2Status","$Output2",2],
["SendExplicit","$Timer3Status","$Output3",2],
["SendExplicit","$Timer4Status","$Output4",2] // weiter kopieren und TimerNr + OutputNr anpassen
],
"Input":[
["Interval","Input","$I_Interval","u"],
["Trigger","Input","$I_Trigger","a"]
],
"Output":[
["Output1","Output","$Output1","x"],
["Output2","Output","$Output2","x"],
["Output3","Output","$Output3","x"],
["Output4","Output","$Output4","x"] // weiter kopieren und OutputNr anpassen
]
}