使用PyDAQmx读取具有不同电压电平的模拟输入

时间:2015-05-25 07:49:38

标签: nidaqmx

我使用NI USB-6289用PyDAQmx同时测量两个通道(A和B)模拟输入电压。通道A输入的范围是(-0.1,0.1)。而频道B是(-5.0,5.0)。我们发现通道A的值不准确。 BTW,电压通道设置如下,是否有人遇到类似的问题?谢谢!

DAQmxCreateAIVoltageChan(taskHandle,"Dev1/ai16","",DAQmx_Val_Cfg_Default,-0.1,0.1,DAQmx_Val_Volts,NULL)
DAQmxCreateAIVoltageChan(taskHandle,"Dev1/ai24","",DAQmx_Val_Cfg_Default,-5.0,5.0,DAQmx_Val_Volts,NULL)

1 个答案:

答案 0 :(得分:1)

你所描述的听起来有点像鬼影[1],其中一个频道影响另一个频道。通常,当两个或多个通道连接到它们的电信号非常不同时会发生这种情况,但当两个或多个通道的增益差别很大时,也会发生这种情况,这更接近您的问题。

要消除重影,请在每个所需通道之前读取接地通道。在您的示例中,您正在阅读ai16ai24,因此您可以在每个频道之前阅读_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