Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
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
Anzeige
04.04.2007, 12:45 (Dieser Beitrag wurde zuletzt bearbeitet: 04.04.2007 12:49 von Achim.)
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
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
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.
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
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.
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.
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
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.
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)