19.05.2010, 20:10
' 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?Ja, das geht tatsächlich. Ich hab das nämlich im Zuge dieses Themas hier mal kurz probiert.
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?
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.Dieses Verfahren ist nicht gefährlich. Du kannst das bedenkenlos so machen.
Ist ein solches Verfahren gefaehrlich, eventuell aus Datenflussgruenden?
' 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.Ist so ok.
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.
' 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!