LabVIEWForum.de
Datenausgabe einer While-Schleife nach jedem Iterationsschritt?? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Datenausgabe einer While-Schleife nach jedem Iterationsschritt?? (/Thread-Datenausgabe-einer-While-Schleife-nach-jedem-Iterationsschritt)



Datenausgabe einer While-Schleife nach jedem Iterationsschritt?? - Sternhagel - 25.02.2011 19:34

Hallo,

ich möchte folgende Anwendung programmieren.

Ich habe zwei Geräte und mittels Labview möchte bei beiden Geräten Daten auslesen - und ganz wichtig die Daten sollen kontinuierlich ausgelesen werden und der Datenauslesevorgang soll parallel zueinander laufen, also voneinander unabhägnig sein.
Ich habe mir also gedacht, ich lasse beide Geräte innerhalb jeweils einer eigenen While-Schleife auslesen.

Das Problem ist nun wie bekomme ich die Daten aus der jeweiligen While-Schleife raus um sie in einem weiteren Analyse-VI zu analysieren.... Der Datenauslesevorgang soll kontinuierlich laufen, heißt also die While-Schleifen kann ich nicht einfach anhalten um die Daten über einen Tunnel dann nach außerhalb auszugeben....
Ich brächte also so etwas wie eine While-Schleife, die nach jedem einzelnen Iterationsschritt den Wert an ihren Ausgängen nach ausßen hin abgibt, und nicht wie üblich erst nach beenden der While-Schleife.

Gibt es so etwas, oder hat vielleicht jemand eine andere Idee, wie ich mein Problem lösen könnte?

viele Grüße


RE: Datenausgabe einer While-Schleife nach jedem Iterationsschritt?? - Sternhagel - 25.02.2011 21:36

Ich könnte es mal mit Notifiern versuchen !!!! Mal schauen ob das funktioniert!


RE: Datenausgabe einer While-Schleife nach jedem Iterationsschritt?? - jg - 25.02.2011 23:27

Ich würde eher zu Queues raten. Mit einem Notifier bekommst du immer nur einen Wert, und es kann dir passieren, dass du einen Wert überschreibst.

Gruß, Jens


RE: Datenausgabe einer While-Schleife nach jedem Iterationsschritt?? - Sternhagel - 25.02.2011 23:43

Vielen Dank für die Antwort.
Das wäre kein Problem, da ich immer nur den aktuellsten Wert brauche.

Das eine Gerät liefert die Werte wesentlich langsamer als das andere... somit warte ich bis vom langsamen Gerät die Daten vorhanden sind und sobald sie alle angekommen sind lese ich vom schnellen Gerät nur den aktuellsten Wert ein.


RE: Datenausgabe einer While-Schleife nach jedem Iterationsschritt?? - Richard - 26.02.2011 21:14

Hallo,

dann mach doch zwei Queues, die du auf ein Element beschränkst. In den zwei Erzeugerschleifen nimmst du Lossy-Enqueue, dann steht immer nur der Aktuelle Wert drin.
In der Verbraucherschleife setztz du bei der Langsameren ein Timeout, dass größer ist als das dt der Werte. Sobald in dieser Queue ein Wert ansteht wird im Programm fortgefahren. Als nächstes wird dann das Queue auslesen der schnellerern Schleife durchgeführt. Dann hast du die beiden aktuellen Werte und kannst diese Weiterverarbeiten.

Gruß Richard

[attachment=32515]


RE: Datenausgabe einer While-Schleife nach jedem Iterationsschritt?? - jg - 27.02.2011 09:05

(25.02.2011 23:43 )Sternhagel schrieb:  Vielen Dank für die Antwort.
Das wäre kein Problem, da ich immer nur den aktuellsten Wert brauche.

Das eine Gerät liefert die Werte wesentlich langsamer als das andere... somit warte ich bis vom langsamen Gerät die Daten vorhanden sind und sobald sie alle angekommen sind lese ich vom schnellen Gerät nur den aktuellsten Wert ein.
Wer sagt denn, dass man warten muss, bis ein Element in der Queue vorhanden ist? Einfach Timeout anders behandeln. Oder andersherum: aus einer Queue kann man auch alle vorhandenen Elemente auf einmal auslesen.

Gruß, Jens


RE: Datenausgabe einer While-Schleife nach jedem Iterationsschritt?? - Sternhagel - 01.03.2011 16:20

Ok, ich versuch mal eure Vorschläge umzusetzten :-)
Vielen Dank erst mal !


RE: Datenausgabe einer While-Schleife nach jedem Iterationsschritt?? - Sternhagel - 01.03.2011 20:35

Es funktioniert!! :-)
Danke nochmal. Und danke Richard! Dein VI hat mir sehr geholfen!

Peter