Hallo,
ich nutze die AO.Voltage.Rngs, AO.max.rate und AO.min.rate Properties von DAQmx, um für die gewählte DAQ Karte die passenden Spannungsbereiche abzufragen. Bisher hat das gut funktioniert, sowohl für PCMCIA Karten, als auch für PCI Boards. Das entsprechende VI ist damit unabhängig von der genutzten DAQ Karte, jegliche Einstellungen werden auf Basis dieser Abfragen automatisch gesetzt. Jetzt aber - mit einem USB-6008 Device, schlägt diese Abfrage fehl und gibt den Fehler -200197 aus. Das kann doch wohl hoffentlich nicht sein, daß DAQmx diese Eigenschaften für USB Geräte nicht unterstützt, oder? Wie komme ich da weiter?
Gruß,
Gabs
:hmm:AO.max.Rate hört sich so nach maximaler Hardware-Update-Rate der Karte an? Da die 6008 nur Software Timing bei AO kennt, könnte ich mir vorstellen, dass es diese Property für diese Karte nicht gibt. Deshalb deine Fehlernummer.
EDIT: Überprüfe doch mal im Highlight-Mode, welche Property genau die Fehlermeldung verursacht.
Gruß, Jens
Genau, es ist die AO.MaxRate die den Fehler provoziert. Hmmm - und nun? Ich brauche den Wert für einige Unterroutinen...
Gruß,
Gabs
Das musst du entscheiden. Eine Möglichkeit: Fehler ignorieren bzw. entsprechend abfangen und dir den Wert als Null merken?! Wie gesagt, 6008/6009 haben kein HardwareTiming bei AO, weswegen der Wert auch keinen Sinn macht für diese Karten.
Gruß, Jens
Wenn Du Hardware-Timing brauchst und Deine Karte das nicht kann, dann schreit das förmlich nach einer neuen Karte.
Gruß Markus
' schrieb:Genau, es ist die AO.MaxRate die den Fehler provoziert. Hmmm - und nun? Ich brauche den Wert für einige Unterroutinen...
Gruß,
Gabs
Nein, ganz so einfach ist das nicht. Hier geht es nicht um eine eigene Applikation, sondern ein Treiber VI. Dieses VI initialisiert die komplette DAQmx Umgebung. Es stellt fest, welche Karte verwendet wird, liest die entsprechenden Randparameter aus und berechnet daraus Werte, die im folgenden Ablauf benötigt werden.
Gruß,
Gabs
Edit: es wird immer verrückter. Wenn ich die Properties auskommentiere, bekomme ich den nächsten Fehler beim DAQmxStartTrigger (-200452), wenn ich das auskommentiere dann sagt mir LabVIEW daß ich bei DAQmxTiming (Use Waveform) als Sample Timing Type Sample Clock gewählt hätte (tatsächlich habe ich jedoch dort Use Waveform gewählt) und ich dürfe nur OnDemand, was es da gar nicht gibt (Error -200077). Jetzt sehe ich überhaupt nicht mehr durch - wie kriege ich denn das alles auf ein USB Device portiert?
Wahrscheinlich scheitert es wirklich daran, dass das USB-6008 ein Low-Cost-Teil mit sehr eingeschränkter Funktionalität ist...mit höherwertigen NI-USB-DAQ-Komponenten wirst du vermutlich weniger Probleme haben...
' schrieb:Edit: es wird immer verrückter. Wenn ich die Properties auskommentiere, bekomme ich den nächsten Fehler beim DAQmxStartTrigger (-200452), wenn ich das auskommentiere dann sagt mir LabVIEW daß ich bei DAQmxTiming (Use Waveform) als Sample Timing Type Sample Clock gewählt hätte (tatsächlich habe ich jedoch dort Use Waveform gewählt) und ich dürfe nur OnDemand, was es da gar nicht gibt (Error -200077). Jetzt sehe ich überhaupt nicht mehr durch - wie kriege ich denn das alles auf ein USB Device portiert?
Ich habe es jetzt schon 2x geschrieben, (und ich hasse es, mich so oft zu wiederholen):
Die 6008 & 6009 können als Einsteigerkarten bei Analog-Out
kein HardwareTiming. Du kannst dafür keine SampleClock wählen, weder intern noch extern.
Das einzige, was bei AO geht, ist jeweils einen Wert per Software-Takt zu setzen! Das hat nichts mit USB-Device zu tun, sondern mit den Nicht-Fähigkeiten genau dieser Karte!
So ziemlich das einzige Bsp aus dem NI-Examplefinder für AO, das für die 6008er funktionieren müsste, ist "Gen Mult Volt Updates-SW Timed.vi".
Gruß, Jens
Hallo,
danke für Eure Antworten (Jens, auch wenn Deine kurzen Antworten weiter oben halt leider erstmal für mich nicht im Zusammenhang mit dem StartTrigger Fehler standen, das hatte wohl kaum was mit "hasse es mich so oft zu wiederholen" zu tun - einfach mal davon ausgehen, daß der Fragende vielleicht die Zusammenhänge nicht ganz so gut kennt wie Du...
).
Falls jemand mal auf das gleiche Problem stoßen sollte: mich hat wie gesagt irritiert, daß die Fehlermeldung bei DAQmxTiming behauptet ich hätte den Wert "Sample Clock" gesetzt - obwohl ich UseWaveform gewählt hatte - und angab, daß "OnDemand" gewählt werden müsse - was jedoch gar nicht angeboten wurde. Sehr hilfreich war die Fehlermeldung also nicht. :wall:Was mir nicht auf Anhieb klar war, ist daß "UseWaveform" ja über das angegebene delta T die Sample Clock Rate setzt. Hilfreich in dem Zusammenhang ist auch dieser Knowledgebase-Artikel:
http://digital.ni.com/public.nsf/allkb/6F2...625711D007BDD64
Er weist unter anderem auch auf das von Jens erwähnte Beispiel-VI hin.
Falls einer von Euch einen guten Überblick über die von DAQmx unterstützten DAQ Devices von NI hat: wenn unser Treiber auf die genannten Funktionen wie Waveform Generation angewiesen ist, reicht es dann zu sagen daß alle Devices, die Hardware Timing unterstützen, mit unserem Treiber funktionieren sollten, oder gibt es bei anderen Karten weitere Einschränkungen auf die ich achten muß?
Gruß,
Gabs