!!

Willkommen Besucher...

...um das das LabVIEWForum.de als Benutzer in vollem Umfang nutzen zu können, ist eine kostenlose Registrierung nötig...
Registrierte Benutzer können Beiträge schreiben, Dateien uploaden, Beiträge lesen :) uvm.


Antwort schreiben 
Sub-VI über globale Variable schließen
05.12.2011, 12:32
Beitrag #1

smozart Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Oct 2011

LV-Version: 2011
LV-Erfahrung seit: 2011
LV-Sprachversion: DE


Land: Deutschland
Sub-VI über globale Variable schließen
Hallo zusammen,
ich habe ein kleines Problem. Undzwar befindet sich in meinem VI ein Sub-VI, das über die serielle Schnittstelle in einer while-Schleife Daten ließt, so lange bis ein bestimmtes Zeichen kommt. Nun möchte ich die Möglichkeit haben diesen Vorgang aus dem Haupt-VI zu beenden. Ich hab gelesen, dass das über eine globale Variable möglich ist, nur klappt dies bei mir nicht so recht.

Meine Idee war, dass der Stopp-Button in meinem Haupt-VI die globale Variable (ist bei mir auch ein Stopp-Button) anspricht und diese globale Variable dann in der While-Schleife des Sub-VI die Abbruchbedingung ist. Das Problem ist nun, dass wenn das Sub-VI läuft, ich den Stopp-Button in meinem Haupt-VI nicht bedienen kann. Woran liegt das? Was mache ich falsch?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
. .
05.12.2011, 12:46
Beitrag #2

GerdW Offline
LVF-Guru
*****


Beiträge: 4.550
Registriert seit: May 2009

LV-Version: 8.5.1, 09SP1, 10SP1, 11SP1
LV-Erfahrung seit: 1995
LV-Sprachversion: DE_EN

PLZ: 10xxx
Land: Deutschland
RE: Sub-VI über globale Variable schließen
Hallo smozart,

Zitat:Woran liegt das?
Du lässt beide wohl nicht parallel laufen...

Zitat:Was mache ich falsch?
Du zeigst uns weder ein Bild noch ein VI, so können wir nur raten...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.12.2011, 13:01
Beitrag #3

smozart Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Oct 2011

LV-Version: 2011
LV-Erfahrung seit: 2011
LV-Sprachversion: DE


Land: Deutschland
RE: Sub-VI über globale Variable schließen
Ich kann leider kein Bild posten, aber grob den Aufbau meines Programms beschreiben. Zunächst habe ich eine Sequenz, in dessen ersten Rahmen ich meine Variablen initialisiere. Im nächsten Rahmen wird dann das eigentliche Programm ausgeführt. Hier habe ich eine Eventstruktur umgeben von einer While-Schleife. Mit dem Betätigen des Stopp-Buttons wird das "Stopp-Event" ausgelöst und die While-Schleife bzw. das komplette Programm beendet.
Über einen weiteren Button wird ein Event ausgelöst, welches besagtes Sub-VI startet. Nun, wie schaff ich es, dass ich den Stopp-Button überhaupt drücken kann, solange das Sub-VI läuft?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.12.2011, 13:09 (Dieser Beitrag wurde zuletzt bearbeitet: 05.12.2011 13:10 von GerdW.)
Beitrag #4

GerdW Offline
LVF-Guru
*****


Beiträge: 4.550
Registriert seit: May 2009

LV-Version: 8.5.1, 09SP1, 10SP1, 11SP1
LV-Erfahrung seit: 1995
LV-Sprachversion: DE_EN

PLZ: 10xxx
Land: Deutschland
RE: Sub-VI über globale Variable schließen
Hallo smozart,

Zitat:wie schaff ich es, dass ich den Stopp-Button überhaupt drücken kann, solange das Sub-VI läuft?
1. Eventstruktur parallel abarbeiten
2. Eventabarbeitung auf "nicht blockierend" umstellen
3. subVI nicht direkt im Event aufrufen (s. 1.)
Was die Glas1 so hergibt bei dieser Beschreibung...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.12.2011, 18:00 (Dieser Beitrag wurde zuletzt bearbeitet: 05.12.2011 18:01 von LouiJo.)
Beitrag #5

LouiJo Offline
LVF-Grünschnabel
*


Beiträge: 14
Registriert seit: Apr 2009

LV-Version: 7.1
LV-Erfahrung seit: 2008
LV-Sprachversion: de

PLZ: 79252
Land: Deutschland
RE: Sub-VI über globale Variable schließen
Hallo smozart,

ich hatte vor kurzem ein ähnliches Problem, habe das dann aber nicht über globale Variablen gelöst, sondern über Notifier bzw. mit Hilfe des Property Nodes. Die Lösungen dazu kannst du unter folgendem Link finden:

http://www.labviewforum.de/Thread-Sub-VI...-abbrechen

Mit globalen Variablen sollte das aber auch funktionieren, allerdings brauche auch ich mehr Informationen bevor ich dir weiterhelfen kann.

LG
LuiJo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2011, 10:53 (Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2011 11:04 von Lucki.)
Beitrag #6

Lucki Offline
Guru-Simulator
LVF-Team

Beiträge: 5.534
Registriert seit: Mar 2006

LV-Version: ..2011prof.ohne Addons
LV-Erfahrung seit: 1995
LV-Sprachversion: DE

PLZ: 01108
Land: Deutschland
RE: Sub-VI über globale Variable schließen
Es nützt Dir nicht viel, wenn das Sub-VI nicht direkt im Event-Case aufgerufen wird. Solange das Sub-VI nicht beendet ist, blockiert es im Haupt-VI immer die Schleife, in der es aufgerufen wurde. Du kannst also im HaupVI trotzdem nichts bedienen.
Um aus diesem Dilemma herauszukommen, sehe ich nur diese beiden Möglichkeiten:
1. Parallele Ausführung des SUB-Vis.
Es muß dazu auf dem BD frei im Raum, neben dem Hauptprogramm-Code, platziert sein. Kommunikation mit dem Hauptprogramm z.B. über Melder.
Wenn es nicht erwünscht ist, das das SubVI gleich von Anfang an aktiv ist, kann man es so machen, das es im SubVI einen Zustand "Idle" gibt. Das SubVI wird dann, wenn es gebraucht wird, nicht aufgerufen - das ist es schon - sondern von Zustand "Idle" in den aktiven Zustand gebracht - Steuerung z.B. über Melder.
2. Aufruf des SubVI über Methodenknoten.
Bei diesem Aufruf gibt es die Möglichkeit, die ansonsten defaultmäßige Eigenschaft "Warten bis beendet" auf false zu stellen. Das SubVI blockiert dann nicht. Darüber hinaus hat man über Methodenknoten eine Steuerungsmöglichkeit auf alle Bedienelemente. Diese müssen nicht mal mit dem SubVI-Ikon verdrahtet sein, ja sogar nicht mal auf dem FP sichtbar sein. Z.B ist es dann ganz einfach, das SubVI mit seinem eigenen Stop-Knopf vom HauptVI aus zu beenden, ohne dass dafür z.B ein Melder benötigt wird. Beispiel für einen solchen Aufruf:
   

Den Labview-Beginner erkenne ich am deutlichsten an der exzessiven Verwendung der Sequenzstruktur.
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
  ?Globale Variable zwischenspeichern? Kirsc 6 1.379 07.07.2011 08:46
Letzter Beitrag: THL
  Xcontrol globale Variable weitergeben Tholo 1 907 25.03.2011 14:37
Letzter Beitrag: macmarvin
  warum ist die Globale Variable schneller? toaran_ 27 4.591 10.03.2011 09:58
Letzter Beitrag: macmarvin
  Schließen eines Programms durch Schließen-Button S04View 10 1.878 03.03.2011 18:14
Letzter Beitrag: S04View
  FGV Funktionale Globale Variable cabua 25 8.753 19.09.2010 08:39
Letzter Beitrag: Lucki
  Kann globale Variable nicht auslesen matzimus 5 1.899 11.06.2010 10:09
Letzter Beitrag: jg

Gehe zu: