ADVANTECH USB-4716: Data Acquisition & Storage in Echtzeit?!?
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!
ADVANTECH USB-4716: Data Acquisition & Storage in Echtzeit?!?
Hallo Allerseits,
wir setzen hier im Labor unter anderem 2 ADVANTECH-Devices USB-4716 zur Erfassung von EMG-Daten (ElektroMyoGraphie) ein. Das heißt die Daten werden an den je 16 Analog-Input-Kanälen (AI-Kanälen) parallel mit einem externen Trigger von 4000Hz abgetastet. Diese hohe Abtastfrequenz benötigen wir unter anderem wegen Fourieranalyse der digitalisierten EMG-Daten.
Dummerweise bin ich nicht in der Lage mit den von ADVANTECH gelieferten Beispielen eine LabVIEW-Applikation zu programmieren, mit der die EMG-Siganle an den oben genannten 32 AI-Kanälen über eine Zeit von 10 Minuten kontinuierlich, mit einer Abtastrate von 4kHz, erfasst und anschließend abgespeichert werden.
Der beigefügte Screenshot zeigt das Blockdiagramm des Acquire-N-ScansLoop.vi, das ich gemäß der ADVANTECH-Hilfe "Intermediate Analog Input VIs" nachprogrammiert habe. Dabei habe ich zur kontinuierlichen Erfassung der Daten "ADV AI Read.vi" in eine While-Loop gepackt.
Die Speicherung der digitalisierten Muskelspannungen (EMG) wäre nicht das Problem, da sie nach der kontinuierlichen Erfassung der digitalisierten Messwerte (hier Waveform) erfolgen kann. Der RAM-Speicher des notebooks hat ausreichend Größe zur kontinuierlichen Erfassung der Waveform-Data bzw. 2D-ASCII-Array. Mit "ADV AI Read.vi" können maximal 8192 Daten erfasst werden. Diese 8192 Datenwerte müssen nun in SHIFT-Registern der WHILE-Loop gespeichert werden. Die dazu notwendigen Operationen bremsen die Datenerfassung aus, da jeder (im uns zur Verfügung stehenden WINDOWS-System) ca. 1ms Arbeitszeit benötigt.
Es wäre schön, wenn hier jemand ein Beispiel-VI posten könnte, mit dem die kontinuierliche Datenerfassung mittels USB-4716 realisiert ist, bei externer Triggerung von 4kHz bzw. mindestens 2kHz. Auch für jeden Hinweis wie ich das oben geschilderte Problem mit "Bordmitteln" von LabVIEW lösen kann, bin ich sehr dankbar.
Vielen Dank für Eure Hilfe,
BeFu
P.S.: Aktuell nutzen wir hier im Labor LabVIEW 8.6
Das Ziel ist der Weg
29.07.2009, 08:58 (Dieser Beitrag wurde zuletzt bearbeitet: 29.07.2009 08:59 von rolfk.)
ADVANTECH USB-4716: Data Acquisition & Storage in Echtzeit?!?
Also mit Advantech und anderer nicht NI Hardware kann ich Dir nicht direkt helfen aber ich begreife das Problem nicht ganz.
Du willst ein Signal einlesen das mit 4kHz gesampled wurde und kannst "nur" 8192 Datenwerte pro mal abholen und dann denkst Du ein Problem zu haben wenn in der Loop Operationen sind die 1ms dauern???
Selbst wenn ich davon ausginge dass diese 8192 Werte für alle 16 Kanäle zusammen sind ergibt das noch 512 Werte pro Kanal und pro Lesezyklos so dass ein Loopdurchlauf (Lesezyklus) 1/8 Sekunde dauert, also grossartige 125 ms. Da ist etwas Rechenarbeit von 1ms danaben ein purer klacks. Das kann ja wohl nicht das Problem sein.
Ich würde ohnehin nicht Waveforms gebrauchen, aber gut! 4kHZ Samplerate ist wirklich nichts. Wir tun das was Du hier versuchst mit NI Hardware über längere Zeiträume (Minuten/Stunden) mit 12 Kanalen und 250 kHz inklusieve Darstellung auf dem Schirm und Streaming zur Disk.