22.09.2006, 14:19
Beitrag #1
|
|
|
22.09.2006, 14:46
Beitrag #2
|
Guenther
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: Jul 2006
2009
1998
EN
Deutschland
|
Großes Array macht probleme
' schrieb:Gibt es einen Trick um das ganze zu beschleunigen? Oder kennt jemand eine andere Möglichkeit.
Hallo Michael,
gibt es: Verzichte auf die Lokalen Variablen innerhalb der Schleife. Die kosten jede Menge Zeit. Benutze doch ein For Schleife und nimm den Autoindex, damit kannst Du jedes Arrayelement der Reihe nach abarbeiten, wie im VI. Oder stecke die RS232 Kommunikation in eine For oder While Schleife, ein Autoindex für die Messerte erzeugt das Array ohne zusätzlichen Zeitaufwand.
Gutes Gelingen,
Guenther
grosses_array_2_.vi (Größe: 12,65 KB / Downloads: 272)
|
|
|
22.09.2006, 15:10
Beitrag #3
|
joedoe1979
LVF-Grünschnabel
Beiträge: 40
Registriert seit: Sep 2006
8.5.1
2005
de
23654
Deutschland
|
Großes Array macht probleme
Die Daten kommen immer einer nach dem anderen. Somit geht es mit der Array-Indizierung nicht wirklich. Ich möchte ja ein großes Array haben. Wenn dann der 100. Wert kommt möchte ich die Daten einfach nur in die 99.igste Zelle schreiben. Also einfach mit einem Pointer auf eine Adresse zugreifen, den Wert reinschreiben und fertig.
|
|
|
22.09.2006, 15:40
Beitrag #4
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Großes Array macht probleme
<div align="left">Hallo, Michael,
wieso benutzt du noch einen eigenen Zähler, wenn du das Array sowieso in einer For-Schleife füllst? Die Schleifen von LV (While & For) haben doch ein Zählerelement (dieses kleine Quadrat unten links). Wenn du das mit deinem Array-Index-Eingang verbindest, kannst du auf die Counter-Variable verzichten.
MfG, Jens</div>
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
22.09.2006, 15:59
(Dieser Beitrag wurde zuletzt bearbeitet: 22.09.2006 16:02 von jg.)
Beitrag #5
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Großes Array macht probleme
<div align="left">Hallo, Michael,
habe mir gerade nochmal dein VI angesehen, du hast da noch einen Riesenbug: Das Array muss natürlich per Shift-Register durch deine While-Schleife geschoben werden. So werden dauernd Kopien angelegt, und nur deine letzte Änderung wird gespeichert.
Anbei meine Änderungen (lief in unter 20 ms durch!):
grosses_array2.vi (Größe: 13,54 KB / Downloads: 245)
MfG, Jens
Edit: P.S.: Und ich empfehle, wie immer, dringend ein Update auf Version 8.0.1</div>
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
22.09.2006, 16:26
(Dieser Beitrag wurde zuletzt bearbeitet: 22.09.2006 16:26 von joedoe1979.)
Beitrag #6
|
joedoe1979
LVF-Grünschnabel
Beiträge: 40
Registriert seit: Sep 2006
8.5.1
2005
de
23654
Deutschland
|
Großes Array macht probleme
Danke :-)
Diesen Bug habe ich nicht bemerkt, deshalb wurde das System auch so langsam. Nun funktioniert es richtig. Die einfache Lösung ist wie so oft die Beste :-)
|
|
|
22.09.2006, 17:35
Beitrag #7
|
joedoe1979
LVF-Grünschnabel
Beiträge: 40
Registriert seit: Sep 2006
8.5.1
2005
de
23654
Deutschland
|
Großes Array macht probleme
Ganz richtig funktioniert es noch nicht, denn es kommt alle 5 ms ein neuer Wert. Dieser soll dann in das Array eingetragen werden. Da das Programm 15ms benötigt, um einen Wert in das Array einzutragen ist dies viel zu langsam.
|
|
|
22.09.2006, 18:54
(Dieser Beitrag wurde zuletzt bearbeitet: 22.09.2006 18:56 von Lucki.)
Beitrag #8
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Großes Array macht probleme
' schrieb:Ich habe mal das Beispielprogramm mit beigefügt.
Das Beispielprogramm ist nicht nur langsam, sondern auch sinnlos: Das Ausgans-Array besteht nach wie vor aus lauter Nullen, lediglich das 360000ste Element enthält die Zahl 359999. Ich vermute mal, so war das nicht beabsichtigt.
|
|
|
22.09.2006, 19:24
Beitrag #9
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Großes Array macht probleme
<div align="left">Hallo, Michael,
also mein Beispielprogramm (s. Posting oben) braucht für das Schreiben deiner 360000 Werte ca. 18-20 ms, also 1 Wert wird in ca. 55 ps in das Array geschrieben!
Und die Variante von Guenther ist nochmal ein Stück schneller. Etwas vereinfacht sieht das Demo-VI übrigens so aus:
Dauer hier: ca. 11-12 ms
@Lucki: Genau das hatte ich in meiner Meldung ja schon beschrieben. VI war wegen des vergessenen Shift-Registers so quälend langsam.
MfG, Jens</div>
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
22.09.2006, 23:24
|
joedoe1979
LVF-Grünschnabel
Beiträge: 40
Registriert seit: Sep 2006
8.5.1
2005
de
23654
Deutschland
|
Großes Array macht probleme
Ich hab einfach schon zu lange vorm Bildschrim gesessen.
Aber warum ist denn das Teilarray ersetzen so langsam. Eigentlich sollte doch ein dynamisches Array mehr Probleme bereiten, da ein neuer Speicherplatz bereitgestellt werden muss. Die Teilarray ersetzen Funktion muss mal dringend überarbeitet werden.
Noch mal vielen Dank
|
|
|
| |