LabVIEWForum.de
Frequenz aus digitalen Eingangssignal bestimmen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Frequenz aus digitalen Eingangssignal bestimmen (/Thread-Frequenz-aus-digitalen-Eingangssignal-bestimmen)



Frequenz aus digitalen Eingangssignal bestimmen - hallo_spencer - 20.01.2012 14:11

Liebe Leute,

ich bin gerade auf der Suche nach einer Lösung, um in Labview ein digitales Signal von einer Messkarte einzulesen. Mit der Funktion DAQmx lesen geht da auch ganz gut. Jetzt möchte ich aus anliegenden Impulsen die Frequenz bestimmen. Die Frequen liegt bei ca. 100-Hz. Und da fängt das Problem schon an. Die Hilfe der Funktionen Pulsmessung oder auch Timing und Übergangsmessung unter Signalverarbeitung kommt jedes Mal die Fehlermeldung, dass die Amplitude es Eingangssignals Null ist.
Die Karte (NI PCI-6534) hat leider keine Counter oder kann selber die Frequenz bestimmen. Somit muss ich das diskret in Lapview machen.
Hat vielleicht jemand ein Beispielprogramm wie ich ein Eingangssignal einlese dann die Frequenz bestimme und dann wieder Zeitverzögert z.b. 20ms auf einem Ausgang wieder ausgebe.
Ich bekomme das mit der Frequenbestimmung nicht hin. Ich denke so an 2 Timer die abwechselnd gestartet werden mit der jeweiligen positiven Flanke usw.

Für ein Vorschlag wäre ich euch Dankbar.

Labview-Version 2011 ist vorhanden


RE: Frequenz aus digitalen Eingangssignal bestimmen - Achim - 20.01.2012 14:34

Hi,
ich schätze diese Erfassung-Analyse-Verzögerung-Ausgabe bekommst du mit dem verfügbaren SW-Timing beim Digital Input nicht hin!
A.


RE: Frequenz aus digitalen Eingangssignal bestimmen - hallo_spencer - 20.01.2012 15:40

Das denke ich auch aber es muss doch möglich sein es diskret mit Labview Standard VIs aufzubauen. Timer starten usw und dann somit die Frequenz zu bestimmen.


RE: Frequenz aus digitalen Eingangssignal bestimmen - hallo_spencer - 22.01.2012 19:54

Niemand einer eine Idee?

Normalerweise ist ja die Aufgabenstellung ganz einfach. Dachte ich zumindest.....


RE: Frequenz aus digitalen Eingangssignal bestimmen - GerdW - 22.01.2012 21:15

Hallo spencer,

die 6534 sollte HW-Timing können.
Deshalb:
- DI-Task anlegen mit Samplerate von mindestens 200Hz (Nyquist!)
- Samples für gewählten DI abholen, Sampleanzahl an gewünschte zeitliche Auflösung (hier: 20ms) anpassen
- selbst die High-Flanken zählen
- Wert ausgeben


RE: Frequenz aus digitalen Eingangssignal bestimmen - hallo_spencer - 22.01.2012 21:34

Da ich mit diesen daqx Treiber keine Erfahrung habe und selber Labview-Anfänger bin, könnten sie mir eine Bsp. Vi hier reinstellen, damit ich weiß welche Bausteine ich ich so benutzen mus?

Irgendwie kann ich mit der Funktion DAQx lesen bei der IO Konfiguration wenn ich bei Datenerfassung dann Frequens oder Timing usw. von der Karte nichts auswählen. Nur bei Digitale Erfassung kann ich die Eingaänge auswählen. Von daher denke ich die Karte kann es nicht.


RE: Frequenz aus digitalen Eingangssignal bestimmen - GerdW - 22.01.2012 22:37

Hallo spencer,

Zitat:Da ich mit diesen daqx Treiber keine Erfahrung habe
Genau dafür gibt es den Menüpunkt "Beispiele suchen" im Hilfe-Menü...

Zitat:Nur bei Digitale Erfassung kann ich die Eingaänge auswählen. Von daher denke ich die Karte kann es nicht.
Was brauchst du mehr als eine einfache "digitale Erfassung"? Sobald du einen Signalverlauf im Rechner hast, kannst du diesen beliebig auswerten...


RE: Frequenz aus digitalen Eingangssignal bestimmen - hallo_spencer - 27.01.2012 09:50

[attachment=38386]Also ich versuche immer noch eine Lösung zufinden aber mir fehlt einfach die Erfahrung in Labview.
Ich versuche ganz einfach ein Signal 100Hz einzulesen und sofort wieder auszugeben. Ich muss feststellen, dass die Phasenverschiebund doch extrem ist. Sie ist ca, 1/4 Periodendauer und wenn ich mit der Maus irgendein Fenster bewege, ändert sich auch die Pahsenverschiebung.
Kann man das nicht so Programmieren, dass es in Echtzeit läuft? Wenn ja wie? Ich habe hier mal das einfache Vi beigefügt. Vielleicht hat jemand lust mir das VI zu ergänzen.

Am ende will ich auf 0,1Hz genau das Singal erfassen um eine definierte Zeit vergögern und wieder ausgeben. Und das muss stabil sein, also Echtzeit.
Bei dem Test-Vi arbeite ich mit der Änderungserkennung da ich später die Änderung des Impulses ja nur brauche um die Frequenz zu bestimmen und die positive Flanke verzögert auszugeben.


RE: Frequenz aus digitalen Eingangssignal bestimmen - GerdW - 28.01.2012 15:22

Hallo spencer,

Zitat:Und das muss stabil sein, also Echtzeit.
Dir ist schon klar, dass das unter Windows nichts wird? Windows <> Echtzeit...
Und wenn du mit jedem DAQmx-Zugriff nur Einzelwerte verarbeitest, wird das Ganze auch nicht besser/einfacher - du holst dir nur einen großen Treiber-Overhead mit ins Programm...


RE: Frequenz aus digitalen Eingangssignal bestimmen - hallo_spencer - 30.01.2012 12:05

Hallo,

ich weiß das Windows und Echtzeit nichts gemeinsam haben. Aber wie könnte ich dieses Problem lösen?
Linux verwenden?
Ich hätte nie gedacht, dass eine so einfach Aufgabe, Impuls einlesen, zeitverzögern und Impuls wieder ausgeben so schwer sein kann.
Ich habe mal gelesen, dass man einen DMA Controller vom PC her nutzen kann. Der soll unabhängig dann von Windows und der CPU arbeiten.
Wie kann ich den unter Labview denn DMA nutzen. Oder kann ich diese Aufgabenstellung mit Labview gar nicht lösen?
Oder gibt es eine Messkarte, wo ich einfach nur die erechnete verzögerungszeit von Labview aus zuschiebe und diese selber dann ein Eingang Zeitverzögert auf ein Ausgang gibt? Das wäre das eine schnelle Hardwarelösung. Nur welche messkarte kann das? Am liebsten wäre mir eine von National Instruments.