LabVIEWForum.de - Lesen/Schreiben (DAQmax)

LabVIEWForum.de

Normale Version: Lesen/Schreiben (DAQmax)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,
ich versuche Daten so schnell wie möglich zu schreiben/lesen. Das ganze passiert innerhalb einer Schleife, deren Ausführungszeit ich so gering wie möglich zu halten versuche. Ziel soll hierbei 1-2 ms sein.
Nun bricht leider die Ausführung mit einem Fehler ab der sagt das die zu Lesen versuchten Samples nicht mehr da sind und überschrieben wurden. Ich habe nun verschiedenste Kombination aus Samplerate/#samples/Samplefrequenz durchprobiert...
Ich häng das Programm mal an vllt wird es dadruch deutlicher. Ich hoffe ihr könnt mir hierbei helfen.
Hallo Zhara,

dein DAQmxRead benötigt 125/125k = 1ms zum Lesen der Daten. Dein DAQmxRead sollte ebenso 1ms benötigen, da die gleichen Samplerate-Parameter eingestellt sind.

Zitat:Nun bricht leider die Ausführung mit einem Fehler ab der sagt das die zu Lesen versuchten Samples nicht mehr da sind und überschrieben wurden.
Dann wurde nicht schnell genug gelesen…

- Leider sind beide Tasks in einer Schleife. Was passiert, wenn du sie in parallele Schleifen verteilst und damit entkoppelst?
- Unterstützt deine Hardware solche Sampleraten?
Entschuldigung für die späte Antwort,
ja die Hardware unterstützt diese Sampleraten. NI 9263 zum Schreiben und NI 9215 zum Lesen.
Wenn ich zwei getrennte Schleifen erstelle bekomme ich eine Fehlermeldung das der Task invalid ist oder nicht existiert.
Hallo Zhara,

Zitat:Wenn ich zwei getrennte Schleifen erstelle bekomme ich eine Fehlermeldung das der Task invalid ist oder nicht existiert.
Welcher Task? An welcher Stelle?

Wenn du in deiner AO-Schleife nur einen Kanal benutzt, warum verwendest du dann "NChan NSamp" bei DAQmxWrite?
Der Fehler tritt bei der AO-Schleife auf, aber scheinbar erst beim zweiten Druchlauf. Der Erste endet mit OK (Sagt die Highlightfunktion).
Vielleicht hängt es damit zusammen, dass die AI Schleife immer mit Fehler 200279 endet...aber ist ist egal was ich bei Samples/Samplerate einstelle, der Fehler bleibt.

Hab nun auch auf einen Kanal geändert, das war noch ein Überbleibsel danke.
Was ich auch gerade bemerkt habe, beim ersten Programm mit einer Schleife: Wenn ich 1000 Samples zum Lesen einstellen läuft das Programm erstmal (zu langsam logischerweise), aber wenn ich mir den Ablauf per Highlightfunktion angucke erscheint beim Lesen (DAQmx read) der Fehler 200279...sehr seltsam.
Hallo Zhara,

beim Highlight-Debugging stimmt das komplette Timing des VIs nicht mehr - und das kann dann schon mal zu DAQmx-Fehlern führen!

Also besser mit Sonden arbeiten und auf das Highlighting verzichten…
Danke für den Tipp mit den Sonden.
Ich habe jetzt mal je ein Beispiel für AI und AO zusammen geklatscht und geguckt wie schnell man werden kann. Bei einer sample clock rate von 100kHz und um die 200 Samples (also Buffersize da Continuous) gibt es wahlweise einen der Fehler:

Error -200621 occurred
Onboard device memory underflow. Because of system and/or bus-bandwidth limitations, the driver could not write data to the device fast enough to keep up with the device output rate.

Error -200018 occurred
DAC conversion attempted before data to be converted was available.

Error -200292 occurred
Some or all of the samples to write could not be written to the buffer yet. More space will free up as samples currently in the buffer are generated.

Kann es sein das es garnicht möglich ist mit Lesen/Schreiben auf eine Schleifenzeit ~1ms zu kommen?

Ab einer sample clock rate über 100kHz gibt es eine Warnung, obwohl wie Hardware potent genug wäre (NI 9263).
Warning 200040 occurred
Sample clock rate specified is so high that it violates the settling time requirements for the generation.
Hallo Zhara,

Zitat:Bei einer sample clock rate von 100kHz und um die 200 Samples
Das entspricht einer Zeit von 200/100kHz = 2ms.

Zitat:Error -200621 occurred Onboard device memory underflow
Error -200018 occurred DAC conversion attempted before data to be converted was available
Würde ich dann deuten als: du hast nicht schnell genug neue Daten nachgeliefert…

Zitat:Error -200292 occurred
Kann ich jetzt nicht deuten, habe hier kein DAQmx installiert…

Zitat:Ab einer sample clock rate über 100kHz gibt es eine Warnung, obwohl wie Hardware potent genug wäre (NI 9263).
Warning 200040 occurred Sample clock rate specified is so high that it violates the settling time requirements for the generation.
Erstens ist das eine Warnung und kein Fehler und zweitens ist die Warnung berechtigt: SampleRate und SettlingTime sind zwei verschiedene Dinge, die sich aber gegenseitig beeinflussen. Bitte das Manual aufmerksam dazu durchlesen!

Zitat:Kann es sein das es garnicht möglich ist mit Lesen/Schreiben auf eine Schleifenzeit ~1ms zu kommen?
Auf einem Windows-System ist das zumindest unwahrscheinlich. Selbst wenn meistens gut gehen sollte, wird dir Windows immer wieder dazwischenfunken und dein Timing empfindlich stören (Stichwort: Multitasking). Und mit ~200 Samples pro Iteration bei 100kHz Samplerate schon gar nicht!
(25.02.2014 11:03 )Zhara schrieb: [ -> ]Entschuldigung für die späte Antwort,
ja die Hardware unterstützt diese Sampleraten. NI 9263 zum Schreiben und NI 9215 zum Lesen.
Der Vollständigkeit halber? In welchem Chassis sind die Module verbaut?

Gruß, Jens
Seiten: 1 2
Referenz-URLs