你所描述的听起来有点像重影[1],一个通道影响另一个通道。通常,当两个或更多通道连接到非常不同的电信号时会发生这种情况,但当两个或更多通道具有非常不同的增益时也会发生这种情况,这更接近您的问题。
要消除重影,请在每个所需通道之前读取接地通道。在您的示例中,您正在读取ai16
和ai24
,因此您可以_aignd_vs_aignd
在每个通道之前从 [2] 读取,以消散前一个通道的剩余电荷。
DAQmxCreateAIVoltageChan(taskHandle,"Dev1/_aignd_vs_aignd","",DAQmx_Val_Cfg_Default,-0.1,0.1,DAQmx_Val_Volts,NULL)
DAQmxCreateAIVoltageChan(taskHandle,"Dev1/ai16","",DAQmx_Val_Cfg_Default,-0.1,0.1,DAQmx_Val_Volts,NULL)
DAQmxCreateAIVoltageChan(taskHandle,"Dev1/_aignd_vs_aignd","",DAQmx_Val_Cfg_Default,-5.0,5.0,DAQmx_Val_Volts,NULL)
DAQmxCreateAIVoltageChan(taskHandle,"Dev1/ai24","",DAQmx_Val_Cfg_Default,-5.0,5.0,DAQmx_Val_Volts,NULL)
如果您没有受到重影的影响,还有其他几个导致意外数据的原因 [3],也许更改或修复电缆会有所帮助。
参考
[1] 如何消除测量中的重影?
http://digital.ni.com/public.nsf/allkb/73CB0FB296814E2286256FFD00028DDF
[2] 用于自诊断和自校准的 NI-DAQmx 内部通道
http://digital.ni.com/public.nsf/allkb/5826DD1B3709DBCA86256E2B00805C3D
[3] 对模拟输入通道上的意外电压、浮动或串扰进行故障排除
http://digital.ni.com/public.nsf/allkb/B9BCDFD960C06B9186256A37007490CD