LabVIEWForum.de - dynamisches array

LabVIEWForum.de

Normale Version: dynamisches array
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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!
Hallo sneube,

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.


Gruß
sven
Hallo Sven,
vielen Dank für deine Hilfe. Es funktioniert jetzt, so wie ich das gerne wollte.
Grüße
Stefan
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.

Ludwig
hi,

bin ein LabVIEW jüngling und hab zu dem thema hier noch eine frage -->

wie bringt man dem array bei, dass es im frontpanel automatisch größer wird, wenn man mehr einträge bekommt als "reinpassen" ?


vielen dank

Vroni
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.

Lg Stefan
Hi Vroni,

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.

Gruß
Andreas
guten morgen

vielen dank für die schnelle und kompetente antwort

schönes wochenende!!
Hi all,

eine letzte Anmerkung zu dem Prog. von Sven.

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.


Gruß
Oliver
Referenz-URLs