LabVIEWForum.de - Timing von zwei digitalen Pulsen mi rf Puls nicht immer reproduzierbar

LabVIEWForum.de

Normale Version: Timing von zwei digitalen Pulsen mi rf Puls nicht immer reproduzierbar
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

Ich habe folgendes Problem. Ich will zwei digitale Pulse mit einem RF-Puls im microsek. Bereich genau timen.

Die digitalen Pulse erzeuge ich mit zwei onboard clocks (Karte: USB 6251 BNC). Der rf-Puls wird als Ascii-Datei (Werte eingelesen) und von der Karte dann als Spannungspuls ausgegeben (siehe Labviewprogramm und Screenshot)

Das gelingt auch siehe screenshot Oszilloskop (richtigesTiming.png).
[attachment=34769]
Aber 1 von 100 (manchmal auch öfters) gelingt es nicht (die digitalen Pulse sind um ms gegen den Puls oder gegeneinander verschoben (siehe falschesTiming1 & 2).
[attachment=34766]
[attachment=34767]
Der Zeitpunkt wann das Timing nicht funktioniert lässt sich auch nicht vorhersagen.
Das falsche Timing ist nicht reproduzierbar !

Woran kann das liegen ? Hat es mit der Labviewversion (Ich benutze 7.1) zu tun ? Ist der Counter der Karte nicht stabil ? Sind meine USB-Ports zu langsam ?

Ich bin für jede Hilfe und Ideen dankbar,

Gruß

Robsen
Hallo,

ich versuche, deinen Sourcecode zu verstehen. Immerhin schon positive Fortschritte gegenüber dem letzten Thread,
http://www.labviewforum.de/Thread-NMR-Ei...TTL-Pulsen
diesmal keine im MAX definierten Tasks und Tasknamen. Das hyperglobal.vi mit den ganzen IMHO unnötigen globalen Variablen fehlt leider immer noch.

Aber zurück zum Sourcecode und Timing. Wenn ich richtig sehe und mich auch in deinen letzten Thread schaue und wenn alle Controls im Frontpanel "Default-Einstellungen" anzeigen, dann würdest du gerne:
- Zur selben Zeit die 4 Tasks AO, AI und 2x Counter starten.
- Die Tasks sind so "programmiert", dass die beiden Counter die benötigten digitalen Pulse im korrekten Versatz ausgeben (sollen).
- Während Counter 0 HIGH ist, wird über AO der RF-Puls ausgegeben.
- Um die beiden Counter-Tasks und den AO Task zur selben Zeit zu starten, lässt du alle 3 über durch das interne Triggersignal ai/Starttrigger auslösen.
- Den AI-Task triggerst du über die interne 80Mhz Zeitbasis (wieso das?)

Was mit jetzt fehlt, ist ein sicherer zeitlicher Ablauf zwischen den Ausgangstasks (AO und Counter) und dem AI-Task. So wie du es aufgebaut hast, kann es meiner Meinung nach durchaus passieren, dass der AI-Task schon gestartet ist, bevor die 3 anderen Tasks das "Start-Task" beendet haben und somit auf den physikalischen Starttrigger warten.

Das lässt sich aber relativ einfach durch sinnvolle Verwendung des Errorclusters erreichen:
[attachment=34777]

Gruß, Jens

P.S.: Das rot eingekreiste VI ist ein Merge-Error in der LV-2010-Version, das wirst du in dieser Darstellung in deiner 7.1er Variante nicht finden.
Hey Jens,

Super! Es klappt. Einfach aber genial mit dem Errormerge.vi. Ich kann allerdings mit meiner Labviewversion nur 3 Fehler zusammenführen. Aber es klappt trotzdem. Das ist ein weiterer wichtiger Schritt auf dem Weg zum NMR-Signal.

Zu deiner Frage, warum ich die 80 MHz timebase verwende. Nur mit der hat es bis jetzt funktioniert. Sollte ich den eine andere Quelle verwenden ? Vielleicht kann man ja noch alles optimieren, aber jetzt läufts mal. Das ist schon was.

Vielen Dank!

Robsen
Hallo Dirk,

Zitat:kann allerdings mit meiner Labviewversion nur 3 Fehler zusammenführen
Auch dein Lv71_img kann mehr als 3 Fehler zusammenführen - einfach mal die Kontexthilfe der ErrorMerge-Funktion durchlesen...
Jep. stimmt. Ach und mein Name is nicht Dirk. Dirkules41 ist angelehnt an Dirk Nowitzki.

gruß und Danke für den Tipp

Robsen
Referenz-URLs