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 

XY Graph wärend der VI Ausführung aktualsieren



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!

26.10.2010, 19:54
Beitrag #2

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
XY Graph wärend der VI Ausführung aktualsieren
Hallo knulf,

die VIs wie "Array erstellen"/"Build Array" oder "In Array einfügen"/"Insert Into Array" mit großen Arrays sollte man nie in Schleifen aufrufen, schon gar nicht in Real-Time-Anwendungen. Bei jedem Einfügen wird das gesamte Array in einen neuen Speicherbereich kopiert. Auf Real-Time-Anwendungen kann es bei großen Arrays aufgrund der Fragmentierung sogar zu einem vermeintlich "vollen" Speicher kommen, obwohl der Speicher fast leer, jedoch sehr fragmentiert ist. Der neue Speicherbereich muss immer zusammenhängend sein, damit ein Array kopiert werden kann.
Genug der Theorie.

Kannst du von vornherein festlegen, wie groß dein Array maximal sein wird?
Beispiel: Max. Messdauer: 30 Sekunden, Abtastrate: 100 Hz
Das macht dann max. 30 s * 100 Werte/s = 3000 Werte

In dem Fall kannst du her gehen und über das VI "Array initialisieren" ein Array mit der Größe 3000 erstellen. Dann wird einmalig Speicher zugewiesen. In der Schleife selbst machst du es genau wie oben mit dem Schieberegister, jedoch mit dem VI "Teil-Array ersetzen".
Dann werden die Elemente ersetzt und es muss kein Speicher zugewiesen werden, was dann natürlich deutlich schneller geht und nebenbei noch deterministisch ist.

Den Graphen kannst du auch innerhalb der Schleife aktualisieren, indem du dein Gebilde im unteren Teil in die Schleife packst (z.B. per Sub-VI, um die Übersicht zu erhöhen). Ist es nicht erforderlich, den Graphen in jedem Schleifendurchlauf zu aktualisieren (das kostet massiv Performance), kannst du das z.B. auch alle 250 ms oder alls x Schleifendurchläufe veranlassen. Dazu musst du dann eine entsprechende Case-Struktur einbinden.

Für die untere Schleife gilt das mit dem Array natürlich auch. Es ist immer schlecht, fortlaufend dynamisch Speicher zuzuweisen.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
XY Graph wärend der VI Ausführung aktualsieren - Matze - 26.10.2010 19:54

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Invariante Ausführung mit fest Kopieanzahl für Filter-Initalisierung erzwingen t.hipp 2 3.954 08.01.2018 20:56
Letzter Beitrag: t.hipp
  Legende im XY-Plot wärend der Laufzeit editieren m0n0g0n 2 4.521 28.10.2008 13:59
Letzter Beitrag: m0n0g0n

Gehe zu: