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 

While Schleife vorzeitig abbrechen



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!

05.04.2012, 18:46
Beitrag #1

Moeseph Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Jul 2008

8.6
-
DE

55128
Deutschland
While Schleife vorzeitig abbrechen
Hallo liebe LV-Gemeinde!

Ich habe eine technische Frage bezüglich des Abbrechens einer While-Schleife. Ich möchte eine Apparatur betreiben, die periodisch arbeiten soll. Ein Durchlauf durch die Prozedur, in der von LV letztlich I/O Kanäle geschaltet werden sollen, dauert etwa 20 Sekunden. Ich habe mir also eine While-Schleife gebaut, in der jede Menge Kram erledigt wird und die beendet wird, sobald die Abbruchbedingung erreicht ist.

Meine Frage zielt nun dahin, ob es eine Möglichkeit, die While-Schleife direkt abzubrechen, wenn irgendwann im Verlauf der etwa 20 Sekunden dauernden Periode etwas schief geht. Die Schleife soll also nicht erst bis zum Ende des jeweiligen Durchlaufs gehen und dann einfach nicht wieder aufs Neue starten, sondern direkt beendet werden. Ich möchte allerdings nicht das ganze Programm beenden, sondern ausdrücklich nur die Schleife.

Ich habe mir überlegt, den Inhalt der Schleife in ein Sub-VI zu packen, welches dann anstelle des jetzigen Inhalts in der While-Schleife läuft. Dieses Sub-VI will ich dann im Fall der Fälle durch das STOPP-VI beenden und dann dafür sorgen, dass die While-Schleife ebenfalls beendet wird.

Meine eigentliche Frage ist nun, ob dieser Gedanke in diesem Fall tatsächlich das Mittel der Wahl ist, oder ob es elegantere und/oder bessere Methoden gibt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.04.2012, 10:06
Beitrag #2

Hook1986 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jan 2012

2010
2011
DE_EN


Deutschland
RE: While Schleife vorzeitig abbrechen
Hallo Moseph,

wenn ich dich also richtig verstehe, dann willst du dass die While-Schleife durchläuft. Nun tritt irgendwo in den einzelnen Schritten, die in dieser Schleife passieren ein Fehler auf. Wenn dann dieser Fehler da ist, so willst du dass der restliche Code nicht ausgeführt wird und die Loop beendet wird?

Dann geh doch einfach hin und pack die einzelnen Schritte in SubVIs und mach in jedem dieser Schritte einfach eine Case-Struktur, mit der du dann "Fehler" und "Kein Fehler" verwendest. Bei Fehler einfach keinen Code rein und bei "Kein Fehler" den Code rein, den du eugentlich ausführen willst. Und dann am Ende der Schleife musst du nur noch den Feler mit nem Oder an die eigentliche abbruchbedingung ranhauen.

Hoffe, dass das verständlich genug ausgedrückt ist.

MfG Carsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.04.2012, 13:07
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: While Schleife vorzeitig abbrechen
(06.04.2012 10:06 )Hook1986 schrieb:  Nun tritt irgendwo in den einzelnen Schritten, die in dieser Schleife passieren ein Fehler auf.
Könnte schon so sein, aber mit geposteten VI von Moeseph wäre man auf Spektulationen überhaupt nicht angewiesen und könnte definitiv eine gute Lösung verschlagen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.04.2012, 12:09
Beitrag #4

Moeseph Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Jul 2008

8.6
-
DE

55128
Deutschland
RE: While Schleife vorzeitig abbrechen
Hook hat schon recht mit seiner Vermutung. Das Problem mit dem Posten des entsprechenden VIs ist, dass in ihm VIs benutzt werden, die mit dem zu steuernden Gerät mitgeliefert worden sind, das heißt jeder, der das entsprechende Gerät nicht hat, würde also nicht viel zu sehen bekommen.

Ich werde die Methode von Hook mal probieren, das sollte recht leicht zu implementieren sein, da sie Steuer-VIs glücklicherweise einen Fehler ausgeben, wenn einer auftritt. Außer natürlich, jemand kennt eine noch bessere Methode.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Sub-VI über Button im Hauptpanel abbrechen der Philipp ausm Wald 28 31.556 01.08.2018 06:55
Letzter Beitrag: GerdW
  "Abbrechen"-Knopf im Datei-Dialog ändern Marcusius 1 3.860 10.06.2015 12:49
Letzter Beitrag: jg
  Laufendes VI abbrechen Patrik 5 6.795 04.04.2013 08:09
Letzter Beitrag: Patrik
  wie Prozess vorzeitig abbrechen? Hasenfuss 3 4.875 13.03.2013 16:46
Letzter Beitrag: GerdW
  Zyklus abbrechen ragingbull 11 9.527 24.09.2012 16:19
Letzter Beitrag: GerdW
  Zeitgesteuerte Schleife vorzeitig aufrufen ralph.d 2 3.784 25.05.2012 13:26
Letzter Beitrag: Lucki

Gehe zu: