使用PyDAQmx读取模拟输入可以得到常量值

2024-05-29 09:46:21 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,堆垛工们

今天我发现了一个名为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

希望有人能帮我一把。我可以根据要求添加更多细节。谢谢!在


Tags: 模块数据代码importlogreaddatarate
1条回答
网友
1楼 · 发布于 2024-05-29 09:46:21

我找到了问题的根源,并通过更改来解决:

DAQmxCreateAIVoltageChan(taskHandle, "Dev1/ai1", "LVDT", DAQmx_Val_Cfg_Default, -10.0, 10.0, DAQmx_Val_Volts, None)

^{pr2}$

相关问题 更多 >

    热门问题