LabVIEWForum.de - Übergabewert an SubVI mit änderndem Datentyp möglich?

LabVIEWForum.de

Normale Version: Übergabewert an SubVI mit änderndem Datentyp möglich?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo zusammen

Ist es irgendwie möglich ein SubVI zu erstellen, welches einen Übergabewert hat, dessen Datentyp nicht fix bestimmt ist? Das heisst, dass man dem SubVI z.B. einmal einen Integer und das andere mal z.B. ein Array über den gleichen Anschluss übergibt?
(Der Sinn davon wäre, nicht so viele Anschlüsse an dem VI zu haben)
Vielen Dank!

Gruss
Oli
Das Schlagwort dazu lautet polymorphe VIs... Such mal dazu in der Hilfe, auf NI.com oder im Forum.
Wobei du im Hintergrund doch für jeden Datentyp ein eigenes VI erstellst.

Gruß, Jens
Du kannst aus einen Anschluss auch zwei machen: Einen Enumerator zur Typauswahl und einen, der den allgemeinen Typ Variant hat. Der Variant wird dann im VI abhängig vom Enumerator in einen spezifischen Typ gewandelt.
Du könntest die verschiedenen Typen, wenns sinnvoll ist, auch in einen Cluster legen und den übergeben.
Hier ein Bsp.:
Einfach "test.vi" starten......

[attachment=19934]
Lv86_img

Gruß Markus
Vielen Dank an alle!!!
Das mit dem Datentyp Variant ist ideal für mein Problem, werde das mal ausprobieren.
(Die polymorphen VIs klingen auch sehr interessant, kannte ich bis jetzt nicht..)

Gruss
' schrieb:Hier ein Bsp.:
Einfach "test.vi" starten......

[attachment=47913:Polymorphes_VI.zip]
Lv86_img
Gruß Markus
Kann ich das Beispiel einmal inlv85haben, bitte?

EDIT: Hat sich erledigt die LV Hilfe war ausreichend. Ich war etwas voreilig, sorry.



EDIT II: Ich hätte da noch 'ne Frage. Haben polymorphe VI's einen Performancenachteil? Ich meine ich muss die ja eh in allen Varianten bauen ... also kann ich doch selbst direkt das richtige auswählen und LV die Arbeit/Entscheidung abnehmen.
' schrieb:EDIT II: Ich hätte da noch 'ne Frage. Haben polymorphe VI's einen Performancenachteil? Ich meine ich muss die ja eh in allen Varianten bauen ... also kann ich doch selbst direkt das richtige auswählen und LV die Arbeit/Entscheidung abnehmen.
Ich sag mal so:
Polymorphe VI's haben keinen Performancenachteil. Das, was hinter polymorph steckt, macht sich ja nur zur Entwicklungszeit bemerkbar. Polymorph heißt hier, dass LV zur Entwicklungszeit das (Sub)VI (respektive das Element wie z.B. Add) dem Datentyp anpasst. Du plaziert das "polymorphe VI" auf das BD, verbindest einen geeigneten (!) Datenfluss an den Eingang - und LV sucht sich das entsprechende VI heraus, das du als zu dem polymorphen VI gehörig gekennzeichnet hast. Ab diesem Moment ist das VI nicht mehr "polymorph", sondern durch die automatische Anpassung ist es jetzt eines von vielen.

Und da die Eingänge jetzt bezogen auf den Typ festliegen, hat es - zur Laufzeit - keine Performancenachteil.
Besten Dank.
' schrieb:Hier ein Bsp.:
Einfach "test.vi" starten......

[attachment=47913:Polymorphes_VI.zip]
Lv86_img

Gruß Markus
Sehr interessant, aber kann mir jemand ein Anwendungsbeispiel nennen, bei dem es Vorteilhaft ist ein polymorphes VI zu verwenden? Ich arbeite bis jetzt immer mit Variant wenn ich verschiedene Datentypen behandle.

Besten Dank.
Die ganzen DAQ-VIs sind polymorph. Da kannst Du analoge Werte anschließen, digitale Werte anschließen, Arrays anschließen und Einzelwerte anschließen,..... (je nachdem, was Du ausgewählt hast).
Aber selbst verwende ich polymorphe VIs (eigentlich) auch nie.

Gruß Markus
Seiten: 1 2 3
Referenz-URLs