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!
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
Anzeige
16.07.2010, 14:52 (Dieser Beitrag wurde zuletzt bearbeitet: 16.07.2010 14:53 von Y-P.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Sind 10 Graphen zuviel bei 1Hz?
Lad' mal Dein VI hoch.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
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
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
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.
' 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?
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
16.07.2010, 16:24 (Dieser Beitrag wurde zuletzt bearbeitet: 16.07.2010 16:26 von conne.)
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.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Sind 10 Graphen zuviel bei 1Hz?
Aber bitte gezippt.
Gruß Markus
' schrieb:müsste ich vermutlich das ganze Projekt mal hochladen, aber das ist wie gesagt ganz schön viel.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
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