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 

Bei 2 parallelen Schleifen Daten übergeben



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.01.2011, 10:36
Beitrag #1

newlabviewer1 Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: May 2009

7.1
-
de

80331
Deutschland
Bei 2 parallelen Schleifen Daten übergeben
Hallo Zusammen,

ich hab glaube ich eine recht einfach zu beantwortende Frage zu der ich leider bei der Forumssuche nichts passendes gefunden habe.
Situation: Ich habe 2 parallel laufende While-Schleifen, in der einen (Hauptprogrammschleife) befindet sich eine Regelung, ein Datenerfassungsmodul, graphische Darstellung Speicherung der Daten etc. und in der anderen 2 mal eine Komunikation mit externen Geräten über die serielle Schnittstelle über die Daten ausgelesen werden.
Da das Auslesen der Daten sehr viel Zeit in Anspruch nimmt habe ich es in die parallele Whileschleife gepackt um die Regelung und den Rest des Programms nicht auszubremsen.
Problem: Nun habe ich ein Problem bei der Datenübergabe, von der einen Whileschleife (auslesen der Seriellen Schnittstelle) an die andere (Hauptprogrammschleife).
Die Daten werden nicht für die Regelung benötigt sondern werden nur ins Messfile geschrieben!
Ich habe versucht die Daten über Lokale Variablen zu übergeben, dies funktioniert auch zumindest eine Zeitlang, dann werden die Daten jedoch nicht mehr aktualisiert. Die Hauptprogrammschleife läuft aber unbeeindruckt weiter.

Habt Ihr eine Idee wie man die Daten einfach und elegant übergeben könnte, bzw. was ich falsch mache.
Vielen Dank schonmal und Grüße
Newlabviewer1
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
31.01.2011, 10:50
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
Bei 2 parallelen Schleifen Daten übergeben
Schau' mal nach einer "Producer-Consumer"-Struktur. Da werden die Daten durch Queues ausgetauscht.

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
31.01.2011, 12:32
Beitrag #3

McGonahy Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 75
Registriert seit: Dec 2010

8.5
-
en

930xx
Deutschland
Bei 2 parallelen Schleifen Daten übergeben
Hey...

unter http://www.fu-net.de/lv/lv02/ findest du ein paar brauchbare Dinge, is ein schönes Tutorial finde ich.

Es gibt da ein Kapitel "Parallelverarbeitung" und Übung 16 beschäftigt sich mit dem Thema Queue - Producer/Consument...schaus dir an...


Gruß,
MG

gesendet mit meinem Komputher
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2011, 10:35
Beitrag #4

newlabviewer1 Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: May 2009

7.1
-
de

80331
Deutschland
Bei 2 parallelen Schleifen Daten übergeben
Hallo,

ich habe die Übertragung per Queue versucht und sie hat auch geklappt. Jedoch trat nach ca 1ner Stunde wieder der Fehler auf, dass die Daten nicht
weiter übertragen werden. Jetzt erst hab ich gesehen, dass das Programm im SubVi stecken bleibt. Deshalb muss ich erstmal hier den Fehler finden.
Die Datenübertragung zwischen den beiden while Schleifen hätte ja mit lokalen Variablen auch funktionieren können.

Vielen dank nochmal für eure Denkanstöße, sie haben mir dennoch gut weitergeholfen.
(Das LV-Tutorium zu dem du mich verlinkt hast, ist übrigens auch sehr hilfreich)

Gruß
Newlabviewer1
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2011, 10:44
Beitrag #5

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Bei 2 parallelen Schleifen Daten übergeben
' schrieb:ich habe die Übertragung per Queue versucht und sie hat auch geklappt. Jedoch trat nach ca 1ner Stunde wieder der Fehler auf, dass die Daten nicht
weiter übertragen werden. Jetzt erst hab ich gesehen, dass das Programm im SubVi stecken bleibt. Deshalb muss ich erstmal hier den Fehler finden.
Vermutung ins Blaue hinein? Machst du dauernd ein "Obtain Queue"? Das frisst Speicher, wenn man das immer macht.
Am besten nur einmal Global für das gesamte Programm ein "Obtain Queue" machen, und dann z.B. per FGV an die verschiedenen Instanzen verteilen.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.02.2011, 21:21
Beitrag #6

tetef Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 76
Registriert seit: Jun 2009

2010
2008
de_en

76133
Deutschland
RE: Bei 2 parallelen Schleifen Daten übergeben
Hallo jg,

ich habe das gleiche Problem. Ich benutze viel "Obtaine Queue" und werden meine Daten verzoergert. Kannst Du mir ein Beispiel mit dem was Du vorher gemeint hast?

Ich habe das nicht richtig verstanden.

Danke im Voraus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.02.2011, 17:35
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Bei 2 parallelen Schleifen Daten übergeben
Sowas hier:

2010 .vi  FGV-Queue.vi (Größe: 11,56 KB / Downloads: 396)


Init-Case wird nur einmal bei Programm-Start ausgeführt. Überall, wo die Queue-Refnum gebraucht wird, wird das FGV-VI mit "Get" ausgeführt. Close wird wiederum nur einmal bei Programm-Ende ausgeführt.

Im Prinzip könnte dieses Bsp auch mit einer globalen Variablen erledigt werden.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.02.2011, 11:34
Beitrag #8

tetef Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 76
Registriert seit: Jun 2009

2010
2008
de_en

76133
Deutschland
RE: Bei 2 parallelen Schleifen Daten übergeben
Hallo jg,

Ich benutze ein paar Queues. Der Sinn der Sache ist, dass ich Daten erfassen, bearbeiten und visualisieren muss.
Ich dachtte an diesem Konzept: Siehe Anhang

Eine Andere Moeglichkeit, ich habe es noch nicht probiert,und die waere, der Zugriff auf die Reference einer global/lokal Variable zu benutzen, was denkt ihr???



Lv10


Angehängte Datei(en)
2010 .vi  Konzept1.vi (Größe: 28,72 KB / Downloads: 341)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.03.2011, 12:08
Beitrag #9

tetef Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 76
Registriert seit: Jun 2009

2010
2008
de_en

76133
Deutschland
RE: Bei 2 parallelen Schleifen Daten übergeben
Hallo,

hat jemand eine Idee, wie man das am besten machen kann???

Gruss
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.03.2011, 13:25
Beitrag #10

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: Bei 2 parallelen Schleifen Daten übergeben
(28.02.2011 11:34 )tetef schrieb:  Ich dachtte an diesem Konzept: Siehe Anhang
Konzeptionell ist dieser Ansatz gut - weil modular: Einer sampelt Daten, einer verarbeitet sie, wieder ein anderer Zeigt sie an, noch ein anderer speichert sie ab. Vorteil: Jedes Modul kann als eigenständiges SubVI ausgeführt werden.

Die Frage bleibt: Was tut welches Modul?

Der Block, der die Daten (als Strings) sampelt, kann sie bereits in weiterverarbeitbare Pakete (das wäre z.B. ein Array of dbl) überführen ...

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


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Leeres Array beim Parallelen lesen von mehreren Modulen Dominik_M 6 4.224 09.05.2014 08:00
Letzter Beitrag: GerdW
  Signale von parallelen Schleifen Austauschen xrzr 10 6.179 27.04.2014 09:27
Letzter Beitrag: GerdW
  Variablen zwischen zwei Schleifen übergeben und an bestimmter Stelle Ausführen FelixH 4 6.551 01.09.2012 16:43
Letzter Beitrag: FelixH

Gehe zu: