LabVIEWForum.de - Wert per Referenz verändern

LabVIEWForum.de

Normale Version: Wert per Referenz verändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe zwei Dateien: main.vi und close_main.vi (beide angehängt).
Ich möchte gerne, dass per Knopfdruck in close_main gesprungen wird, dort der das "Boolesch 2"- Element von main gesetzt wird und anschließend main.vi gestoppt wird.

Dazu übergebe ich eine Referenz an close_main.vi, die diese weiterverarbeitet. Wie kann ich jetzt den Wert des Elementes ändern? Ich habe es über Elementwert.setzen probiert, komme aber leider mit den Typdeskriptoren nicht klar.

Gibt es dafür eine Lösung? (Ich möchte aber gerne weiter mit Referenzen arbeiten)

Viele Grüße

Filip

(VIs LV 8.2)
' schrieb:Hallo,

ich habe zwei Dateien: main.vi und close_main.vi (beide angehängt).
Ich möchte gerne, dass per Knopfdruck in close_main gesprungen wird, dort der das "Boolesch 2"- Element von main gesetzt wird und anschließend main.vi gestoppt wird.

Dazu übergebe ich eine Referenz an close_main.vi, die diese weiterverarbeitet. Wie kann ich jetzt den Wert des Elementes ändern? Ich habe es über Elementwert.setzen probiert, komme aber leider mit den Typdeskriptoren nicht klar.

Gibt es dafür eine Lösung? (Ich möchte aber gerne weiter mit Referenzen arbeiten)

Viele Grüße

Filip
[attachment=8717]
Hallo Achim,

danke klappt. Was ich nicht ganz versteh ist, was es mit dem Typecast vor dem Ctl- Eigenschaftsknoten auf sich hat. Ich vermute das kommt daher, dass das VI vorher nicht weiß, was es für Daten übergeben bekommt. Aber was passiert, wenn man jetzt dem Wert eine Zahl zuweist? Dann muss es doch Fehler hageln?

zweite Frage: Woher weiß ich welche Nummer das Bedienelement hat?

Viele Grüße

Filip
' schrieb:Aber was passiert, wenn man jetzt dem Wert eine Zahl zuweist? Dann muss es doch Fehler hageln?

Ich nehme an, du meinst die Zuweisung von "TRUE" an den Variant-Eingang. Ja und? Natürlich gibt's da nen Fehler...als Programmierer musst du schon wissen, was du da machst!

Wenn du mehrere Elemente ändern willst, musst du das entsprechend für jedes Element machen!

Oder du führst gleich eine (strikte) Referenz des Controls ins SubVI, dann wird's ein boolescher Eingang!
' schrieb:zweite Frage: Woher weiß ich welche Nummer das Bedienelement hat?

Front Panel...Edit...Set Tabbing Order
' schrieb:..... Was ich nicht ganz versteh ist, was es mit dem Typecast vor dem Ctl- Eigenschaftsknoten auf sich hat. Ich vermute das kommt daher, dass das VI vorher nicht weiß, was es für Daten übergeben bekommt. Aber was passiert, wenn man jetzt dem Wert eine Zahl zuweist? Dann muss es doch Fehler hageln?

mach doch den TypeCast selbst und übergebe an dein SubVI immer ein Variant-Typ.
Im SubVI machst du dann (Variant to Flattened String) und schon läuft die Sache....
Aber natürlich darfst du auch hier nur einen gültigen Typ zuweisen (int an boolsch geht natuerlich auch nicht)
Du kannst so nur verschiedene Kontrolls über den gleichen Anschluss verändern, indem du "Control Name" auch als VI-Anschluss machst...

Gruss,
Christian
Referenz-URLs