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 

Viele Messdaten in XY-Graph darstellen



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!

09.01.2013, 23:10 (Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2013 08:41 von TSC.)
Beitrag #1

RabenFlug Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 59
Registriert seit: Apr 2010

2016
2009
DE

22307
Deutschland
Viele Messdaten in XY-Graph darstellen
Hallo liebe Experten,

im Moment hänge ich mal wieder an einem wahrscheinlich ganz einfachen Problem. Es geht darum ein Array mit vielen Messdaten in einem XY-Graph darzustellen. Das Array mit den Messdaten "GraphData" hat 10 Spalten, Spalte0 ist Datum/Zeit, Spalte 1-8 sind die 8 Messwerte, Spalte9 dient zur Speicherung von Markern.
In einer Schleife werden kontinuierlich (z.B. alle 50 mSec) Zeilen mit Daten an das Array angehängt (ja, ich weiß, statt der Variablen sollte das mit Schieberegister gemacht werden Cool). Da kommen schnell mal 60.000 Zeilen zusammen!

In einer anderen Schleife im Hauptprogramm soll dieses Array einem XY-Graphen übergeben werden. Da das Format meines Messdatenarrays "GraphData" anber nicht direkt an den Graphen angeschlossen werden kann, muss ich die Daten erst umformen. Im Moment mache ich das im angehängten SUB_Vi. Das funktioniert auch, allerdings nur solange das Messdatenarray "GraphData" nicht zu groß wird. Ich nehme mal an das liegt daran dass bei jedem Aufruf immer Alle Messdaten umgewandelt werden, nicht sehr effizient!

Wie könnte man das effizienter und sinnvoll gestalten? Ich dachte zuerst an ein "XY-Graph" Array, das geht aber nicht, da im Eingangsdaten Array des XY Graphen die "Spalten" die einzelnen Plotts sind, die wieder aus einem Cluster aus X und Y Arrays (Werten) bestehen.

Hoffentlich habe ich das jetzt verständlich beschrieben...


Angehängte Datei(en) Thumbnail(s)
       

12.0 .vi  SUB_GraphControllerData2Graph.vi (Größe: 34,66 KB / Downloads: 233)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.01.2013, 23:24
Beitrag #2

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Viele Messaten in XY-Graph darstellen
Hallo RabenFlug,

wenn du das, was da in deinem Screenshot zu sehen ist 60000 mal machst, glaub ich wohl, dass sich da irgendwann nix mehr rührt. Du sagst, dass´n Schieberegister wohl besser wäre - noch schneller würde es über Queues gehen.

Aber dein Problem scheint ja die Darstellung zu sein. Wenn du aber dein 60000-er Array immerzu in einem X/Y-Graph darstellst, wird es ja jedes Mal neu dargestellt, das dauert dann schonmal.
Ich würde mir beim Erstellen schonmal einen Datentyp zusammenbauen, der einfach darzustellen ist, das ganze über Queues realisieren und entweder nach der Datensammelei alles einmal darstellen oder bei kontinuierlicher Darstellung dann auf Verlaufsgraphen ausweichen.


PS: konverrtier mal dein VI in 2011 - 2012 können hier nicht viele lesen


Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.01.2013, 23:36
Beitrag #3

RabenFlug Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 59
Registriert seit: Apr 2010

2016
2009
DE

22307
Deutschland
RE: Viele Messaten in XY-Graph darstellen
Hallo Marko,

erst mal danke für den Tip mit den Queues, das kannte ich bis jetzt noch nicht. Wie gesagt, die Datenerfassung funktioniert einwand- und ruckelfrei, das Problem ist ehr die Umrechnung. Leider muss der Graph ständig aktualisiert werden, da ich mit dem Graph sowohl kleine wie auch große Messzeiten (Sekunden bis Stunden) anzeigen will.

Gerade der von dir angesprochene "besser geeignete Datentyp" macht mir eben Kopfzerbrechen, konvertiert werden muss er ja trotzdem um die Messdaten anzuzeigen, oder?

P.S. Anbei das VI für LabView 2010, sicher ist sicher!


Angehängte Datei(en)
10.0 .vi  SUB_GraphControllerData2Graph_LV2010.vi (Größe: 26,83 KB / Downloads: 212)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.01.2013, 09:05 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2013 09:06 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Viele Messaten in XY-Graph darstellen
Hallo Rabe,

du hast schon mal gehört, das LabVIEW auch mit Arrays in Schleifen verarbeiten kann?
Wenn nicht, empfehle ich die Links in meiner Signatur...
    (statt deiner IndexArray-Orgie... [IndexArray könnte man auch aufziehen, um mehrere Einträge auf einmal zu indizieren.])

Wie oft rufst du dieses subVI auf? Ständig an irgendwelchen Properties rumzuschrauben kann auch Rechenzeit kosten...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.01.2013, 09:11 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2013 09:18 von Lucki.)
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Viele Messaten in XY-Graph darstellen
Wenn Du immer neue Daten hinzufügst: dafür ist doch speziell das Signalverlaufsdiagramm konzipiert. Dann fällt das ganze Gedöns mit Schieberegistern, lokale Variablen, Ringpuffern usw. weg. Was spricht denn dagegen?
Außerdem: Falls das dt immer konstant ist, lohnt es sich bei so vielen Daten, die Zeitwerte in der ersten Spalte gar nicht zu verwenden bzw. nur dazu, das dt herauszulesen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.01.2013, 20:18 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2013 20:19 von RabenFlug.)
Beitrag #6

RabenFlug Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 59
Registriert seit: Apr 2010

2016
2009
DE

22307
Deutschland
RE: Viele Messaten in XY-Graph darstellen
(10.01.2013 09:11 )Lucki schrieb:  Wenn Du immer neue Daten hinzufügst: dafür ist doch speziell das Signalverlaufsdiagramm konzipiert. Dann fällt das ganze Gedöns mit Schieberegistern, lokale Variablen, Ringpuffern usw. weg. Was spricht denn dagegen?
Außerdem: Falls das dt immer konstant ist, lohnt es sich bei so vielen Daten, die Zeitwerte in der ersten Spalte gar nicht zu verwenden bzw. nur dazu, das dt herauszulesen.
Das Problem ist, dass es nicht nur um die reine Darstellung der Daten in dem großen Array geht. An anderer Stelle verarbeite ich die Daten noch weiter, exportiere bestimmte Bereiche, setze, lese und modifiziere Merker, reagiere auf bestimmte Zeitstempel usw. Leider ist das dt auch nicht immer gleich, so dass es reichen würde die Startzeit, Anzahl der Messpunkte und dt zu kennen. Es kann sich währen der Messung ändern. Den Zeitstempel brauche ich leider auch an anderer Stelle, der ist mir sehr wichtig Smile
Werde aber gleich mal versuchen ob der Signalverlaufsgraph nicht wirklich besser geeignet ist.

(10.01.2013 09:05 )GerdW schrieb:  du hast schon mal gehört, das LabVIEW auch mit Arrays in Schleifen verarbeiten kann?
Hallo GerdW,
ja, das ist bekannt. Aber das hilft mir auch nicht weiter wenn die 60.000 und mehr Messdaten Zeilen bei jedem Update des Graphen (alle paar 100 mSec) in einer Schleife in ein XY-Graph taugliches Format gebracht werden müssen. Aber es stimmt natürlich, die "GraphControllerData2Graph" ist nicht gerade sehr "schön", in einer Schleife wäre das evtl. besser aufgehoben.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.01.2013, 20:38
Beitrag #7

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Viele Messaten in XY-Graph darstellen
Hallo RabenFlug,

wenn du 60000 Daten und mehr im 100ms-Takt in einen Graphen schreiben willst, geht das mit dem X/Y sowieso nicht mehr, da kommst du am Verlaufsgraphen garnicht vorbei, erst recht nicht bei dieser Update-Rate.

Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.01.2013, 20:54
Beitrag #8

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Viele Messaten in XY-Graph darstellen
Beispiel Signalverlauf:


Angehängte Datei(en)
11.0 .vi  graphdata.vi (Größe: 25,43 KB / Downloads: 264)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.01.2013, 00:18
Beitrag #9

RabenFlug Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 59
Registriert seit: Apr 2010

2016
2009
DE

22307
Deutschland
RE: Viele Messaten in XY-Graph darstellen
Danke für das Beispiel Smile Wenn ich es richtig verstehe kann das Signalverlaufsdiagramm aber "nur" mit einer Startzeit und einem dt die Zeit auf der X-Achse bestimmen? Jedem einzelnen Messpunkt einen Zeitstempel zu geben geht nicht, oder?

Das Problem ist, dass meine Samples nicht immer zu 100% im gleichen zeitlichen Abstand kommen. Die Zeit zwischen den Samples variiert minimal (wir sprechen von einigen Millisekunden). Das liegt daran dass die Mess-Hardware über USB/FTDI232 (seriell) im halb-duplex Mode angesprochen wird und gelegentlich größere Kommandos in Richtung Hardware geschickt werden, was das Auslesen der Messdaten verzögert. ein festes dt gibt es leider nicht.

Gibt es denn wirklich keine Möglichkeit Daten "dynamisch" an einen XY-Graph Datentyp hinten anzuhängen ohne jedes mal das komplette Messarray umwandeln zu müssen?
Ich habe mal ein Beispiel (Lv10 Format) angehängt, wie ich mir das vorstelle. So funktioniert es zwar, nur ist auch dieser Weg sehr ineffizient. Wenn man das noch effizienter hinbekommen würde wäre es genau das was ich suche.


Angehängte Datei(en)
10.0 .vi  XY_Graph.vi (Größe: 11,85 KB / Downloads: 191)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.01.2013, 00:49
Beitrag #10

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Viele Messaten in XY-Graph darstellen
Das sieht ja am Anfang noch schnuckelig aus, aber lass das mal ne Stunde laufen.
Du hast immer das Problem, dass du im normalen X/Y-Graph nur komplett neu schreiben kannst. im 10000. Durchlauf schreibst du also 10000 Werte und im 10001. Durchlauf alle bisherigen 10000 + einen neuen.
So wirst du keine flüssige Anzeige hinbekommen.
Versuch doch mal, den X/Y-Express-Graph in der Palette daneben. Dem kannst du sagen, dass es die alten Daten stehenlassen soll.
Vielleicht hilft dir das ja weiter.

s. Anhang

Gruß, Marko


Angehängte Datei(en)
11.0 .vi  XY.vi (Größe: 29,53 KB / Downloads: 237)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Kennlinienfunktion (Formel) in XY-Graph darstellen Daniel90 4 6.431 21.01.2016 15:11
Letzter Beitrag: Daniel90
  mehrere Plots in einem XY Graph darstellen tom181 14 27.404 29.08.2015 08:06
Letzter Beitrag: Lucki
  Messwerte mit Datum in XY Graph darstellen PeterF 5 6.250 28.04.2015 06:51
Letzter Beitrag: GerdW
Question 3D Ellipsoid in einem 3D Graph darstellen? wassersebastian 0 3.591 19.03.2015 13:15
Letzter Beitrag: wassersebastian
  Mittelwerte in Graph darstellen Dawa 5 6.038 20.08.2014 16:24
Letzter Beitrag: Dawa
  Messwerte in 2D-Array und Messungen in XY-Graph darstellen vescon 1 4.946 19.02.2014 20:43
Letzter Beitrag: GerdW

Gehe zu: