Hallo zusammen,
erst einmal eine kurze Beschreibung meines VIs, dann zu meinem Problem. Mein Programm besitzt 3 parallelen Schleifen (1 für Datenerfassung bzw. Daten aus Datei lesen (Mitte), 1 zur Statusabfrage (unten) und 1 zur Datenauswertung (oben)). Die Daten lesen geht schneller als die Datenverarbeitung, was auch gut ist. Die Daten werden über eine Queue an die Datenauswertungsschleife übergeben und dort verarbeitet (hier der Einfachheit halber nur dargestellt). Diese und die Statusschleife sollen auch mal beendet werden. Die Schleife für die Daten endet, wenn das Dateiende (EOF) erreicht ist.
Ich habe ein Problem beim Offline-Modus. Die mittlere Schleife endet zwar und die anderen beiden laufen noch, bis die Daten in den Queues abgeholt sind, aber sie beenden sich dann nicht.
Statusschleife: Wird bisher erst beendet, wenn ein Fehler vorliegt oder auf "Stopp" gedrückt wird. Die soll dann später erst beendet werden, wenn die anderen beiden beendet sind. Das lässt sich ja auch wieder mit Queues bewerkstelligen.
Hauptschleife: Die boolschen Anzeigen "Queue leer?", "nicht mehr 1. Schleife?" und "Offline?" sind am Schluss alle TRUE. Aber "Final" leider nicht. Irgendwie hängt sich eine Schleife auf. Was kann ich da dagegen tun?
Auffällig: Die Statusschleifen und die Hauptschleife werden einmal mehr als die Datenschleife durchlaufen.
Viele Grüße
Klause.
Main.vi (Größe: 145,06 KB / Downloads: 312)
Valsalva,10072015-LS-1.tdms (Größe: 2,54 MB / Downloads: 252)