LabVIEWForum.de
Zeitmessung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Zeitmessung (/Thread-Zeitmessung--6585)



Zeitmessung - ebbo - 27.02.2009 08:54

Hallo,

Ich möchte gerne die Unterschiede in der zeitlichen Abfolge von zwei Signalen messen. Des Versuchsaufbau ist folgender:
Ich erfasse mit einer Messkarte von NI eine Erregersignal und das dazugehörige Antwortsignal. Über einen Trigger bestimme ich wann die Messung gestartet werden soll.
Die von der DAQ erfassten Signale spalte ich anschließend in das Antwortsignal und das Erregersignal auf. Nun möchte ich, dass bei einer Steigenden Flanke des Erregersignals die Messung beginnt und bei der steigenden Flanke des Antwortsignals die Messung stoppt. Ich habe mal ein VI geschrieben.
Ich bin absoluter Anfänger und weiß nun nicht mehr weiter. Vielleicht kann mir jemand weiter helfen.
Lv85_img


Zeitmessung - rolfk - 28.02.2009 18:47

' schrieb:Hallo,

Ich möchte gerne die Unterschiede in der zeitlichen Abfolge von zwei Signalen messen. Des Versuchsaufbau ist folgender:
Ich erfasse mit einer Messkarte von NI eine Erregersignal und das dazugehörige Antwortsignal. Über einen Trigger bestimme ich wann die Messung gestartet werden soll.
Die von der DAQ erfassten Signale spalte ich anschließend in das Antwortsignal und das Erregersignal auf. Nun möchte ich, dass bei einer Steigenden Flanke des Erregersignals die Messung beginnt und bei der steigenden Flanke des Antwortsignals die Messung stoppt. Ich habe mal ein VI geschrieben.
Ich bin absoluter Anfänger und weiß nun nicht mehr weiter. Vielleicht kann mir jemand weiter helfen.
Lv85_img

Hast Du schon mal in den DAQmx Beispielen gesucht? Da gibt es Beispiele die direkt mit analog Trigger arbeiten. Einige (tuerere) NI Karten können das in Hardware, die anderen ausser den billigsten Karten machen das indem der DAQmx Treiber das auf Systemebene im Datenbuffer unterstützt.

Man kann dann auch noch eine Anzahl Pretrigger Samples angeben, so dass die komplete Flanke die den Trigger lieferte gut sichtbar bleibt.

Rolf Kalbermatter


Zeitmessung - ebbo - 02.03.2009 06:59

' schrieb:Hast Du schon mal in den DAQmx Beispielen gesucht? Da gibt es Beispiele die direkt mit analog Trigger arbeiten. Einige (tuerere) NI Karten können das in Hardware, die anderen ausser den billigsten Karten machen das indem der DAQmx Treiber das auf Systemebene im Datenbuffer unterstützt.

Man kann dann auch noch eine Anzahl Pretrigger Samples angeben, so dass die komplete Flanke die den Trigger lieferte gut sichtbar bleibt.

Rolf Kalbermatter

Hallo Rolf,
Das ist kein schlechter Tipp, aber es geht um die Festlegung des Starts und des Endes der Zeitmessung und wie diese durchzuführen ist. Ich bin absoluter Anfänger und wüsste gerne wie ich die Zeitmessung umsetzen soll.
Bitte um Hilfe.


Zeitmessung - chrissyPu - 02.03.2009 08:32

Hi,

ich finde, es ist der richtige Tipp für Deine Frage... Wenn Du Anfänger bist, solltest Du Dich drauf einlassen, dass es ggf. nicht direkt so geht, wie Du in Deinem ersten Schnellschuss programmiert hast bzw. es Dir zu Anfang gedacht hast. Sonst wirst Du hier nicht unbedingt glücklich werden, denke ich. (Zur Vorwarnung: Auf Dauer kommt auch sicherlich, dass Du lieber die Express-VIs weglassen und das ganze selbst programmieren solltest - dann lernt man auch mehr und muss sich z.B. auch nicht mehr mit dem Dynamic Data Type rumschlagen...)

Wenn ich Dich richtig verstehe, möchtest Du einfach die Zeit zwischen den zwei Flanken messen, oder? Dann startest Du die Messung wie von Rolf vorgeschlagen mit einer triggergesteuerten Datenerfassung und liest den Puffer dann in kleinen Blöcken aus. (While-Schleife mit Schieberegister) Diese Daten überprüfst Du dann auf die fallende Flanke und beendest dann das Einlesen. Über den Index und die Samplerate kannst du dann die Laufzeitdifferenz bestimmen, ggf. noch mit mehr Hardwarekenntnis die unterschiedliche Abtastung berücksichtigen.

Zum Detektieren der Flanken gab's hier mal nen Beispiel glaub ich... Ansonsten könntest Du auch überlegen, ob Du nicht mit einem Counter arbeitest - die sind bei vielen Karten in Hardware implementiert und Du musst nicht mehr umrechnen. Hängt aber von der Hardware ab, die Du hast und im Zweifelsfall hast Du halt nur die Zeitdifferenz und keine Messdaten, falls Du mit denen was machen willst...

In Deinem jetzigen VI misst Du eigentlich nur die Zeit, die der Code im mittleren Rahmen der Sequenzstruktur braucht - mit den eingelesenen Daten hat das nur unwesentlich was zu tun...

Für weitere Fragen wäre außerdem noch interessant, welche Hardware Du nutzt... Viele Grüße und weiterhin viel Erfolg,

ch


Zeitmessung - ebbo - 02.03.2009 08:40

' schrieb:Hi,

ich finde, es ist der richtige Tipp für Deine Frage... Wenn Du Anfänger bist, solltest Du Dich drauf einlassen, dass es ggf. nicht direkt so geht, wie Du in Deinem ersten Schnellschuss programmiert hast bzw. es Dir zu Anfang gedacht hast. Sonst wirst Du hier nicht unbedingt glücklich werden, denke ich. (Zur Vorwarnung: Auf Dauer kommt auch sicherlich, dass Du lieber die Express-VIs weglassen und das ganze selbst programmieren solltest - dann lernt man auch mehr und muss sich z.B. auch nicht mehr mit dem Dynamic Data Type rumschlagen...)

Wenn ich Dich richtig verstehe, möchtest Du einfach die Zeit zwischen den zwei Flanken messen, oder? Dann startest Du die Messung wie von Rolf vorgeschlagen mit einer triggergesteuerten Datenerfassung und liest den Puffer dann in kleinen Blöcken aus. (While-Schleife mit Schieberegister) Diese Daten überprüfst Du dann auf die fallende Flanke und beendest dann das Einlesen. Über den Index und die Samplerate kannst du dann die Laufzeitdifferenz bestimmen, ggf. noch mit mehr Hardwarekenntnis die unterschiedliche Abtastung berücksichtigen.

Zum Detektieren der Flanken gab's hier mal nen Beispiel glaub ich... Ansonsten könntest Du auch überlegen, ob Du nicht mit einem Counter arbeitest - die sind bei vielen Karten in Hardware implementiert und Du musst nicht mehr umrechnen. Hängt aber von der Hardware ab, die Du hast und im Zweifelsfall hast Du halt nur die Zeitdifferenz und keine Messdaten, falls Du mit denen was machen willst...

In Deinem jetzigen VI misst Du eigentlich nur die Zeit, die der Code im mittleren Rahmen der Sequenzstruktur braucht - mit den eingelesenen Daten hat das nur unwesentlich was zu tun...

Für weitere Fragen wäre außerdem noch interessant, welche Hardware Du nutzt... Viele Grüße und weiterhin viel Erfolg,

ch

Hi,
Ich nutze eine Messkarte von NI (NI PCI 6154).