LabVIEWForum.de - Fehler -200462

LabVIEWForum.de

Normale Version: Fehler -200462
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich arbeite derzeit an einem Projekt und wollte nen kleines Testprogramm schreiben um die Taktrate zu überprüfen, die ich mit DAQmx erzeuge.
Jetzt trat aber ein Fehler auf, über den ich im Internet keine Lösung gefunden habe.

Ich lese Daten (derzeit mit einem simuliertem cDAQ NI 9178) ein mit einer Analogen Input Karte (NI 9201) ein und einer Analogen Output Karte (NI 9263) aus.
Jedoch startet das Programm gar nicht richtig weil der DAQmx Start.vi sofort den Fehler -200462 hervorruft.

Vielleicht kann mir einer von euch hier helfen. (Bitte keine Kommentare zum Programm ich hab das nur schnell gebastelt wegen dem Fehler)

Mit freundlichen Grüßen
Christian


PS: Wenn ich das Start.vi weglasse, funktioniert so weit alles, nur dass die Input Karte irgendwann zuviel Daten im Buffer hat (weil scheinbar die Output Karte zu langsam ist) und deshalb das Programm abgebrochen wird. Im Screen sind derzeit 100 kHz eingestellt jedoch kommt der Buffer-Overflow auch schon bei 5 kHz und die Karte müsste ansich 100 kHz laut den Spezifikationen können. Zudem hab ich immer Abtastraten um die 200 Hz anstatt was ich vorne angebe.
Hallo Christian,

Zitat:weil der DAQmx Start.vi sofort den Fehler -200462 hervorruft.
Und du hast dir natürlich die Fehlerbeschreibung durchgelesen? Die, die auch in deinem Screenshot zu lesen ist?
Wenn du Werte ausgeben lassen willst, wäre es wirklich sinnvoll, diese auch dem DAQmxWrite (vor dem DAQmxStart) bekannt zu geben...

Außerdem:
- Wozu konfigurierst du den AO-Task auf kontinuierliche 5kS/s und gibst dann nur Einzelwerte aus?
- Wozu konfigurierst du den AI-Task auf kontinuierliche 5kS/s und fragst dann nur Einzelwerte ab? Bist du wirklich der Meinung, der Treiber wäre dafür schnell genug?

Zitat:jedoch kommt der Buffer-Overflow auch schon bei 5 kHz und die Karte müsste ansich 100 kHz laut den Spezifikationen können. Zudem hab ich immer Abtastraten um die 200 Hz anstatt was ich vorne angebe.
Sowas kommt davon, wenn man mit Einzelwert-Abfragen den DAQmx-Treiber quält. Nur 5ms für zwei Abfragen (AI + AO) ist doch nun wirklich nicht so langsam!

Es gibt jede Menge Beispiele zu DAQmx im Beispielfinder...
Hallo,

ich hab eigentlich bisher immer die Programme so geschrieben und schon einige Motoren angesteuert ohne dass ich ihnen vor dem DAQmx Start einen Wert zugewiesen habe und bisher gab es nie Probleme zumal, wenn ich einen Write vor dem Start setze ein anderer Fehler auftaucht (Operation kann nicht durchgeführt werden während der Task ausgeführt wird).

Wegen der Einzelwert abfrage. Diese ist für mich programmiertechnisch einfacher. Ich dachte durch die Rate geb ich eben die Schleifenrate vor und mit Kontinuierlich wird das so lange geschehen bis der Stop-Button gedrückt wird. Bei einem anderen Projekt hatte ich einen ähnlichen Aufbau (auch mit 5 kHz) und dort gab es auch keine Probleme.

Grüße
Christian
Hallo Christian,

Zitat:ohne dass ich ihnen vor dem DAQmx Start einen Wert zugewiesen habe und bisher gab es nie Probleme
Dies ist gut möglich, wenn es sich um Tasks ohne "kontinuierliches" Sampling handelt.

Zitat:zumal, wenn ich einen Write vor dem Start setze ein anderer Fehler auftaucht (Operation kann nicht durchgeführt werden während der Task ausgeführt wird).
Du konfigurierst die Ausgabe von 5kS/s und startest den Task mit leerem Buffer. Was soll DAQmx anderes tun, als eben dies zu bemängeln?

Zitat:Wegen der Einzelwert abfrage. Diese ist für mich programmiertechnisch einfacher.
"Programmiertechnisch einfacher" bedeutet leider nicht "fehlerfrei" und "CPU-Last geringer"...

Zitat:Ich dachte durch die Rate geb ich eben die Schleifenrate vor und mit Kontinuierlich wird das so lange geschehen bis der Stop-Button gedrückt wird.
Falsch gedacht. Die Schleifenrate wird durch die Geschwindigkeit der DAQmx-Treiberaufrufe bestimmt. Und der Overhead für eine Einzelwertabfrage ist nahezu der gleiche wie für die Abfrage von "n Samples" mit Blockgrößen von fs/10...

Außerdem:
- Zeitkritische Dinge kann man in parallele Schleifen verlagern (bei dir evtl. AI- und AO-Task in eigene Schleifen verlagern).
Hallo,

danke für die Hilfe, ich werde einmal versuchen das zu ändern.

Grüße
Christian
Referenz-URLs