Chiede Riccardo:
E' possibile creare i canali virtuali o comunque configurare la scheda di acquisizione dati NI DAQ 9172 tramite programmazione in linguaggio C e poi scrivere il programma relativo alla funzione, oppure se la creazione dei canali e dei tasks è limitata al software Measurement & Automation Explorer, o a LabView?
Risponde Clara Carangio, Application Engineer Manager di National Instruments:
Tutte le impostazioni relative ai canali virtuali come anche ai task possono essere fatte direttamente da Measurement and Automation Explorer ma anche programmaticamente attraverso le API del driver DAQmx.
Quindi sì, tramite la programmazione in linguaggio C è possibile impostare le proprietà del canale virtuale e del task.
A questo proposito può essere utile l'esempio Cont Thrmcpl Samples-Int Clk che viene installato dal driver DAQmx e che è possibile reperire nel folder:
C:\Documents and Settings\All Users\Documents\National Instruments\NI-DAQ\Examples\DAQmx ANSI C\Analog In\Measure Temperature\
(oppure C:\Program Files\National Instruments\NI-DAQ\Examples\DAQmx ANSI C\... se la versione del driver è precedente alla 8.3.1 )
La sezione del codice che riporto di seguito serve appunto a configurare le proprietà del task:
/*********************************************/ // DAQmx Configure Code /*********************************************/ DAQmxErrChk (DAQmxCreateTask("",&taskHandle)); DAQmxErrChk (DAQmxCreateAIThrmcplChan(taskHandle,"","",0.0,100.0,DAQmx_Val_DegC,DAQmx_Val_J_Type_TC,DAQmx_Val_BuiltIn,25.0,"")); DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandle,"",10.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,1000)); DAQmxErrChk (DAQmxRegisterEveryNSamplesEvent(taskHandle,DAQmx_Val_Acquired_Into_Buffer,1000,0,EveryNCallback,NULL)); DAQmxErrChk (DAQmxRegisterDoneEvent(taskHandle,0,DoneCallback,NULL));