Hallo,
ich habe 2 Schleifen programmiert.
Die erste kümmert sich nur um die Signal Ausgabe. (40kHz). Die zweite um die Signalerfassung.
Ich möchte jetzt aber die Phasenverschiebung zwischen Ausgangs und Eingangssignal messen.
Habe erst in der 2.Schleife ein 2.Signal erzeugt was gleich dem ist was ich ausgebe. Jedoch ist bei jedme Start des VI´s die Differenz der Phasenverschiebung immer anders.
Wenn ich aber jetzt das Signal über einen Tunel von der 1.Schleife in die 2.Schleife übergebe, muss ich die 1.Schleife in den Stop setzten damit ich ein Signal messen kann. Dabei wird das Ausgangssignal aber nicht mehr kontinuirlich ausgegeben (ca 1.sek und dann 1sek. keine ausgabe, usw....)
Hallo xrzr,
Zitat:Wenn ich aber jetzt das Signal über einen Tunel von der 1.Schleife in die 2.Schleife übergebe
Dann hast du eine Datenabhängigkeit und deine Schleifen laufen nicht mehr parallel!
THINK DATAFLOW!
Zitat:Habe erst in der 2.Schleife ein 2.Signal erzeugt was gleich dem ist was ich ausgebe. Jedoch ist bei jedme Start des VI´s die Differenz der Phasenverschiebung immer anders.
Ein entsprechendes VI (ohne gelben Hintergrund) wäre schön…
Entweder laufen deine Schleifen wirklich parallel und du synchronisierst deine Daten auf anderem Wege (es gibt da je nach verwendeter Hardware z.B. StartTrigger für DAQmx) oder du packst beides in eine Schleife mit zwei DAQmx-Strängen…
Zur Nutzung von Triggern gibt es Beispiel-VIs im Beispielfinder…
- Wozu eine While-Loop, die sofort wieder abgebrochen wird und über keinerlei Datenpuffer wie Schieberegister verfügt?
- ExpressVIs wie DAQAssistent haben bisher bei zeitkritischen Dingen wie synchroner Datenerfassung auch noch nie wirklich geholfen…
Jens hat dir doch schon mal einen Tipp gegeben: hast du den beachtet und befolgt?
Und hier hatte ich dich auf DAQmx anstatt DAQ-Assi hingewiesen.
Ein
Einführungskurs ist hier im DAQ-Subforum verlinkt. Schon durchgearbeitet?
Gruß, Jens
Habe jetzt das ganze mal mit dem DAQmx gemacht mit Hilfe des Übungskurs.
Jedoch bekomm ich immer noch eine Fehlermeldung. Wenn ich jetzt am Sample-Takt den Eingabe "Sampel pro Kanal" und "Sample Modus" entferne, bekomm ich keine Fehlermeldung, jedoch erhalte ich auch kein Signal am Ausgang (mit Oszi gemessen).
Hallo xrzr,
Zitat:Jedoch bekomm ich immer noch eine Fehlermeldung. Wenn ich jetzt am Sample-Takt den Eingabe "Sampel pro Kanal" und "Sample Modus" entferne, bekomm ich keine Fehlermeldung, jedoch erhalte ich auch kein Signal am Ausgang (mit Oszi gemessen).
Und welche Fehlermeldung ist das?
- Du hast jetzt zwei DAQmx-Tasks, die vollkommen unabhängig voneinander laufen, sowohl vom DATAFLOW als auch von der Synchronisierung. Ist das so gewollt?
- Der Hintergrund ist jetzt nicht mehr gelb, aber warum musst du den immer noch einfärben?
- Du hast immer noch nicht verraten, welche DAQ-Hardware du verwendest…
"Fehler 200560 - bei DAQmx wait Until done "
Als Hardware habe ich NI myDAQ Messbox
Zu DATAFLOW und Synchronisierung. Was meinst du genau damit? Ich will wie gesgat 40kHz ausgeben und auch ein Signal in der größenordnung 40kHz messen und miteinander vergleichen, Spricht Phasenverschiebung von Eingang und Ausgangssignal.
Hallo xrzr,
es gibt einen Beispielfinder im Hilfemenü von LabVIEW!
Dort mal unter Signalerfassung->DAQmx->Synchronisation->Mehrere Funktionen nach "Multi-Function-Synch-AI-AO" schauen!
Zu DATAFLOW habe ich nun schon seit einiger Zeit einen Link in meiner Signatur!
Bekomm dieses Beispiel nict ohne Fehler ans laufen. Habe den entsprechenden Eingang gewählt usw.
"fehler 200077 bei Eigenschaftsknoten DAQmx Trigger..."
Mal eine andere Frage, kann es auch sien das die Messbox damit überfordert ist 40kHz ausgzugeben und zu messen??
Hallo xrzr,
Zitat:Mal eine andere Frage, kann es auch sien das die Messbox damit überfordert ist 40kHz ausgzugeben und zu messen??
Solche Fragen beantworten sich meist durch Lesen des
Manuals zur Hardware… (S.36ff)
So, habe jetzt alles umgestrickt.
Soweit funktioniert es auch. Habe jetzt im Programm (unten recht) eine kleine korrektur Berechnung gemacht. Die funktioniert soweit auch. Da diese jedoch nur 1 durchlaufen soll habe ich sie in eine For-Schleife gepackt. Seit dem funktioniert es nicht richtig und bekomme eine Fehlermeldung. Fehlermeldung ist im Anhang.
Habe auch ein Screenshot von der Einstellung dabei.