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!
29.04.2015, 18:16 (Dieser Beitrag wurde zuletzt bearbeitet: 29.04.2015 18:50 von Hasenfuss.)
ich möchte gerne ein großes Datenvolumen abspeichern. Ich habe 40 Kanäle, die aufgezeichnet werden sollen. Die Messwerte werden von einem Messerfassungssystem erfasst. Ich bekomme meine Messwerte als 1D-Array. Die Abtastfrequenz ist 2kHz. Pro Sekunde habe ich also 80.000 Werte. Mehrmals in der Sekunde - z.B. alle 100ms - werden die Messwerte aus dem Datenerfassungsgerät gelesen.
Ich möchte die Werte in einer TDMS-Datei abspeichern. Dazu kann ich verschiedene Kanäle erstellen, die wunderbar benennen ...
Mein Problem ist grade - kann ich meine Messwerte denn in der Reihenfolge 12345...12345...12345... in der TDMS-Datei abspeichern, damit sie richtig den einzelnen Kanälen zugeordnet werden - oder aber muss ich die Werte vorher in ein 2D-Array transponieren, damit ich dann die Messwerte in der Form 11111 22222 33333 ... habe (die Zahlen sollen jeweils für den Messwert des einzelnen Kanals stehen.
Ich habe Angst, dass das Umformen des Arrays viel Rechnerlast in Anspruch nehmen könnte. Ist die Angst begründet? Der blau eingezeichnete Bereich ist der, welcher mir Angst macht, wenn z.B. in einem Array 20000 Werte stehen.
Anzeige
29.04.2015, 19:28 (Dieser Beitrag wurde zuletzt bearbeitet: 29.04.2015 19:29 von GerdW.)
RE: Wie große Menge an Messwerten flott speichern?
Hallo Hasenfuss,
Zitat:Ich habe Angst, dass das Umformen des Arrays viel Rechnerlast in Anspruch nehmen könnte. Ist die Angst begründet?
Nein.
ReshapeArray arbeitet "in place" und muss im Grunde nur die Verwaltungsinformation für dein Array ändern: von vorher 1*80000 Werte zu 5*16000 Werte. Die Angaben zu den Arraygrößen werden quasi als "Header" neben den eigentlichen Arrayelelementen verwaltet - die Elemente selbst bleiben beim Reshape im Speicher an Ort und Stelle…
Ansonsten: einfach mal ein Benchmark-VI erstellen und selbst gucken, wie lange ein Reshape benötigt…
RE: Wie große Menge an Messwerten flott speichern?
Vielen Dank für Deine Antwort. Ich hatte gedacht, dass das Array komplett im Speicher dann "umorganisiert" werden würde. Ich hatte auch mal ein Benchmark-Test durchgeführt. Aus Spaß hab ich mal an die Schleife 50 Mio Werte erzeugen lassen in einem Array. Größer ging es nicht, dann kam eine Speichermeldung. Das "Umorganisieren" von dem Array hat dann dort 0,01 Sekunden im Schnitt gedauert, 80.000 Werte waren noch ein paar Zehnerpotenzen weniger.
RE: Wie große Menge an Messwerten flott speichern?
Auf der Labview-Anwendertagung wurde darauf aufmerksam gemacht, dass es jetzt zusätzlich zu den TDMS-Funktionen die noch schnelleren TDMS+ Funktionen gibt. Weiß aber jetzt nicht, ab welcher Version es die gibt. In der Palette stehen sie dann unter Datei-IO/ TDMS/ TDMS (erweitert).