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 

Kommunikation SubVI mit VI



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!

17.02.2008, 20:35
Beitrag #1

Kobe Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Feb 2008

8.5
-
kA

6
Deutschland
Kommunikation SubVI mit VI
Hi

ich habe ein SubVI, das mit einer potentiellen Endlos-While-Schleife läuft. Diese möchte ich von dem oberen VI abbrechen können, also ein FALSE einschleusen. Allerdings nimmt das SubVI keine neuen Belegungen vom VI an, während es läuft. Analog möchte ich, dass das SubVI pro While-Schritt Daten an das VI sendet. Auch das erfolgt nicht in der Schleife, sondern erst wenn sie beendet wurde.

Habt ihr da eine Lösung? Ich habe mir schon Gedanken gemacht, dass SubVI einfach in das VI reinzukopieren, allerdings bläht das das VI enorm auf, da ich es 8x machen muss. Und das SubVI im VI mit einer Schleife aufzurufen, birgt auch Kommunikationsprobleme. Am liebsten wäre mir, wenn das SubVI einfach Befehle vom VI annimmt und ständig was an das VI schickt.

Danke
mfg
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.02.2008, 20:42
Beitrag #2

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Kommunikation SubVI mit VI
Such mal im Forum nach Erzeuger-Verbraucher, Notifier, Globale Variable, Queue ...

Es gibt viele Möglichkeiten dazu, bessere IMHO ist Queue, leichtere ist Globale Variable.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.02.2008, 21:32
Beitrag #3

Kobe Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Feb 2008

8.5
-
kA

6
Deutschland
Kommunikation SubVI mit VI
Danke.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.02.2008, 16:32 (Dieser Beitrag wurde zuletzt bearbeitet: 18.02.2008 18:26 von Kobe.)
Beitrag #4

Kobe Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Feb 2008

8.5
-
kA

6
Deutschland
Kommunikation SubVI mit VI
[edit]
läuft erstmal
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.02.2008, 22:47 (Dieser Beitrag wurde zuletzt bearbeitet: 18.02.2008 23:21 von jg.)
Beitrag #5

Kobe Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Feb 2008

8.5
-
kA

6
Deutschland
Kommunikation SubVI mit VI
Wieso bekommt das Main.vi keine Daten mehr? Es lief bei meiner letzten LabVIEW-Session, nun habe ich den Rechner neu gestartet und es kommt nichts mehr an!?

Lv85_img


Angehängte Datei(en)
Sonstige .vi  Main.vi (Größe: 20,32 KB / Downloads: 193)

Sonstige .vi  Komponente_C_Buffer.vi (Größe: 56,5 KB / Downloads: 169)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.02.2008, 23:06
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Kommunikation SubVI mit VI
' schrieb:Wieso bekommt das Main.vi keine Daten mehr? Es lief bei meiner letzten LabVIEW-Session, nun habe ich den Rechner neu gestartet und es kommt nichts mehr an!?
Das Bedienelement "Eingang: Aktiv" ist auf true => nix senden.

Das Konstrukt mit diesem Element außerhalb der While-Schleife scheint mir irgendwie sinnlos. Kannst du das mal erklären?

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
19.02.2008, 00:29
Beitrag #7

Kobe Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Feb 2008

8.5
-
kA

6
Deutschland
Kommunikation SubVI mit VI
Ach, bei false "Meldung senden" ist die Kommunikation. Ich dachte, ich müsse den Buffer noch im true füllen.

Die Komponente im Main.vi außerhalb steht nur für die Instanz, in der der Melder zu suchen ist.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.02.2008, 02:49 (Dieser Beitrag wurde zuletzt bearbeitet: 19.02.2008 13:23 von Kobe.)
Beitrag #8

Kobe Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Feb 2008

8.5
-
kA

6
Deutschland
Kommunikation SubVI mit VI
So, nun bekomme ich die Daten in einer While-Schleife in Main.vi. Allerdings soll später das Main.vi selbst zu einem SubVI werden, welches schon feste Schnittstellen hat. Wie bekomme ich die Daten aus der While-Schleife jetzt raus? Siehe dafür Komponente_C.vi, die Ausgänge sind jeweils mit Ausgang bezeichnet. Wie kann ich diese füttern?

Es wäre sehr umständlich, wenn ich in der finalen "Main.vi", welche Komponente_C.vi als SubVI hat, nochmals Melder einbaue. V.a. ist es nur eine Möglichkeit, Daten von der Hardware zu holen. Siehe Cases.

//edit
Zu der Möglichkeit, die Melder ins finale Main.vi zu stecken: Dann werden dort die Meldungen immernoch in einer while-Schleife abgefangen und ich brauche sie da außerhalb. Ich muss die Daten also aus der While-Schleife rausbekommen, so oder so.

Wie bekommt man denn aus einer While-Schleife den Zähler raus?

Lv85_img


Angehängte Datei(en)
Sonstige .vi  Komponente_C_Buffer.vi (Größe: 43,92 KB / Downloads: 160)

Sonstige .vi  Komponente_C_DataRead.vi (Größe: 165,76 KB / Downloads: 163)

Sonstige .vi  Komponente_C.vi (Größe: 93,28 KB / Downloads: 146)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.02.2008, 19:31
Beitrag #9

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Kommunikation SubVI mit VI
' schrieb:Ich muss die Daten also aus der While-Schleife rausbekommen, so oder so.
Wenn du die Daten, die in einer While-Schleife mittels Melder ermittelt werden, außerhalb dieser While-Schleife brauchst, für was brauchst du dann überhaupt diese While-Schleife? Frage den Melder halt genau dort ab, wo du die Daten brauchst.

Zitat:Wie bekommt man denn aus einer While-Schleife den Zähler raus?
Möglicherweise über eine Lokale Variable.

Möglicherweise solltest du dein Gesamtkonzept überprüfen. Ich wurde das SubVI Komponente_C_Buffer nicht dort aufrufen, wo du es tust.

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
19.02.2008, 19:44
Beitrag #10

Kobe Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Feb 2008

8.5
-
kA

6
Deutschland
Kommunikation SubVI mit VI
Ok, dann eben zum Gesamtkonzept: Ich brauche einen ständigen Datenstrom von der Hardware. Diesen möchte ich auf eine gewisse Größe puffern und dann in einem Main.vi an andere SubVIs weiterreichen. An dem Projekt sind 4 Leute beteiligt, ich kann nicht in deren Komponenten rumwuseln, ich muss ihnen die Daten unabhängig von ihren VIs geben können.

Eine While-Schleife benötige ich meines (noch geringen) Wissens nach, da ich die Hardware ständig auf/abrufen muss, um die neuen Daten zu bekommen. LV selbst erstellt eine While-Schleife, wenn ich Beispielcode zu einem DAQTask erstellen lasse.

Also wie lautet der Ausweg? Ich weiß keinen :-(
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: