Seite 1 von 1

GSV-1A8USB: Programmieren in C

Verfasst: Do 20. Okt 2011, 07:50
von Gütlein
Hallo,
wie kann ich ein Anwendungsprogramm in C erstellen für einen Mehrkomponentensensor mit GSV-1A8USB K6D? Es ist nur eine Labview VI dabei, keine DLL.

Re: GSV-1A8USB: Programmieren in C

Verfasst: Fr 21. Okt 2011, 12:05
von Sebastian Wetz
Man könnte das Paket DAQmxBase zu installieren. Bitte nächsten Beitrag hierzu beachten! Sie findes es hier (download-link unten auf der Seite):

http://sine.ni.com/nips/cds/view/p/lang/de/nid/14480

Beispiele in C++ finden Sie nach der Installation des Pakets in dem Programmverzeichnis, meist unter:

C:\Programme\National Instruments\NI-DAQmx Base\Examples

Diese Programme verwenden ein Makro zur fehlerbehandlung, dem ein Funktionszeiger übergeben wird. Zudem enthält dieses Makro auch noch ein "goto", was zu verwenden ich dringend abrate.
Natürlich geht das auch etwas einfacher. Wichtig ist die prizipielle Vorgehensweise, hier am Beispiel lesen des Analogeingangs ai0 mit Spannungsbereich -10..10V:

1. #include "nidaqmxbase.h"

2. TaskHandle taskHandle = 0; //TaskHandle erzeugen

3. DAQmxBaseCreateAIVoltageChan(taskHandle,"Dev1/ai0","",DAQmx_Val_Cfg_Default,-10,10,DAQmx_Val_Volts,NULL)); //Analog-Input-Task erzeugen (sofern Analogeingänge gelesen werden sollen)

4. DAQmxBaseStartTask //Task starten

5. DAQmxBaseReadAnalogF64 //Werte lesen

Re: GSV-1A8USB: Programmieren in C

Verfasst: Fr 4. Nov 2011, 15:18
von Sebastian Wetz
Es gibt jedoch ein Problem mit DAQmxBase: Wer bereits GSVmulti installiert hat, kann diesen Treiber nicht verwenden, da es zu einer Inkompatiblität mit der Firmware führt. NI dokumentiert dieses Problem leider nicht ausdrücklich, nach Anfrage aufgrund von Problemen haben wir folgende Antwort erhalten:
"Sie müssen Version 8.7.2 von NI-DAQmx installieren um NI-DAQmx Base 3.4.5 mit einem NI USB-Datenerfassungsgerät unter Windows verwenden zu können. Jede andere Version von NI-DAQmx lädt automatisch inkompatible Firmware-Software, die NI-DAQmx Base 3.4.5 nicht unterstützt. "

Auf einem PC, wo GSVmulti installiert ist, empfehle ich also, folgendes zu tun:
Lasst die Finger von DAQmxBase. Ladet den Dateianhang herunter, bestehend aus einem Beispielprogramm, das mit einer NI USB6211-Karte erfolgreich getestet wurde. Hierin ist auch die notwendige NIDAQmx.lib, die in der IDE dem Projekt hinzugefügt werden muss, und der dazugehörige Header NIDAQmx.h. Das Beispiel wurde mit MC VC++ 6.0 erstellt.
Die wichtigsten Schritte im Programm sind aber ähnlich wie oben dargestellt - die meisten Funktionsaufrufe haben fast denselben Namen, nur eben ohne "Base".