LabVIEWForum.de - Unbestimmte Variable an Sub-Vi übergeben

LabVIEWForum.de

Normale Version: Unbestimmte Variable an Sub-Vi übergeben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,
es geht um LV 2016, dürfte aber versionsunabhängig sein.
Mein Problem:
Ich möchte ein Sub-Vi erstellen, welches zu Diagnosezwecken einen String und beliebige Variable, Strukturen aber auch Arrays (=Daten Bedienelement) auf meinem Rechner ablegt.

Meine Idee dazu:
Die Variable (....) in JSON umwandeln und als String ausgeben.

Dies funktioniert, so lange die Umwandlungsfunktion in JSON direkt im Programmcode eingefügt wird.
Sobald ich aus dem entsprechenden Teil ein SUB-Vi generieren lasse, ist der daraus entstehende Eingang schon mit dem Datentyp "verheiratet", d.h. das entstandene SUB Vi ist nicht mehr universell nutzbar.
Ich möchte eigentlich einen universellen Datentyp an mein SubVi anschliessen und diese dann an das JSON Vi weitergeben.

Mein Vorgehen war also:
Daten - Bedienelement im SUB Vi löschen und direkt am JSON - Vi ein Bedienelement erstellen lassen, um dieses dann nach aussen zu verbinden.

Das wirft mir aber Fehler.

Wie kann ich das Problem lösen?
Das fehlerhafte Vi hab ich angehängt, wobei die (funktionierende) Diagnose Ausgabe deaktiviert ist.

Gruß Hajo
Hallo hajos,

Zitat:Dies funktioniert, so lange die Umwandlungsfunktion in JSON direkt im Programmcode eingefügt wird.
Weil die Funktion polymorph ist.

Zitat:Sobald ich aus dem entsprechenden Teil ein SUB-Vi generieren lasse, ist der daraus entstehende Eingang schon mit dem Datentyp "verheiratet", d.h. das entstandene SUB Vi ist nicht mehr universell nutzbar.
Weil du ein Control auf dem Frontpanel mit einem definierten Datentyp erstellst.

Zitat:Ich möchte eigentlich einen universellen Datentyp an mein SubVi anschliessen und diese dann an das JSON Vi weitergeben.
Dafür gibt es entweder polymorphe VIs, MalleableVIs oder Variants.
Leider akzeptiert ToJSON Variants aber nicht direkt: du müsstest also das Variant selbst wieder in einen Datentyp umwandeln, was bei deiner Frage kontraproduktiv erscheint…

Zitat:Mein Vorgehen war also:
Daten - Bedienelement im SUB Vi löschen und direkt am JSON - Vi ein Bedienelement erstellen lassen, um dieses dann nach aussen zu verbinden.
Das wirft mir aber Fehler.
Ein leerer Cluster ist kein gültiger Datentyp…
Zitat:
Zitat:Dies funktioniert, so lange die Umwandlungsfunktion in JSON direkt im Programmcode eingefügt wird.
Weil die Funktion polymorph ist.

Danke für die schnelle Antwort, bringt mich aber sofort zur nächsten Frage:
Wie mache ich mein SubVi polymorph?
Hallo hajos,

Zitat:Wie mache ich mein SubVi polymorph?
File -> New… -> Im Dialog dann "Polymorphic VI" auswählen.

Dann für jeden benötigten Datentyp ein eigenes subVI erstellen…

Vorher vielleicht die LabVIEW-Hilfe öffnen, auf den "Index"-Tab (statt default "Inhalt") umschalten und nach "polymorphic" suchen. Dann den Unterpunkt "VIs" öffnen und lesen:
[attachment=62722]
Danke!
Gruß
Hajo
Referenz-URLs