Hallo liebes Forum,
Ich bin gänzlich unerfahren beim Erstellen von Diagrammen. Durch probieren und mit Hilfe des Internets habe ich herausgefunden wie man Werte über Zeit in ein Diagramm schreiben und anzeigen lassen kann. Doch jetzt möchte ich Betriebspunkte anzeigen lassen, sprich keine Zeitachse.
Ich bekomme Echtzeitmessungen von Volumenstrom und 3 verschiedene Drücke, die ich bereits in die richtige Maßeinheit umgerechnet habe. Jetzt möchte ich in einem Diagramm alle drei Betriebspunkte(-linien) als Graph anzeigen.
Wie gehe ich da vor? Welchen Diagrammtyp verwende ich? Wie erstelle ich das Array, sodass ich meinetwegen immer die 50 aktuellsten Werte drin stehen habe?
Ich benutze LV 2012.
Gruß Tim
suchst du nach dem hier:
http://forums.ni.com/t5/LabVIEW/how-do-i...d-p/803352
?
die Anzahl der Datenpunkte im Plot hängt jetzt noch ein wenig von deiner Aktualisierungsrate ab; derentsprechend kannst du z.B. deine x-range in den Plot-Eigenschaften einstellen.
Nachtrag: falls du die Daten noch in einem Array / mehreren Arrays haben willst für weitere Berechnungen wie einen gleitenden Durchschnitt, ist dieses Beispiel von NI ganz nützlich:
http://www.ni.com/example/30229/en/
(03.05.2016 11:05 )TenaciousTim schrieb: [ -> ]Wie gehe ich da vor? Welchen Diagrammtyp verwende ich?
XY-Graph!!!!
(03.05.2016 11:05 )TenaciousTim schrieb: [ -> ]Wie erstelle ich das Array, sodass ich meinetwegen immer die 50 aktuellsten Werte drin stehen habe?
Im einfachsten Fall ein Array Subset von Volumen und Druck, mit Bundle zusammenfassen und an XY-Graph anschließen.
Schau dir die Bsp. im NI Example Finder an!
Gruß, Jens
Entschuldigt bisste ich habe wohl den Schwerpunkt der Frage falsch gesetzt.
Um meinen gewünschten Graphen zu erhalten muss ich (wahrscheinlich) ein Array erstellen was immer die 50 aktuellsten Werte beinhaltet. Diese dann anzeigen zu lassen werde ich dann denke ich hinbekommen (Der XY-Graph).
Also wie schaffe ich es die aktuellsten X-Y Werte (Volumenstrom Druck) im Array zu haben, also wie aktualisiere ich das ständig?
Hallo Tim,
Zitat:wie schaffe ich es die aktuellsten X-Y Werte (Volumenstrom Druck) im Array zu haben, also wie aktualisiere ich das ständig?
Zwei Möglichkeiten:
1. BuildArray mit dem neuen Wert am ersten Input, gefolgt von einem ArraySubset mit Länge=50
2. InitArray zum Erstellen eines Arrays mit 50 Werten, in der Schleife dann Rotate1DArray um eine Position nach hinten und ReplaceArraySubset, um den neuen Messwert in Index 0 einzutragen
Beide Varianten natürlich mit einem Schieberegister zum Speichern des Arrays…
Das ist Grundlagenwissen Array-Verwaltung und sollte nach den frei verfügbaren LabVIEW-Einsteigerkursen eigentlich "gewusst sein"…
Habe es ausformuliert und das Problem mit der "Aktualität" mit Hilfe der Rückkopplung gelöst.
Es sollte jetzt also der Wert der vorherigen Schleife mit in das Array rein geschrieben werden.
[
attachment=55835]
Danke für die Hilfe
Gruß Tim
Danke Lucki,
aber was ist das für ein Befehl und wo finde ich ihn? Aber meine Lösung würde doch auch klappen oder?
(11.05.2016 11:26 )TenaciousTim schrieb: [ -> ]aber was ist das für ein Befehl und wo finde ich ihn?
Einfach per Quickdrop (Ctrl+Leertaste) suchen!?
(11.05.2016 11:26 )TenaciousTim schrieb: [ -> ]Aber meine Lösung würde doch auch klappen oder?
Autsch, deine Version funktioniert zwar, aber hat ein paar gewaltige Nachteile. Vor allem wird irgendwann dein VI zwecks Speicherüberlauf abstürzen, denn du machst die Arrays in den Feedback-Nodes immer größer und größer - ohne Begrenzung.
Performancemäßig ist es außerdem schlecht, bei Build Array an einen Einzelwert ein Array anzuhängen, du umgekehrte Reihenfolge ist wesentlich besser.
Gruß, Jens