Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

NI-6221

Hallo,

wir haben eine PCI-Karte PCI-6221 im Einsatz. Als Entwicklungsumgebung benützen wir MSVS C# mit DAQmx-Treiber..

Einige Kanäle dieser Karte werden alle 50 msec ausgelesen. Dies funktioniert auch soweitganz gut. Nun haben wir einen Kanal, an dem ein schnelles Messignal erfasst werden muss. D.h. wir müssen das Signal ca 50 msec lang mit einer Frequenz von 100 kHz erfassen, ab einem bestimmten Spannungspegel als Trigger.

Wie wird sowas mit DAqmx in C# programmiert ?

Gerhard

GF
0 Kudos
Message 1 of 2
(2,646 Views)

Hallo Gerhard,

 

dazu muss man erstmal sich die Archtektur der Karte ansehen:

Auf der Karte gibt EINEN Timing Baustein für die analoge Erfassung. Das bedeuted, dass man für die Erfassung ALLER Signale EINE Abtastrate einstellt.

Normalerweise konfiguriert man sich diesen Erfassungstask am Anfang des Programms, lässt die kontinuierliche Erfassung laufen und beendet diesen Task dann ganz am Ende wieder. Das muss man nicht unbedingt so machen. Allerdings schreiben Sie, dass Sie die Werte kontinuierlich erfassen(20Hz) und ab einem Schwellwert die Daten schneller abtasten wollen (100kHz).

Dazu gibt es zwei prinzipielle Ansätze:

Entweder sie erfassen die ganze Zeit mit 100kHz und verwerfen den Großteil der Daten. Dazu würden Sie von dem Messwert-Array bspw. nur jeden 5000sten Wert abspeichern und hätten so wieder ihr 20Hz-Signal. Und sobald der Schwellwert überschritten wird verwerfen sie nicht mehr das Array sondern arbeiten mit dem ganzen Array weiter. An der Stelle weiß ich nicht, wie lange und mit wie vielen Kanälen Sie erfassen. Wenn die Dauer zu lange ist, sollten Sie sich Gedanken über das Ablegen der Daten machen.

Die zweite Möglichkeit ist, dass Sie Anfangs mit 20Hz erfassen und sobald der Schwellwert überschritten wird die Erfassung anhalten, neu kofigurieren und wieder starten. Das dauert allerdings etwas. Damit wären die ersten Werte nach dem Schwellwert weg. Wenn man die Werte später weiterverarbeitet müsste man diese Verzögerung beachten.

Ich würde den ersten Ansatz bevorzugen.

Sie brauchen für keinen der beiden Ansätze einen neuen DAQ-C#-Befehl.

Wenn man den DAQmx-Treiber installiert wird im Startmenü unter Alle Programme -> National Instruments -> NI-DAQ -> Unterstützung für textbasierten Code die C Programmier-Referenz sowie weitere Hilfestellungen mit installiert.

 

Mit freundlichen Grüßen

 

Philipp Kost

AE | NI Germany

 

0 Kudos
Message 2 of 2
(2,621 Views)