LabVIEWForum.de
synchronisieren von Graphen mit Time Stamp - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: synchronisieren von Graphen mit Time Stamp (/Thread-synchronisieren-von-Graphen-mit-Time-Stamp)



synchronisieren von Graphen mit Time Stamp - Mr Relay - 22.07.2008 14:55

Hi,

ich habe folgende Aufgabe:
Ich muss 28 Graphen parallel darstellen.

Daten-Aquise:
Input sind mehrere Signale welche ich mit ca. 1khz abtaste. Ich bekomme einen Array pro Signal und pro Loop (1khz) mit 200-1000 Datenpunkten (einzelne Werte), und pro Signal und pro Loop ein Time Stamp (ein numerischer Wert vom "Framecounter") welcher synchron zum ersten Wert im Array ist.

Anhand des Framecounters am Anfang des Arrays "A" kann ich errechnen ob Daten verloren gegangen sind bis Array "B" (verlorene Daten sollen auch im Graph dargestellt werden / jeder Wert entspricht einem Frame) und mehrere Graphen synchronisieren. Die Frame-Basis ist für alle Inputs gleich (halbe Millisekunde).

z.B.: Signal X gibt mir im ersten Loop ein Array mit 250 Werten. Der Framecounter "Time Stamp" ist für den ersten Wert im Array und gibt mir eine "0". D.h. ich erwarte beim nächsten Loop die 251 als Framecounter "Time Stamp". Sollte eine 300 kommen, weiß ich das 50 Werte verloren gegangen sind -> es wurden also 50 mal 0.5 Millsec nicht geloggt. (das müsste man im Graphen auch anzeigen)

Wave Data:
Ich addiere also die Arrays und füttere damit einen Graph Chart. Mit Insert into Array und Build Graph geht das auch ganz gut.
Wert in Y, "Time Stamp" in t0, und ein Delta von einer halben Millisekunde (0.005) in dt.
Ich bin aber nicht sicher ob das in diesem Fall die beste Lösung ist.

Buffer:
Nach X Werten im Array, fange ich an die Menge an Werten die "am Anfang" rein kommt, "hinten" zu löschen (mit Delete from Array).
Also eine primitive Art von FIFO Buffer, nur das ich direkt den Inhalt im Graph anzeige.


Jetzt die Probleme:

- Wie kann ich jetzt alle Graphen synchronisieren, so das optisch die Graphen korrekt und abhängig zueinander dargestellt werden?
(Die Graphen sollen praktisch die X Achsen anhand des Framecounters synchronisieren)

- Wie kann ich "fehlende Daten" darstellen? (am liebsten einfach eine statische "0" und Plot rot einfärben)

- Ich möchte meinen Buffer verbessern, im Augenblick "ruckelt" es im 1khz Takt. Soll ich nach der Aquise und dem ersten Buffer, noch einen Buffer zur flüssigen Anzeige machen? (Hab schon viel probiert aber das ganze gebuffer bremst LabVIEW unheimlich aus)

für jegliche Hilfe schon mal besten Dank!

Gruß


synchronisieren von Graphen mit Time Stamp - Mr Relay - 23.07.2008 09:30

ok, ich versuchs nochmal ein bischen zu vereinfachen..

Ich weiss nicht wie man mehrere Graphen Zeitlich synchronisiert.

Wenn ich jetzt z.B. 2 Graphen habe mit 2 identischen Sinuskurven, welche nur zeitlich auf der X Achse voneinander abweichen, wie kann ich diese synchronisieren?

Als Hilfsmittel habe ich diesen "Frame Counter" (numerischer Wert als Time Stamp) den ich für alle Signale bekomme, aber der kommt eben asynchron rein.

Ich habe also asynchrone Daten mit Time Stamps und muss diese synchron in Graphen darstellen.

Viel einfacher kann ichs nicht erklären.. Hilfe!?


Ach ja, und noch eine Frage hinterher. Mein Graph baut sich von links nach rechts auf sobald die ersten Daten kommen, ist der Buffer voll, läuft der Graph (das Signal) von rechts nach links aus dem Graph raus. Ich fände es viel besser würde das Signal gleich von rechts kommen und flüssig durchlaufen (also ohne das Aufbauen von links nach rechts). Weiß jemand wie das geht?

Danke & Gruß