LabVIEWForum.de - Anzahl von wiederholenden Spannungssignalen aufzeichnen

LabVIEWForum.de

Normale Version: Anzahl von wiederholenden Spannungssignalen aufzeichnen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo zusammen,

ich beschäftige mich seit kurzem mit Labview und einer NI myDAQ-Karte bzw. bin kein Profi auf diesem Gebiet. Konkret geht es um ein Ansteuersignal für ein Einspritzventil. Laut hersteller wird dieses geöffnet, wenn es ein Signal von mindestens 5ms bekommt. Dieses Signal habe ich mir bei einer Messung abgegriffen und auf ein Oszi gepackt, um mein Programm am Schreibtisch zu testen. Das Signal ist in der realen Umgebung aperiodisch, da es aber sonst zu lang wäre habe ich mir ein Teilstück herausgeschnitten, dass zufälligerweise periodisch aussieht. Das Signal sieht wie folgt aus:[attachment=61456]

Nun zu meinem Problem:
Ich möchte quasi zählen wie oft dieses Signal zustande kommt. Ich gehe davon aus, dass durch die große Anzahl an Samples/s (ca. 200000 Samples/s) es nicht ohne Weiteres möglich ist. Leider habe ich keine passende Idee, wie ich das umsetzen soll.
Mein erster Gedanke war, zu vergleichen ob das Signal größer einem festgeletem Schwellenwert ist und danach über ein Integral hoch zu zählen. Das funktioniert aber nicht. Ich nehme mal an, dass der Vergleicher nicht schnell genung ist oder der Datentyp nicht passt.
Hier nochmal mein Gedanke:[attachment=61457]

Nun ist die Frage, ob es eine Möglichkeit gibt die Anzahl dieser Ereignisse zu erfassen? Sei es über die Dauer des Spannungssignals oder über den Spannungswert. Ich habe mich schon durchprobiert und leider noch keine Lösung gefunden. Sad

Ich bedanke mich schoneinmal im Voraus für Antworten.
Mit freundlichen Grüßen
Hallo Special,

Zitat:Nun ist die Frage, ob es eine Möglichkeit gibt die Anzahl dieser Ereignisse zu erfassen? Sei es über die Dauer des Spannungssignals oder über den Spannungswert.
Sicherlich!
Du definierst klare Bedingungen, mit denen du das zu zählende Signal erkennst. Dann wendest du diese Bedingungen auf das eingelesene Signal an und zählst deine Pulse!
Was genau willst du zählen? Die kleinen positiven Spikes? Die etwas größeren negativen Spikes? Diese etwas breiteren positiven Pulse? Sind die immer so oder können die auch anders aussehen?

Leider können wir Bilder mit LabVIEW weder editieren noch debuggen. Und Bilder von Signalen wird hier auch niemand in die Ursprungsdaten zurück "übersetzen", um damit dann man Experimente durchzuführen. Wie wäre es also, wenn du die nötigen Daten bereitstellst (Code + Signal), um uns zu helfen, dir zu helfen?
Hallo GerdW,

danke für die schnelle Antwort.
Hier einmal mein VI: [attachment=61460]
Hier die Daten in einer xlsx:[attachment=61461]
und die Daten vom Oszi in einer csv Datei: [attachment=61462].

Vielen Dank schoneinmal.
Hallo Special,

Zitat:Ich nehme mal an, dass der Vergleicher nicht schnell genung ist oder der Datentyp nicht passt.
Du verwendest den DAQAssi und den bösen Zwilling DDT-Draht. Dieses Signal im DDT-Draht vergleichst du mit einer skalaren Konstante und generierst anhand des Vergleichs entweder eine skalare 1 oder 0.
Dein Signal besteht aber aus 100k Samples: welches dieser Samples wird denn jetzt getestet? Das erste? Das 100000. Sample? Oder irgendeines mittendrin?
Wenn du dein Signal sinnvoll auswerten willst, solltest du alle Samples untersuchen? Und am besten geht das, wenn du auf ExpressVIs und DDT-Drähte verzichtest: dann ist nämlich sichergestellt, dass man als Programmierer auch weiß, mit welchem Datentyp man da arbeitet!

Dein Signal sieht so aus:
[attachment=61463]
Du hast leider noch nicht definiert, was du eigentlich genau suchst…
Hallo GerdW,

ich habe den DAQ-Assistent nur benutzt, weil ich dort relativ einfach die Sampleanzahl pro Sekunde einstellen kann. Ich habe auch Ansätze ganz ohne Express-Vi's ausprobiert. Leider hat das nie so richtig gut funktioniert. Wie schon erwähnt suche ich das Signal bzw die Signale, die auch in dem Bild abgebildet sind. Diese sehen immer gleich aus. Sozusagen eine Spannung über mind. 5 ms. Da in dem Signal nicht nur positive Spannungen vorhanden sind, gestaltet sich das irgendwie schwierig. Das zweite Problem war der Datentyp. Dass, das nicht so einfach funktioniert ist mir auch bewusst nur bin ich in der Materie nicht so bewandert, dass ich das Problem einfach lösen kann. Sad Natürlich versuche ich mich dahingehend einzulesen aber manchmal braucht es auch einen Schubs in die richtige Richtung. Big Grin

Nochmal zu dem Gesuchten. Ich möchte am Ende die Anzahl der Spannungssignale haben die so aussehen:[attachment=61465]. Also diese Charakteristik aufweisen.
Hallo Special,

Zitat:Das zweite Problem war der Datentyp.
Das war das Hauptproblem!

Schau mal hier:
[attachment=61466]
Dein Signal wird eingelesen.
Dann wird es mit einem gleitenden Mittelwert geglättet.
Dann wird ein Rechtecksignal daraus gemacht, indem mit einem Grenzwert verglichen wird.
Dann werden die steigenden Flanken des Rechtecksignals gezählt.
Und alles wird zur Kontrolle geplottet…

Wofür benötigst du da DDT-Drähte?

Zitat:ich habe den DAQ-Assistent nur benutzt, weil ich dort relativ einfach die Sampleanzahl pro Sekunde einstellen kann. Ich habe auch Ansätze ganz ohne Express-Vi's ausprobiert. Leider hat das nie so richtig gut funktioniert.
Wie schon erwähnt: es gibt BeispielVIs zu DAQmx. Die zeigen, wie man ohne ExpressVI einen DAQmxTask erstellt, inkl. Samplerate…
Die DDT-Drähte werden automatisch verwendet wenn man den DAQ-Assistent lesen möchte oder sehe ich das falsch?

Ich habe aber auch nicht die große Ahnung wie man am besten die Datentypen verändert.
Zitat:Wie schon erwähnt: es gibt BeispielVIs zu DAQmx. Die zeigen, wie man ohne ExpressVI einen DAQmxTask erstellt, inkl. Samplerate…


Sind diese Beispiele in einer der Links in Ihrer Signatur?
Was für ein Array verwenden Sie nach dem einlesen?
Hallo Special,

LabVIEW Hilfemenü -> Beispielfinder...
(08.12.2020 12:28 )GerdW schrieb: [ -> ]Hallo Special,

LabVIEW Hilfemenü -> Beispielfinder...

Danke!

Sieht nun so aus. Ich hoffe dieser Aufbau war gemeint.

[attachment=61472]
[attachment=61473]

Im Anschluss der Signalerfassung, werden die Daten in ein Array eingelesen und dann in einem Teilarray weiterverarbeitet oder? Welche Funktion wird für das Einlesen verwendet?
Vielen Dank! Smile
Seiten: 1 2 3
Referenz-URLs