LabVIEWForum.de
Echtzeitanzeige Signalverlauf - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Echtzeitanzeige Signalverlauf (/Thread-Echtzeitanzeige-Signalverlauf)

Seiten: 1 2


Echtzeitanzeige Signalverlauf - Twobobbels - 17.11.2015 09:54

Hallo,

ich habe ein Problem mit der Darstellung von Signalen auf Graphen/Diagrammen. Ich bekomme in meinem Programm fortlaufend Signalwerte von meinem cRIO, die ich gerne in Echtzeit als Verlauf anzeigen würde. Diese Werte sollen als Y-Werte abgebildet werden. Auf der X-Achse sollen Minuten angezeigt werden, und zwar von 0 bis zum aktuellen Zeitpunkt der Messung.
In einem anderen Forumsbeitrag fand ich das unten angehängte VI. Die Signalwerte habe ich einfachheitshalber als Zufallsgenerator dargestellt. Funktioniert auch wunderbar bis 4,2 Minuten, dann verschiebt sich der Nullpunkt der X-Achse... liegt wohl an den 1024 Werten, die ein Diagramm zwischenspeichern kann (glaub ich mal gelesen zu haben).
Wie kann ich es aber machen, dass es mehr als 1024 Werte in ein Diagramm/Graph zeichnet?

Noch eine zweite Frage: Ist es möglich Anzeige- oder Bedienelemente auf dem Frontpanel zu kopieren, sodass dann beide Elemente des Frontpanels nur einem Element im Blockdiagramm zugeordnet sind. Will nämlich das gleiche Anzeigeelement in zwei unterschiedlichen Reitern darstellen...

Gruß Twobobbels


RE: Echtzeitanzeige Signalverlauf - jg - 17.11.2015 09:58

(17.11.2015 09:54 )Twobobbels schrieb:  Wie kann ich es aber machen, dass es mehr als 1024 Werte in ein Diagramm/Graph zeichnet?
Rechtsklick auf Chart im Frontpanel -> Chart History Length
(17.11.2015 09:54 )Twobobbels schrieb:  Noch eine zweite Frage: Ist es möglich Anzeige- oder Bedienelemente auf dem Frontpanel zu kopieren, sodass dann beide Elemente des Frontpanels nur einem Element im Blockdiagramm zugeordnet sind. Will nämlich das gleiche Anzeigeelement in zwei unterschiedlichen Reitern darstellen...
Geht nicht.

Gruß, Jens


RE: Echtzeitanzeige Signalverlauf - Lucki - 17.11.2015 20:12

(17.11.2015 09:54 )Twobobbels schrieb:  Ist es möglich Anzeige- oder Bedienelemente auf dem Frontpanel zu kopieren, sodass dann beide Elemente des Frontpanels nur einem Element im Blockdiagramm zugeordnet sind. Will nämlich das gleiche Anzeigeelement in zwei unterschiedlichen Reitern darstellen...
Was Du gemäß Satz 2 machen willst, geht, nur eben nicht so, wie Du dirs in Satz 1 vorstellst. Siehe hier


RE: Echtzeitanzeige Signalverlauf - IchSelbst - 17.11.2015 20:38

(17.11.2015 09:54 )Twobobbels schrieb:  Ist es möglich Anzeige- oder Bedienelemente auf dem Frontpanel zu kopieren, sodass dann beide Elemente des Frontpanels nur einem Element im Blockdiagramm zugeordnet sind. Will nämlich das gleiche Anzeigeelement in zwei unterschiedlichen Reitern darstellen...
Es gibt noch eine Möglichkeit.

Sinn und Zweck des Wunsches des Programmierers ist ja bestimmt, Drahtgeflechte auf dem Blockdiagramm zu minimieren. Ich verwende für solche Sachen immer FGVs.

Mit FGVs kann mal sowohl Daten als auch Frontpanelelemente geordnet zusammenfassen. Daten liegen, vergleichbar den privaten Variablen in textbasierten Sprachen, in (zugriffsgeschützten) Schieberegistern. In eben solche Schieberegister kann man auch die Frontpanelelemente legen - naja eigentlich deren Referenzen. Wenn ich nun auf ein einziges Frontpanelelement eine Ausgabe machen will, so schreibe ich die Daten nicht per Draht in das Frontpanelelement, sondern per Methode (Enumerator) und Variant-Daten in die FGV. Dort kommen sie in ein Schieberegister - und über die Referenzen in beliebig viele Anzeigeelemente. Also: Ein Aufwand im BD, zwei Anzeigen auf FP.


RE: Echtzeitanzeige Signalverlauf - Twobobbels - 10.12.2015 17:50

Hallo,

erstes Problem ist ja inzwischen gelöst, habe aber noch eine weitere Frage.
Ich bekomme über FPGA ein Signal, das rauscht. Ist eigentlich kein Problem, aber auf dem Diagramm sieht das nicht so schön aus. Habe ein vereinfachtes VI mit angehängt, das mein Problem besser darstellt....
Wenn ich mein Signal bekomme, rauscht es. Erhöht sich das Signal (im Beispiel-VI mit Schieberegler), sieht man kurzzeitig die Darstellung des Rauschen nicht weil die Y-Achse höhere Intervalle hat. Jedoch wird durch die automatische Achsenanpassung wieder das Intervall kleiner gemacht sobald der Anstieg des Signals aus dem Diagrammbereich ist. Lösung wäre eine Einstellen des minimalen Intervalls in der Y-Achse durch Eigenschaftsknoten. Aber finde dazu nichts....

Glätten oder Filtern will ich das Signal aber nicht! Signal soll so bleiben wie es ist, nur die Darstellung soll geändert werden.

Hättet ihr noch andere Lösungen?

Gruß Twobobbels


RE: Echtzeitanzeige Signalverlauf - GerdW - 10.12.2015 20:28

Hallo Twobobbles,

Zitat:Lösung wäre eine Einstellen des minimalen Intervalls in der Y-Achse durch Eigenschaftsknoten. Aber finde dazu nichts....
Echt nicht? Es gibt doch PropertyNodes für die Y-Achsen-Einstellung!

Du musst nur eben selbst den Range der Y-Achse berechnen und einstellen - dann sollte als "Nebenprodukt" eben auch das minimale Intervall einstellbar sein…


RE: Echtzeitanzeige Signalverlauf - Twobobbels - 10.12.2015 20:49

Hallo Gerd,

habe die PropertyNodes für die Y-Achsen-Einstellung auch gefunden, hab aber damit keine Lösung hinbekommen.
Wie meinst du das mit "Range der Y-Achse berechnen und einstellen"?

Gruß Twobobbels


RE: Echtzeitanzeige Signalverlauf - GerdW - 10.12.2015 20:54

Hallo Twobobbles,

Zitat:hab aber damit keine Lösung hinbekommen.
Was hast du denn bisher versucht?

Zitat:Wie meinst du das mit "Range der Y-Achse berechnen und einstellen"?
Ganz einfach: man berechnet ein zu seinen Plotdaten passendes Y-Min und Y-Max und stellt den Range der Y-Achse entsprechend ein.
Oder mit anderen Worten: man programmiert sich seinen eigenen AutoScale-Algorithmus!


RE: Echtzeitanzeige Signalverlauf - Twobobbels - 10.12.2015 21:15

Weiß nicht mehr genau, war Anfang der Woche als ich herum probiert habe und hab gerade kein Labview zur Hand...
War glaube ich etwas mit Inkrement und kleinstes Inkrement. Maximum und Minimum habe ich gelassen, wollte ja die automtische Anpassung lassen und nicht feste Maxima und Minima im Diagramm haben.

(10.12.2015 20:54 )GerdW schrieb:  Ganz einfach: man berechnet ein zu seinen Plotdaten passendes Y-Min und Y-Max und stellt den Range der Y-Achse entsprechend ein.
Oder mit anderen Worten: man programmiert sich seinen eigenen AutoScale-Algorithmus!

Heißt, ich bestimme immer mein Y-Min und Y-Max? Geht soweit klar. Wie bekomme ich aber immer die gerade aktuellen Y-Min und Y-Max der letzten z.B. hundert Werte?

Gruß Twobobbels


RE: Echtzeitanzeige Signalverlauf - Lucki - 10.12.2015 22:41

Vieleicht meintest Du es etwa so: (aber sehr elegant ist das nicht)
[attachment=54862]
Edit: Man sollte in der zeitkritischen Haupschleife Eigenschaftsknoten nicht unnötig oft aufrufen. Nachfolgend eine kleine Verbesserung von obigem Programm.
[attachment=54867]