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 

Sofortiger Stop einer While-Schleife in einer SubVi durch MainVi



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!

19.05.2010, 20:10
Beitrag #31

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.704
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Sofortiger Stop einer While-Schleife in einer SubVi durch MainVi
' schrieb:Ist das korrekt?
Jawohl.

Zitat:Ist das so, wie du es vorschlaegst, bitte?
Jawohl.

Zitat:Was passiert eigentlich, wenn ich einen weiteren JiggleM2 Button mit einem entsprechenden SubVi einfuehre?
Kann ich dann ebenfalls eine Referenz von "Stop Inner" in diese Sub.vi einfuegen und wenn man dann "Stopp inner"-Button drueckt, sendet dann "Generate User Event.vi" einen Befehl an alle moeglichen Eventstrukturen, die mit dem Draht bze. einer Referenz von "Stopp Inner" verbunden sind?
Ja, das geht tatsächlich. Ich hab das nämlich im Zuge dieses Themas hier mal kurz probiert.

Zitat:Entspricht das folgendem Verhalten: Ich druecke den Button "Stop inner" und er bleibt dunkelgrau und springt nicht zurueck zu hellgrau? Ich muss ihn im Moment immer manuell druecken und die Eigenschaft "Latch when released" ist nicht erlaubt, wohl aufgrund der Eventstruktur.
Genau das meine ich.
Zitat:Ichselbst, es tut mir leid, aber ich verstehe das nicht. Ich vermute ein wenig, ich muss die Filmstreifen benutzen und irgendwie vor die beiden inneren Schleifen parken.
Genau: Filmstreifen = Sequenzstruktur.

Zitat:Im Moment funktioniert auch der "Stop outer"-Button nicht. Man kann ihn zwar druecken, aber die Main.vi wird nicht beendet. Eigentlich sollte er die aeussere while-Schleife und beide inneren beenden und LabVIEW kontrolliert stoppen.
Das liegt daran:
Wenn du "StoppOuter" anklickst, wird nur die untere While-Schleife beendet, nicht aber die obere. Weil die obere While-Schleife aber noch läuft, kann das MainVI nicht beendet werden.

Zitat:Ich habe auch keine Erklaerung dafuer gefunden, warum in der Main.vi ganz links an der ausseren Schleife ein Boolean False mit einer lokalen Variable des "Stop outer" verbunden wurde. Setzt das mir generell den "Stop-Outer" Button auf false?
Ja, natürlich. Was hast du denn gedacht?
Mittels "Lokaler Variablen" kann man nämlich das Bedienelement manipulieren.

Zitat:Ich habe meine Vi "Set_flow_rate_and_direction.vi" noch einmal vor die beiden inneren while-Schleifen eingebaut und in der Eventstruktur (sihe ober innere while-Schleife) eine lokale Variable der "flow properties" generiert.
Ist ein solches Verfahren gefaehrlich, eventuell aus Datenflussgruenden?
Dieses Verfahren ist nicht gefährlich. Du kannst das bedenkenlos so machen.


' schrieb:Ich habe jetzt die Mechanical Action des "Stopp inner" Buttons zu "Switched until released" geaendert. Dann springt er zumindest wieder in den hellgrauen Zustand zurueck und verbleibt nicht im dunkelgrauen, gedrueckten Zustand.
Dann funktioniert auch der "Stopp outer" Button in folgender Art und Weise: Man drueckt entweder "Stop inner" zuerst und dann "Stop outer", LabVIEW bricht ab, oder erst "Stop outer", dann "Stop inner", LabVIEW bricht ab.
Ist so ok.


' schrieb:Ich habe an der aeusseren while-Schleife eine Boolean False mit einer lokalen Variable von "Stop inner"-Button verknuepft. Damit wird ja zunaechst sichergestellt, dass der Button nicht zufaelligerweise auf True steht.
So hab ich das gemeint.


quote11: (<= Forum lässt nur 10 quotes zu)
Wenn ich das mit dem Datenfluss kapiert habe, dann wird doch erst alles ausgefuehrt, wenn alle Ports belegt sind oder when die untere, innere while-Schleife beendet ist. Haette ich nicht damit schon eine Sequenzierung, sowohl bevor die beiden inneren Schleifen starten als beim Zuruecksetzen des Buttons "Stop inner" rechts an der unteren, inneren while-Schleife?
/quote11:
Datenfluß ist immer dann, wenn irgendwelche Elemente durch einen Wire verbunden sind.
Für das Zurücksetzen des Buttons rechts nach der unteren While-Schleife hast du Recht: Dieses Zurücksetzen wird erst nach der While-Schleife gemacht, weil zwischen den beiden Elementen "While-Schleife" und "Button" ein Datenfluß (die grüne Linie) besteht.
Beachte daher folgendes:
Das Zurücksetzen links in der großen While-Schleife ist eigentlich sinnlos. Streng genommen kann dieses Zurücksetzen nämlich als allerletzter Befehl innerhalb der While-Schleife gemacht werden - also noch nach dem Zurücksetzen des "linken Buttons". Das kommt eben daher, weil es für das linke Zurücksetzen keinerlei Datenfluß gibt. Wann das linke Zurücksetzen tatsächlich ausgeführt, wird ist nicht festgelegt. Du darfst nicht vergessen: In LV gibt ein kein abarbeiten von Linsk nach Rechts - hier gilt lediglich Sequenzierung!

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
Sofortiger Stop einer While-Schleife in einer SubVi durch MainVi - IchSelbst - 19.05.2010 20:10

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Eigenversuch einer ComboBox - Optimierung und Kritik gesucht TpunktN 2 2.824 30.05.2023 07:56
Letzter Beitrag: TpunktN
  HTML-Datei - Name einer PNG bzw. JPG ändern Dsans 1 2.511 09.02.2023 04:42
Letzter Beitrag: Martin.Henz
Music FGEN Erzeugung eines Signalverlaufs anhand einer Mathematischen Funktion DavidStefan 11 8.512 29.05.2021 07:03
Letzter Beitrag: GerdW
  MainVI sucht nach gelöschter .lvlib Bibliothek kwz 5 4.797 04.05.2021 16:11
Letzter Beitrag: kwz
  Mehrere Spitzenwerte aus einer Messreihe erkennen niklas2016 8 6.524 15.02.2021 14:27
Letzter Beitrag: BNT
  benutzerdefinierte Error Codes in einer zentralen Datei im Projekt verwalten t.hipp 6 7.376 26.10.2020 16:08
Letzter Beitrag: Jessel_de

Gehe zu: