LabVIEWForum.de - XY - Graph Echtzeitdarstellung

LabVIEWForum.de

Normale Version: XY - Graph Echtzeitdarstellung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo liebe Labview Gemeinde,
Ich habe ein problem bei dem ihr mir hoffentlich helfen könnt.
Und zwar habe ich einen XY- Graph bei dem sich in Abhängigkeit der Zeit der X Achsenabschnitt verschiebt
und ein Cursor einen eingelsenen Messwert darstellt. Das funktioniert alles auch soweit das Problem ist nur, dass
ich das gerne so schnell wie möglich laufen lassen würde damit die grafische Ausgabe flüssig läuft. Allerdings ist
bei mir so bei ca. 20 Hz schluss.
Hat einer von euch eine Idee oder einen guten Tipp ?

Vielen dank schon mal im voraus
Hallo Bene,

Zitat:Allerdings ist bei mir so bei ca. 20 Hz schluss.
Bei mir auch: Schneller gucken kann ich nicht…

Zitat:Hat einer von euch eine Idee oder einen guten Tipp ?
Idee: Du verbesserst dein VI.
Tipp: Du hängst dein VI mal hier an, damit wir dir sagen können, was nicht optimal läuft…

Generell: Anzeigen mit mehr als 20Hz zu updaten frisst nur Rechenzeit und bringt (meist) kaum Informationsgewinn!
So das Projekt lsg ziemlich lange auf Eis aber jetzt steh ich wieder an genau dem gleichen Problem.
Ich hab das Vi mal angehängt. Ich würde mich über Hilfe oder Ideen echt freuen ... ich weiß nicht mehr weiter.
Hallo Bene,

bitte Profil_ergaenzen, wenn du jetzt mit LV2016 arbeitest!

Zitat:habe ich einen XY- Graph bei dem sich in Abhängigkeit der Zeit der X Achsenabschnitt verschiebt und ein Cursor einen eingelsenen Messwert darstellt.
Das scheint ja zu funktionieren…
Wozu überhaupt der XY-Graph, wenn du da nur einen Cursor bewegst?

Zitat:Das funktioniert alles auch soweit das Problem ist nur, dass ich das gerne so schnell wie möglich laufen lassen würde damit die grafische Ausgabe flüssig läuft. Allerdings ist
bei mir so bei ca. 20 Hz schluss.
Mal überlegen: du hast die TWL mit f=1kHz und dt=50ms konfiguriert. Und erreichst damit 20Hz.
Ist doch alles ok, würde ich sagen! Big Grin

Nochmal: mehr als 20Hz sind nicht sinnvoll - schneller kannst du auch nicht gucken!

Wie hast du eigentlich deinen DAQmx-Task definiert?

[attachment=57199]
- Ersetze die TWL durch eine normale While-Loop!
- Du brauchst keine Wartezeit in der Loop, sondern nur eine vernünftige Vorgabe für Samplerate und Anzahl der zu lesenden Messwerte im DAQmxTask!
- Du brauchst keine Sequenz im VI, sondern kannst alles per DATAFLOW regeln!
- Du kannst die 4 Propertynodes, mit denen du den Graph konfigurierst, zu einer zusammenfassen!
- In deinem VI fehlen Properties wie "ActivePlot" und "ActiveCursor"…
Hi Gerd,
Also danke für die schnelle Antwort. Vielleicht mal kurz zum Hintergrund für was ich das ganze Vi brauche. Es handelt sich dabei um ein
Fahrerleitgerät für einen Kraftfahrzeug-Rollenprüfstand. Bei dem der Fahrer das vorgegebene Geschwindigkeitsprofil abfährt. Das Geschwindikeitsprofil liegt in dem XY Graph. Der Cursor gibt dann die Ist-Geschwindigeit aus. Deshalb brauche ich den XY-Graph. Ich beweg hier nicht nur den Cursor sondern den angezeigten X-Achsen Abschnitt in Abhängigkeit der Zeit. Für mich ist daher auch die genaue Schleifendauer wichtig. Läuft die Schleife zu langsam stimmt das abgefahrene Geschwindigkeitsprofil nicht mehr mit dem vorgegebenen überein.

Zitat:Wie hast du eigentlich deinen DAQmx-Task definiert?
Ist erstmal ein simuliertes Spannungssignal. Der Erfassungsmodus ist bei 1 Wert auf Anforderung

Ist es denn üblich, auch beim aufzeichnen von Messungen, den Takt durch den Task vorzugeben und nicht durch die Schleife ?
Hallo Bene,

Zitat:Der Erfassungsmodus ist bei 1 Wert auf Anforderung
Das ist die langsamste Methode, die DAQmx so bietet…

Zitat:Ist es denn üblich, auch beim aufzeichnen von Messungen, den Takt durch den Task vorzugeben und nicht durch die Schleife ?
Ja klar!
Oder wie sollte man sonst definierte (auf die Nano-/Mikrosekunde genaue) Sampleraten größer als 100Hz erreichen?

Zitat:Läuft die Schleife zu langsam stimmt das abgefahrene Geschwindigkeitsprofil nicht mehr mit dem vorgegebenen überein.
Deshalb gibt es solche Dinge wie das Producer-Consumer-Programmierschema: damit kann man Dinge/Aufgaben/Tasks voneinander entkoppeln!
Eine Schleife, die eine Anzeige aktualisiert, ist dann nicht mehr davon abhängig, wie schnell eine DAQ-Schleife Daten einliest…
Hi Gerd,
Danke für die schnelle Antwort.
Also Producer-Consumer dann über zwei parallele Schleifen. Eins Task-schleife und eine Aktualisierungsschleife, richtig ?!
Dann steh ich aber imemr noch vor dem Problem das die aktualisierungsschleife eine definierte zeit braucht... oder seh ich
den Wald vor lauter Bäumen nicht mehr?
Hallo Bene,

Zitat:Dann steh ich aber imemr noch vor dem Problem das die aktualisierungsschleife eine definierte zeit braucht...
Diese Schleife wird dann aber wesentlich einfacher diese Iterationszeit einhalten können, wenn sie nicht noch zusätzlich andere Aufgaben wie DAQ-Abfragen erledigen soll…
Die Datenübergabe kann auch über Notifier erfolgen, da musst du nicht wie bei einer Queue auf neue Daten warten (es wird einfach der letzte bekannte Messwert dargestellt)!
Außerdem: ein XY-Graph selbst kann je nach Datenmenge (und Ploteigenschaften), die er darstellen soll, eine nicht unerhebliche Zeit für die Darstellung benötigen. Du würdest somit auch verhindern, dass der Graph deine DAQ-Abfrage ausbremst!
Hi Gerd,
Danke für die Tipps
Gibt es denn auch noch Stellschrauben am XY-Graph ? Damit dieser schneller aktualisiert.
Ein nicht unerheblicher Faktor scheint auch die (geometrische) Größe des XY graph auf dem Frontpanel zu sein
Hallo Bene,

neben der Größe in Pixeln zählt auch die Größe der Plots in Anzahl der Samples…
Und mit 20Hz an den Propertynodes rumzuspielen, dürfte auch nicht zielführend sein!

Warum verschiebst du die Plots nicht einfach in z.B. 10s-Schritten, während dein Graph die nächsten 60s anzeigt? Der Cursor kann sich doch innerhalb des 10s-Schritts auf der X-Achse weiterbewegen!
(Die "Fahrtanzeigen", die ich bei Rollen-PSTs gesehen habe, scrollen übrigens meist in Richtung der Y-Achse. Der Cursor zeigt nicht nur die aktuelle Position im Profil an, sondern auch die aktuelle Abweichung von der Soll-Vorgabe…)
Seiten: 1 2
Referenz-URLs