LabVIEWForum.de - analoge Signale ohne Zeitunterbrechung abfragen

LabVIEWForum.de

Normale Version: analoge Signale ohne Zeitunterbrechung abfragen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo LabVIEW Kollegen,

ich habe folgendes Problem und hoffe ihr könnt mich diesbezüglich mal beraten. Über ein mitgeliefertes VI der Messkarte kann ich mir mit 100kHz Messdaten in Form eines Arrays ausgeben lassen. Das ganze hab ich dann in einer While-schleife um kontinuierlich die Daten zu bekommen. Problem bei der ganzen Sache ist, das die Daten zeitlich gesehen nicht aufeinander folgen. Wenn ich mir also ein 100.000 Array mit 100kHz ausgeben lasse und das ganze 10 mal mache sollte das ganze im Idealfall 10 Sekunden dauern....bei mir sind es 10,6 Sekunden. Ich hab also Totzeiten, für die mir keine Messdaten zur Verfügung stehen.

Hab im Datenblatt was mit Buffer gelesen, steig da aber net ganz durch...alles englisch....wäre des vielleicht eine Lösung? Wie würdet ihr das ganze machen? Gibt es da spezielle Messkarten mit denen das möglich ist?

Danke schonmal für die Hilfe

erbi
Hi,

wie haste denn die 10 Sekunden gemessen? Ist das die Endzeit deiner Messwerte? Werden die in der Schleife direkt ausgelesen? Dann ist es nicht verwunderlich, dass Werte fehlen. Deine CPU muss ja auch noch was anderes machen als die Messung "bedienen", und wird die Schleife deshalb auch mal warten lassen.

Ich bin fast sicher, deine Karte kann auch Puffern! Das müssen eigentlich alle können, weil die meisten PC-Messysteme nicht so schnell können wie es ein technischer Vorgang erfordert! Guck mal in die Specs! Was ist das für ein Hersteller?

Die NI-Karten können eigentlich alle gepuffert arbeiten, das übernimmt der Treiber und stellt die Werte dann nur LV zur Verfügung! Diesbezüglich gibts Beispiele im LV-Example Finder ("continuous acquisition, buffered")

Gruss
Achim
Hallo Achim

das wäre die Karte

http://www.mccdaq.at/mccdaq/pci-das6014.htm

Im Datenblatt steht "RAM buffer size = 8K samples". Ich kuck mir das Example mal an.
Hallo,

Achim's Fragen sind schon gut. Und laut Hersteller-Seite ist deine Karte ja mit NI-6016 kompatibel.

Jetzt meine Frage: Was meinst du genau "Das ganze hab ich dann in einer While-schleife um kontinuierlich die Daten zu bekommen."? Will sagen: Rufst du deine ganze Datenerfassung inkl. Initialisierung usw. 10x auf, dann wundern mich 10,6 Sekunden überhaupt nicht. Die Karte hat nach ersten Überblick einen Puffer, du musst also deine Datenerfassung auf "continious" stellen und dann immer wieder auslesen.

MfG, Jens.

P.S.: Mit was für VI's wird den diese Karte gesteuert? Mit den Trad-DAQ-VI's, mit den DAQmx-VI's oder mit eigenen des Herstellers? Bei Fall 1 & 2 gibt's schöne Beispiele von NI.
Ich hab mal ein Screenshot gemacht.....wegen den VIs.....sind die des Herstellers....wenn die Karte NI kompatibel ist, heißt das, ich kann die Daten auch mit den VIs von NI abfragen? Wäre jaevtl net schlecht....da könnten mir die Examples ne große Hilfe sein.

Um mal das Bild zu beschreiben.

Ich lese 2 Kanäle gleichzeitig aus. Bekomme 1 Arry was ich dann in die 2 Kanäle teilen muss. die daten jedes Kanals werden dann in ein Array verschoben welches nur eine bestimmte größe hat. Ihr seht auch wie ich die Zeit berechne...mir ist nix andres eingefallen wie ich es sonst hätte machen sollen.
Hole das KonfigurationsVI aus der Schleife raus.

Eugen
Das ist net zum Konfigurieren. So wie ich des verstanden hab holt das eine die Werte und das ToEng wandelt die werte entsprechend der eingestellten "Range" von +-10V in Spannungswerte um.
Dann guck doch mal in das AlnScFg-VI rein...da wird sicher auch die Konfig. gemacht, die solltest du wie eg sagt aus der Schleife rausnehmen!
Hab nochmal ein Bildchen gemacht.....ist nur ne DLL die aufgerufen wird....wüsste net was ich da noch rausnehmen sollte.....des is aber auch ein mist.....

hab die examples mal ausgeführt....welche für PCI-6014(Voraussetzung), die müssten doch eigentlich funzen.....oder irr ich mich da schon wieder??? auf jeden fall kommt ein fehler

Mögliche Ursachen:

Der Gerätebezeichner ist ungültig.

Angegebenes Gerät: SC1Mod1

Task-Name: _unnamedTask<5>

Naja....ich probier mal weiter rum....auch ein blindes huhn findet mal ein korn
Hi,

da haste recht, da kannste nix rausnehmen...

Kann es sein, das deine Karte noch nix mit dem DAQmx-Treiber anfangen kann? Das von dir verwendete Beispiel PCI-6014...kann das schon Tasks? Oder brauchst du da den TraditionalDAQ?

Hast du mal was über den Buffer rausfinden können?

A.
Seiten: 1 2
Referenz-URLs