INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Wie kann man eine While Schleife von außen stoppen?



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

01.12.2006, 14:21
Beitrag #1

chris_deus Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Aug 2006

2010
2006
en

48565
Deutschland
Wie kann man eine While Schleife von außen stoppen?
Hi,
mein Problem ist, dass man While-Schleifen nur von innen(bzw.die Schleifen sich selbst-) stoppen kann. Ist es möglich dies auch von außen zu tuhen?

MfG,
Chris

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
01.12.2006, 14:22
Beitrag #2

a-sl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 51
Registriert seit: Nov 2006

8.2
2005
kA

71034
Deutschland
Wie kann man eine While Schleife von außen stoppen?
Ich hatte den Fall noch nie, aber spontan würde ich die Benutzung einer lokalen Variable vorschlagen....*g*

André
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.12.2006, 14:27 (Dieser Beitrag wurde zuletzt bearbeitet: 01.12.2006 14:32 von chris_deus.)
Beitrag #3

chris_deus Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Aug 2006

2010
2006
en

48565
Deutschland
Wie kann man eine While Schleife von außen stoppen?
Die Variable muss sich dann aber im Inneren der Schleife befinden....das soll ja gerade nicht der Fall sein.

Ich möchte alle Vorgänge innerhalb der Schleife beenden, ohne dass diese zuende ausgeführt werden.
Danach soll die Schleife bzw. Statemachine neu gestartet werden. Dies geschieht ganz einfach mit einer weiteren Schleife außen herum die endlos läuft, bis das ganze Programm beendet wird.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.12.2006, 14:28
Beitrag #4

Joschi Offline
LVF-Wiedereinsteiger


Beiträge: 9
Registriert seit: Nov 2006

2011
2006
DE

83624
Deutschland
Wie kann man eine While Schleife von außen stoppen?
' schrieb:Hi,
mein Problem ist, dass man While-Schleifen nur von innen(bzw.die Schleifen sich selbst-) stoppen kann. Ist es möglich dies auch von außen zu tuhen?

MfG,
Chris
Hallo Chris,

Kannst du "von außen stoppen" näher definieren, das erleichtert das helfen.

Joschi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.12.2006, 14:36
Beitrag #5

chris_deus Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Aug 2006

2010
2006
en

48565
Deutschland
Wie kann man eine While Schleife von außen stoppen?
Habe gerade oben noch korrigiert

Hier Beispiel


Angehängte Datei(en)
Sonstige .vi  Unbenannt.vi (Größe: 6,75 KB / Downloads: 396)

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.12.2006, 14:53
Beitrag #6

Mr.T Offline
LVF-SeniorMod


Beiträge: 1.007
Registriert seit: Jun 2005

2009
2005
kA

88400
Deutschland
Wie kann man eine While Schleife von außen stoppen?
Hallo!

Du möchtest also die Innere Schleife beenden, egal in welchen Zustand sie sich befindet, wenn in der äusseren Schleife was passiert - richtig?

In diesem Fall würde ich die Programmstruktur überdenken - lass die innere Schleife weg und nimm diese Aufgabe mit in eine Statemachine, die halt iimerwieder den Selben Case ansprigt.

Oder Poste ein aussagekräftigeres VI. Big Grin

Gruß!

Mit einem freundlichen Wort und etwas Gewalt erreicht man viel mehr als nur mit einem freundlichen Wort. [...Marcus zu Lennier, B5]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
01.12.2006, 14:58
Beitrag #7

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Wie kann man eine While Schleife von außen stoppen?
Prinzipiell läßt sich eine While Schleife nur über den Stopp Button beenden. Auf diesen kannst du natürlich nicht nur mittels dem klassischen Button zugreifen.
In jedem Fall wird aber natürlich die Schleife noch ein letztes mal fertig durchlaufen, d.h. alle Tasks in der Schleife die noch anstehen werden ausgeführt.

Beispiele um eine Schleife zu stoppen wären:
- Button
- Melder
- lokale Variable
und oft sehr nützlich: Errorcluster direkt an die Abbruchbedingung anschließen. Den kannst du z.B.: auch um all deine SubVis in der Schleife als Case anlegen, dann werden die auch nicht mehr ausgeführt, sollte ein Error auftreten.

Nur um es zu erwähnen: Es gibt tatsächlich 2 Funktionen die ein Vi respektive LV stoppen. Zu finden unter "Anwendungssteuerung".
Im Allgemeinen ist so ein Vorgehen jedoch nicht zu empfehlen, da sofort abgebrochen wird und dadurch etwaige Deinitialisierungen nicht ausgeführt werden.

A few weeks of developement and testing can save a WHOLE afternoon in the library!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.12.2006, 15:01
Beitrag #8

chris_deus Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Aug 2006

2010
2006
en

48565
Deutschland
Wie kann man eine While Schleife von außen stoppen?
Die Innere Schleife ist doch meine Statemachine, die bestimmte Subvis ausführt, wenn ich die entsprechenden Knöpfe (Boolesch) drücke.
Diese Subvis können also nurnoch gestoppt werden, wenn ich die ganze Schleife/Statem. stoppe.
Der Stopp der Inneren Schleife käme in meinem Fall aber einem Programmstop gleich. - Deshalb die äußere Schleife, die die Statemachine nach einem "Vollstopp" wieder anschmeißt.

Mit der ganzen Sache möchte ich einfach nur erriechen, dass alle laufenden Subvis sofort stoppen, ohne dass das ganze Programm gestoppt wird.

Falls man einen bereits laufenden Schleifendurchlauf nicht unterbrechen kann, ist mein Poblem ohnehin nicht zu lösen.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.12.2006, 15:04
Beitrag #9

a-sl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 51
Registriert seit: Nov 2006

8.2
2005
kA

71034
Deutschland
Wie kann man eine While Schleife von außen stoppen?
' schrieb:Die Variable muss sich dann aber im Inneren der Schleife befinden....das soll ja gerade nicht der Fall sein.


eben !

die lokale variable bezieht sich auf einen Button beipielsweise, der ausserhalb der Schleife ist.
Setzt du nun den button, so setzt sich auch die Variable und kann deine Schleife beenden. Das funktioniert 100%ig.



Darüber hinaus ist, je nachdem wie dein konkreter Anwendungsfall ist, eine StateMachine tatsächlich die bessere Lösung.

' schrieb:Falls man einen bereits laufenden Schleifendurchlauf nicht unterbrechen kann, ist mein Poblem ohnehin nicht zu lösen.



Der gerade aktuelle Schleifendurchlauf wird stets zu Ende geführt, weil zu Beginn die Abbruchbedingung nicht erfüllt war.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.12.2006, 15:10
Beitrag #10

chris_deus Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Aug 2006

2010
2006
en

48565
Deutschland
Wie kann man eine While Schleife von außen stoppen?
Wenn ich das richtig verstanden habe, ist eine Statemachine eine Endlosschleife, die eine Casestruktur abarbeitet.

Falls das richtig ist, kann man eine Statemachine also nicht Stoppen während sie einen Schleifendurchlauf durchführt, sonder erst im kommenden Durchlauf wenn die Schleifenbedingung auf False gesetzt werden kann.

Ich wollte einfach nur einen Abbruchbutton für mein Programm haben, der alle laufenden Prozesse stoppt, aber das Programm nicht beendet.

Falls es da keine Lösung gibt, muss sich der zukünftige Benutzer meines Progs. eben genau überlegen auf welche Knöpfe er drückt^^


MfG,
Chris

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Schleife stoppen in subVI illy777 31 13.596 14.09.2020 18:00
Letzter Beitrag: illy777
  While Schleife stoppen itz_me 4 5.929 13.04.2017 14:47
Letzter Beitrag: itz_me
  X Bildlaufleiste bei Signalverlaufsdiagram stoppen Carp 18 10.704 10.06.2016 09:57
Letzter Beitrag: Carp
  Frage zu Lauflicht stoppen(vorübergehend) fuego50 4 4.388 23.05.2016 17:05
Letzter Beitrag: fuego50
  Referenziertes VI stoppen marhi 7 5.886 08.03.2016 12:07
Letzter Beitrag: rolfk
  Parallele Schleifen beliebig stoppen/neustarten buettnerstefan 3 4.968 03.06.2015 15:23
Letzter Beitrag: buettnerstefan

Gehe zu: