LabVIEWForum.de - Casestruktur mit Optionsfeld

LabVIEWForum.de

Normale Version: Casestruktur mit Optionsfeld
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo liebe LabVIEWprofis,

Ich versuche mal mein Problem bestmöglich zu beschreiben, also:

Ich habe drei verschiedene Heizer, ein Heizer soll in vier verschiedenen Modi betrieben werden, der andere in drei und der letzte in zwei.

Es reicht wenn der Nutzer als Erstes den Modi eingibt und dann mit dem Schalter den jeweiligen Heizer anmacht.
Für die verschiedenen Modi benuzte ich das Optionsfeld (Radiobuttons).
Ich weiß nicht wie ich das realisiert bekomme.

Ich habe folgende Hauptcases: Start-Sensors Read&Display-Wait for Aktor- Flask Heater - Heater - Mantle Heater- Vacuum Pump

Generell dachte ich, der Benutzer drückt erst auf den entsprechnden Heizer Button damit ich dann im "Wait for Aktor" mit einer Eventstruktur in den jewiligen Case gehe (Flask Heater, Heater etc.). Von dort aus wird dann der entsprechende Modi gewählt. Doof ist es nur wenn man nicht diese Reihenfolge einhält und ich denke die meisten drücken intuitiv erst den Modi und aktiviren dann den Heizer. Deswegen ist mir wichtig das ich diese Drückreihenfolge jetzt einhalte, oder das gerne auch beide Wege Möglich sind.

Nun habe ich einen anderen Weg probiert und mich total verhaspelt. Ich habe gedacht ich packe alles in einen Case und von dort aus gehe ich in die verschiedenen Modi. Aber jetzt wird sofort in den Case gesprungen.
Nachtrag Ich habe den Standardcase mit einem leeren Case ersetzt. Trotzdem werden alle cases abgearbeitet egal welche Option bzw modi ich aktiviert habe. Was verstehe ich da falsch?

[attachment=54247]

Bevor ich mich jetzt immer tiefer rein reite bitte ich euch um Rat.

Vielen Dank und Gruß Martin
Hallo gigi,

Zitat:Ich habe drei verschiedene Heizer, ein Heizer soll in vier verschiedenen Modi betrieben werden, der andere in drei und der letzte in zwei.
Du kannst doch die Bedienung der Heizer in Abhängigkeit vom gewählten Modus (de-)aktivieren, dafür gibt es eine Property.
Und man kann den Modus so voreinstellen, dass der User gezwungen ist, erst den Modus auszuwählen…

Zum Bild: Hatten wir nicht schon einmal über Modulo-Arithmetik und passende Datentypen gesprochen? Und warum hast du endlos laufende Schleifen in Case-Strukturen versteckt?
Danke Gerd, aber wie benutzte ich diese Property?

Ist das die richtige?

[attachment=54248]

Ja also deine Ratschläge waren auch nicht Perlen vor die Säue geschmissen.
Allerdings habe ich mit dem Rest keine richtigen Werte bekommen und muss mich damit nochmal auseinander setzten. Brauche das auf jeden Fall da halbe durchläufe so gar nicht beachtet werden.

Die Datentypen hatte ich auch alle geändert, nur sind die beim rüberkopieren vom anderen VI verloren gegangen, da habe ich es dann erst mal so gelassen Blush

Wo sollte die Schleife denn am besten hin? Es muss ja hochgezählt werden oder wie löse ich das professionell?

Ich weiß leider imme noch nicht wieso die cases immer aktiv sind.

Grüße
Hallo gigi,


Zitat:Ist das die richtige?
Ja.

Zitat:wie benutzte ich diese Property?
Wie jede andere auch: passenden Wert reinschreiben…

Zitat:Wo sollte die Schleife denn am besten hin?
Es ging mir bei meinem Kommentar nicht um den Ort, wo die Schleife momentan liegt.

Zitat:Ich weiß leider imme noch nicht wieso die cases immer aktiv sind.
Vielleicht hängt das ja mit meinem Kommentar zusammen: "endlos laufende Schleifen"…

Zitat:Brauche das auf jeden Fall da halbe durchläufe so gar nicht beachtet werden.
Seit wann bieten Schleifen "halbe Durchläufe" an? Hmm
Ok Danke,
aber wenn ich die Schleife aus dem Case raus bringe, dann klappt es doch nicht mehr mit dem Hochzählen worrauf mein ganzer Puls aufbaut oder Sad ? Wieso wird die Schliefe denn nicht nur aufgerufen wenn man im Case ist, also die richtige Option gewählt hat O ?

Ich werde jetzt mal schauen wie weit ich klar komme. Aber ansich geht das in die richtige Richtung?
Entweder melde ich mit dann mit einer Lösung oder weiteren Fragen Big Grin
Leider weiß ich nichts mit deinen Kommentaren anzufangen.
Ich denke du meinst, dass ich eine For Schleife anstelle einer While loop nehme. Weiß aber nicht wie ich das umsetzen soll. Vielleicht weil ich noch nicht hinter steige wieso der Case aufegrufen wird obwohl er meiner Meinung nach nicht aufgerufen wurde und daher noch an diesem Gedanken festhalte. Weil die while Schleife ist ja im Case und sollte auch dann nur aufegrufen werden.

Mit dem Deaktivieren Property habe ich auch keine Ahnung wie man so etwas benutzt, die Hilfe sagt auch nicht viel.

Hätte ich Ahnung von den Sachen würde ich echt nicht fragen.


Gruß
Hallo gigi,

Zitat:Weil die while Schleife ist ja im Case und sollte auch dann nur aufegrufen werden.
Es geht mir darum, dass diese While-Loops ENDLOS laufen! Wie soll dein Program jemals sinnvoll funktionieren, wenn es in einer ENDLOS laufenden Schleife hängen bleibt???

Zitat:Mit dem Deaktivieren Property habe ich auch keine Ahnung wie man so etwas benutzt
Wenn man etwas testen will, erstellt man sich ein kleines Test-VI und probiert einfach mal rum.
Wie reagiert ein Control, wenn man diese Property mit jeweils anderen Werten beschreibt?
Wall
ok Gerd, da du der der Einzige bist der scheinbar Geduld mit mir hat, Danke dafür, ist meine Frage wie beende ich die Schleife in dem ein anderer Case gewählt wird und dass sie wieder aufgerufen wird wenn ich diesen Case erneut wähle?
Wie geht das mit Optionsfeldern? Als Schleifenbedingung gehen ja nur boolsche Werte. Das Optionfeld ist ja eigentlich Boolesch.

Sonst kommt mir nur in den Sinn anstatt den RadioButton nur Taster für jede Option zu nehmen und die dann gegeneinander zu verriegeln. Ich denke aber das ist viel zu umständlich und geht bestimmt mit LabVIEW viel einfacher wenn man es kann.
Hallo gigi,

Zitat:wie beende ich die Schleife in dem ein anderer Case gewählt wird und dass sie wieder aufgerufen wird wenn ich diesen Case erneut wähle?
Das musst du genauer erläutern:
Die Schleife wird beendet, wenn innerhalb der Schleife ein anderer Case (oder besser: eine andere Option des Radiobuttons) aufgerufen wird. Dann bist du aus der Schleife raus, in der der Radiobutton abgefragt wird, aber die Schleife soll trotzdem erneut starten??? Hmm

Zitat:Als Schleifenbedingung gehen ja nur boolsche Werte. Das Optionfeld ist ja eigentlich Boolesch.
Ja, eine Schleife erwartet eine boolsche Stoppbedingung.
Nein, ein Optionsfeld/Radiobutton ist NICHT boolsch!

Pseudocode:
Code:
stop:= FALSE
switch Radiobutton
Option1: stop:=TRUE
Option2: NOP
Option3: NOP
endswitch
Ok Danke.
Also ich meinte, dass ich wenn ich eine Option des Radiobuttons gewählt habe und dann eine neue Option wähle, die alte dann beendet wird. Falls ich dann aber danach doch wieder die Erste Option nehme diese dann auch wieder aktiviert wird. Sorry , das ist nicht die wissenschaftlichste Schreibweise ich weiß Big Grin
Nun ist es ja so dass aus dem Case schon rausgegangen wird wenn ich eine andere Option wähle aber da ich ja endlos in der Whileschleife bin und diese nicht beendet wird durch einen Optionswechsel tut sich da natürlich nicht viel.

Kann ich denn dann überhaupt realisieren beim Wechsel der Optionen im Radiobutton die Whileschleife der jewiligen Option zu stoppen, wenn er nicht boolesch ist? Wie mache ich das wenn ja?
(Ich weiß ja das ein WORD beim Optionsfeld rauskommt aber ich dachte man kann es vielleicht irgendwie in seine "Boolschenelemente zerhacken" und dann damit arbeiten)

Wenn ich nicht mit dem Optionsfeld für meine Anforderungen (siehe erster Beitrag) arbeiten kann was habe ich sonst für Optionen?

Ich brauche ja die Whileschleife für meine Berechnung, oder muss ich, dass auf einem völlig anderen Weg probieren ohne Whileschleife? Eventuell mit Sequenzen nur mit denen hab ich noch gar nicht gearbeitet.

Ist verständlich was meine Frage ist?

Gruß
Seiten: 1 2
Referenz-URLs