你好堆叠器,
今天我发现了一个名为PyDAQmx的Python模块,我打算用它从National Instruments USB-6221数据采集盒读出模拟数据通道。我已将此框与LabView结合使用,但我需要将LabView中的数据流式传输到Python脚本中,这有点麻烦。安装PyDAQmx模块就像一个魅力,the example code立即运行,没有任何错误。但是,当我检查从通道1获得的收集数据向量时,我看到10.61799802
一千次,这不是我期望的输出。调查其他通道进一步降低了输出,从通道0,1和2的+10 V左右开始,在最高编号的通道上降至-10 V.介于两者之间的通道似乎只会产生电子噪声。
我怀疑我没有正确设置代码,因为LabView确实给了我正确的值,但我不知道在哪里寻找(我之前从未使用过DAQmx库)。这是我的代码:
import numpy as np
from PyDAQmx import *
N_samples = 100
log_rate = 100.0
taskHandle = TaskHandle()
read = int32()
data = np.zeros((N_samples,), dtype=np.float64)
DAQmxCreateTask("", byref(taskHandle))
# I have an LVDT plugged into channel ai1 with range +/-10V
DAQmxCreateAIVoltageChan(taskHandle, "Dev1/ai1", "LVDT", DAQmx_Val_Cfg_Default, -10.0, 10.0, DAQmx_Val_Volts, None)
DAQmxCfgSampClkTiming(taskHandle, "", log_rate, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps, N_samples)
DAQmxStartTask(taskHandle)
DAQmxReadAnalogF64(taskHandle, N_samples, 10.0, DAQmx_Val_GroupByChannel, data, N_samples, byref(read), None)
print data
希望有人可以帮我解决这个问题。我可以根据要求添加更多细节。谢谢!
答案 0 :(得分:0)
我找到了问题的根源并通过更改修复了它:
DAQmxCreateAIVoltageChan(taskHandle, "Dev1/ai1", "LVDT", DAQmx_Val_Cfg_Default, -10.0, 10.0, DAQmx_Val_Volts, None)
到
DAQmxCreateAIVoltageChan(taskHandle, "Dev1/ai1", "LVDT", DAQmx_Val_RSE, -10.0, 10.0, DAQmx_Val_Volts, None)