LabVIEWForum.de
Puffer-Array - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Puffer-Array (/Thread-Puffer-Array)

Seiten: 1 2


Puffer-Array - Julian S - 06.08.2013 18:25

Guten Abend,

Unten befindliches puffer.vi bekommt Messdaten geliefert (2D Array ''Readblock") und soll immer die neuesten Datensätze speichern.
Mithilfe der Queue einfach zu realisieren, aber was mir seit Stunden nicht gelingt ist, die Queue-Elemente als Array anzuzeigen.
Wenn ich also beispielsweise "max. Größe" auf 20 setze, sollen die neuesten 20 Werte, welche sich ja dann immer in der Queue befinden, in einem Array angezeigt werden.

Wer kann mir weiterhelfen?

Beste Grüße, Julian


RE: Puffer-Array - NWOmason - 07.08.2013 05:28

(06.08.2013 18:25 )Julian S schrieb:  Wer kann mir weiterhelfen?

Guten Morgen Julian,

du liest mit dem VI 'Dequeue Element' immer nur ein Element aus, wenn du es aufrufst. Willst du also mehrere Element aus der Queue auslesen, muss du öfters auslesen und die Werte sammeln, z.B:

[attachment=45789]

Dann bekommst du die letzten 20 Elemente der Queue in einem Array gesammelt (In deinem Fall ein 3D-Array, da deine Queue bereits 2D-Arrays beinhalten

Beste Grüße,
NWO


RE: Puffer-Array - GerdW - 07.08.2013 07:41

Hallo Julian,

alternativ kannst du natürlich auch QueueStatus nutzen:
[attachment=45794](Du bekommst ein 1D-Array of Cluster of 2D-Array.)
Tipp: Kontexthilfe öffnen und lesen...


RE: Puffer-Array - Julian S - 07.08.2013 09:07

Guten Morgen,

Zunächst Danke für die Antworten!

Ich habe auch noch eine Möglichkeit entdeckt, wie es funktioniert, wenn ich es etwas geordnet habe, poste ich es.

"QueueStatus" hatte ich auch in Betracht gezogen, das liefert ja dann ein "1D Cluster Array", wie bekomme ich daraus dann wieder mein 2D-Double Array?

Beste Grüße,

Julian


RE: Puffer-Array - GerdW - 07.08.2013 09:23

Hallo Julian,

Zitat:wie bekomme ich daraus dann wieder mein 2D-Double Array?
Wie oben schon gesagt wurde: wenn du in einer Queue 20mal ein 2D-Array speicherst und alle Elemente aus dieser Queue wieder ausliest, dann bekommst du je nach Lösung entweder ein 3D-Array oder ein 1D-Array of Cluster of 2D-Array.
Wenn du dagegen ein (größeres) 2D-Array als Ergebnis haben willst, dann musst du bei NWOs Lösung auf die Autoindizierung verzichten und dir dein Ergebnisarray selbst zusammenbauen - mit BuildArray im Concat-Modus...

Mit dem Cluster-Array geht das natürlich ebenso:
[attachment=45798]


RE: Puffer-Array - Lucki - 07.08.2013 09:25

Wenn man als Queue-Element ein 2D-Array definiert, dann kann die Queue nicht wissen, ob das Array immer die gleiche Zeilen- und Spaltenzahl hat. Deshalb müssen die Elemente in der Queue geclustert werden. Nach meinen Erkenntnissen nagt das an der Performance, so dass ich es bevorzuge, die Arrays in Elemente zu zerlegen und die Elemente als einfache DBL-Zahlen zu speichern. Das ist etwas mehr Code und sieht auf den ersten Bllick wegen der notwendigen for-Schleife auch langsamer aus, ist es aber nicht.
Für das folgende Beispiel habe ich der Einfachheit halber das "Data Queue Pnkt zu Punkt"-VI verwendet. Die Anpassung der Idee auf die "richtige" Queue, falls gewünscht, ist aber ein Klaks.
[attachment=45801]
[attachment=45800]


RE: Puffer-Array - GerdW - 07.08.2013 09:27

Hallo Lucki,

Julian verwendet LV2010...


RE: Puffer-Array - Lucki - 07.08.2013 09:35

(07.08.2013 09:27 )GerdW schrieb:  Julian verwendet LV2010...
Danke, habs oben editiert


RE: Puffer-Array - Julian S - 07.08.2013 11:22

Nochmals vielen Dank für die große und professionelle Resonanz, das ist wirklich beeindruckend in diesem Forum!

Leider brauche ich als Labview Anfänger recht viel Zeit, um eure Ideen nachzuvollziehen und anzuwenden, ich hab daher zunächst nochmal meinen mitternächtlichen Einfall aufgearbeitet und wäre sehr dankbar, wenn ihr was dazu sagt.
Soweit ich das sehe ähnelt es dem Vorschlag von GerdW, nur dass ich das Pufferarray nicht über den QueueStatus fülle sondern direkt über den Datenstream.


RE: Puffer-Array - GerdW - 07.08.2013 11:44

Hallo Julian,

wozu die "Puffer"-Queue, wenn du sie nur zum Zählen der Elemente/Einträge nutzt? Das ginge auch einfacher!

Du schreibst nur in die Queue, verwendest aber nirgends die darin gespeicherten Daten…