Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
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.
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
21.01.2009, 06:39 (Dieser Beitrag wurde zuletzt bearbeitet: 21.01.2009 06:52 von Achim.)
' 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!
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
' 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?
21.01.2009, 09:34 (Dieser Beitrag wurde zuletzt bearbeitet: 21.01.2009 09:35 von Achim.)
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
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
' 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
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!