INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Variablen im SubVI verändern



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

22.01.2010, 16:11
Beitrag #1

ArneBautToulouse Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jan 2010

8.5
2009
de

38106
Deutschland
Variablen im SubVI verändern
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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
22.01.2010, 16:16
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Variablen im SubVI verändern
Das geht mit Referenzen.
Bsp. dazu gibt's einige hier im Forum....

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.01.2010, 16:24 (Dieser Beitrag wurde zuletzt bearbeitet: 22.01.2010 16:29 von ArneBautToulouse.)
Beitrag #3

ArneBautToulouse Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jan 2010

8.5
2009
de

38106
Deutschland
Variablen im SubVI verändern
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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.01.2010, 17:03
Beitrag #4

ArneBautToulouse Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jan 2010

8.5
2009
de

38106
Deutschland
Variablen im SubVI verändern
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?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.01.2010, 08:36
Beitrag #5

M Nussbaumer Offline
Zarathustra
****


Beiträge: 654
Registriert seit: Sep 2009

2009 SP1
2009
EN

6300
Schweiz
Variablen im SubVI verändern
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

Sonstige .zip  Queue_Erweitert.zip (Größe: 33,87 KB / Downloads: 263)


Hoffe das hilft dir weiter Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.01.2010, 08:46
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Variablen im SubVI verändern
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.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.01.2010, 10:05 (Dieser Beitrag wurde zuletzt bearbeitet: 25.01.2010 10:06 von abrissbirne.)
Beitrag #7

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
Variablen im SubVI verändern
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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.01.2010, 10:51
Beitrag #8

BsaiboT Offline
LVF-Stammgast
***


Beiträge: 449
Registriert seit: Nov 2009

2010
2007
kA

22459
Deutschland
Variablen im SubVI verändern
' 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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.01.2010, 15:43
Beitrag #9

ArneBautToulouse Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jan 2010

8.5
2009
de

38106
Deutschland
Variablen im SubVI verändern
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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.01.2010, 15:46
Beitrag #10

BsaiboT Offline
LVF-Stammgast
***


Beiträge: 449
Registriert seit: Nov 2009

2010
2007
kA

22459
Deutschland
Variablen im SubVI verändern
Lade mal deine VI's hoch, dann ist es leichter zu helfen. Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Datentypen verändern handsch21 11 6.962 29.03.2018 15:45
Letzter Beitrag: GerdW
  Farbe eines String verändern Woody 6 8.550 12.03.2018 13:51
Letzter Beitrag: jg
  Viele Variablen in SubVI nutzen chrisw 3 3.322 02.12.2016 11:35
Letzter Beitrag: GerdW
  3 Arrays dynamisch verändern hubem14 7 4.833 13.09.2016 11:45
Letzter Beitrag: GerdW
  Eigenschaften von Gestaltungselementen verändern? ljminti 17 15.678 08.12.2015 11:54
Letzter Beitrag: jg
  Eigenschaften von Cluster Elementen verändern kraesy 1 3.794 07.07.2015 07:47
Letzter Beitrag: GerdW

Gehe zu: