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 

3d plot



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!

03.05.2010, 15:21
Beitrag #1

estiro Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Apr 2010

8.2
-
en

8006
Schweiz
3d plot
Hallo zusammen,
folgendes Problem: Ich lese aus meinem Com-Port Sensordaten (Orientierungswinkel, Position und Geschwindigkeiten) einer IMU aus. Nun möchte ich die Daten darstellen. Bei den Winkeln und Geschwindigkeiten gabs keine Probleme, da man dort eifache xy-plots erstellen konnte. Nun möchte ich noch die Positionsdaten sozusagen 'real-time' in einem 3D Plot darstellen. Ich erhalte alle paar ms 3 Werte (x, y, z-Koordinaten) und die sollen dann in den Plot eingezeichnet werden, sobald sie verfügbar sind. Wie mache ich das? 3D-Liniengraph zum Beispiel nimmt ja nur Arrays als Inputs an...

Danke für die Hilfe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.05.2010, 10:18
Beitrag #2

estiro Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Apr 2010

8.2
-
en

8006
Schweiz
3d plot
Ok ich formuliere das Problem nochmals anders: In 2D benutze ich einfache Kurvendiagramme, die mir die ankommenden Daten sofort in einen Graphen einzeichnen. Nun habe ich aber noch Positionsdaten (x,y,z) die ich gerne in einem 3D Graphen darstellen würde. Gibt es eine Funktion, welche mir Punkte ein einen 3D-Graphen einzeichnet, alle vergangenen Punkte behält und miteinander verbindet?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.05.2010, 10:22
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
3d plot
Nein, das Aufsammeln der Daten in einem/mehreren Arrays zur Anzeige im 3D-Plot musst du selber machen.

Stichworte zur Realisierung: Shift-Register und Build-Array.

Gruß, Jens

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
04.05.2010, 12:06
Beitrag #4

estiro Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Apr 2010

8.2
-
en

8006
Schweiz
3d plot
Hallo Jens,

danke für deine Antwort. Ich hab das mal gebaut, wie du es mir empfohlen hast und das funktioniert auch so. Nun habe ich aber das Problem, dass ich so viele Daten habe, sodass die Arrays unendlich gross werden und mein Plot mir nach ca. 5 sekunden das ganze Programm ausbremst. Ich hänge mal mein VI an, vielleicht hast du ja eine Idee oder siehst gleich den Fehler Smile. (Bitte nicht erschrecken, ich arbeite erst seit 4 Tagen mit LabVIEW...Smile)

Vielen Dank!

LV-Version: 9.0


Angehängte Datei(en)
Sonstige .vi  Lesen.vi (Größe: 53,48 KB / Downloads: 254)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.05.2010, 19:22
Beitrag #5

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
3d plot
' schrieb:Nun habe ich aber das Problem, dass ich so viele Daten habe, sodass die Arrays unendlich gross werden und mein Plot mir nach ca. 5 sekunden das ganze Programm ausbremst.
Ich empfehle folgendes:
Zum einen nur soviele Daten anzeigen, wie sinnvoll ist. Sinnvoll können z.B. die letzen 10.000 Werte sein.

Außerdem solltest du mit den Arrays wie folgt vorgehen: Vor der While-Schleife drei Array erstellen der Größe 10.000 Werte ("Array initialisieren"). In der Schleife wird dann nicht "In Array einfügen" gemacht, sondern "Teil-Array ersetzen". Ersteres verbraucht unendlich viel Zeit und Speicher, zweiteres weder das ein noch das andere (naja, zumindest fast). Jetzt ist zwar ein Indexzähler notwendig und ein bischen Arraymanagement, das ist zwar etwas Programmieraufwand, geht aber zur Laufzeit schneller.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.05.2010, 11:17
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
3d plot
Ganz schlecht in deinem VI ist, dass du Lese- und Anzeigeschleife komplett entkoppelt hast.

Was passiert bei dir: Deine "3D-Plot"-Schleife läuft parallel zu deiner "VISA-Schleife", und das so schnell wie möglich. Dauernd werden die lokalen Variablen ausgelesen und an deine Arrays angehängt. Somit wächst das Array rasend schnell an, und es kommt zu den Verzögerungen, die du bemerkst. Dauernd muss neuer Speicher alloziert werden wegen der Array-Vergrößerungen, und der 3D-Plot ist bei vielen Daten auch nicht gerade der Schnellste.

Mögliche Lösungen:
1. Die Anzeige kommt mit in die VISA-Lese-Schleife. Das ist aber nur zu empfehlen, wenn du nicht allzu schnell und allzu lange Daten für diese Darstellung sammelst.
2. Du überträgst per Queue (und schon 6. Tag kriegst du "Advanced LabVIEW Features um die Ohren gehauenWink) die neu erfassten Datenpunkte von der VISA- zur 3D-Plot-Schleife. Vorteil: Die Schleifen können komplett unabhängig voneinander laufen, und die 3D-Plot-Schleife legt nur dann einen neuen Datenpunkt an, wenn auch wirklich in der VISA-Schleife ein neuer Punkt ausgelesen wurde.

Gruß, Jens

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
Anzeige
Antwort schreiben 


Gehe zu: