LabVIEWForum.de - es hakt mal wieder...

LabVIEWForum.de

Normale Version: es hakt mal wieder...
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
moin zusammen, bei mir gehts mal wieder nicht voran...

mein Problem ist folgendes:
ich habe 12 Kanäle bzw Eingänge, die jeweils entweder true oder false sein können, je nachdem, ob man sie vorher ausgewählt hat, oder nicht.
für jeden Eingang, der true ist, möchte ich, dass die entsprechende Nummer (1-12) an ein subvi übergeben wird, welches den Befehl (Sx), wobei x, die Kanalnummer ist, an die serielle Schnittstelle sendet und zwar solange, bis ich ein Acknowledge (A) zurückbekomme.
1. kriege ich es nicht hin, den einzelnen True/False-Werten Nummern zuzuorden
2. weiss ich nicht, wie man einem subvi einen 'Array' übergibt, so dass das subvi für jeden Wert im subvi die gleiche funktion ausführt...

ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt.
ein vi gibt es leider nicht zu posten, da alles bisher großer Mist war...

mfg
maze
Hallo!

' schrieb:1. kriege ich es nicht hin, den einzelnen True/False-Werten Nummern zuzuorden

Da die Auswahl vorher erfolgt sein muß, bietet sich hier an, die Auswahl in einem Array (boolesch) zusammenzufassen. Wenn dies geschehen ist, hat jedes Arrayelement einen Index, den Du praktischerweise als zugewiesene Nummer benutzen könntest.

' schrieb:2. weiss ich nicht, wie man einem subvi einen 'Array' übergibt, so dass das subvi für jeden Wert im subvi die gleiche funktion ausführt...

Also die Übergabe kannst Du leicht erstellen:

1. Erstelle ein Anzeige und ein Bedienelement-Array
2. Markiere das Anzeigeelement im Blockdiagramm
3. "Bearbeiten"--> Sub-VI erstellen
4. Voilá: Übergabe ist automatisch erfolgt

Prinzipielles Vorgehen zum erstellen eines Sub-VIs gibts sicher als Beispiel.
Ich hoffe, dies hilft Dir weiter, auch wenn es keine Komplettlösung ist - aber die möchtest Du ja sicher auch nicht haben...

Gruß!
moin, erstmal danke für die Antwort.
ich muss da nochmal nachhaken. Wie greif ich denn auf die Indices eines Arrays zu und vor allem nur auf die die True sind?
Des weiteren sind mir noch zwei weitere Fragen in den Sinn gekommen:
1. wie kann ich die while-Schleife 'zurücksetzen', wenn nach 2 umläufen die Abbruchbedingung noch nicht erfüllt ist?
2. wie sorg ich dafür, dass diese Schleife nach und nach für alle True-elemente des Arrays durchgeführt wird?

Der Index soll übrigens als String an den 'concentanate String' übergeben werden, aber das ist dann ja nicht mehr das Problem.

Freue mich auf weitere Inspiration...

[attachment=4413]

[attachment=4414]
nochmal ein kleines update...
[attachment=4416]

die auswahl, der von null verschiedenen elemente habe ich jetzt so realisiert!
in dem rot markierten bereich komm ich allerdings noch nicht weiter.
und zwar möchte ich für jedes element die schleife ausführen. vllt hab ich da auch ein brett vorm kopf, aber ich finde in der palette nichts, um die elemente des arrays zu trennen.

und nach wie vor würde ich den counter der schleife gerne resetten können, fall das gewünschte ergebnis nach 2 umläufen noch aussteht.
vielen dank für jedwedes bemühen...
gruß maze
Hi

die Indizes der Kanäle bekommst du ganz einfach mit einer For Schleife und einem Case (siehe Screenshot).

Das gleiche machst du um die Kanäle an dein Visa weiterzuleiten. Du steckst den Array mit den Indizes an eine For Schleife und schaltest die Indizierung an (Das Rechteck, wo der Draht in die For Schleife geht muss offen sein)
Dadurch läuft die Schleife automatisch so oft wie der Array lang ist und arbeitet die Werte ab.

Natürlich kannst du eigentlich deine ganze While Schleife gleich in den True Case der For Schleife meines Vorschlages stecken.

Das mit der Abbruchbedingung habe ich noch nicht ganz verstanden. Willst du warten bis das A kommt? Auf jeden Fall nach 2 mal abbrechen?

Ich denke, du willst am ehesten einfach deine "und" Bedingung in eine "oder" umwandeln. Dann läuft die Schleife maximal 2x, oder nur 1x, wenn ein A kommt.

Gruß


edit: Vi modifiziert und hochgeladen
jooooooooo, habs hinbekommen.
vielen dank für die hilfe, war riesig...
allen die das hier lesen auch schöne Feiertage und nen guten Rutsch! ich werd LabVIEW jetzt mal ne woche ruhen lassen!
bis denne
maze
Referenz-URLs