I got a problem when I try to use C++ to control the NIDAQ instrument: PCI6110 for analog output. Everything works perfectly until I set the sampling rate to 4Ms. I checked the specs for PCI6110: the maximal sampling rate (the maximal update rate) is 4Ms. But when I set it to 4Ms, the error code: -200332 appears (please see below photo). And it returned that the maximum sampling rate is 2.5Ms instead of 4Ms.
Code: DAQmxErrChk(DAQmxCfgSampClkTiming(taskHandleAO, "", 4000000, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps, 1)); // 1 means 1 samper to generate for each channel.
I also checked the device using Matlab with the code: devices = daq.getDevices
It shows that the device has rates from 0.1 to 4Ms for analog output:
So my question is: why there is a 2.5Ms limit when I use the C++ program with NIDAQmx.lib? How could I get to the 4Ms sampling rate?
Thank you so much for your time and help!!
Solved! Go to Solution.
The spec sheet shows this pretty clearly. Max of 4 MHz for 1 channel, max of 2.5 MHz for 2 channels. So the *device* capability extends to as much as 4 MHz (but only with a 1 channel task), while your 2-channel task's capability only extends to 2.5 MHz.