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 

Timingprobleme bei großen Arrays



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!

15.04.2007, 14:01 (Dieser Beitrag wurde zuletzt bearbeitet: 15.04.2007 14:07 von joedoe1979.)
Beitrag #1

joedoe1979 Offline
LVF-Grünschnabel
*


Beiträge: 40
Registriert seit: Sep 2006

8.5.1
2005
de

23654
Deutschland
Timingprobleme bei großen Arrays
Hi @ all

Ich bekomme meine Daten über ein USB-Interface. Diese Daten möchte ich in einem großen Array schreiben um dies anschließend visuell darzustellen. Jedoch nimmt die Verarbeitungszeit mit der Arraygröße deutlicht zu, so das ich nicht mehr schnell genug auf mein USB-Interface zugreifen kann. Dadurch kommt es zum Bufferüberlauf und somit gehen Daten verloren. Es kommt alle 5ms ein Datenblock von 2000 Bytes. Jedoch dauert das Schreiben der Daten schon ca. 15ms (so ca. beim 999 Block) Bei den ersten Blöcken braucht LabVIEW nur ca 1ms um die Daten in das Array zu speichern (siehe Arrays mit Zeiten).

Ich benutze ich meinem Programm ein Subvi. Diese setzt ein Flag sobald genügend Daten vorhanden sind. Ist dies der Fall werden die Daten (die 2000 Bytes), die das Subvi liefert, in das dynamische Array geschrieben. Dadurch entsteht ein zweidimensionales Array. Damit ich das Programm auch ohne USB-Modul zur Verfügung stellen kann habe ich das Subvi entfernt. Es bleibt eine For-Schleife über, die ein zweidimensionales Array füllt. Jedoch kann man da schon deutlich erkennen, dass das Abspeichern der Daten im zweidimensionalen Array mit der größe des Array zunimmt (siehe Zeitarray).

In C++ hatte ich mal das Thema dynamische verkettet Listen, die den Vorteil besitzen, das auch große Array die gleiche Verarbeitungszeit besitzen. Ich dachte LabVIEW macht es auch so.


Sonstige .vi  test.vi (Größe: 12,79 KB / Downloads: 244)


   

Wie kann ich es besser machen? Habe schon versucht ein großes Array zu erstellen und dann mit "Teilarray ersetzen" (diese Funktion braucht aber noch viel mehr Zeit) Die automatische Indizierung (bei der For-Schleife) geht bei mir nicht, da ich die Daten nur beim gesetzten Flag in das Array eintragen möchte (der Flase-Fall im Case würde das Array überdimensional vergrößern)

Grüsse

JoeDoe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
Timingprobleme bei großen Arrays - joedoe1979 - 15.04.2007 14:01
Timingprobleme bei großen Arrays - cb - 15.04.2007, 15:56
Timingprobleme bei großen Arrays - cb - 15.04.2007, 19:54

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Änderung von großen Cluster (Type Def.) führt zu out of Memory exeption spacz 8 6.363 28.10.2019 09:01
Letzter Beitrag: spacz
  Auswahl eines Arrays anhand des Wertes eines zweiten Arrays treffen alan 2 4.550 19.02.2015 16:12
Letzter Beitrag: alan
  Gutes LV Design bei großen Programmen elhorst 31 20.283 18.09.2014 06:31
Letzter Beitrag: elhorst
Bug Arrays... immer wieder Arrays nurso 6 7.270 15.08.2014 10:39
Letzter Beitrag: Lucki
  Wie sehr großen Cluster vermeiden? Matze 10 9.232 31.10.2013 17:21
Letzter Beitrag: macmarvin
  Schneller Umgang mit großen Arrays curassas 6 6.160 26.09.2011 13:13
Letzter Beitrag: eb

Gehe zu: