LabVIEWForum.de - Array-Werte an XY-Graph übergeben

LabVIEWForum.de

Normale Version: Array-Werte an XY-Graph übergeben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe ein Phänomen, das ich mir absolut nicht erklären kann.
Ich bekomme mehrere Werte in einer Schleife über DAQmx (spielt jedoch keine Rolle). Diese habe ich in 2 Double-Arrays abgelegt und möchte diese Werte fortlaufend in einem XY-Graphen anzeigen.

D.h. ich lese den XY-Graphen aus und füge an die vorhandenen Werte die neuen hinzu. Dann schreibe ich die neuen Daten in den Graphen.
Das funktioniert auch ganz gut, nur zeigt der Graph bei mir immer alle Werte an, bis auf die neu hinzugefügten. Er ist somit einen Schleifendurchlauf hinterher.

Das folgende Blockdiagramm zeigt mein VI.
Zu sehen sind dort 2 Cluster-Zweige. Der obere ist aktuell verbunden und zeigt die Situation, wie sie aktuell vorhanden ist: Die neuesten Werte sehe ich im Graphen nicht.
Beim Zweig darunter (mit der roten Linie) habe ich überprüft, was passiert, wenn ich die neuen Werte direkt dem Graphen zuweise.
Hier werden die neuen Werte jedoch problemlos angezeigt.

[attachment=27854]

Wie kann das sein?
Sehe ich das richtig, du fügst die neuesten Werte vorne ins XY-ClusterArray ein? Sollten die nicht hinten dran? Die sind doch zeitlich auch später erfasst worden?!
Vorne? Beim VI "Array erstellen" füge ich sie doch am unteren Anschluss ein und somit am Ende.
Wieviele Werte zeigst du denn im Graphen an?

Bei der Anzeige großer Datenmengen wird das ganze nämlich langsam. Erstens, weil das Update des XY-Graphen im FP dann lange braucht, und zweitens, weil du deine Daten per PropertyNode ausliest und wieder schreibst.

Performancemäßig besser wäre, die Daten für den Graphen nur in einem Schieberegister vorzuhalten und z.B. nur alle 50-100 ms an den Graphen weiterzugeben.

Gruß, Jens

@Achim: Da hast du dich verguckt!?
[attachment=27856]

war wohl Blödsinn...
Hallo Jens,

ich muss die Werte wohl so oder so per Property Node auslesen, da ich nur Plot 0 verändern möchte. Und ich kann meines Wissens nur alle Plots auf einmal zuweisen. Daher muss ich die vorhandenen auslesen und den nullten ersetzen, oder?

Die Werteanzahl hält sich in Grenzen mit vielleicht 500 - 1000.

@Achim: Das ist das VI "Teil-Array ersetzen". Dort ersetze ich den nullten Plot.
Ich habe den Übeltäter gefunden:
Ich verwende das VI "Signalverläufe erneut abtasten (einmalig)", um die Anzahl der Werte zu reduzieren. Leider sind bei der gleichen Werteanzahl an den Eingangssignalen die Werteanzahl der Ausgangssignale hier unterschiedlich. Daher konnte der XY-Graph das nicht darstellen. Wieso es in dem einen Fall ging, verstehe ich noch nicht.

Mit dem VI "Signalverläufe erneut abtasten (kontinuierlich)" erhalte ich am Ausgang jeweils die gleiche Werteanzahl, wie man es erwartet. Wieso das beim anderen VI nicht so ist, verstehe ich nicht. Das kommt mir wie ein Bug vor.

Wenn mir dennoch jemand verraten könnte, wie ich nur Plot 0 im XY-Graph ersetzen kann ohne Property-Node, wäre es nett (falls das überhaupt geht).

Grüße
Danke SeBa. Dann muss ich schon den kleinen Umweg gehen.
Wobei hier die Inplace-Elementstruktur wohl Vorteile im Speichermanagement bringt.Smile

[attachment=27871]
Ja wahrscheinlich. Das Problem mit dem Ding ist, dass es so ...ich will nicht versteckt sagen... abgelegen platziert ist, dass ich es vergesse.
Und der Vorteil bei solch kleinen Arrays dürfte auch nicht so immens sein.


Gruß SeBa
Referenz-URLs