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 

Stoppen einer For-Schlaufe wenn Case-Schlaufe nicht mehr erfuellt



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!

27.10.2006, 11:09
Beitrag #1

Guest
Unregistered


 







Stoppen einer For-Schlaufe wenn Case-Schlaufe nicht mehr erfuellt
So, nach dem das eine Erledigt waere, hab ich einen Fehler entdeckt, an den ich gar nicht dachte.

Wie kann ich es erreichen, dass ich wenn ich eine For-Scheife in einer Case-Abfrage habe, die For-Schleife nicht mehr ablaeuft wenn der Case nicht mehr erfuellt ist. Denn sitze ich da erst mal drin, dann arbeitet der die ab und schaut danach erst ob die Bedingung noch erfuellt ist.

Danke,
Boris
Diese Nachricht in einer Antwort zitieren to top
27.10.2006, 11:12 (Dieser Beitrag wurde zuletzt bearbeitet: 27.10.2006 11:15 von Achim.)
Beitrag #2

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Stoppen einer For-Schlaufe wenn Case-Schlaufe nicht mehr erfuellt
Hi,

du musst auf ne While-Schleife umschwenken, ne FOR-Schleife kannst du definitv nicht abbrechen...Aber: Wie soll das überhaupt gehen: Wenn du wie du schreibst die FOR in nem Case hast, dann wird der Case ja ohnehin nicht mehr abgefragt, eben weil du schon drin bist! Das ist doch rein logisch unmöglich...beschreib mal, was du eigentlich vorhast...

Gruss
Achim

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2006, 11:13
Beitrag #3

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Stoppen einer For-Schlaufe wenn Case-Schlaufe nicht mehr erfuellt
' schrieb:So, nach dem das eine Erledigt waere, hab ich einen Fehler entdeckt, an den ich gar nicht dachte.

Wie kann ich es erreichen, dass ich wenn ich eine For-Scheife in einer Case-Abfrage habe, die For-Schleife nicht mehr ablaeuft wenn der Case nicht mehr erfuellt ist. Denn sitze ich da erst mal drin, dann arbeitet der die ab und schaut danach erst ob die Bedingung noch erfuellt ist.

Danke,
Boris

For Schleien kann man nicht stoppen. Du musst stattdessen eine While-Schleife verwenden:

   

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2006, 11:38
Beitrag #4

Guest
Unregistered


 







Stoppen einer For-Schlaufe wenn Case-Schlaufe nicht mehr erfuellt
In der For-Schleife werden meine Messstellen abgefragt und gemessen, berechnet ... Jedoch muss ich den Durckscanner von Hand weiter schalten, dazu zeigt mir ein Laempchen an, dass ich ihn umschalten soll und dann geb ich mit einem Taster auf der Frontpanal das Signal, dass es weiter machen kann. Das heisst ich muss quasi jeden For-Schleifen Schritt bestaetigen.

Hmmm, mit ne While-schleife.... muss mal schauen wie das klappen soll.
Wenn einer ein Tip hat, waere ich dankbar, hab nicht mehr viel Zeit.

Danke,
Boris




Hab gerade darueber nachgedacht. Aber das kann gar nicht gehen. Wenn ich die While-Schleife in der For-Schleife habe, dann macht die For schleife trotzdem weiter bis sie fertig ist, auch wenn die Aktionen in der While-Schleife nicht ausgefuehrt werden weil ich nicht bestaetige.
Wenn ich die While schleife vor die For-schleife mache, dann faengt diese ja immer wieder von neuem an zu zaehlen und das will ich auch nicht, da er ja nur einmal 48 Messstellen abfragen soll und nicht immer wieder von neuem.

Gibt es da nicht was, was auf ein Signal vom Benutzer wartet? Sowas wie ein "Wait on Input" durch einen Taster. Und wie sieht das auch, wie verdrahte ich das.

Danke Boris
Diese Nachricht in einer Antwort zitieren to top
27.10.2006, 12:03
Beitrag #5

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Stoppen einer For-Schlaufe wenn Case-Schlaufe nicht mehr erfuellt
Hi,

das machste am besten mit ner State Machine...der nächste State wird erst angesprungen, wenn du ne Taste drückst ...schau mal das Beispiel hier an:

http://www.LabVIEWforum.de/index.p...ost&p=15729

Gruss
A.

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2006, 13:00
Beitrag #6

melph Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Sep 2006

8.01 Basic
2002
kA


Deutschland
Stoppen einer For-Schlaufe wenn Case-Schlaufe nicht mehr erfuellt
Die Vorschleife lässt sich vielleicht nicht abbrechen -aber wenn man den ganzen Inhalt der Forschleife in ein Case packt und die Casebedingung in einem Schieberegister der umfassenden Forschleife hat, kann man sie faktisch auch von innen deaktivieren.
Allerdings rate ich aus Übersichtsgründen auch zur StateMachine.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.10.2006, 13:19
Beitrag #7

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Stoppen einer For-Schlaufe wenn Case-Schlaufe nicht mehr erfuellt
Hi,

wenn ich melph richtig verstanden habe, wird aber die FOR-Schleife trotzdem bis zum Ende durchgearbeitet, allerdings wird darin dann immer ein leerer Case angesprungen...nicht sehr effektiv! Das hatte ich mir als Workaround auch schon gedacht, wollte aber so nen Mist (...tschuldigung...) gar nicht erst erwähnen!

Gruss
Achim

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2006, 13:45
Beitrag #8

melph Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Sep 2006

8.01 Basic
2002
kA


Deutschland
Stoppen einer For-Schlaufe wenn Case-Schlaufe nicht mehr erfuellt
' schrieb:Hi,

wenn ich melph richtig verstanden habe, wird aber die FOR-Schleife trotzdem bis zum Ende durchgearbeitet, allerdings wird darin dann immer ein leerer Case angesprungen...nicht sehr effektiv! Das hatte ich mir als Workaround auch schon gedacht, wollte aber so nen Mist (...tschuldigung...) gar nicht erst erwähnen!

Gruss
Achim

Sieht schlecht aus -stimmt.
Tatsächlich ist es kompilerabhängig, ob deaktivierte Forschleifen weitergeführt werden. Ist im (privaten)Falsecase nur eine Belegung der Casevariable mit False vorhanden wird ein optimierender Compiler das als Einbahnstrasse erkennen und entsprechend umsetzen. Wie stark LabVIEW vorkompiliert weiß wohl nur NI. Wahrscheinlich wird LabVIEW die leere Forschleife nur ganz durchzählen, wenn man ihm auf die Finger schaut (quasi Schrödingers <strike>Katze</strike> VI).
Und selbst wenn nicht: dann investiert man halt ein paar Prozessorschritte pro überflüssigen Schleifendurchlauf -das merkt man unter LabVIEW eh nicht (bzw nur im Embedded Bereich). Als "mach-mal-schnell"-Lösung ist das ok -bei mehr Zeit sollte man das schon aus ästhetischen Gründen als Statemachine umsetzen(die im übrigen aber auch nicht viel anders arbeitet).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2006, 14:02
Beitrag #9

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Stoppen einer For-Schlaufe wenn Case-Schlaufe nicht mehr erfuellt
@melph:
Gut gebrüllt, Löwe!

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.10.2006, 15:51 (Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2006 15:57 von Kvasir.)
Beitrag #10

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Stoppen einer For-Schlaufe wenn Case-Schlaufe nicht mehr erfuellt
Hmm also vielleicht hab ich ja irgendetwas komplett falsch verstanden.

Du hast also eine For Schleife, die deine Messstände abfrägt. Du musst jedoch jeden einzelnen Schritt bestätigen?
Also brauchst du im Prinzip eine For Schleife, die mit ihren Iterationen wartet, bis du einen Knopf drückst. Richtig?

Das kann man doch ganz einfach mit einer While Schleife in der For Schleife lösen.
Erstell wie gehabt deine For Schleife und pack dann zusätlich eine leere While Schleife (mit einem Wait und einem Stop Button) hinzu.
Dann wird eine Iteration von der For Schleife abgearbeitet und dann steht das Programm so lange, bis du die While Schleife per Stop Button beendest. Das gleiche dann für die nächste Iteration usw.

edit: Hmm habe gerade gesehen, du hast ja einen 2. Thread mit dem selben Problem erstellt und dort wurde anscheinend schon geholfen.

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
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  [split] Button reagiert nicht mehr samba 13 7.445 19.04.2021 09:30
Letzter Beitrag: samba
  Case-Struktur: Angegebener Case nicht vorhanden braendy 10 6.830 02.02.2021 15:05
Letzter Beitrag: Lucki
  Schleife stoppen in subVI illy777 31 13.566 14.09.2020 18:00
Letzter Beitrag: illy777
  Bestimmte Zeilen im Array löschen wenn Bedingung nicht erfüllt ist bachatero18 4 5.339 31.03.2020 14:49
Letzter Beitrag: bachatero18
  Inhalt einer Baumstruktur über Methodenknoten speichern funktioniert nicht... enone 2 3.887 10.05.2019 10:19
Letzter Beitrag: enone
  Programm funkioniert nach LV-Neustart nicht mehr TeCruz 9 6.100 23.03.2018 13:33
Letzter Beitrag: TeCruz

Gehe zu: