-> Hier kostenlos registrieren
Hallo zusammen,
Ich schlage mich seid einigen Tagen mit IEC Timern rum. Irgend wie bin ich in einer Sackgasse
Im Forum finde ich gute Ansätze, aber sehe keine Lösung für mein Problem. (Ok ich bin noch nicht lange als SCL Programmer tätig).
Ich möchte Alarme zeitverzögert anzeigen lassen. Da es sich um Rund 300 Stk. handelt, wollte ich mit Multiinstanzen arbeiten.Ich denke 300 db's nur für Alarme ist dann doch etwas viel
Das hab ich :
Das Ziel ist es dann im Programmablauf anstatt mit den S5Time, den IEC aufzurufen, Werte übergeben (Zeit, start) und ausführen lassen.
Wie muss ich jetzt vorgehen. Soll ich jetz irgendwie 300 instanzen machen in einem neuen FB, oder im bestehenden? oder irgendwie immer diesen öffnen.
Es kann ja vorkommen das mehrere Events gleichzeitig anstehen. Dann mus ja der Timer pararell mehrfach ablaufen.
Ich danke für jegliche Hilfe
Ich schlage mich seid einigen Tagen mit IEC Timern rum. Irgend wie bin ich in einer Sackgasse
Im Forum finde ich gute Ansätze, aber sehe keine Lösung für mein Problem. (Ok ich bin noch nicht lange als SCL Programmer tätig).
Ich möchte Alarme zeitverzögert anzeigen lassen. Da es sich um Rund 300 Stk. handelt, wollte ich mit Multiinstanzen arbeiten.Ich denke 300 db's nur für Alarme ist dann doch etwas viel
Das hab ich :
Code:
FUNCTION_BLOCK Tim_FB
VAR_INPUT
on : BOOL; //Timer Starten
runtime : DINT; // Laufzeit des Timers
END_VAR
VAR_OUTPUT
timerOut : BOOL; //Timerausgang bool
END_VAR
VAR
IecTimer : TON;
END_VAR
BEGIN
IecTimer (IN := on ,PT := (DINT_TO_TIME(runtime)) );
timerOut := IecTimer.Q;
END_FUNCTION_BLOCK
DATA_BLOCK Tim_DB Tim_FB //Multiinstanz DB bezogen auf FB999
BEGIN
END_DATA_BLOCK
Wie muss ich jetzt vorgehen. Soll ich jetz irgendwie 300 instanzen machen in einem neuen FB, oder im bestehenden? oder irgendwie immer diesen öffnen.
Es kann ja vorkommen das mehrere Events gleichzeitig anstehen. Dann mus ja der Timer pararell mehrfach ablaufen.
Ich danke für jegliche Hilfe