LabVIEWForum.de
Variablen im SubVI verändern - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Variablen im SubVI verändern (/Thread-Variablen-im-SubVI-veraendern)

Seiten: 1 2


Variablen im SubVI verändern - ArneBautToulouse - 22.01.2010 16:11

Hallo,
ich bin neu hier im Forum und arbeite seit etwa einem Jahr jetzt gelegentlich mit LabVIEW. Bin also noch nicht all zu erfahren. Folgende Frage:

Wie kann man prinzipiell Variablen innerhalb eines SubVIs von außen (HauptVI) verändern, während das SubVI läuft?

Zur Info:
Das SubVI besteht aus einer While-Schleife, in der sich eine Ereignisstruktur befindet. Diese Ereignisstruktur reagiert auf Wertänderungen. Diese Wertänderungen sollen dabei über das HauptVI über Bedienelemente erfolgen.

Danke schon mal im Voraus.


Variablen im SubVI verändern - Y-P - 22.01.2010 16:16

Das geht mit Referenzen.
Bsp. dazu gibt's einige hier im Forum....

Gruß Markus


Variablen im SubVI verändern - ArneBautToulouse - 22.01.2010 16:24

Danke für die schnelle Antwort.

Mit Referenzen habe ich es schon den ganzen Tag versucht, und jetzt aufgegeben.

Über die Ereignissteuerung kann ich leider nur die Änderung des Wertes der Referenz (=RefNum) abfragen (der ja konstant bleibt...) und nicht die Änderung des Wertes auf dem Bedienelement, auf den die Referenz verweist. Also bleibt die While-Schleife hängen


Variablen im SubVI verändern - ArneBautToulouse - 22.01.2010 17:03

Hab es jetzt mal mit Globalen Variablen ausprobiert. Klappt auch nicht, da diese nicht von der Ereignisstruktur als Bedienelemente erkannt werden.

Hat jemand eine Idee für eine Lösung des Problems?


Variablen im SubVI verändern - M Nussbaumer - 25.01.2010 08:36

Also wenn du willst, dass ein Event ausgelöst wird so musst du den Wert des Bedienelements via Property-Node ändern und zwar nicht mit Value sondern mit Value(Sign).
Beim ersten findet kein Value-Change-Event statt. Eine zweite Möglichkeit wären Queues.

Beispiel für Queues:

LabVIEW 8.5
[attachment=23889]

Hoffe das hilft dir weiter Wink


Variablen im SubVI verändern - IchSelbst - 25.01.2010 08:46

Ich werf mal folgendes in den Raum:

' schrieb:Wie kann man prinzipiell Variablen innerhalb eines SubVIs von außen (HauptVI) verändern, während das SubVI läuft?
Das VI über den VI-Server starten. Dazu braucht man eine Referenz. Mittels dieser Referenz kann man dann einen speziellen Methodenknoten ansprechen, mit dem man im SubVI eine Variable schreiben (und wohl auch lesen) kann. Events werden so wohl nicht ausgelöst.

So ginge es auch mit Event:
Statt der Queue ein Benutzerevent machen. Der Event-Handle wird im MainVI generiert und an das SubVI übergeben. Der Benutzerevent geht dann auf die Event-Struktur im SubVI. Im MainVI wird das Event beschrieben - im SubVI ausgeführt.


Variablen im SubVI verändern - abrissbirne - 25.01.2010 10:05

Ich frag mich wieso eine Eventstruktur in einem Sub VI? Wenn du sowieso im Sub VI auf eine Wertänderung eines Controls des Main VI's wartest, wieso dann nicht gleich in einer Eventstruktur im Main VI erfassen? Diesen neuen Wert an das Sub VI zur Weiterverarbeitung übergeben, fertig.


Variablen im SubVI verändern - BsaiboT - 25.01.2010 10:51

' schrieb:Ich frag mich wieso eine Eventstruktur in einem Sub VI? Wenn du sowieso im Sub VI auf eine Wertänderung eines Controls des Main VI's wartest, wieso dann nicht gleich in einer Eventstruktur im Main VI erfassen? Diesen neuen Wert an das Sub VI zur Weiterverarbeitung übergeben, fertig.

Dann kann man auch die oben genannten Eigenschaftsknoten vermeiden. Die sind superlangsam....

Also lieber wie unsere abrissbirne es vorgeschlagen hat.

//Tobias


Variablen im SubVI verändern - ArneBautToulouse - 27.01.2010 15:43

Danke für die vielen Antworten.
Die Frage war jetzt eigentlich nicht die, ob die Ereignisstruktur vor oder ins SubVI kommen soll, sondern die Ereignisstruktur IST das SubVI, bzw eine Ereignisstruktur innerhalb einer While-Schleife. Wenn ich diese While-Schleife so im HauptVI nutze (ohne SubVI) klappt es so wie es soll. Allerdings würde ich diese Struktur gerne auch so für andere Probleme nutzen und das Blockdiagramm des HauptVIs übersichtlicher gestalten. Daher würde ich gerne die Schleife so wie sie ist als SubVI einbinden. (Das ist doch schließlich auch die Idee hinter der Verwendung von SubVIs, oder nicht?) Prinzipiell sollte das doch so eigentlich ohne weiteres möglich sein... Huh


Variablen im SubVI verändern - BsaiboT - 27.01.2010 15:46

Lade mal deine VI's hoch, dann ist es leichter zu helfen. Smile