Hallo liebes Forum,
ich bin ziemlich neu bei Labview und hab seit mehreren Tagen nun schon das gleiche Problem.
Ein externes Signal wird abgegriffen und dieses wird auf der x-Achse hochgezählt, jedoch möchte ich das dort die Zeit in Sekunden dargestellt wird.
Ich hatte schon versucht eine Verzögerung in die Schleife mit einzubauen, aber es ist wichtig das alle Werte dargestellt werden.
Das Diagramm soll in einem Hochspannungs-Kurzschluss-Test verwendet werden
wo ersichtlich ist an welcher Stelle bzw. nach welcher Zeit ein Durchschlag entsteht.
Mein Problem habe ich in abgewandelter Form angehängt.
Ich drehe mich da im Kreis und habe hier im Forum keine Lösung finden können.
Schonmal vielen Dank für die Unterstützung!
Hallo Mitch,
willkommen im Forum!
Zitat:Ein externes Signal wird abgegriffen und dieses wird auf der x-Achse hochgezählt, jedoch möchte ich das dort die Zeit in Sekunden dargestellt wird.
Wenn du auf der X-Achse eine Zeit darstellen willst, dann musst du die X-Achse entsprechend formatieren (Rechtsklick!).
Aber: du kannst bei einem Chart nur eine Zeit (vernünftig) darstellen lassen, wenn deine Daten als Waveform ("Signalverlauf") vorliegen…
Momentan hast du leider sehr kompliziert programmiert: wozu diese Array-Verwaltung? Einfach den skalaren Wert in den Chart schreiben!
[
attachment=58387]
Zitat:Ich hatte schon versucht eine Verzögerung in die Schleife mit einzubauen, aber es ist wichtig das alle Werte dargestellt werden.
Was bedeutet "alle Werte" genau? Willst du (so wie momentan in deinem VI) im Mikrosekunden-Abstand Werte in den Chart schreiben?
Üblicherweise hat man ein Messgerät, welches man mit einer bestimmten definierten Samplerate abfragt. Schneller als diese Samplerate muss man eine Anzeige auch nicht updaten…
Zitat:ich bin ziemlich neu bei Labview
Schau dir mal die Links in meiner Signatur an. Und die ganzen Beispiel-VIs, die mit LabVIEW mitkommen. Da gibt es auch welche, die den Umgang mit Charts/Graphs erläutern…
Hallo GerdW,
danke für die schnelle Antwort!
Wenn ich die X-Achse formatiere bekomme ich es auch nicht hin das es wirklich in Sekunden angezeigt wird.
Wie genau funktioniert das denn mit der Waveform? Wird dazu der die Funktion "Signalverlauf erstellen" verwendet? Was ist in meinem fall dann das dt bzw t0?
Danke für die Vereinfachung =)
und durch die Beispiele werde ich mich jetzt auch mal durchwühlen!
Grüße Mitch
Hallo Mitch,
Zitat:Wenn ich die X-Achse formatiere bekomme ich es auch nicht hin das es wirklich in Sekunden angezeigt wird.
Du kannst für die Achsenbeschriftung einen Multiplikator und einen Offset vorgeben. Der Multiplikator sollte zu deiner Samplerate passen…
Zitat:Wie genau funktioniert das denn mit der Waveform? Wird dazu der die Funktion "Signalverlauf erstellen" verwendet?
Ja. Oder dein Messgerätetreibere liefert direkt schon eine Waveform…
Zitat:Was ist in meinem fall dann das dt bzw t0?
dt ist der Kehrwert der Samplerate (zeitlicher Abstand zwischen zwei Samples) und t0 die Startzeit der Waveform…
Als "Anzeigewert" in den Eigenschafte nicht "Zeit", sondern "Fließkomma" wählen. Das hast Du zwar richtig gemacht, aber das ist auch das Einzige.
Fehler:
1. Das Signalverlaufsdiagramm hat einen eingebauten Ringpuffer. Im VI einen zweiten Puffer zu programmieren, hat zur Folge, das bei jedem Schleifendurchauf der anwachsende externe Puffer in den internen Puffer kopiert wird. Die Folge sind 1000 mal mehr Datenpunkte als Du haben wolltest
2. Der interne Rinpuffer behält seinen alten Inhalt auch bei Neustart des Programms. Er ist rückzusetzen mittels History-Eigenschaftsknoten.
3. Der X-Achse Faktor ist vorzugeben. Ansonsten wird keine Zeit angezeigt, sondern die Datenpunkte werden gezählt.
[
attachment=58388]
Danke Gerd, Danke Lucki,
die Zeit lässt sich nun wunderbar im Diagramm anzeigen, vielen dank!!
jetzt kommt das nächste Problem.
Die Y-Werte habe ich im Array gespeichert und werden schon als .tdms Datei ausgegeben.
Ist es möglich die passenden X-Werte mit zu übertragen?
Gibt es einen Eigenschaftsknoten oder ähnliches mit dem ich die Werte aus dem Diagramm heraus filtern kann?
Gruß Mitch.
Hallo Mitch,
Zitat:Ist es möglich die passenden X-Werte mit zu übertragen?
Prinzipiell lautet die Antwort "Ja!".
Aber: was sind hier die "passenden" Werte?
Zitat:Gibt es einen Eigenschaftsknoten oder ähnliches mit dem ich die Werte aus dem Diagramm heraus filtern kann?
Nein.
Aber: du verwendest doch einen Chart - und der macht nichts anderes, als einfach die Samples durchzunummerieren (0, 1, 2, …). Dieser Sampleindex wird dann einfach mit einem Faktor multipliziert und noch ein Offset hinzuaddiert, um den von dir gewünschten Wert anzuzeigen. Was spricht also dagegen, einfach dasselbe in Software zu machen (d.h. zu programmieren)?
Ich hatte oben weiter schon einmal danach gefragt (nicht explizit, aber implizit): wo kommen deine Messwerte her? Welches Gerät benutzt du? Welchen Treiber? Welche Datentypen bietet der Treiber an?
Hallo Gerd,
Zitat:wo kommen deine Messwerte her? Welches Gerät benutzt du? Welchen Treiber? Welche Datentypen bietet der Treiber an?
Ich benutze einen KT1880B. Das ist ein Prüfgerät der Firma SPS electronic. Dieser sendet mir die Messwerte über Ethernet.
Grüße Mitch
Hallo Mitch,
Zitat:Ich benutze einen KT1880B. Das ist ein Prüfgerät der Firma SPS electronic. Dieser sendet mir die Messwerte über Ethernet.
Jetzt habe wir zumindest die erste Frage geklärt.
Bleibt noch:
Wo kommen deine Messwerte her? (In deinen VIs sieht man bestenfalls eine lokale Variable.)
Welchen Treiber? (Spezielle VIs des Herstellers? DLL? ActiveX? DotNET? VISA?)
Welche Datentypen bietet der Treiber an? (Gibt es da mehr als nur Einzelwerte? Liefert das Gerät auch Timestamps? Kann es ganze Waveforms liefern?)