![]() |
Dynamischen Array erstellen - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Dynamischen Array erstellen (/Thread-Dynamischen-Array-erstellen) Seiten: 1 2 |
Dynamischen Array erstellen - jens_j - 26.03.2009 16:45 Hallo erstmal. Über meine Messkarte erfasse ich Daten von vier Kanälen. Diese Daten schreibe ich fortlaufend in einen Array hinein (jeder Kanal in eine Spalte). Nach einem Zeitraum, den ich nicht kenne, soll von den letzten 20 aufgenommenen Werten der Mittelwert ausgegeben werden (pro Kanal). Das Problem ist die größe des Arrays, die ich im Vorraus nicht kenne. Frage: Kann man einen Array erstellen, der nach 20 geschrieben Zeilen einfach die erste Zeile löscht, so dass alles "nach oben rutscht" und die 20. Zeile frei für die nächsten Daten wird? Wie ein Bus, der nur 20 Plätze hat und wenn der 21. Fahrgast kommt schiebt er alle Fahrgäste einen Platz weiter, so dass der 1. Fahrgast aus dem Bus fällt. ![]() Hat von euch einer eine Idee? Ich wäre sehr dankbar dafür. Ciao Dynamischen Array erstellen - TSC - 26.03.2009 16:54 Du kannst eine QUEUE benutzen. Da kannst du dann die Größe (20) angeben und die verhält sich genau so wie du es beschrieben hast. LG Torsten Dynamischen Array erstellen - jg - 26.03.2009 16:59 Einfach Ringpuffer selber anlegen. Guckst du hier: http://forum.ib-berger.com/index.php?showtopic=92 Eine Queue halte ich hierfür als etwas zu viel des Guten... Gruß, Jens Dynamischen Array erstellen - jens_j - 26.03.2009 17:46 HI ![]() Vielen Dank für eure schnellen Antworten. Das Beispiel von Jens ist echt gut. Doch wenn ich das ganze in mein bis jetzt erstelltes VI integrieren möchte, dann wird es kompliziert. Schaut doch mal bitte in das VI hinein. Wie kann ich da den Ringpuffer einbauen, um den Array konstant auf 20 Datensätze zu begrenzen? Gruß Jens ![]() Dynamischen Array erstellen - jg - 26.03.2009 18:04 ![]() Der Link mag von mir sein, aber das Bsp ist von i2dx aka Christian. Gruß, Jens Dynamischen Array erstellen - Lucki - 26.03.2009 19:25 Zum Thema Rinpuffer gibt es hier einen ganzen Thread Wenn Du aber sowieso ein Signalverlaufsdiagramm verwendest und Dich mit der Historienlänge 20 abfinden kannst, dann wird alles ganz einfach. Einfach von den gespeicherten Daten im Ringpuffer des Signalverlaufsdiasgramms den Mittelwert bilden: [attachment=17443] ![]() Dynamischen Array erstellen - Lucki - 27.03.2009 08:46 Ein weitere einfache Möglichket, bei der man keinen Ringpuffer basteln muß, ist der Verwendung eines FIR-Filters zur Mittelwertbildung. Die Vorwärtskoeffizienten bei Mittelwertbildung über die letzten 20 Werte sind: 20 Koef. mit Wert 0.05. Der FIR Filter funktioniert nicht mit beliebig vielen Koeff, aber mit 20 geht es noch. [attachment=17438] ![]() Dynamischen Array erstellen - jens_j - 27.03.2009 11:04 Hallo Lucki, vielen Dank für deine Arbeit. Ich habe das TemperatureTEST-VI von dir mal an meine Bedürfnisse angepasst. Das dumme ist nur, dass ich die Funktionalität, dass eben immer nur 20 Zeilen in meinem Array stehen irgendwie außer Funktion gesetzt. Jetzt bekomme ich wieder ein ewig langes Array. Weißt du da einen Rat? Gruß Jens LabVIEW-Version: 8.6 Dynamischen Array erstellen - jens_j - 27.03.2009 11:22 Eine weitere Frage Lucki, zu deinem TemperatureTEST.vi. Wo fließt der Wert 20 für die Festlegung der Mittelwertbildung ein? Gruß Jens Dynamischen Array erstellen - jg - 27.03.2009 11:31 ![]() Die Icons für die LV-Version brauchst du nicht runterladen und wieder als Anhang hochladen, die sind als Icons hier in der Forensoftware unter den Smilies eingebaut. Lies noch mal hier: http://www.LabVIEWforum.de/LV-Version-hoch...d39s-t7949.html z.B. l_v70 (ohne Unterstrich) eingeben -> ![]() |