22.08.2014, 09:11
Hi,
Als erstes das Setup: Ich verwende eine NI 6259 DAQ Karte und ein BNC 2110 Terminal um ein quadratur Signal aufzunehmen.
Ich habe das ganze bereits manuell zum laufen gebracht in dem ich A und B einzeln digital aufnehme und manuell mir mein Positionssignal berechne. Dazu habe ich einfach die 20Mhz Sample Clock genommen und meinen Encoder auf 200ns gestellt. Damit hatte ich 4 Abtastpunkte pro Bit, war also auf der sicheren Seite, funktioniert prima.
Nun sind 200ns nicht besonders toll weshalb ich mal die Counter ausprobieren wollte. Gesagt getan, DAQ-Assistent benutzt um die 80MHz Clock zu verwenden, scheint soweit auch super zu funktionieren, die Encoder Clock ist auf 60ns und der DAQ-Assistent gibt richtige Werte aus. Das VI das ich benutze ist im Anhang und heißt AquadB_one_value.
Jetzt werden die Daten die mir der DAQ-Assistent ausspuckt aber viel zu langsam ausgegeben, der durschnittliche Abstand ist 6us!
Gibt es eine Möglichkeit wie ich mir die Werte wirklich auch mit 80Mhz ausgeben lassen kann? Sodass jeder Wert sich wirklich nur um -1/0/1 unterscheidet?
Ich dachte das geht in dem ich n-Werte auslese so wie ich das vorher gemacht hatte, geht aber irgendwie nicht da mir mein VI einen Fehler liefert den es beim anfordern nur eines Wert nicht liefert o0
Der Fehler bezieht sich auf die Verbindung der Eingänge PFI9 und PFI10, ich verbinde diese, da mein Terminal nur die Eingänge FPI0-0 ausgibt. Ich verstehe aber nicht wieso es im n-werte fall einen Fehler liefert nicht aber wenn ich nur einen Wert anfordere.
Ich habe zusätzlich noch ein VI ausprobiert names Counter - Read Encoder und es leicht angepasst. Es läuft ist aber leider genauso langsam, ca. 6us Punktabstand.
Was mache ich falsch? Es scheint ja die Berechnung tatsächlich bei 80Mhz durchzuführen, da es bei Encoder Clock von 60ns noch richtige Werte gibt, ich würde nur gerne schneller diese Werte abfragen können. Dachte eben das geht indem ich n-Werte abfrage so wie ich es vorher "manuell" gemacht hatte und dann hinterher all diese auslese aber irgendwie klappt das nicht so recht. Kann mir jemand helfen? Bin langsam echt am verzweifeln
[attachment=50515]
[attachment=50514]
[attachment=50513]
Als erstes das Setup: Ich verwende eine NI 6259 DAQ Karte und ein BNC 2110 Terminal um ein quadratur Signal aufzunehmen.
Ich habe das ganze bereits manuell zum laufen gebracht in dem ich A und B einzeln digital aufnehme und manuell mir mein Positionssignal berechne. Dazu habe ich einfach die 20Mhz Sample Clock genommen und meinen Encoder auf 200ns gestellt. Damit hatte ich 4 Abtastpunkte pro Bit, war also auf der sicheren Seite, funktioniert prima.
Nun sind 200ns nicht besonders toll weshalb ich mal die Counter ausprobieren wollte. Gesagt getan, DAQ-Assistent benutzt um die 80MHz Clock zu verwenden, scheint soweit auch super zu funktionieren, die Encoder Clock ist auf 60ns und der DAQ-Assistent gibt richtige Werte aus. Das VI das ich benutze ist im Anhang und heißt AquadB_one_value.
Jetzt werden die Daten die mir der DAQ-Assistent ausspuckt aber viel zu langsam ausgegeben, der durschnittliche Abstand ist 6us!
Gibt es eine Möglichkeit wie ich mir die Werte wirklich auch mit 80Mhz ausgeben lassen kann? Sodass jeder Wert sich wirklich nur um -1/0/1 unterscheidet?
Ich dachte das geht in dem ich n-Werte auslese so wie ich das vorher gemacht hatte, geht aber irgendwie nicht da mir mein VI einen Fehler liefert den es beim anfordern nur eines Wert nicht liefert o0
Der Fehler bezieht sich auf die Verbindung der Eingänge PFI9 und PFI10, ich verbinde diese, da mein Terminal nur die Eingänge FPI0-0 ausgibt. Ich verstehe aber nicht wieso es im n-werte fall einen Fehler liefert nicht aber wenn ich nur einen Wert anfordere.
Ich habe zusätzlich noch ein VI ausprobiert names Counter - Read Encoder und es leicht angepasst. Es läuft ist aber leider genauso langsam, ca. 6us Punktabstand.
Was mache ich falsch? Es scheint ja die Berechnung tatsächlich bei 80Mhz durchzuführen, da es bei Encoder Clock von 60ns noch richtige Werte gibt, ich würde nur gerne schneller diese Werte abfragen können. Dachte eben das geht indem ich n-Werte abfrage so wie ich es vorher "manuell" gemacht hatte und dann hinterher all diese auslese aber irgendwie klappt das nicht so recht. Kann mir jemand helfen? Bin langsam echt am verzweifeln
[attachment=50515]
[attachment=50514]
[attachment=50513]