LabVIEWForum.de - Sind 10 Graphen zuviel bei 1Hz?

LabVIEWForum.de

Normale Version: Sind 10 Graphen zuviel bei 1Hz?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
Ich habe ein mittlerweile recht umfangreiches Programm, das Daten mit 1Hz ausliest, und auf verschiedene Arten darstellt. Unter anderem auf zehn xy-Graphen, von denen die meisten gleich zwei Kurven darstellen. Jetzt sieht es so aus, dass die ganzen Abläufe sehr langsam werden, und letzten endes eine Akutaliesierung auf dem Frontpanel nur noch alle 2 Sekunden geschieht. Je mehr Graphen ich lösche, desto schneller (oder weniger holperig) läuft es dann wieder.
Gehen die Graphen-Anzeigen dermaßen auf die Rechenleistung? Bei dem betreffenden Rechner übersteigt die CPU-Nutzung von LabVIEW dabei niemals 23%.
Gibt es eine Möglichkeit, außer des heruntersetzen der Aktualisierungsgeschwindigkeit, dennoch mit vielen Graphen zu arbeiten?
Gruß
conne
Lad' mal Dein VI hoch.


Gruß Markus
1Hz Refreshrate hört sich doch schon mal gut an. Man müsste mal schauen, was da bei vielen Graphen dann passiert... könntest du dein Setup nicht als Beispiel VI hochladen... mit simuliertem Signal? Dann reden wir von der selben Anzahl Graphen/Plots ect.

So aus dem Bauch raus frage ich dann einfach nochmal...

... du bekommst Daten mit 1Hz... und stellst die in XY-Graphen dar... XY-Graphen plotten ihr gesamtes Array beim refresh, daher wirkt es langsamer bei vielen Daten.

-> Ist denn deine Zykluszeit auch 1Hz, d.h. läuft deine Schleife auch mit 1Hz oder läuft die Schleife mit den Graphen etwa schneller oder gar ungebremst?


Gruß SeBa
Also 1 Hz ist kein Problem. Hab's hier mal probiert:
[attachment=27923]
Lv85_img

Gruß Markus
Puh, das ganze ist wie gesagt sehr umfangreich. Ich glaube, es sind auch 21 SubVIs drin.
Die Schleife läuft erstmal ungebremst. Prinzipiell wird der Ablauf aber durch die Dateneingänge bestimmt. Die RS232-Schnittstelle wird ausgelesen bis CRLF kommt, dann werden die Daten zur Verarbeitung an die SubVIs geschickt, und daraus dann an die Graphen verteilt. Da die Daten mit 1Hz überhaupt nur ankommen, wird die Schleife ja durch das VISA Read abgebremst.
Ich hoffe, Ihr steigt da ohne das VI durch.
Wieviele Werte/Datenpunkte werden denn pro Graph angezeigt. Ab mehreren 10.000 Datenpunkten wird so ein Graph-Update langsam. Und das bei dir mal 10.

Gruß, Jens
' schrieb:Gehen die Graphen-Anzeigen dermaßen auf die Rechenleistung?
Im Prinzip Ja. Graphen brauchen nun mal viel Rechenleistung - und noch mehr Zeit.
Das Refreshen der Graph-Anzeige geschieht im Hintergrund. Mit dem Hineinschreiben der Daten in das Anzeigeelement werden die Daten nicht sofort angezeigt, also in der selben µs, sondern erst verzögert. Während also der Datenfluss weitergeht, wird im Hintergrund die Graphanzeige aktualisiert. Das hat zur Folge, dass man schneller Daten in den Graph schreiben, als der sie anzeigen kann. Das siehst du dann als Ruckeln.

' schrieb:Die Schleife läuft erstmal ungebremst.
Ungebremst an sich in immer schlecht. Demnach geht also auch das Refreshen der Graphen ungebremst - das aber ist nicht so gut.

Zitat:Prinzipiell wird der Ablauf aber durch die Dateneingänge bestimmt. Die RS232-Schnittstelle wird ausgelesen bis CRLF kommt, dann werden die Daten zur Verarbeitung an die SubVIs geschickt, und daraus dann an die Graphen verteilt. Da die Daten mit 1Hz überhaupt nur ankommen, wird die Schleife ja durch das VISA Read abgebremst.
Wenn dem so ist, würde deine Schleife ja mit 1 Sekunde Schleifendauer laufen. Das ist auf jeden Fall in Ordnung.

Naja, wenn ich davon ausgehe, dass ein Graphrefresh 100ms dauert, dauern 10 Stück eine Sekunde. Wie groß sind die Graphen denn? Jeder Bildschirmfüllend?
Nee, also, die Graphen selbst befinden sich auf unterschiedlichen Registerkarten, und werden die meiste Zeit gar nicht dargestellt. Sonst immer nur zwei gleichzeitig.
Wenn das Programm Daten empfängt, kommt jeweils ein Wert zum Graphen dazu. Dazwischen kommt nichts.
Ich weiß nicht, ob dass ein Anhaltspunkt ist, aber manchmal (zum Beispiel grade jetzt) läuft das ganze total flüssig. Manchmal setzt aber auch einfach eine Anzeige ganz aus, so dass zum Beispiel auf einmal die Uhr nicht mehr mitläuft. Während die anderen Anzeigen immernoch tadellos funktionieren.
Wenn ich die selben Daten an ein anderes Programm (z.B. Hyperterminal oder ein NMEA Anzeigeprogramm) übergebe, läuft es auch einwandfrei. Muss also mit dem Programm zu tun haben.
Damit Ihr es richtig begutachten könnt, müsste ich vermutlich das ganze Projekt mal hochladen, aber das ist wie gesagt ganz schön viel.
Aber bitte gezippt. Big Grin

Gruß Markus

' schrieb:müsste ich vermutlich das ganze Projekt mal hochladen, aber das ist wie gesagt ganz schön viel.
Natürlich gezippt. Jetzt siehts aber grade so aus, als würde es laufen. Ich habe jetzt doch mal eine 10ms Verzögerung eingebaut.
Tatsächlich ist auch die Prozessor-Last für Labview jetzt auf 1-2% gesunken. Wurde also doch nicht durch die Schnittstelle getimed, wie ich dachte. Komisch...
Ich lass das mal längere Zeit laufen jetzt. Ist ja auch Wochenende.
Danke erstmal für Eure Teilnahme ;-)
Gruß Conne
Referenz-URLs