LabVIEWForum.de - Fallunterscheidung ohne Case-Struktur möglich?

LabVIEWForum.de

Normale Version: Fallunterscheidung ohne Case-Struktur möglich?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich möchte so etwas in LabVIEW umsetzen:

[code]if (BIN || BINASCII)
{
' schrieb:Wären hier 2 Case-Strukturen erforderlich? Im "True"-Abschnitt, wird der eigentliche Ablauf ausgeführt, der "False"-Abschnitt ist dann eher ein "Dummy-Abschnitt"?
Klar, so kannst du das machen. Ziel wäre dann erfüllt: Sourcecode für alle Fälle sichtbar. Du musst daran denken, die beiden Cases-Strukturen zu sequenzieren.

Nachteil:
Verbraucht viel Platz am BD. Diese Methode sollte also nur in einem SubVI gemacht werden.
Also ich finde die Case Struktur schon übersichtlich und es hält das Blockdiagramm wie IchSelbst schon sagte schlanker.

Lv85_img
Hallo,

danke. Es wäre für ein SubVI, aber ich möchte hier nichts Exotisches machen, sondern das, was ein erfahrener LabVIEW-Entwickler machen würde. Wie würde dieser das lösen?

Grüße

Nachtrag @abrissbirne: Danke, aber dann hätte ich "Code" doppelt, da bei "BIN + ASCII" sowohl "BIN" als auch "ASCII" ausgeführt werden soll.
' schrieb:Hallo,

danke. Es wäre für ein SubVI, aber ich möchte hier nichts Exotisches machen, sondern das, was ein erfahrener LabVIEW-Entwickler machen würde. Wie würde dieser das lösen?

Grüße

Nachtrag @abrissbirne: Danke, aber dann hätte ich "Code" doppelt, da bei "BIN + ASCII" sowohl "BIN" als auch "ASCII" ausgeführt werden soll.
Das ist nur ein Platzhalter. Beschäftige dich mal mit dem Thema Statmachine (Zustandsautomat). So würde ich das lösen.
Hallo abrissbirne,

das ist ein sehr interessanter Ansatz!

Ich habe mich damit etwas beschäftigt und versucht, das umzusetzen. Mir persönlich erscheint das sehr aufwändig.
Der Ansatz für den Fall "BIN + ASCII" ist angehängt. Stimmt das ungefähr oder ist das viel zu umständlich gedacht?

Grüße, Matze

[attachment=25703]
' schrieb:ist das viel zu umständlich gedacht?
Viel zu kompliziert!

Wenn du nur diese drei Fälle hast, mach's wie du's ganz oben schon angefangen hast. Warum verkomplizieren, wenn's übersichtlich und einfach geht.


Möglichkeiten gibt es viele, siehe Anhang, die Frage ist nur, was ausreichend ist.

Lv85_img
Hallo IchSelbst,

besten Dank! Ich versuche morgen, dein VI nachzuvollziehen. Da sind einige VIs enthalten, die noch neu für mich sind.

Mein kompliziertes VI funktioniert übrigens auch, wie ich feststellen musste. Es hat mich selbst gewundert.

Grüße, Matze
Deine Lösung ist wirklich elegant, muss ich sagen. Sie funktioniert auch.
Nur habe ich sie noch nicht ganz nachvollziehen können. Ich versuche wiederzugeben, wie weit ich beim Verständnis gekommen bin und was ich noch nicht ganz verstanden habe.[list]
[*]links erstellst du aus dem gewählten (Integer-) Wert ein "Warteschleifen-"Array. Dieses gibst du an die Case-Struktur weiter und entfernst das aktuelle Element, da es bearbeitet wird.<>
[*]Bei "BIN + ASCII" übergibst du an die Case-Struktur unten rechts "BIN" (das wird somit abgearbeitet) und hängst "ASCII" an das (leere) Array an. D.h. die Prüfung auf ein leeres Array ist nicht wahr und die Schleife wird mit dem Wert "ASCII" wiederholt.
Ist der Wert bearbeitet und entfernt, wird die Schleife verlassen (da das Array leer ist).<>
[*]zu den rechten Case-Strukturen: Das untere dient dazu, den eigentlichen Code auszuführen und die oberen beiden sind im Endeffekt überflüssig, oder nicht?<>
[st]Ich hoffe, ich nerve nicht zu sehr. Nur würde ich das gerne verstehen, damit ich das auch irgendwann selbst hinbekomme.

Grüße, Matze
' schrieb:links erstellst du aus dem gewählten (Integer-) Wert ein "Warteschleifen-"Array.
Eigentlich kein "Warteschleifen-Array", sondern ein "WasIstZuTun-Array".

Zitat:Bei "BIN + ASCII" übergibst du an die Case-Struktur unten rechts "BIN" (das wird somit abgearbeitet) und hängst "ASCII" an das (leere) Array an. D.h. die Prüfung auf ein leeres Array ist nicht wahr und die Schleife wird mit dem Wert "ASCII" wiederholt.
Top1
[*Lob*]
Guck, da ist einer in der Lage, mit Worten weiterzugeben, was das Auge gesehen hat.
[/*Lob**Wirwollenjanixübertreiben*]

Zitat:zu den rechten Case-Strukturen: Das untere dient dazu, den eigentlichen Code auszuführen und die oberen beiden sind im Endeffekt überflüssig, oder nicht?
Hast du nur die Cases "Bin" und "ASCII", so kannst du die beiden oberen IF-Strukturen nehmen. Dann siehst du wieder allen Code auf einen Blick. Hast du mehrere Fälle, nimmst du die untere Case-Struktur. Da ist dann halt wieder alles gestapelt.
Ein Verfahren (2mal oben oder unter) ist natürlich ausreichend.

Zitat:Ich hoffe, ich nerve nicht zu sehr.
Da hab ich schon ganz andere User überstanden. Yahoo
Seiten: 1 2
Referenz-URLs