LabVIEWForum.de
Aus Waveform stabilen Double erzeugen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Aus Waveform stabilen Double erzeugen (/Thread-Aus-Waveform-stabilen-Double-erzeugen)



Aus Waveform stabilen Double erzeugen - Titus85 - 17.05.2021 14:12

Hallo Leute,

ich habe ein Problem: Ich lese ein Quatum von HBM aus, die Treiber des Herstellerst geben mir Waveforms aus. Das Diagram zeigt auch immer alles so an wie man es erwartet, jetzt will ich aber den aktuellen Messwert als Double vorliegen haben um Bedingungen zu setzen: z. B. Abschaltung wenn Weg 50 mm überschritten etc..

Leider weiß ich nicht wie ich aus dem Signal einen stabilen Wert ableite, über "Signalverlaufskomponenten" habe ich den Y-Wert ausgeleitet und den Mittelwert gebildet, was zunächst gut ausgesehen hat, aber als ich die Schleife mit 1ms (statt 100ms) habe laufen lassen wechselt die Anzeige auf NaN. Kann mir jemand sagen woran das liegt und wie ich mein Ziel erreiche, einen stabilen Double zu bekommen?

Gruß Titus

Edit: Also ich habe jetzt eine "Lösung" gefunden, und zwar wird mit Hilfe eines case und einem Schieberegister die NaN aussortiert, aber das will ich ehrlich gesagt nicht so lassen, zumal ich auch verstehen will was da passiert.


RE: Aus Waveform stabilen Double erzeugen - GerdW - 17.05.2021 15:27

Hallo Titus,

Zitat:Leider weiß ich nicht wie ich aus dem Signal einen stabilen Wert ableite, über "Signalverlaufskomponenten" habe ich den Y-Wert ausgeleitet und den Mittelwert gebildet, was zunächst gut ausgesehen hat,
Ein Mittelwert (oder der erste/mittlere/letzte Wert aus dem Y-Array) kann man gut als "stabilen DBL"-Wert aus einer Waveform generieren.

Zitat:aber als ich die Schleife mit 1ms (statt 100ms) habe laufen lassen wechselt die Anzeige auf NaN. Kann mir jemand sagen woran das liegt und wie ich mein Ziel erreiche, einen stabilen Double zu bekommen?
Hier liegt das eigentliche Problem: du setzt deine Schleife auf unrealistische Wartezeiten!
Welche Samplerate hast du denn beim HBM-Messsystem eingestellt? Welche Sampleraten liefert dir das System?
Meine Vermutung ist, dass bei einer Wartezeit zum nächsten Vielfachen einer Millisekunde einfach ab und zu leere Waveforms (ohne Samples) geliefert werden: der Mittelwert eines leeren Arrays ist nun mal NaN!

Zitat:Edit: Also ich habe jetzt eine "Lösung" gefunden, und zwar wird mit Hilfe eines case und einem Schieberegister die NaN aussortiert, aber das will ich ehrlich gesagt nicht so lassen, zumal ich auch verstehen will was da passiert.
Wenn du weiterhin leere Waveforms lesen willst (obwohl unsinnig), dann musst du auch weiterhin eine Case-Struktur+Shiftregister verwenden, um diese leeren Waveforms auszusortieren…

P.S.: AutoCleanup täte deinem Blockdiagramm gut…


RE: Aus Waveform stabilen Double erzeugen - Titus85 - 18.05.2021 07:02

Hallo Gerd,

(17.05.2021 15:27 )GerdW schrieb:  Hier liegt das eigentliche Problem: du setzt deine Schleife auf unrealistische Wartezeiten!
Welche Samplerate hast du denn beim HBM-Messsystem eingestellt? Welche Sampleraten liefert dir das System?
Meine Vermutung ist, dass bei einer Wartezeit zum nächsten Vielfachen einer Millisekunde einfach ab und zu leere Waveforms (ohne Samples) geliefert werden: der Mittelwert eines leeren Arrays ist nun mal NaN!

in diese Richtung habe ich auch bereits gedacht und habe mir die übergebenen Arrays bei unterschiedlichen Sampleraten und Wartezeiten angeschaut. Ich führe mit jedem Schleifendurchlauf eine Abfrage der im Messystem befindlichen Werte durch, wenn die Wartezeit zu kurz ist, ist der Speicher halt leer und die Antwort ist dem entsprechend NaN. Wobei das noch nicht alles zu sein scheint, ich habe den Eindruck, dass das Messystem intern eine Mindestgröße des auzugebenen Arrays festlegt und es es zur Abfrage freigibt wenn die Mindestgröße erreicht ist. (Kann dem so sein?)

Insofern muss ich die schauen, dass ich die Abfrage anders takte als die Wartezeit der Schleife insofern ich bei 1 ms Sekunde bleibe.


RE: Aus Waveform stabilen Double erzeugen - GerdW - 18.05.2021 07:07

Hallo Titus,

Zitat:wenn die Wartezeit zu kurz ist, ist der Speicher halt leer und die Antwort ist dem entsprechend NaN.
Dann hat meine Glas1 wieder korrekt gearbeitet… (Frisch kalibriert! Big Grin)

Zitat:Wobei das noch nicht alles zu sein scheint, ich habe den Eindruck, dass das Messystem intern eine Mindestgröße des auzugebenen Arrays festlegt und es es zur Abfrage freigibt wenn die Mindestgröße erreicht ist. (Kann dem so sein?)
Das musst du im Manual zum DAQ-System nachlesen. Oder den Hersteller fragen!
Wenn es NI-Hardware wäre, dann könnten dir hier mehr Leute darauf antworten…

Zitat:Insofern muss ich die schauen, dass ich die Abfrage anders takte als die Wartezeit der Schleife insofern ich bei 1 ms Sekunde bleibe.
Mir stellt sich die Frage, warum du auf einem Windows-Rechner soviel Wert auf diese 1ms Taktzeit dieser Schleife legst!?
Das ist und bleibt unrealistisch (um nicht zu sagen "Blödsinn")!


RE: Aus Waveform stabilen Double erzeugen - Titus85 - 18.05.2021 08:32

(18.05.2021 07:07 )GerdW schrieb:  Mir stellt sich die Frage, warum du auf einem Windows-Rechner soviel Wert auf diese 1ms Taktzeit dieser Schleife legst!?
Das ist und bleibt unrealistisch (um nicht zu sagen "Blödsinn")!

Das hatte ursprünglich mal den Hintergrund, dass ich initial mit ereignisbasierten CAN-Nachrichten gearbeitet habe und die Übertragungszeit der schnellsten Nachricht 1 ms betrug. Mittlerweile sind diese zyklisch und somit nicht mehr abhängig, aber durch die Wartezeit bin ich auf diesen Umstand aufmerksam geworden und wollte dann wissen wie dieses Zusammenspiel funtioniert. Insofern hab ich wieder was gelernt und bin froh.

Mal wieder vielen Dank für Deine Hilfe Gerd. :-)