INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Performance bei Graphen/Charts erhöhen



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!

14.06.2012, 06:37 (Dieser Beitrag wurde zuletzt bearbeitet: 14.06.2012 06:55 von Matze.)
Beitrag #1

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
Performance bei Graphen/Charts erhöhen
Hi zusammen,

ich erfasse Messwerte über max. 3 Minuten mit 250 Hz. Diese zeige ich in einen Chart an.

Da ich mit Cursors (und einem generierten Hintergrundbild) Bereiche markieren möchte, bleibt mir nur der Graph übrig. Mit einem Diagramm (mit der integrierten Historie) kann man keine Cursors verwenden, wenn ich das richtig sehe.

D.h. ich muss die Werte fortlaufend einem Array hinzufügen (einmalige Initialisierung und anschließendes Ersetzen der Elemente). Das sende ich dann fortlaufend an den Chart.
Von der Performance ist das sehr schlecht. Ich vermute deshalb, weil jedesmal die gesamten Messwerte neu gezeichnet werden. Bei einem Diagramm wird aufgrund der Historie vermutlich nur der neu hinzukommende Teil neu gezeichnet/berechnet.
D.h. hier wäre die Performance vermutlich besser.

Zur Reduzierung der Werteanzahl zeige ich nur jeden 10. Wert an, aber je nach eingestellter Messzeit (mal 10 Sekunden, mal 3 Minuten) gibt's hier sicher Optimierungsmöglichkeiten.

Wie macht ihr das in einem solchen Fall?
Kann ich irgendwie auf das Diagramm wechseln, in der Hoffnung, dass die Performance besser wird?

Evtl. liegt das Problem auch beim großen "Puffer-Array" (ca. 50.000 Werte pro Messkanal; max. 6 Kanäle).

Grüße
Matze

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.06.2012, 09:59
Beitrag #2

BNT Offline
LVF-Freak
****


Beiträge: 740
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Performance bei Graphen/Charts erhöhen
Hi Matze
Die Anzahl der Werte zu reduzieren ist der richtige Ansatz. Ich würde aber noch einen schritt weiter gehen:

Du solltest die Zahl der angezeigten Werte auch die Anzahl der Pixel in den Graph beschränken. Dann muss LV nicht soviel rechenn um den Graph darzustellen. Um den Informationsgehalt nicht zu sehr zu reduzieren, würde ich zusätzlich den Mittelwerte, Standardabweichung, Minimum und Maximum anzeigen, Maximum, Mittelwertt + Sigma, Mittelwert, Mittelwert - Sigma, Minimum.

Der Bereich der Angezeigten Werte kann durch den Benutzer z.B. durch Zoomen eingestellt werden. Im Blockdiagramm rechnest Du die Anzeigewerte aus, das gaht vergleichsweise schnell. Auch die Aktualisierungsrate, Schreiben auf den Graphindikator, kannst Du beschränken, weill der Mensch nicht beliebeig schnell gucken kann.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2012, 10:50
Beitrag #3

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
RE: Performance bei Graphen/Charts erhöhen
Hallo,

danke für die Antwort.
Eine Zoom-Funktion benötige ist erstmal nicht.

Ich muss mal schauen, wie ich die Werteanzahl am besten verringere.

Wie sieht's den mit dem Diagramm aus? Hat das aufgrund des integrierten Puffers eine bessere Performance? Wenn ja, kann man da irgendwie Cursors verwenden?

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2012, 11:02
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Performance bei Graphen/Charts erhöhen
Ich bezweifle, dass ein Chart besser ist, vor allem wenn irgendwelche Autoscalings aktiv sind. Intern hält es schließlich auch alle angezeigten Daten (Stichwort PropertyNode History).

Zwecks Reduktion der Daten für eine Darstellung, da gab es mal was auf ni.com, GigaLabview.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.06.2012, 06:05
Beitrag #5

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
RE: Performance bei Graphen/Charts erhöhen
Danke, GigaLabVIEW habe ich mir kürzlich angesehen, aber 100% nachvollziehen konnte ich das nicht, muss ich zugeben.

Klar werden intern die gleichen Werte gepuffert, aber ich könnte mir vorstellen, dass ein Chart immer nur die neu hinzugekommenen Werte neu zeichnet und die alten quasi gezeichnet lässt. Bei einem Graph wird immer das komplette Messwert-Array übergeben und daher wird der Graph bei jeder Zuweisung alles neu zeichnen müssen.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Messdaten Performance simcum 12 7.182 10.05.2019 19:00
Letzter Beitrag: jg
  X-Achse immer um die Schleifendauer erhöhen H_S 4 3.896 09.11.2009 16:28
Letzter Beitrag: SeBa
  Dynamische Anzahl von Charts Christoph.Budelmann 11 9.709 10.05.2007 14:08
Letzter Beitrag: canix
  2 Graphen mit unterschiedlichem dt in einen Graphen unaimed 8 10.182 14.03.2005 14:45
Letzter Beitrag: unaimed

Gehe zu: