LabVIEWForum.de - While Schleifen mit Button beenden

LabVIEWForum.de

Normale Version: While Schleifen mit Button beenden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

kann mir jemand zeigen wie ich in beigefügtem VI die 3 gleichzeitig ausgeführten Schleifen alle zugleich über einen Button beenden kann?

krieg das irgendwie nicht hin....

lg Lukas
Hallo Effemfour,

ich hab jetzt zwar keinen Blick auf Dein VI geworfen.
Aber hast Du mal bei den LV Beispielen "Stopping Parallel While Loops..." angesehen ?

Gruß
Andreas


Edit: Hab das VI nun kurz angesehen. Die Beispiele lösen Dein Problem.
ich habs mir davor schon angesehn...

da wird gesagt es soll mit lokalen Variablen gelöst werden oder? das hab ich ja versucht, aber da das VI nur ein SubVI in einem Programm ist soll es danach auch das VI schließen bzw. beenden und das macht es nicht obwohl ich das in den SubVI-Einstellungen so vorgegeben habe.

lg Lukas
Hallo Lukas,

ich würde Dir gerne ausführlich antworten, bin aber auf dem Sprung und für zwei Tag nicht im Büro.
Wenn Dein Problem am Donnerstag noch aktuell ist, melde ich mich am Donnerstag wieder.

Grüße
Andreas
ja ist natürlich ok.

Vielleicht noch zur genaueren Erläuterung für andere: Ich will die 3 Schleifen in meinem SubVI über einen z. B. "Weiter"-Button beenden. Das funktioniert zwar mit lokalen Variablen, aber das SubVI beendet dann nicht. Es bleibt einfach offen stehen, obwohl ich es in den SubVI-Einstellungen angegeben habe, dass es schließen soll, nach Abarbeitung.
Mit der "Stop"-Funktion lässt sich es leider nicht lösen, da dann auch mein Hauptprogramm gestoppt wird.

lg Lukas
Habe mir das mal angesehen. Du hast insgesamt 9 Schleifen, und um ganz sicher zu gehen, mußt Du alle über lokale Variable der Stop-Tast beenden können. Etwas ganz Bedenkliches ist auch die Funktion "Auf Frontpanel Aktivität warten", da sie im ganzen VI wirkt und nicht nur in der betreffenden Schleife in der Du die Funktion platziert hast. Die einzige wahre Lösung für Dein VI ist die Ereignisstruktur.
Super..

funktioniert... vielen Dank für die Mühe

noch ne kleine Frage: zu was müssen die lokalen "stop"-variablen nochmal auf die mehrfacharithmetik geleitet werden und dann nochmal auf die lokale variable?

nochmals danke.

lg Lukas
' schrieb:Super..

funktioniert... vielen Dank für die Mühe

noch ne kleine Frage: zu was müssen die lokalen "stop"-variablen nochmal auf die mehrfacharithmetik geleitet werden und dann nochmal auf die lokale variable?

nochmals danke.

lg Lukas
???Smile

ich denk mal um den button wieder rückzusetzen?
' schrieb:noch ne kleine Frage: zu was müssen die lokalen "stop"-variablen nochmal auf die mehrfacharithmetik geleitet werden und dann nochmal auf die lokale variable?
Ich bin mir selbst nicht sicher, ob das die optimale Lösung war und ob es nicht auch anders geht, das habe ich auf die Schnelle so gemacht. Der Hintergrund ist der: Wenn man von einem booleschem Element lokale Variablen anlegt, dann ist das unvereinbar mit dem Schaltverhalten "Latch". Latchverhalten wäre, selbst wenn es zugelassen wäre, auch nicht sinnvoll. Denn dann würde der Knopf nach dem ersten Lesen sofort wieder losgelassen, also auf false stehen, und das würde sich auf die lokalen Variablen übertragen, vielleicht bevor die anderen Schleifen, in denen diese lokalen Variablen stehen, beendet werden konnten.
Jetzt funktioniert es so: Der Knopf bleibt gedrückt und geht nicht wieder von selbst heraus. Erst wenn alle drei Hauptschleifen beendet sind, also das ganze Programm, wird der Knopf über eine weitere lokale Variable wieder auf false gestellt.

Mache Dich doch mal mit Ereignisstrukturen vertraut, es ist viele einfacher als man zunächt denkt, und ich helfe Dir bei Schwierigkeiten gern weiter.

Edit: Sehe gerade, daß ich ein Posting mit Zitat aber ohne Text gesendet habe, weiß auch nicht, wie das passiert ist, und noch weniger weiß ich, wie man solchen Mist wieder löschen könnte...
Referenz-URLs