0

各位堆垛机大家好,

今天我发现了一个名为 PyDAQmx 的 Python 模块,我打算用它来读取National Instruments USB-6221数据采集盒中的模拟数据通道。我已经将此框与 LabView 结合使用,但我需要将数据从 LabView 流式传输到 Python 脚本中,这有点麻烦。安装 PyDAQmx 模块就像一个魅力,示例代码立即运行,没有任何错误。但是,当我检查从通道 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

希望有人可以帮我解决这个问题。我可以根据要求添加更多详细信息。谢谢!

4

1 回答 1

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)
于 2014-12-17T15:16:03.063 回答