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 13:05

Ah Mist da war ich ein bisschen zu schnell. Die Initialisierung erfolgt selbst verständlich außerhalb der While Schleife. So sieht das Programm bei mir zZ aus.

Lv09_img2


2D Array mit Werten füllen - godi - 17.06.2010 07:22

Wollte vorsichtshalber mal nachfragen, ob einer evtl. einen Tipp hat wie ich das Problem nun am besten lösen kann ?! Ich kann auch das Programm auf 8.6 speichern, wenns natürlich gewünscht ist. Es kamen schon Beiträge zu FN. Mir gefällt diese Variante auch nicht, leider sind meine Kenntnisse in LV nicht genug ausgeprägt um das ganze anders zu lösen Sad


2D Array mit Werten füllen - skywalker - 17.06.2010 07:48

Ich würde das so machen.
snip09
[attachment=27185]


2D Array mit Werten füllen - Lucki - 17.06.2010 08:16

' schrieb:[*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*]

Sicher bin ich mit meiner Behauptung auch nicht, und ich habe jetzt kein Lust das genau zu prüfen. Ich habe halt diesen Satz in der Hilfe:
"Der Wert am Initialisierungsanschluss wird vom Rückkopplungsknoten als Ausgangswert für die erste Blockdiagrammausführung oder Schleifeniteration verwendet. Wenn Sie keinen Wert mit dem Anschluss verbinden, verwendet der Rückkopplungsknoten den Standardwert des Datentyps. Der Rückkopplungsknoten speichert dann das Ergebnis der vorigen Ausführung oder Iteration. "
so wie oben interpretiert und bin bei der Erstellung von VIs damit noch nicht auf die Schn...ze gefallen.

Und versuche nicht mir meinen Rang streitig zu machen. Der größte aller Korinthenkacker hier bin immer noch ich.Mellow
Gruß Ludwig


2D Array mit Werten füllen - godi - 17.06.2010 08:22

@skywalker

Mit zwei Forschleifen habe ich am Anfang auch probiert. Nur liefert mir das Picoscope schon von Anfang an ein 1D Array mit der Länge "Number of Samples" und wenn der Buffer voll ist, dann liefert es wieder 1D Array usw. Dieses 1D Array will ich nun stapeln und am Ende bekomme ich ein 2D Array mit der Länge "Number of Samples" und Breite Anzahl der Messwerte. Eigentlich ist das Problem ganz einfach und das FN macht genau das was ich will. Nur die Laufzeiten sind bei den größeren Arrays zu langsam.


2D Array mit Werten füllen - GerdW - 17.06.2010 08:25

Hallo Skywalker,

wozu erstellst du erst ein Array (per InitArray, was durchaus Zeit und Speicherplatz benötigt), wenn du es dann nicht benutzt?
Wäre es dann nicht einfacher, einfach die Array-Größen an die "N"-Eingänge der FOR-Loops anzuschließen???

Außerdem wollte der Fragende ja vom AutoIndexing weg und ein Array vordefinieren (= Speicher reservieren), um dann darin Werte zu ersetzen...


2D Array mit Werten füllen - dimitri84 - 17.06.2010 09:07

' schrieb:Sicher bin ich mit meiner Behauptung auch nicht, und ich habe jetzt kein Lust das genau zu prüfen. Ich habe halt diesen Satz in der Hilfe:
"Der Wert am Initialisierungsanschluss wird vom Rückkopplungsknoten als Ausgangswert für die erste Blockdiagrammausführung oder Schleifeniteration verwendet. Wenn Sie keinen Wert mit dem Anschluss verbinden, verwendet der Rückkopplungsknoten den Standardwert des Datentyps. Der Rückkopplungsknoten speichert dann das Ergebnis der vorigen Ausführung oder Iteration. "
so wie oben interpretiert und bin bei der Erstellung von VIs damit noch nicht auf die Schn...ze gefallen.
Über das Verhalten der FN sind wir uns alle einig. Darauf zielte nicht mein Einspruch. Worauf ich hinaus wollte, ist, dass das VI "erster Aufruf" eben nur einmal ein True ausspruckt pro "Programmstart mit dem Pfeil", ein SR oder eine FN kann hingegen (in einem subVI) beliebig oft initialisiert werden. Deswegen kann man da nicht den Vergleich ziehen. [Korinthenkacker off]


2D Array mit Werten füllen - IchSelbst - 17.06.2010 09:33

Ich bin ja noch immer der Meinung, das Problem liegt weder am Array noch am FN, sondern am Anzeigeelement. Ich kann den Zeitbedarf, den godi erwähnt, nicht nachvollziehen.


2D Array mit Werten füllen - Lucki - 17.06.2010 10:14

Hab mal die Zeiten für das Ersetzen von 10000 Werten gemessen. Für das Ersetzen habe ich allerdings eine Inplace-Strruktur verwendet, außerdem nur 2000 statt 5000 Plätze und statt DBL SGL-Werte verwendet - weil ich nur 1.5MB Speicher habe.
Ergebnis: Das Ersetzen dauert 6 ms, das anschießende Updaten der Anzeige 140 ms. Der Sachse würde dazu sagen: "Da gammer nich meggern"
Es macht übrigens überhaupt kein Sinn, für derartige Datenmengen eine Anzeige überhaupt zu erstellen. Kein Mensch kann diese Megamengen sichten. Also nur Schieberegister als Speicher verwenden, und dann abpseichern, weiterverarbeiten oder was weiß ich. Damit würde man sich diese zusätzlichen 140ms Zeit ersparen.
[attachment=27192]
Lv85_img[attachment=27193]
Edit: Als V85 gespeichert. Die gemessenen Zeiten sind von V90.


2D Array mit Werten füllen - GerdW - 17.06.2010 10:18

Hallo zusammen,

"Damit würde man sich diese zusätzlichen 140ms Zeit ersparen."
Nächste Möglichkeit: wie von Lucki erwähnt mit SR arbeiten und trotzdem ein Anzeigeelement verwenden. ABER dann diese Funktion in ein subVI stecken, dessen Frontpanel nicht gezeigt/geöffnet wird... (Oder dieses subVI als "Subroutine" in den ExecutionProperties deklarieren.)