LabVIEWForum.de
2D Array mit Werten füllen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: 2D Array mit Werten füllen (/Thread-2D-Array-mit-Werten-fuellen)

Seiten: 1 2 3 4


2D Array mit Werten füllen - godi - 16.06.2010 10:21

Erst Mal ein herzliches Hallo an alleWink2

Das Forum ist sehr hilfreich und ich habe schon viele tolle Ideen und Vorschläge in meinem Programm einbinden können. Doch trotz der Suchfunktion kann ich zu meinem jetztigen Problem irgendwie nichts vernüftiges finden und so habe ich mich entschlossen ein Thread zu erstellen.

Das Picoscope (Oszi) liefert mir Daten und diese sollen von Programm zuerst in ein Array gefüllt und am Ende in tabellenform abgespeichert werden. Das Array ist von Anfang an schon bekannt. Es ist zB. 5000 x 10000 groß. Ich habe das ganze bis jetzt so realisiert.

[attachment=27165]

Dies funktioniert zwar aber das Array wird sehr langsam aufgebaut. Wenn ich das Array verkleinere auf 500 x 1000, dann geht das ganze relativ schnell. Man muss bedenken, dass das Picoscope nicht 2D Array auf ein Mal liefert, sondern nach und nach 1D Array mit der Länge der "Number of Samples" ( in dem Fall mit der Länge 10000)

Nun die Frage, kann man das ganze eleganter und besser lösen und wenn ja wie ?


2D Array mit Werten füllen - jg - 16.06.2010 10:25

Offtopic2
Bitte LVF-Regeln lesen und beachten.
Screenshots hier im Forum hochladen und nicht bei externen Image-Hostern...


2D Array mit Werten füllen - GerdW - 16.06.2010 11:47

Hallo godi,

da sich kein anderer erbarmt, rate ich mal ins Blaue hinein:
Ich habe bei den "freihängenden" FeedbackNodes (FN) immer noch leichte Verständnisprobleme, was die Initialisierung angeht...
Kann es sein, dass deine FN bei jedem Aufruf aufs Neue initialisiert wird, wofür Speicher und Zeit benötigt wird?
Könntest du das komplette VI anhängen (evtl. DAQ-Aufruf durch dummy-FOR-loop ersetzen)?


2D Array mit Werten füllen - dimitri84 - 16.06.2010 12:10

' schrieb:Kann es sein, dass deine FN bei jedem Aufruf aufs Neue initialisiert wird, wofür Speicher und Zeit benötigt wird?
Wäre das nicht ein völlig unsinniges Verhalten?


2D Array mit Werten füllen - GerdW - 16.06.2010 12:24

@Dimitri,

"Wäre das nicht ein völlig unsinniges Verhalten?"
Eben.
Im Bild oben sehe ich: bei jedem Aufruf wird ein Array initialisiert (400MB!, falls DBL verwendet wird). Mit diesem Array wird die FN initialisiert, augenscheinlich auch bei jedem Aufruf ("...leichte Verständnisprobleme..."). Beide Aktionen halte ich für unsinnig...


2D Array mit Werten füllen - dimitri84 - 16.06.2010 12:31

' schrieb:Im Bild oben sehe ich: bei jedem Aufruf wird ein Array initialisiert (400MB!, falls DBL verwendet wird).
Achsooo, ja ein Array wird jedes Mal initialisiert.

Zitat:Mit diesem Array wird die FN initialisiert, augenscheinlich auch bei jedem Aufruf ("...leichte Verständnisprobleme..."). Beide Aktionen halte ich für unsinnig...
Dass die FN jedes Mal neu initialisiert wird, was auch immer dabei geschieht - ich hab davon keine Ahnung, glaube ich nicht. Da wird es wohl einen internen First-Run-Flag geben.


2D Array mit Werten füllen - Lucki - 16.06.2010 12:32

Bei so großen Datenmengen und wenn die Daten von einem Oszilloskop mit vielleicht nur 8 bit kommen. lohnt es sich auch mal über andere Datenformate als DBL nachzudenken. Das Mindeste wäre die Umstellung auf SGL.

Zur Initialisierung: Der Initialisierungsanschluß wird, wenn er sich in einer Schleife befindet, genau so nur einmal initialisiert, als wenn er sich bei einem Schieberegister außerhalb der Schleife befinden würde. Allgemein muß man sich den Initialisierungsanschluß so vorstellen, daß er nur dann aktiv ist, wenn ein unmittelbar daneben platziertes VI "erster Aufruf" den Ausgangswert true liefern würde. Diese Test könnte man ja leicht machen - wenn es ein VI gäbe.


2D Array mit Werten füllen - IchSelbst - 16.06.2010 12:50

Das Anzeigeelement verbraucht 100% der Leistung. Das Ersetzen der Daten selbst bei 5000 Reihen dauert gerademal 300ms. Solange dauert es alleine einmal das Anzeigeelement zu refreshen.


2D Array mit Werten füllen - godi - 16.06.2010 12:53

Ich habe Mal schnell ein Programm gebastelt, wie es bei mir zZ realisiert ist. Anstelle des Picoscopes habe ich einfach Zufallszahlen genommen. Ich hoffe ihr könnt mir jetzt weiter helfen. Tippen

Edit: Warten (ms) könnt ihr natürlich rausnehmen, habe es für mich nur schnell eingebaut um es besser zu sehen.

Lv09_img2


2D Array mit Werten füllen - dimitri84 - 16.06.2010 12:53

' schrieb:..., wenn ein unmittelbar daneben platziertes VI "erster Aufruf" den Ausgangswert true liefern würde.
[*Korinthenkacker on*]
Da wäre ich mir nicht so sicher. Das VI "erster Aufruf" gibt wirklich nur einmal ein True pro "Applikationsstart mit dem Pfeil" aus - auch, wenn sich dieses VI z.B. in einem subVI befindet und das BD immer wieder aufgerufen wird. Eine FN oder ein SR kann in einem subVI öfter als nur einmal initialiesiert werden, nämlich bei jedem subVI-Aufruf.
[/*Korinthenkacker off*]

Mir gefällt dieses kleine runde Ding einfach nicht ...