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!
Hallo,
ich möchte doublewerte (z.B. Temperaturwerte) dynamisch in einem eindimensionalen array speichern. Dynamisch bedeutet, dass die Größe des Arrays vorher nicht bekannt ist und die fortlaufende Befüllung des Arrays durch den Benutzer beendet bzw gestartet wird.
Als Test habe ich mal zwei Zufallszahlen erstellt.
Schon mal danke für die Hilfe!
habe mal ein kleines VI erstellt, dass dir vielleicht weiterhilft.
Links der Schleife wird das Schieberegister inistialisiert. Ist der Knopf gedrückt, so werden neue Werte an das Array gehängt. Ist der Knopf auf False, so bleibt das Array unverändert.
Habe zur Zewit LV 8 laufen, daher nur zwei Screenshots.
Hallo Sneube,
ich wollte nur noch etwas allgemeines zu den "dynamischen Daten" sagen. Es gibt hier offenbar ein Mißverständnis.
Von "Dynamischen Daten" sprach man z.B bei Turbo-Pascal, wenn ein Array innerhalb eines Programmes sein Länge änderte. Und in genau dieser Bedeutung verwendest Du den Begriff hier auch.
In LabVIEW ist dieser Begriff aber ganz anders belegt, und deshalb war es falsch, so wie Du es versucht hast, Dein Problem mit einem Tool aus der Werkteugkiste "dynamsiche Daten" lösen zu wollen.
In Labviev sind Arrays von vornherein in der Länge variabel (Also dynamisch im Sinne von Turbo-Pascal), und damit löst sich Dein Problem quasi in Luft auf. Sven hat es Dir ja gezeigt.
Zitat:wie bringt man dem array bei, dass es im frontpanel automatisch größer wird, wenn man mehr einträge bekommt als "reinpassen" ?
Du erstellst von deinem Array-Element eine Property Node und wählst die Eigenschaft "NumCols" oder "NumRows" aus. Da kannst du dann den gewünschten Wert setzen.
Du erstellst dazu von dem Array einen Eigenschaftsknoten -> Zeilenanzahl, diesen in "schreiben" ändern und dann kannst Du damit die Anzahl der Zeilen auf dem Frontpanel verändern.
diese Art verbraucht unnötig Speicher im Betrieb.
Das macht sich aber erst nach längerem Hinzufügen bemerkbar.
Der Grund:
LabVIEW kann natürlich im Speicher kein "dynamisches" Array verwalten.
Deshalb macht es beim Hinzufügen eine Kopie, vergrößert um ein Element (in diesem Fall).
Bisher ist mir nicht bekannt, das LabVIEW inzwischen zur Laufzeit den Speicher des alten Arrays wieder freigibt, was folglich dazu führt, das sich der Speicher langsam füllt.
Besser ist es da das Array zu verwalten und immer Blockweise das Array zu vergrößern. Ein einfaches "anhängen" geht dann natürlich nicht mehr, es sei den man schreibt sich hierfür eine Funktion.