LabVIEWForum.de - Lokale Variablen -> Referenzen nach Erstellung eines SubVIs

LabVIEWForum.de

Normale Version: Lokale Variablen -> Referenzen nach Erstellung eines SubVIs
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi,

ich hab mal ne grundlegende Frage zu SubVIs. Immer wenn ich ein VI erstellt habe, welches lokale Variablen beinhaltet, und ich daraus ein SubVI erstelle, dann kreiert LV automatisch Property Nodes mit dazugehörigen Referenzen zu den lok. Variablen. Warum ist das so und wie kann ich das unterbinden?

Danke im voraus.

Gruß, NafeZ
Das kannst Du gar nicht unterbinden. Wenn Du lokale Variablen in einem SubVI hast, dann beziehen die sich immer auf ein Frontpanelement des MainVI's, es sei denn das entsprechende Control liegt ebenfalls in dem SubVI.
Durch die Property-Nodes werden die Referenzen an das SubVI übergeben.

Gruß Markus

EDIT: Hier ist noch ein Bsp.:
[attachment=20877]
[attachment=20876]
[attachment=20878]

Alle VIs fürLv80_img
Wenn ich die Refernzen im SubVI dann aber lösche funktionierts doch trotzdem. Ich muss dann aber keine Referenzen mehr übergeben. Enstehen durch das Löschen der Referenzen irgendwelche Nachteile?
Kommt drauf an, was Du im SubVI machen möchtest. Möchtest Du z.B. mit einem Stop Button auf dem Frontpanel eine Schleife im SubVI beenden, dann wäre es schlecht, wenn Du keine Referenz hättest, weil Du die Schleife dann nie beenden könntest.

Gruß Markus
Blöd ist es immer dann, wenn sowohl das Control als auch die zugehörige lokale Var ins Sub soll, denn erstellt LV im aufrufenden VI eine Kopie des Control und schleift die Referenz darauf ins automatisch erstellte Sub. Die Variable geht dabei allerdings verloren. Es bleibt nur, den Propetynode im Sub durch eine lokale Var zu ersetzen. Wohl ein dezenter Hinweis seitens LV, auf lokale Variablen zu verzichtenSmile
Deine Schilderung triffts genau! Ich habe die Referenzen dann, nach der Erstellung der SubVIs, dann immer wieder durch lok. Vars ersetzt (wie vorher). Aber ich dachte lok. Vars sind anerkannt und globale Variablen verpöhnt?!
' schrieb:Aber ich dachte lok. Vars sind anerkannt und globale Variablen verpöhnt?!

Da gibts verschiedene Strömungen innerhalb der LV-Community Wink. Selber vermeide ich beides, verwende lokale eigentlich nie, globale ab und an.

Wobei das Verhalten von LV durchaus nachzuvollziehen ist, denn LV geht davon aus, das du einen Eingang und einen Ausgang im SubVI hast. Wenn du es verdrahtest werden ja auch die Controlls kopiert und der Code verschoben.
Na ihr seids lustig. Was soll man nun glauben als Anfänger? Oder muss ich da selber auf die Nase fallen? Wacko
' schrieb:Na ihr seids lustig.
Na klar sind wir das! LaberProstDance

Ich bin immer vorsichtig gegenüber einem Anfänger, Empfehlungen zu lokalen oder globalen Variablen auszusprechen.
Meide Devise lautet: "Wenn Du einen Wire ziehen kannst, dann tu das."
In meinen Programmen kann es schon mal vorkommen, daß ich lokale Variablen verwende. Aber äußerst spärlich, weil sie für mich nicht so recht ins Datenflußprinzip passen. Globale Variablen habe ich bisher noch nicht produktiv gebraucht. Dann schon eher FGV's aber das sind letztlich SubVI's.

Grüße
Andreas
[/quote]
' schrieb:Ich bin immer vorsichtig gegenüber einem Anfänger, Empfehlungen zu lokalen oder globalen Variablen auszusprechen.
Ist auch ein heißes Eisen :Daber

' schrieb:Meide Devise lautet: "Wenn Du einen Wire ziehen kannst, dann tu das."
triffts genau.
Seiten: 1 2
Referenz-URLs