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 

Parallele While Schleife, oder andere Lösungsansätze?



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!

10.06.2013, 14:23
Beitrag #1

Lumberjacker Offline
LVF-Grünschnabel
*


Beiträge: 19
Registriert seit: Dec 2006

2012
2005
kA


Oesterreich
Parallele While Schleife, oder andere Lösungsansätze?
Hallo!

Ich habe ein fertiges komplexes Labview Messprogramm, welches im Sekundentakt, Messdaten erfasst, mittelt, auswertet, anzeigt und speichert (Textfile).
Ich muss jetzt zusätzlich eine Funktion programmieren, welche es ermöglicht die aufgezeichneten Daten darzustellen, und darin "herumzuscrollen". Diese Aufgabe habe ich bereits weitgehend erledigt, allerdings habe ich jetzt das Problem, dass wärend dieses neue Unterprogramm,"Dataviewer", läuft, die aktuellen Messwerte nicht erfasst werden, da die Whileschleife des Hauptprogramms ja nicht weiterläuft, da sie ja durch das Unterprogramm "Dataviewer" angehalten wird, bis dieses wieder beendet wird (Im Unterprogramm läuft eine schnelle Whileschleife, die das Textfile ausließt, und Daten in einem Diagramm darstellt usw..

Die Whileschleife des Hauptprogramms hat aber auch eine viel zu lange Durchlaufzeit (1sek) , um darin direkt vergangene Messdaten anzusehen.

Ich müsste also eine Parallele Whileschleife dazu laufen lassen, in welcher das Umterprogramm "Dataviewer" lauft. Ich hab das mal kurz probiert, aber irgendwie hat das mächtig ressourcen gefressen. Hab ich was falsch gemacht, bzw gibt es andere Lösungsideen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.06.2013, 14:38
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
RE: Parallele While Schleife, oder andere Lösungsansätze?
Nö, das ist schon richtig (Stichwort: Producer Consumer Pattern).
Lad' mal Dein Bsp. hoch. Vielleicht hast Du eine ungebremste Whileschleife....

Gruß Markus

(10.06.2013 14:23 )Lumberjacker schrieb:  Ich müsste also eine Parallele Whileschleife dazu laufen lassen, in welcher das Umterprogramm "Dataviewer" lauft. Ich hab das mal kurz probiert, aber irgendwie hat das mächtig ressourcen gefressen. Hab ich was falsch gemacht, bzw gibt es andere Lösungsideen?

--------------------------------------------------------------------------
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
11.06.2013, 10:32
Beitrag #3

Lumberjacker Offline
LVF-Grünschnabel
*


Beiträge: 19
Registriert seit: Dec 2006

2012
2005
kA


Oesterreich
RE: Parallele While Schleife, oder andere Lösungsansätze?
(10.06.2013 14:38 )Y-P schrieb:  Nö, das ist schon richtig (Stichwort: Producer Consumer Pattern).



ist das zwingend notwendig? ist das nicht nur für den Datenaustausch? Den wollte ich mit Variablen machen? Oder könnte daran das problem mit der Performance liegen? Ich hab eigentlich in die zweite schnelle While-Schleife extra ein Warten(20ms) eingebaut, um sie zu bremsen. Hat aber nichts gebracht
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.06.2013, 11:04
Beitrag #4

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

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
RE: Parallele While Schleife, oder andere Lösungsansätze?
(10.06.2013 14:23 )Lumberjacker schrieb:  welches im Sekundentakt, Messdaten erfasst, mittelt, auswertet, anzeigt und speichert (Textfile).
Da kannst Du doch das Auswerten und Speichern in (einer) anderen Schleife(n) machen.
(11.06.2013 10:32 )Lumberjacker schrieb:  ist das zwingend notwendig? ist das nicht nur für den Datenaustausch? Den wollte ich mit Variablen machen? Oder könnte daran das problem mit der Performance liegen? Ich hab eigentlich in die zweite schnelle While-Schleife extra ein Warten(20ms) eingebaut, um sie zu bremsen. Hat aber nichts gebracht

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
11.06.2013, 11:44
Beitrag #5

Lumberjacker Offline
LVF-Grünschnabel
*


Beiträge: 19
Registriert seit: Dec 2006

2012
2005
kA


Oesterreich
RE: Parallele While Schleife, oder andere Lösungsansätze?
(11.06.2013 11:04 )Y-P schrieb:  Da kannst Du doch das Auswerten und Speichern in (einer) anderen

leider nicht wirklich. Das Hauptprogramm ist quasi vorgegeben, das kann und darf ich nur geringfügig ändern.

was im Moment auch noch nicht funktioniert, ist, dass wenn das DataViewer programm läuft, ich nicht mehr auf das Hauptprogramm zugreifen kann, obwohl das eigentlich in einer parallelschleife läuft
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.06.2013, 12:01
Beitrag #6

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
RE: Parallele While Schleife, oder andere Lösungsansätze?
Hier mal ein ganz vereinfachtes Beispiel wie meine Programme so aufgebaut sind! Das Ganze ist natürlich mit Vorsicht zu genießen und ist auf keinen Fall in jeder Situation die optimale Struktur!
Durch die Verwendung von Umgebungsvariablen kann man jede Schleife (bis auf die Events) auch in ein extra VI packen und separat starten!
Vielleicht hilft dir das ja?

8.2 .vi  Example.vi (Größe: 16,31 KB / Downloads: 594)

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.06.2013, 13:31
Beitrag #7

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

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
RE: Parallele While Schleife, oder andere Lösungsansätze?
Das ist nicht wirklich synchronisiert und es gehen auch Daten verloren. Dann doch lieber eine "Producer-Consumer" Architektur. Big Grin

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
11.06.2013, 13:58
Beitrag #8

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
RE: Parallele While Schleife, oder andere Lösungsansätze?
Wie gesagt: es ist ein ganz plattes Beispiel.

Nach meinem Verständnis ist es sogar Producer-Consumer. Sicherlich könnte man anstelle der Umgebungsvariablen Queues verwenden um alle Daten zu sichern was aber in meinen Projekten nie eine Rolle spielt! Auch das Synchronisieren wäre hier noch problemlos machbar, wenn man es denn wirklich braucht! Gerade bei der Anzeige ist es mir egal, ob ein Wert schon ne Sekunde alt ist! Hier kommt es natürlich wie immer auf die Anwendung an. Ne Sekunde kann lang sein, oder eben sehr kurz.

Meist habe ich in der LogSchleife dann die Abfrage: "Wert geändert"? Wenn ja, dann schreibe ihn, wenn nein, ignorieren! Dann kann die Schleife auch deutlich schneller laufen und macht in 90% der fälle nichts außer einer Abfrage!

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.06.2013, 15:29 (Dieser Beitrag wurde zuletzt bearbeitet: 12.06.2013 15:30 von Kinx.)
Beitrag #9

Kinx Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: May 2012

LabVIEW 2012
2010
EN

09112
Deutschland
RE: Parallele While Schleife, oder andere Lösungsansätze?
Hallo,

eine große Anzahl von While-Schleifen, so wie du sie im Example.vi verwendet hast, stellt immer ein Risiko bezüglich des Benutzerhandlings bzw. sauberen starten und schließen dar. Wie schon gesagt über eine Consumer-Producer-Architektur wär der beste Weg um dein Problem zu lösen.
Ich stelle mir nur die Frage warum liest du die Daten wieder aus der .TXT? Sammel sie doch lieber in eine Queue und unter der Bedingung "X" leerst du diese. Performance technisch machst du dort richtig plus.
Meine Empfehlung: Einen Thread zum loggen und einem zum messen. Diese feuerst du dann immer mit Befehlen aus einer "Command-Queue" bzw. Notifier.

Grüße Kinx
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.06.2013, 13:19
Beitrag #10

Lumberjacker Offline
LVF-Grünschnabel
*


Beiträge: 19
Registriert seit: Dec 2006

2012
2005
kA


Oesterreich
RE: Parallele While Schleife, oder andere Lösungsansätze?
irgendwie komm ich auf keinen grünen zweig mit dem Programm, darum jetzt hier mal die Labview dateien

Also, das unterprogramm "SignalViewer" sollte jetzt im Moment über den schalter "Boolesch" über das Frontpanel aufgerufen werden können, und dann parallel zum Messdatenerfassungsprogramm laufen. Ob das Programm so wie ich es hochgeladen hab lauffähig ist weiß ich nicht. schließlich fehlt ja unter anderem auch die ganz hardware.

Aber vielleicht kann mir trotzdem irgendjemand etwas dazu sagen, würde mir sehr weiterhelfen.... im der Sequenz"11" der While schleife befindet sich das "SignalViewer" Proramm (in einer Deaktivierungsstrukur), die auch schon funktioniert hat, aber eben ohne parallel zu laufen.

hat jemand tips für mich, oder kann mir weiterhelfen?

danke


Angehängte Datei(en)
0.0 .zip  Messdatenerfassung mit QuantumX und Spider8.zip (Größe: 3,29 MB / Downloads: 603)
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
  XY-Graph Plot2 auf eine Andere Y-Achse mit Eigenschaftsknoten pyrates 1 3.894 21.04.2011 07:51
Letzter Beitrag: GerdW
  Rectangle auf Chart oder Graph oder Intensity tetef 4 6.024 07.12.2010 14:09
Letzter Beitrag: unicorn
  Case-Struktur, in best. Fall andere Aktion ausführen LV-Starter 3 4.862 02.01.2010 13:42
Letzter Beitrag: LV-Starter
  cursorpos auf andere graphen übergeben dani 15 8.769 26.03.2009 15:57
Letzter Beitrag: Lucki

Gehe zu: