LabVIEWForum.de - Zeitsynchroner Ablauf zweier Funktionen

LabVIEWForum.de

Normale Version: Zeitsynchroner Ablauf zweier Funktionen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
' schrieb: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?
Ach, eigentlich ganz einfach:
Zuerst muss man den wenn auch im zeitlichen Ablauf unbekannten Prozess in lauter kleine Zeit-Teile zerteilen, von denen jedes kleiner sein muss als die maximale Schleifendauer. Diese Dauer ist dann die Ungenauigkeit des Abbruches. Die vielen kleinen Teile werden nun in einer Schrittkette (Statemachine) der Reihe nach abgearbeitet. Am Ende jedes einzelnen Schrittes wird überprüft, ob die Schleife abgebrochen werden soll.
Referenz-URLs