08.12.2009, 16:41
Hallo zusammen!
Ich möchte gerne eine Schleife zeitgesteuert abbrechen. Konkret sieht mein Programm so aus, dass vor Ausführung der Schleife mit Hilfe des Funktionsblocks "Timerwert auslesen" der Startzeitwert bestimmt wird. Danach wird die Schleife gestartet. Nach jedem Schleifendurchlauf wird der aktuelle Zeitwert (wieder) mit einem Funktionsblock "Timerwert auslesen" bestimmt und die Differenz zum Startzeitwert berechnet. Die Differenz entspricht dann ja der Dauer der bisherigen Schleifendurchläufe. Übersteigt diese Zeitdifferenz einen gewissen Wert ("maximale Schleifendurchlaufszeit"), wird die Schleife gestoppt. Priorität hat auf jeden Fall der Schleifenabbruch nach der maximalen Schleifendurchlaufszeit und NICHT, dass eine Schleife komplett ausgeführt wird. Und genau da liegt mein Problem!!
Momentan klappt dieses System noch ganz gut, aber nur weil die Operationen in der Schleife sehr schnell ablaufen. So wie es gerade ist, kann es nicht passieren, dass ein Schleifendurchlauf länger dauert als die maximale Schleifendurchlaufszeit. Die Schleife soll aber komplett geändert werden. In Zukunft soll während eines Schleifendurchlaufs ein Prozess abgearbeitet werden, über dessen Dauer im Vorfeld noch keine Aussage getroffen werden kann. Wie kann ich trotzdem erreichen, dass die Schleife (auch wenn Durchlauf noch nicht abgeschlossen) nach einer vorgegebenen Zeit abgebrochen wird?
So wie ich das sehe, müssten der Countdown und die Schleife wirklich zeitsynchron ablaufen und nicht nacheinander (so wie das gerade der Fall ist).
Ich bin für jeden Hinweis dankbar! Vielen Dank schon mal!
Schöne Grüße,
Max
Ich möchte gerne eine Schleife zeitgesteuert abbrechen. Konkret sieht mein Programm so aus, dass vor Ausführung der Schleife mit Hilfe des Funktionsblocks "Timerwert auslesen" der Startzeitwert bestimmt wird. Danach wird die Schleife gestartet. Nach jedem Schleifendurchlauf wird der aktuelle Zeitwert (wieder) mit einem Funktionsblock "Timerwert auslesen" bestimmt und die Differenz zum Startzeitwert berechnet. Die Differenz entspricht dann ja der Dauer der bisherigen Schleifendurchläufe. Übersteigt diese Zeitdifferenz einen gewissen Wert ("maximale Schleifendurchlaufszeit"), wird die Schleife gestoppt. Priorität hat auf jeden Fall der Schleifenabbruch nach der maximalen Schleifendurchlaufszeit und NICHT, dass eine Schleife komplett ausgeführt wird. Und genau da liegt mein Problem!!
Momentan klappt dieses System noch ganz gut, aber nur weil die Operationen in der Schleife sehr schnell ablaufen. So wie es gerade ist, kann es nicht passieren, dass ein Schleifendurchlauf länger dauert als die maximale Schleifendurchlaufszeit. Die Schleife soll aber komplett geändert werden. In Zukunft soll während eines Schleifendurchlaufs ein Prozess abgearbeitet werden, über dessen Dauer im Vorfeld noch keine Aussage getroffen werden kann. Wie kann ich trotzdem erreichen, dass die Schleife (auch wenn Durchlauf noch nicht abgeschlossen) nach einer vorgegebenen Zeit abgebrochen wird?
So wie ich das sehe, müssten der Countdown und die Schleife wirklich zeitsynchron ablaufen und nicht nacheinander (so wie das gerade der Fall ist).
Ich bin für jeden Hinweis dankbar! Vielen Dank schon mal!
Schöne Grüße,
Max