LabVIEWForum.de
Ref in SubVI - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Ref in SubVI (/Thread-Ref-in-SubVI)



Ref in SubVI - R.Fuertig - 02.08.2019 09:56

Hallo zusammen,

ich benötige in einem SubVI drei wichtige Eigenschaften von einem Enum. Ich habe versucht das Enum über eine Referenz in das Vi einzutunneln. Jedoch kann ich das SubVI nicht mehrfach verwenden, da ich das für verschiedene Enums verwenden möchte (alle gleicher Typ Enum, nur unterschiedliche Typdef und unterschiedliche Länge). Wenn ich das Enum mit dem Eingang verbinde geht das nur bei einem, denn beim zweiten kommt Klassenkonflikt. Ist dies irgendwie zu lösen, ohne das ich von außen die Eigenschaften als Tunnel rein gebe?

Vielen Dank schon malSmile


RE: Ref in SubVI - Sakis - 02.08.2019 10:02

Hallo,

wenn du die Referenz doch schon im SubVI hast, kannst du doch über Eigenschaftsknoten alles auslesen was du brauchst?
Ansonsten habe ich dein Problem leider nicht verstanden Bahn

Gruß
Jens


RE: Ref in SubVI - R.Fuertig - 02.08.2019 10:06

Ist richtig, ich kann sie im SubVI auslesen.

Nur wenn ich das gleiche SubVI mit einer Referenz von einem anderen Enum was ähnlich ist beschreibe, geht es leider nicht! Da kommt an Enum Eingang immer der Fehler:Klassenkonflikt!


RE: Ref in SubVI - IchSelbst - 02.08.2019 10:24

(02.08.2019 10:06 )R.Fuertig schrieb:  Nur wenn ich das gleiche SubVI mit einer Referenz von einem anderen Enum was ähnlich ist beschreibe, geht es leider nicht! Da kommt an Enum Eingang immer der Fehler:Klassenkonflikt!
Was braucht du jetzt im SubVI? Die Referenz auf ein Enum oder reicht der Enum-Wert?

Enums sollten immer strict typdef sein - folglich bekommst du sowohl bei einem Referenz-Eingang als auch bei einem Werte-Eingang einen Klassenkonflikt, wenn du das VI mit unterschiedlichen Enums bzw. Enums-Referenzen verwendet willst.

Bei beiden (Wert und Referenz) müsste folgendes gehen:
Zweiten Eingang verwenden, der das Enum (Wert bzw. Referenz) spezifiziert. Das Enum selbst (bzw. dessen Referenz) per Variant in das SubVI geben. Im SubVI mit VariantToData entsprechend zurück-casten.


RE: Ref in SubVI - R.Fuertig - 02.08.2019 10:50

Hi Alexander,

genau so habe ich es auch von dir gelernt und möchte es fort führen.

Ich benötige im SubVI drei Eigenschaften von dem Enum, also nehme ich die Ref und frage inne die Eigenschaften ab.

Wie meinst du das mit spezifizieren? Denn so wie ich es mir dachte bringt er weiter ein Klassenkonflikt.


RE: Ref in SubVI - GerdW - 02.08.2019 11:45

Hallo R,

welche 3 Eigenschaften brauchst du denn?

Zitat:Wie meinst du das mit spezifizieren?
Der zusätzliche Eingang beschreibt den Typ des Enums - das kann (zur Verwirrung Big Grin) ein weiteres Enum sein!
Dann hast du im subVI eine Case-Struktur, die je nach Typ-Vorgabe eine andere Konvertierung vom Variant zurück ins passende ENum vornimmt…


RE: Ref in SubVI - IchSelbst - 02.08.2019 12:05

(02.08.2019 10:50 )R.Fuertig schrieb:  Denn so wie ich es mir dachte bringt er weiter ein Klassenkonflikt.
Hallo Romano

1. Du hast am rechten SubVI den String am falschen Eingang angeschlossen. Dieser Eingang ist der Variant. Am String-Eingang hängt der Enum.

2. Grundsätzlich habe ich das so gemeint, wie Gerd geschrieben hat.

3. Der Typcast "nach spezifischer Klasse" ist in diesem Fall auf jeden Fall falsch. Probier mal das Gegenteil davon: Typcast "nach allgemeiner Klasse" (Das ist das mit dem schwarzen Pfeil nach oben). Diese Möglichkeit mit dem Typcast von Referenzen würde ich aber erst nach der Möglichkeit mit dem zweiten Enum verwenden.


RE: Ref in SubVI - R.Fuertig - 02.08.2019 12:05

Hallo,

ich benötige Strings[], AnzObjekte. Habe es auf zwei jetzt reduziert vorerst. Kann es zwar auch über Eingänge realisieren, Aber ist ja nicht unbedingt Sinn der Sache.
So hat es geklappt, mit "nach allgemeiner Klasse". Ich habe ein Screen mit angehängt.

Das mit dem String an den variant-Eingang war mir bewusst, ich hatte nur die ersten zwei bis jetzt betrachtet.

Vielen Dank für die schnelle Unterstützung.