LabVIEWForum.de - GOTO in Labview?

LabVIEWForum.de

Normale Version: GOTO in Labview?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo zusammen,

gibt es in LabVIEW ein "Goto" wie in C/C++ um zwischen verschiedenen Case-Schleifen hin- und herzuspringen?

Oder mache ich gerade nen riesen Denkfehler?

Ich habe leider mit Google und mit anderen Suchmaschinen nichts gefunden.

Vielen Dank im Voraus

Gruss Felix
Hallo Felix,

Zitat:Oder mache ich gerade nen riesen Denkfehler?
Ja. THINK DATAFLOW!

Zitat:zwischen verschiedenen Case-Schleifen hin- und herzuspringen
Was sind Case-Schleifen? LabVIEW kennt Case-Strukturen und FOR-/While-Schleifen...
Wie willst du da hin- und herspringen?
Wenn du verschiedene Cases hast: nimm eine Case-Struktur.
Wenn du hintereinander verschiedene Cases abarbeiten willst: Pack eine Whileschleife um die Case-Struktur.
Und wo wir schon soweit sind: lies dir Sachen zum Thema "Statemachine in LabVIEW" durch, darum geht es nämlich gerade...
Klar gibt es das. Das heißt in LabView "State Machine" Wink
Danke für die schnelle Antwort und entschuldigung für den falschen Ausdruck.

In dem Angehängten VI geht es um eine Liftsteuerung. Das einzige was mir im Moment noch fehlt ist die Abfrage ob während der Fahrt noch ein anderes Stockwerk betätigt wurde. Ich habe mir bei der Frage von vorher überlegt, dass ich einfach diese Abfrage jeweils während der Fahrt mache und wenn die Abfrage "True" ist in einen bereits programmierten Case "springe". Dies würde ich in C/C++ mit Goto machen.

Zur State-Machine habe ich mir auch schon Gedanken gemacht nur bin ich leider nie auf eine Lösung gekommen.

Gibt es da eine anständige Lösung?

Über Verbesserungsvorschläge in dem Programm würde ich mich sehr freuen, da ich mich im moment noch nicht so gut mit Programmiermethoden auskenne.

Vielen Dank und Gruss

Felix[attachment=41197]
Hallo Felix,

also 8 (!) ineinander geschachtelte Case-Strukturen sind wahrlich "nicht so gut mit Programmiermethoden" begründbar...

Erstelle eine Statemachine. Überlege dir (vorher) schöne States (Lift steht, Lift fährt, Zielwahl, etc.). Dann definiere dir einen (typdefinierten) Cluster, in dem der aktuelle Zustand des Lifts (aktuelle Etage, Zieletagen, etc.) abgelegt wird. Dann neu programmieren und erst die wichtigen Sachen erledigen, bevor solche "unwichtigen" Dinge wie Fahrstuhl auf dem Bildschirm bewegen dazukommen. Das UI-Handling könnte man auch in eine parallele Schleife auslagern...
Hallo GerdW,

vielen vielen Dank für deinen Tipp. Jetzt weiss ich wenigstens mal wie ich ein Problem angehen muss.

Ich werde mich dann mal an die Arbeit machen und mich nochmal melden wenn ich mit dem "neuen" Programm fertig bin oder ein anderes Problem habe. Angel_not

Nochmals vielen Dank und Gruss

Felix
Guten Morgen,

ich hatte die letzten 2 Wochen ziemlich viel um die Ohren. Darum kommt das neue Programm erst jetzt.
Ich hoffe ich habe es jetzt ungefähr deinen Vorstellungen entsprechend ausprogrammiert.

Eine Frage hätte ich allerdings noch: Nach anfahren des gewünschten Stockwerkes öffnen sich die Türen 2mal. Wieso ist das so? Mit der Highlight-Funktion bin ich leider auch nicht fündig geworden.

Vielen Dank und Gruss

Felix
(10.09.2012 07:25 )FelixG schrieb: [ -> ]Eine Frage hätte ich allerdings noch: Nach anfahren des gewünschten Stockwerkes öffnen sich die Türen 2mal. Wieso ist das so? Mit der Highlight-Funktion bin ich leider auch nicht fündig geworden.
Das kommt von dem Schalt-Verhalten der Buttons, das du eingestellt hast. "Switch until Released" löst 2 Events aus, 1x beim Drücken, 1x beim Loslassen. Und die werden beide abgearbeitet.

Gruß, Jens
Wie ich sehe, hast Du in der neuen Liftsteuerung immerhin dazugelernt, dass man an den Case-Selektor außer Booleans auch Texte anschließen kann. Ein weiterer Fortschritt wäre die Erkenntnis, daß man da auch Zahlen anschließen kann und dass man dann a) weniger Code hat und b) mehr als nur 2 Fälle in einer Struktur behandeln kann:

[attachment=41494]
Hallo,

vielen Dank für die schnelle Antwort. Das mit dem Schaltverhalten habe ich jetzt abgeändert und es funktioniert jetzt.

@Lucki:
Zitat:Ein weiterer Fortschritt wäre die Erkenntnis, daß man da auch Zahlen anschließen kann und dass man dann a) weniger Code hat und b) mehr als nur 2 Fälle in einer Struktur behandeln kann

Bei der Fahrt in das gewünschte Stockwerk wird die ganze Zeit abgefragt wo der Lift momentan ist. Dazu habe ich ja schon die verschiedenen Wertebereiche zwischen den Stockwerken genutzt.

Hast du das so gemeint mit Zahlen anschliessen?

Gruss Felix
Seiten: 1 2 3
Referenz-URLs