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 

Locale Variable von SubVI?



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!

08.11.2009, 11:41
Beitrag #1

frankne Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Nov 2009

2009
-
de

1069
Deutschland
Locale Variable von SubVI?
Hallo,

ich arbeite erst seit dieser Woche mit LV, darum sind mir noch ein paar vorgehensweisen unbekannt.
Ich möchte einen Ablauf programmieren, in dem unteranderem Ventile über die NI USB 6009 Karte angesteuert werden. In dem Bild macht das die eine SubVi 3.
Darin sollen die Ventile gestellt werden und über den Ausgang gibt es eine Rückmeldung, welche Ventile gestellt sind. Soweit, wie es momentan programmiert ist, müsste es auch funktionieren (die karte habe ich noch nicht eingebunden).
Da die SubVI in vielen Untersequenzen aufgerufen wird, dachte ich man könnte sie außerhalb der Sequenz ablegen und über eine lokale Variable ansteuern. Leider können locals nur mit Controls verknüft werden. Kann ich meine SubVI umstellen, so dass sie auch mit einer localen Variable verbunden werden kann?

Oder ist ein anderes Vorgehen generell besser? ich bin offen für andere VorschlägeSmile

   

Viele Grüße
Frank
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.11.2009, 12:06
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
Locale Variable von SubVI?
Mach' mal einen Rechtsklick auf Deine lokale Variable und wähle dann "Change to read" aus.
Dann kannst Du auch einen Indicator (und nicht nur ein Control) verbinden.

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
08.11.2009, 12:43
Beitrag #3

frankne Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Nov 2009

2009
-
de

1069
Deutschland
Locale Variable von SubVI?
aber dennoch lässt sich das subvi nicht mit der Variable verknüpfen (über Select Item / Objekt wählen)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.11.2009, 13:23
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Locale Variable von SubVI?
' schrieb:Da die SubVI in vielen Untersequenzen aufgerufen wird, dachte ich man könnte sie außerhalb der Sequenz ablegen und über eine lokale Variable ansteuern.
Diese Überlegung ist vorerst unsinnig.

Das Herauslegen aus der Sequenz hat eine hauptsächliche Auswirkungen:
Liegt das SubVI außerhalb der Sequenz wird es nur ein einziges Mal aufgerufen und abgearbeitet! Das liegt an der Struktur von LabVIEW: Stichwort Datenfluß. D.h. du kannst den Ablauf, nämlich drei Sachen nacheinander zu machen, nicht so realisieren, indem du das SubVI auslagerst.


Zitat:Oder ist ein anderes Vorgehen generell besser?
Wenn du das SubVI auslagern willst, musst du zwei Sachen anpassen.
Erstens muss das VI so umbebaut werden, dass es kontinuierlich läuft. Das wird durch eine While-Schleife im SubVI realisiert. Dieses SubVI kannst du dann außerhalb der Sequenz positionieren und es wird währen der gesamten Programmlaufzeit laufen.
Zweitens musst du eine Steuerqueue erstellen und einen Ausgangsmelder. Dort, wo jetzt das SubVI in der Sequenz sitzt, wird eine Queue mit Steuerbefehlen beschrieben. Diese Befehle liest das neue SubVI aus und arbeitet sie ab. Als Ergebnis sendet das neue SubVI den Zustand der Ventile in einem Melder zuzrück.
Jetzt kannst du in einer Dauerschleife ständig den Ausgangsmelder (also den Zustand der Ventile) anzeigen lassen. Der Ablauf beschränkt sich jetzt darauf, die Queue zu beschreiben und zu warten.

Hinweis:
Der Vorteil des neuen Verfahrens zeigt sich dann, wenn auch noch diverse andere Sachen integriert werden. Man kann das neue SubVI so gestalten, dass man (per Queue) z.B. nur bestimmte Ventile schalten kann. Dazu würde man einen Enumerator machen, der alle einzelnen Ventile aber auch Vetilgruppen enthält. Damit wäre es dann z.B. nicht mehr nötig, ein Array zu übergeben - was voraussetzt, dass man den Schaltzustand aller Ventile angeben muss.
Der nächste Vorteil ist: Das Programm wird modular.

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
08.11.2009, 14:15
Beitrag #5

frankne Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Nov 2009

2009
-
de

1069
Deutschland
Locale Variable von SubVI?
ah ok das klingt sehr gut und schlüssigSmile

vielen dank an dich!!!
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
  Referenzen in Variable speichern und in SubVI aufrufen Hasenfuss 16 11.735 30.04.2015 08:09
Letzter Beitrag: Hasenfuss
  NXT und SubVI mit Lokaler Variable RoboPeer 7 5.290 01.12.2011 15:09
Letzter Beitrag: RoboPeer
  SubVI Funktionen verwenden, ohne SubVI Frontpanel (AVT Kamera) Allyoucaneat 3 8.150 25.08.2011 15:18
Letzter Beitrag: GerdW
  locale Variablen kopieren Kex2006 17 10.408 27.11.2008 17:20
Letzter Beitrag: Kex2006
  Sequenz Local oder Locale Variable Labview-Beginner 2 3.776 16.07.2008 10:31
Letzter Beitrag: Y-P
  Referenz <--> Locale Variable Gang 3 7.966 16.03.2007 13:23
Letzter Beitrag: eg

Gehe zu: