LabVIEWForum.de - while-Schleife wird nicht anständig beendet

LabVIEWForum.de

Normale Version: while-Schleife wird nicht anständig beendet
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!
Ich verfüge über keine besonders grossen Kenntnisse bzgl. LabVIEW, hab eigentlich fast alles durch ausprobieren erlernt. Klappt so weit auch ganz gut.
Jetzt hab ich allerdings ein Problem, das sich irgendwie auch mit stundenlangem rumprobieren nicht beheben lässt.
Ich habe ein VI geschrieben, in dem eine while-Schleife durch das Anklicken einer "Stopp-Taste" beendet wird.
Nachdem ich daraus eine Applikation gemacht habe, scheint es mir, als würde aus irgendeinem Grund mit der Stopp-Taste einfach nur das VI neugestartet.
Ich hoffe, es gibt eine einfache Erklärung...
Lad' doch bitte mal das VI hoch.

Gruß Markus
Sorry, habs vergessen. Hier ist es:

(LV 8.2)
[attachment=10660]
' schrieb:Nachdem ich daraus eine Applikation gemacht habe, scheint es mir, als würde aus irgendeinem Grund mit der Stopp-Taste einfach nur das VI neugestartet.
Kann eigentlich nicht sein...wenn die Schleife gestoptt wird, ist's aus...

Aber stell doch mal den Modus der Stopp-Buttons (Mechanical action) auf "Latch when released", dass sollte in so nem Fall immer die Standard-Variante sein! Dann wird der Button nämlich erst dann von "gedrückt" nach "nicht gedrückt" zurückgestellt, wenn er abgearbeitet ist, d.h. die Information "gedrückt" ausgelesen wurde.

Bei deiner Einstellung kann es sein, dass der Tastendruck gar nicht registriert wird!
Hallo Achim!
Die Einstellung für den Schalter hatte ich bereits gefunden...
Ich poste jetzt einfach mal das gesamte Programm, also die drei VIs aus denen das Programm besteht.

Zu meinem Problem mit der while-Schleife kommt es, wenn ich aus dem "Hauptprogramm" (counter20071212.vi) die "Temperaturmessung" (Temperaturen3Kanal.vi) starte. Möchte ich diese beenden (durch Klicken auf "zurück"), soll die Anzeige gestoppt werden, das Fenster jedoch auf bleiben. Allerdings, wie bereits gesagt, scheint dieser Programmteil beim ersten Mal nur neugestartet zu werden. Wenn ich dann ein zweites Mal auf "zurück" klicke, wird das VI wie gewünscht angehalten. Aber eben immer erst beim zweiten Mal...
Beim anderen SubVI (SpannungWegAufzeichnung.vi) habe ich diese Problem nicht.

(LV 8.2)
[attachment=10672] [attachment=10673] [attachment=10674]
Ich steig bei deinem ganzen Aufbau nicht durch...

Wie kannst du ein zweites Mal den Button drücken? Ah...weil wie du sagst das VI beim ersten Drücken nur neu gestartet wird? An was merkst du das? Hast du schon mal die Debug-Lampe angemacht und geguckt, was passiert?

Testen kann ich nicht, da fehlen VIs und ne Dll

A.
Das ich das zweite Mal den Button drücken kann sehe ich daran, dass ich ja drei Anzeigenelemente und einen Graphen habe. Würde die Schleife ordnungsgemäß beendet, würden diese Anzeigen sozusagen eingefroren.
Bei mir leider nicht. Nach dem ersten Mal Button drücken, werden, wie beim SubVI-Aufruf von mir eingestellt, die Anzeigeninhalte gelöscht und der Graph fängt wieder ganz links neu an...
Beim zweiten Mal bleibt der Graph stehen, und auch die drei Wert-Anzeigenelemente auf dem Frontpanel behalten ihren momentanen Wert.

Dass das Programm nicht ausführbar ist hatte ich befürchtet, ich benutze zwei Messgeräte, die eigene VIs und eine dll benötigen (LabJack und PICO-TC08).

Werde jetzt gleich mal den debug-Modus probieren...
Hab das Problem behoben, auch ohne debuggen...
Hatte scheinbar im Hauptprogramm das Schaltverhalten und damit auch die event-struktur falsch eingestellt :-)
Keine Ahnung, warum ich da nicht früher drauf gekommen bin... Das SubVI wurde in der Eventstruktur quasi zweimal aufgerufen, deshalb wurde das SubVI auch immer genau beim zweiten Mal korrekt beendet.
Referenz-URLs