2016-04-05 8 views
0

Ich möchte eine SubVI erstellen, die eine Ausgabeterminal mit einem variablen Datentyp hat. Außerhalb der SubVI wird das Terminal mit einem Type Cast verbunden. Ich möchte den Variant nicht als Datentyp verwenden.LabView SubVI-Terminal mit variablem Datentyp

Blockschaltbild

VI block diagram

Ist das möglich und wenn ja, wie es gemacht werden kann?

+0

Sie können versuchen, polymorph VI zu verwenden. –

+0

@Khachik: Die Verwendung eines polymorphen VIs ist nicht möglich, wenn Sie den Datentyp zur Laufzeit auswählen müssen. – MarcoM

+0

Wo ist die Anforderung bezüglich der Laufzeit in der Frage? –

Antwort

2

Nein, das ist nicht möglich. Es gibt nur einen Datentyp, der alle Datentypen transportieren kann. Das ist Variante. Ich weiß nicht, warum du es nicht benutzen willst, aber das ist deine einzige Option. Typumwandlung ist nur für umsetzbare Typen (d. H. Numerik und einige andere eingeschränkte Fälle wie das Umsetzen einer Zeichenfolge in ein Bytearray).

3

Sie können Flatten zu String VI und als String in VI (statt Typ Cast) verwenden.

Warum möchten Sie den Variant-Datentyp vermeiden?

+0

Das obige Beispiel ist vereinfacht. Eigentlich benutze ich 'Variant'. Das Problem tritt auf, wenn die Daten von "Variant" zurück in mehrere verschiedene generische Datentypen konvertiert werden. Ich würde gerne einen Datentyp (der zur Laufzeit bestimmt werden sollte) an den Typ "terminal" des VIs "Variant To Data" übergeben. –

+0

Ich kenne die Details Ihres Falles nicht, also könnte ich mich irren, aber ich habe den Eindruck, dass Ihnen der Unterricht hier sehr helfen kann. – MarcoM

+0

Ja, das ist sehr wahrscheinlich der Fall! In fast jeder anderen Sprache hätte ich objektorientierte Programmierung verwendet. Ich weiß, dass dies auch in LabView möglich ist. Ich weiß nicht warum, aber in LabView verwende ich nie objektorientierte Programmierung. –

0

Ich tippe Conversion die ganze Zeit. Wenn ich mehrere Lösungen unter Programmkontrolle brauche, benutze ich einen Case-Selektor und erstelle eine Instanz jedes benötigten Typs. Der Case-Selektor bietet auch mehrere Ausgaben für Datentypen.