Hallo,
ich fang erstmal ganz einfach, weil es doch noch ziemlich komplex später wird.
Ich soll mit Lichtschranken (Anzahl variabel, 10 Volt Betriebspannung) und einem Ni USB 6008 die Zeit- bzw. Geschwindigkeit aufnehmen und mit Labview ausgeben/ analysieren. Dabei kann die Ausgangsspannung der Lichtschranken einer 2-adrigen Leitung entnommen werden und ich halte es für am besten die an einem analogen Eingang des 6008er anzuschließen.
Jetzt ist es erstmal wichtig die Zeit aufzunehmen, die zwischen 2 Lichtschranken-Impulsen (parallel auf einem analogen Eingang) vergeht.
Wie mache ich das am besten?
Ich nutze Labview 2013.
Hallo Janni,
Zitat:Lichtschranken (Anzahl variabel, 10 Volt Betriebspannung)
Und was für ein Signal erwartest du? Oder ist Signalpegel = Betriebsspannung?
Zitat:ich halte es für am besten die an einem analogen Eingang des 6008er anzuschließen.
Digitale Signale schließt man "am besten" an digitale Eingänge an.
Es gibt aber Ausnahmen:
- Der Signalpegel entspricht nicht dem erwarteten TTL (es gibt Anpassungsschaltungen…)
- Die DIs sind nur softwaregetriggert (wie bei deiner 6008) und erlauben max ~100Hz Samplerate. Wie oft/schnell erwartest du Pulse von den Lichtschranken?
Zitat:Jetzt ist es erstmal wichtig die Zeit aufzunehmen, die zwischen 2 Lichtschranken-Impulsen (parallel auf einem analogen Eingang) vergeht.
Wie muss man sich zwei "parallele" Pulse an einen AI vorstellen? Oder meinst du den zeitlichen Abstand zweier Pulse, die nacheinander auftreten?
Vorgehensweise:
- Den Beispielfinder öffnen und sich das einfachste Beispiel zum hardwaregetakteten Einlesen eines analogen Spannungssignals anschauen.
- An der so eingelesenen Waveform deine Pulse durch einen einfachen Vergleich mit einem Schwellwert bestimmen.
- Steigende Flanken suchen, die Differenz ihrer Indizes berechnen und mit deiner Samplerate multiplizieren.
Für die letzten beiden Punkte gibt es sicherlich eine fertige Funktion…
Hallo,
danke für die Antwort...
Spannungspegel = Betriebsspannung.
Es soll die Zeit zwischen den Pulsen gemessen werden. Da es sich um einen Lauftest handelt, sind die Abstände der Pulse eher niederfrequent. Also vllt. alle 10 Meter eine Lichtschranke bedeutet ungefähr höchstens alle 1,5 Sekunden ein Puls.
Hallo Janni,
Zitat:Also vllt. alle 10 Meter eine Lichtschranke bedeutet ungefähr höchstens alle 1,5 Sekunden ein Puls.
Also kannst du locker mit 25Hz (alle 40ms) jeweils einen AI-Wert (pro Lichtschranke) einlesen und mit dem vorhergehenden Wert auf stiegende Flanke vergleichen…
Wenn du höhere "Genauigkeit" (als
nur 40ms Auflösung) haben willst, kannst du ja immer noch mit Hardware-Taktung von 1kHz arbeiten.
Schau dir mal die DAQmx-BeispielVIs an!
Also ich habe endlich weiter programmiert. Leider komme ich bei der Differenz-Bildung der Zeitwerte nicht weiter.
Also ich vergleiche steigende Flanke mit dem Trigger. Nur habe ich es bis jetzt geschafft die Zeitpunkte im Array zu speichern, nicht aber deren Abstände. Vllt. könnte mir jemand an der Stelle noch weiterhelfen.
Schöne Grüße...