Hallo,
ich habe bisher leider nichts zu meinem Problem gefunden...
Ich möchte Daten in einem Array speichern. Insgesamt sind es 7 verschiedene Messdaten, die jeweils in eine Spalte geschrieben werden sollen.
Es kann sein das bis zu 20000 Werte pro Spalte entstehen, da dies aber nicht immer der Fall sein muss wollte ich das Array "wachsen" lassen.
Vom Prinzip habe ich dies auch schon in einem Test VI hin bekommen. bzw zwei Teile die nun noch vereint werden müssen
nur das klappt irgendwie nicht.
Entweder kann ich das Array wachsen lassen, wie ich es möchte. Jedoch werden dann immer neue Werte rein geschrieben. Oder ich kann die Werte anhängen, aber nur bei einem Array wo ich die Größe vorgebe.
Lg
(23.11.2011 15:35 )Andy_B schrieb: [ -> ]..
Entweder kann ich das Array wachsen lassen, wie ich es möchte. Jedoch werden dann immer neue Werte rein geschrieben.
..
Aber das wolltest Du doch gerade erreichen.
(23.11.2011 15:35 )Andy_B schrieb: [ -> ]..
Oder ich kann die Werte anhängen, aber nur bei einem Array wo ich die Größe vorgebe.
..
So etwas hast Du in Deinem Beispiel noch gar programmiert.
Also, LabVIEW kümmert sich automatisch um den nötigen Speicherplatz für die Array und um automatische Indizierung. In BSP 1 aus Deinem VI wird ein Zufallswert (später Messwert) an ein Array angehängt. Es wächst.
Wenn Du sieben Spalten anhängen willst, musst Du erst die sieben Werte zu einem Array zusammenbauen und dieses an ein 2D Array anhängen.
Im unteren Beispiel hast Du durch die zwei ineinander geschachtelten Schleifen ein 2D-Array erzeugt, wobei die eine Dimension nur 1 ist. Hier hat LabVIEW automatisch indiziert und die Dimension gewählt. Wenn Du eine Zahl größer 1 an die innere Schleife knüpfst und mehrere Spalten auf dem FP gleichzeitig anzeigst, wird das ganze deutlich.
...ich habe mich schlecht ausgedrückt!
Ich habe 7 Sensoren und jeder von denen bringt mir bis zu 20000 Messwerte.
Da die Anzahl der Messwerte aber schwanken kann, wollte ich das Array mit jedem einzelnen Messwert wachsen lassen.
In meinem Beispielen habe ich die einzelnen Funktionen hin bekommen, nur dies zwei müssen irgendwie vereint werden
Da ich beim einen Bsp. das Array wachsen lasse, jedoch mit immer neuen Werten und im zweiten Bsp. muss ich die Größe vom Array definieren, sammel aber alle gemessenen Werte wie ich es möchte.
Nun muss also das erste Bsp. (das wachsende Array) mit dem zweiten (sammeln der Messwerte) zu einem gemacht werden. Was ich nicht hin bekomme
Ahh ok.
Mir war nicht bekannt das
Zitat:Also, LabVIEW kümmert sich automatisch um den nötigen Speicherplatz für die Array und um automatische Indizierung. In BSP 1 aus Deinem VI wird ein Zufallswert (später Messwert) an ein Array angehängt. Es wächst.
Wenn Du sieben Spalten anhängen willst, musst Du erst die sieben Werte zu einem Array zusammenbauen und dieses an ein 2D Array anhängen.
Dann habe ich ja kein Problem!
d.h. es könnte aber auch mal vorkommen wenn ich nicht rechtzeitig Daten Weg Speicher das ich ein Arbeitsspeicher Problem bekomme, oder?
Klar, wenn Du ein Array unendlich füllst, ist Dein Speicher irgendwann voll.
Gruß Markus
(24.11.2011 07:40 )Andy_B schrieb: [ -> ]Dann habe ich ja kein Problem!
d.h. es könnte aber auch mal vorkommen wenn ich nicht rechtzeitig Daten Weg Speicher das ich ein Arbeitsspeicher Problem bekomme, oder?
Wenn die Messwert Arrays unterschiedlich lang werden, weil die Sensoren unregelmäßig (Burst-artig) oder mit unterschiedlicher Rate liefern, bieten sich geclusterte Arrays oder getrennte Arrays an. Anderenfalls hat man ab irgendeinen Index Nullen drin und muss das irgendwie verwalten.
Speichervoll geht aber nicht so schnell: 7 Sensoren à 20000 Messwerte à 8 Byte macht ca. 1,1 MB.