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 

SubVI richtig verwenden.



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!

31.08.2010, 08:04
Beitrag #1

RST Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jul 2010

2009
2010
de

71034
Deutschland
SubVI richtig verwenden.
Hallo,

ich bin gerade dabei mein erstes groesseres Programm zu schreiben und habe somit das erste mal mit SubVIs zu tun.
Ich habe folgendes Problem: ueber VISA lese ich Daten von einem Geraet aus. Wenn ich das SubVI alleine ausfuehre klappt das super.
Im Hauptprogramm sollen nun diese Werte auch angezeigt werden. Leider kann ich das SubVI nicht in einer Schleife ausfuehren um das aktualisieren der Messwerte zu erzwingen, da ich im SubVI am Ende das Messgeraet beende.
Gibt es denn eine Moeglichkeit, dass die Messwerte trotzdem staendig aktualisiert werden?
Mir wuerden da im Moment nur globale Variablen einfallen, aber da es sich um 36 Messwerte handelt waere das wohl etwas uebertrieben...
Ausserdem verwende ich das selbe SubVI mehrfach in parallel laufenden Schleifen. Koennte das zu Problemen fuehren?
Verstehe leider noch nciht genau wie das mit den SubVIs funktioniert und waere fuer Hilfe sehr dankbar.

Wuerde mich ueber eine Antwort sehr freuen.

MFG
RST.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.08.2010, 08:13
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
SubVI richtig verwenden.
Hallo RST,

wenn du wissen willst, wie subVIs funktionieren: gucke dir doch mal die DAQmx-Funktionen an, das sind (meist) auch nur subVIs...

Zur Kommunikation mit einem MainVI: man könnte globale Variablen nehmen. Die können aber zu Problemen führen (Race-Conditions). Deshalb solltest du dich eher früher als später mit Konzepten wie Queues oder FGV (FunctionalGlobalVariables aka LV2.style globals) auseinander setzen!

Zu allem findest du Beispiele in den LV-Examples...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.08.2010, 09:42
Beitrag #3

RST Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jul 2010

2009
2010
de

71034
Deutschland
SubVI richtig verwenden.
Hallo GerdW,

danke fuer deine Antwort.
Ich werde mich mal in die Themen einlesen!
Ich hatte Probleme mit meinem Hauptprogramm und habe jetzt mal die SubVIs die parallel ablaufen einfach umbenannt. Also statt immer dem selben VI habe ich praktisch das selbe unter verschiedenen Namen verwendet. Muss man das so machen, oder gibt es da eine andere Moeglichkeit? Jetzt laeuft es wie gewollt, allerdings habe ich jetzt halt SubVI1, SubVI2 usw. obwohl es eigentlich immer die selben sind.
Das muss doch sinnvoller auch gehen.
Wuerde mich ueber weitere Hilfe sehr freuen.

Viele Gruesse,

RST.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.08.2010, 09:47
Beitrag #4

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
SubVI richtig verwenden.
Hallo,

ja das geht ordentlicher. Der Sinn der SubVIs ist u.a. gerade die Wiederverwendbarkeit.
SOnst wäre der Wartungsaufwand enorm.

Müssen die SubVIs ablauf-invariant ausgeführt werden, kannst du das im SubVI unter "Datei ->VI-Einstellungen -> Auswahl: Ausführung" einstellen

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.08.2010, 09:51
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
SubVI richtig verwenden.
Hallo RST,

ergänzend zu Mecha's Antwort:
das hängt davon ab, wie die subVIs sich verhalten sollen. Ablaufinvarianz (Reentrant) erlaubt mehrere Instanzen, die voneinander unabhängigen Speicher benutzen - die subVIs beeinflussen sich nicht gegenseitig. Muss man aber auch entsprechend planen beim Programmieren! Außerdem gibt es noch die Möglichkeit, sog. Templates zu benutzen...

Da gibt es noch viel zu lesen für dich. NI bietet auch (kostenlose) Einführungskurse, z.B. hier.

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.09.2010, 01:17
Beitrag #6

RST Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jul 2010

2009
2010
de

71034
Deutschland
SubVI richtig verwenden.
Danke fuer eure Hilfe werd das spaeter gleich aml ausprobieren und bescheid geben ob es geklappt hat.

Viele Gruesse,

RST.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.09.2010, 06:27
Beitrag #7

RST Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jul 2010

2009
2010
de

71034
Deutschland
SubVI richtig verwenden.
Also ich habe es mal probiert und die SubVIs als Reentrant eingestellt. leider zeigt immer eins der Geraete dann ein seltsames Verhalten, dies wechselt sich komischerweise immer ab. Nunja da ich unter Zeitdruck stehe, werde ich einfach die Moeglichkeit mit den verschieden benannten SubVIs nutzen.
Damit waere das Problem geloest.
Danke fuer den Tip mit der Schulung. Die Sache ist die, dass ich das in meinem Praktikum brauche. Hatte zwar mal an meiner Uni eine Einfuehrung in LabView aber das ging nicht so weit, dass ich da grossartig mit SubVIs gearbeitet haette. Konnte diese gerade mal erstellen und die Konnektoren festlegen.
Das Praktikum geht nicht mehr so lange, dass sich eine Schulung noch lohnen wuerdeWink
Versuche einfach das Problem so einfach wie moeglich zu loesen.
Die Werte soll ich nun doch in einem Graphen anzeigen lassen. Ist es ein Problem diesen im SubVI zu erstellen und dann per GV ins Main VI zu uebergeben?

Vielen Dank fuer eure Hilfe!

RST
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.09.2010, 06:52
Beitrag #8

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

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
SubVI richtig verwenden.
Mit einer globalen Variablen würde ich ihn nicht heraus übergeben. Entwerder machst Du das per Referenz (wenn Du das HauptVI während dem Ablauf des SubVIs aktualisieren willst). Oder Du übergibst die Werte nach dem Ablauf per Indicator an Dein HauptVI.

Grüße nach Böblingen. Wink

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
06.09.2010, 01:14
Beitrag #9

RST Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jul 2010

2009
2010
de

71034
Deutschland
SubVI richtig verwenden.
Hallo Markus,

danke fuer den Tip. Mit Referenzen wuerde ich es gern mal probieren, leider habe ich da noch kein gutes Beispiel dazu gefunden um das Vorgehen zu verstehen. Hast du da vielleicht ein einfach zu verstehendes Beispiel indem aus einem SubVI Daten kontinuierlich an das Main VI uebergeben werden?

Viele Gruesse zurueck nach HerrenbergWink

RST
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.09.2010, 08:38
Beitrag #10

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

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
SubVI richtig verwenden.
Hier ein Bsp.. Statt "Visible" nimmst Du halt "Value":

Sonstige .vi  sichtbarkeitstest_mainvi_6.vi (Größe: 9,85 KB / Downloads: 250)

Lv85_img

Sonstige .vi  sichtbarkeitstest_subvi_3.vi (Größe: 7,26 KB / Downloads: 253)

Lv85_img

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
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  SubVI Funktionen verwenden, ohne SubVI Frontpanel (AVT Kamera) Allyoucaneat 3 8.846 25.08.2011 15:18
Letzter Beitrag: GerdW
  Eigenschaftsknoten aus SubVi in MainVi verwenden DerMoench 8 8.508 11.09.2009 07:40
Letzter Beitrag: DerMoench
  PID Reglerausgang richtig verwenden Kyes 2 5.281 08.07.2009 14:07
Letzter Beitrag: Kyes
  SubVi mehrmals verwenden jeffrey 2 5.236 13.12.2007 11:49
Letzter Beitrag: jeffrey

Gehe zu: