Ringpuffer - aber wie? - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Ringpuffer - aber wie? (/Thread-Ringpuffer-aber-wie) Seiten: 1 2 |
Ringpuffer - aber wie? - dommae - 19.05.2010 12:01 hey, danke erstmal für die vorschläge! Ich erklär vielleicht nochmal kurz, was mein Problem is: Ich nehme mit Hilfe von DAQmx Messwerte auf (beispielsweise 1000 Samples mit 10kHz). Auf 8 Kanälen gleichzeitig. Ich überwache dabei die Impedanz bei einem Schleifring bei einem Computertomogrpahen. Hebt die Bürste vom Schleifring ab, so resultiert daraus ein Peak in meiner Aufnahme. Dieser Peak triggert mir ein Schreiboperation in eine TDMS-Datei. D.h. alle Fehler werden in eine TDMS Datei geschrieben. Funktioniert einwandfrei. Zusätzlich dazu möchte ich nun allerdings live eine Analyse meiner Fehler. Also ich möchte beispielweise die letzten 5 (oder 10 oder 20) Fehlerhaften Datenpakete vom DAQmx übereinanderlegen und mitteln, um zu sehn, ob sich Regelmäßigkeiten einschleichen. War das Verständlich? Was ist ne Lossy Queue???? Grüße, Thomsen Ringpuffer - aber wie? - Ome - 19.05.2010 12:11 Hallo, das Beispiel von mir macht genau das, es mittelt die letzten 5 Arrays, wobei du die Anzahl beliebig einstellen kannst, nur nicht zur Laufzeit. Ein Queue ist einfach gesagt ein Stapel auf den du immer was neues packen kannst und der von unten abgearbeitet wird (first in fisrt out) Lossy Queue bedeutet, dass wenn der Queue z.B. mit 5 angegeben ist für jedes neue Element das Älteste herausfallt. Ein deinem Fall ist ein Queue-Elemt ein Array. Gruß ome Ringpuffer - aber wie? - dommae - 19.05.2010 12:28 Ja, dein Programm schaut gut aus Ome! Mein Problem nur: Ich finde dein Symbol (ich nenn es mal: "Queue-Vorne Rein-Hinten Raus") nicht. [attachment=26580] Das ist das, was ich an Queue-Befehlen zu Verfüung hab. Könnte natürlich auch ne Case-Struktur laufen lassen und anfangen rauszuschmeißen, wenn die Queue voll is. Oder bin ich einfach nur zu blöd um dein Symbol zu finden? Thomsen Ringpuffer - aber wie? - eg - 19.05.2010 12:39 ' schrieb:Mein Problem nur: Ich finde dein Symbol (ich nenn es mal: "Queue-Vorne Rein-Hinten Raus") nicht. Erst ab 2009 Ringpuffer - aber wie? - dommae - 19.05.2010 13:01 Ome??? Kannst du mir bitte noch verraten, wo ich die einzelnen Symbole finde? Bzw kannst du mir einfach das VI mal zuschicken? Danke schonmal, saugut! Thomsen Ringpuffer - aber wie? - dommae - 19.05.2010 13:47 [attachment=26591]Also, hab nun folgende Lösung gefunden, die schon etwas funktioniert, aber doch einen gravierenden Fehler hat. Der Fehler, der auftritt ist, das die von mir gebildete Mittelwertkurve immer weiter anwächst. Hab zwei Screenshots mit etwa 1 Minute Verzögerung gemacht. Das Diagramm hat sich zwar nicht großartig verändert, aber die Skala der y-Achse schon. [attachment=26592] [attachment=26593] Woran liegt das? Ome, deine Lösung liefert mit ja nur einen Mittelwert des gesamten Arrays, bildet aber keine Mittelwertkurve aus mehreren Kurven. Danke schonmal! Ringpuffer - aber wie? - Ome - 19.05.2010 14:02 Kein Problem hier ist das VI Ringpuffer - aber wie? - Ome - 19.05.2010 14:07 ' schrieb:Ome, deine Lösung liefert mit ja nur einen Mittelwert des gesamten Arrays, bildet aber keine Mittelwertkurve aus mehreren Kurven. Doch es müsste die Kurve mitteln, da ich ja das Array Transponieren und dann erst mittle. Edit1: Hier eine Kurze Erklärung was ich mache, ich erzeuge aus den Queue ein 2D Array was dann 5 Spalten und 1000 Zeilen hat, das Transponiere ich zu 1000 Spalten und 5 Zeilen. Dann bilde ich den Mittelwert jeder Zeile und schiebe das Ergebnis in ein Array mit 1000 Werten. Dieses ist dann der Mittelwert deiner 5 Arrays. Edit2: Du musst eigentlich nur deine For-Schleife durch die For-Schleifen aus meinem Vi ersetzen dann sollte es gehen hier auch noch mal das Bsp fürlv85hatte nicht gleich gesehen das du kein 2009 hast... |