Hallo, ich möchte Frequenz eines Rechtecksignals messen. Also die Zeit zwischen zwei aufeinanderfolgenden Flanken eines Rechtecksignals, welches ich mir mit einem externen Frequenzgenerator erstelle. Dieses Signal erfasse ich mit dem DAQ-Assistenten. Da ich LabVIEW-Neuling bin, wäre ich über Hilfe sehr dankbar.
Grüße
Sebastian
Frequenz-Messung (vor allem bei einem Rechtecksignal) geht am besten über einen Counter. Beispiele dazu gibt es im NI-Examplefinder.
Was für eine Karte hast du denn?
Gruß, Jens
Weißt du zufällig wie das Beispiel im Examplefinder heisst?
Ich benutze die Messkarte NI 6221.
Danke für die schnelle Antwort
Ahja, 6221 hört sich gut an, der Counter kann das. Wenn du jetzt 6008 gesagt hättest...
Aber kannst du nicht selber suchen? Suchbegriff Frequenz oder Frequency zum Bleistift:
[
attachment=16222]
MfG, Jens
Sorry, dachte du hättest ein bestimmtes Beispiel direkt zur Hand gehabt. Suchen kann ich natürlich auch selbst.
Wieso wolltest du den verwendeten Kartetyp wissen? Denkst du bei der Frequenzmessung an eine Karteninterne Frequenzmessung? Kann man das nicht auch einfach manuel programmieren, z.b. über einen Tick_Counter und eine Sequenzstruktur? Mir fällt leider die Idee, wie ich so etwas manuell umsetzen könnte. Eine Zeitmessung zwischen zwei verschiedenen Signalen (2 Schaltern), habe ich mit einem Tick_counter und einer Sequenzstruktur umgesetzt. Kann man sowas nicht auch für eine Frequenzmessung eines Rechtecksignals verwenden?
Vielleicht hat ja jemand eine Idee. Danke
' schrieb:Eine Zeitmessung zwischen zwei verschiedenen Signalen (2 Schaltern), habe ich mit einem Tick_counter und einer Sequenzstruktur umgesetzt. Kann man sowas nicht auch für eine Frequenzmessung eines Rechtecksignals verwenden?
Da darf dein Eingangssignal aber nicht besonders schnell sein...
Erstens kommt eine solche Software-Lösung (insbesondere bei nem "normalen" Betriebssystem wie Windows) bei schnelleren Signalen kaum hinterher...und zweitens wird die Genauigkeit der Messung immer geringer, je schneller das zu messende Signal wird!
' schrieb:Da darf dein Eingangssignal aber nicht besonders schnell sein...
Erstens kommt eine solche Software-Lösung (insbesondere bei nem "normalen" Betriebssystem wie Windows) bei schnelleren Signalen kaum hinterher...und zweitens wird die Genauigkeit der Messung immer geringer, je schneller das zu messende Signal wird!
Bis zu welcher Frequenz könnte ich den wohl mit dem Tick_Counter und der Sequenzstruktur eine Zeitmessung realisieren?
Mal generell: Um ein vernünftiges LV-Programm zu haben, sollte in der "Lebens-While-Schleife", die dein Programm beeinhaltet, immer ein "Wait" drin sein, um der CPU Zeit für andere Sachen zu geben. Je länger diese Zeit ist, desto länger wartet die Schleife bis zum nächsten Durchlauf. Gängige Wartezeiten liegen zwischen 10 und 100 ms. Aber auch eine Wartezeit von 1 ms ist in manchen Fällen schon ausreichend, oder sogar wenn am Wait-Element die Zeit "0" angegeben ist, denn schon der Aufruf der Wait-Funktion (= SubVI) dauert eine gewisse Zeit (wie lange kann man nicht so genau sagen!).
Wenn du jetzt beispielsweise 1ms angibst, kriegst du eine theoretische maximale Durchlaufgeschwindigkeit von 1 kHz. Das ist aber nur theoretisch, weil in der Zwischenzeit ja auch noch andere Dinge durch deine CPU bearbeitet werden. Wenn man jetzt mal nach Nyquist davon ausgeht, dass man mindestens (!) die fünffache Abtastfrequenz benötigt, um ein Signal sicher zu identifizieren, darf dein Rechtecksignal eine maximale Frequenz von 200 Hz haben. Über die Genauigkeit will ich nicht mal spekulieren...das ist so, als ob du Knochen in die Luft wirfst!
Also: Die Hardware-Lösung ist das einzig wahre! Tu dir selber nen Gefallen und mach es so, die Beispiele sind ja wohl eindeutig!
Gruß
Achim
' schrieb:Hallo, ich möchte Frequenz eines Rechtecksignals messen. Also die Zeit zwischen zwei aufeinanderfolgenden Flanken eines Rechtecksignals,
Am Einfachste ist die Erstellung eines entprechenden virtuellen Tasks im M&A-Explorerer:
Datenumgebung --> NI-DAQmx Tasks --> Signale erfassen --> Zählergstützte Erfassung --> Periode.
(Ich glaube da bekommst Du sogar ein Schaltbild mit präsentiert, wie Du das externe Signal anschließen sollst)
Das Ausganssignal von DAQmx Read ist ein Array, mit sämtlichen Zeiten aller Perioden während der Messdauer.
' schrieb:Wieso wolltest du den verwendeten Kartetyp wissen?
Das ist immer gut zu wissen, nicht dass man hier Tipps gibt, die mit der einen Karte gehen und mit der anderen nicht. Bsp: Mit einer 6008/6009 kannst du so eine zählergestützte Frequenzmessung (siehe mein erster Vorschlag und Antwort von Lucki) nicht durchführen.
Gruß, Jens