INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Großes Array macht probleme



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!

22.09.2006, 14:19
Beitrag #1

joedoe1979 Offline
LVF-Grünschnabel
*


Beiträge: 40
Registriert seit: Sep 2006

8.5.1
2005
de

23654
Deutschland
Großes Array macht probleme
Hallo @ all

Ich möchte Daten, die über die RS232 Schnittstelle kommen 30 Minuten lang aufzeichen. Nach meinen Berechnungen brauche ich dafür ein Array das 360000 Werte speichern muss. Ein dynamisches Array wollte ich nicht nehmen. Deshalb habe ich ein Array mit 360000 Werte erstellt. Anschließend einen Zähler genommen, um die Werte in das Array zu speichern. Hierzu verwende ich die LabVIEW-Funktion "Teilarray ersetzen". Jedoch benötigt diese unmengen an Zeit. Eigentlich sollte doch die Arraygröße nichts ausmachen, wenn man mit einem Pointer auf die Adresse zugreift.

Gibt es einen Trick um das ganze zu beschleunigen? Oder kennt jemand eine andere Möglichkeit.

Ich habe mal das Beispielprogramm mit beigefügt.

Grüsse

Michael


Angehängte Datei(en)
Sonstige .vi  grosses_array.vi (Größe: 15,22 KB / Downloads: 235)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.09.2006, 14:46
Beitrag #2

Guenther Offline
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


Sonstige .vi  grosses_array_2_.vi (Größe: 12,65 KB / Downloads: 245)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.09.2006, 15:10
Beitrag #3

joedoe1979 Offline
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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.09.2006, 15:40
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.09.2006, 15:59 (Dieser Beitrag wurde zuletzt bearbeitet: 22.09.2006 16:02 von jg.)
Beitrag #5

jg Offline
CLA & CLED
LVF-Team

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!):

   


Sonstige .vi  grosses_array2.vi (Größe: 13,54 KB / Downloads: 219)


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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.09.2006, 16:26 (Dieser Beitrag wurde zuletzt bearbeitet: 22.09.2006 16:26 von joedoe1979.)
Beitrag #6

joedoe1979 Offline
LVF-Grünschnabel
*


Beiträge: 40
Registriert seit: Sep 2006

8.5.1
2005
de

23654
Deutschland
Großes Array macht probleme
Danke :-) Big Grin

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 :-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.09.2006, 17:35
Beitrag #7

joedoe1979 Offline
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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.09.2006, 18:54 (Dieser Beitrag wurde zuletzt bearbeitet: 22.09.2006 18:56 von Lucki.)
Beitrag #8

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.09.2006, 19:24
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.09.2006, 23:24
Beitrag #10

joedoe1979 Offline
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. Big Grin

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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Was macht das Express VI Messung von Frequenzkomponenten bachatero18 9 3.925 17.09.2020 07:56
Letzter Beitrag: Martin.Henz
  Timer macht was er will :-) Natalie1984 6 3.330 04.07.2019 12:49
Letzter Beitrag: IchSelbst
  Probleme mit "Verstrichene Zeit" Baustein und Array-Addition antonym 6 5.108 30.07.2015 13:50
Letzter Beitrag: antonym
  Speicher läuft in Statemachine voll (großes Array...) Peter04 5 7.131 30.11.2013 22:42
Letzter Beitrag: D_Sev
  Probleme mit Array in Graph stefan_huaba 14 7.327 11.09.2013 13:35
Letzter Beitrag: stefan_huaba
  Funktion Diagramm aufräumen macht komische Sachen Hasenfuss 5 5.327 01.02.2013 12:19
Letzter Beitrag: Kiesch

Gehe zu: