LabVIEW论坛
直播中

王芳宁

1年用户 18经验值
擅长:可编程逻辑
私信 关注
[问答]

USB6211使用电压连续输入两个通道只显示一个通道

我用UAB-6211采集两个通道的信号,不管使用单端输入还是查分输入,同时使用索引数组将两通道分开,可只能检测出一个通道,有无高手求教。屏幕截图 2025-03-13 205934.png
屏幕截图 2025-03-13 210019.png

回帖(3)

世荣

2025-3-2 13:54:45
用波形函数里的索引波形数组拆分试试
举报

wufan931111

2025-3-3 11:56:16

针对USB-6211采集两个通道信号时仅显示一个通道的问题,以下是分步解决方案:


1. 硬件连接验证



  • 确认物理连接正确:

    • 单端模式:确保两个信号的正极分别接入AI0和AI1,所有GND线接至设备地(如AI GND)。

    • 差分模式:通道0接AI0+与AI0-,通道1接AI1+与AI1-。


  • 使用万用表检查:

    • 测量AI0与AI1对地电压,确认信号存在且无短路。



2. DAQmx任务配置检查



  • 在MAX(Measurement & Automation Explorer)中创建测试任务:

    • 新建模拟输入电压任务,添加通道时分别选择"Dev1/ai0"和"Dev1/ai1"。

    • 设置采样模式为连续采样,采样率≥1kHz(根据信号频率调整)。

    • 运行测试面板,观察两个通道是否均有数据。



3. 代码调试步骤


import nidaqmx
from nidaqmx.stream_readers import AnalogMultiChannelReader

with nidaqmx.Task() as task:
    # 正确添加两个独立通道
    task.ai_channels.add_ai_voltage_chan("Dev1/ai0", name="Channel0")
    task.ai_channels.add_ai_voltage_chan("Dev1/ai1", name="Channel1")

    task.timing.cfg_samp_clk_timing(1000, samps_per_chan=100)

    reader = AnalogMultiChannelReader(task.in_stream)
    data = np.zeros((2, 100))  # 二维数组:2通道 x 100样本

    reader.read_many_sample(data, 100)  # 读取100个样本

    print(f"通道0数据:{data[0]}")  # 索引0对应ai0
    print(f"通道1数据:{data[1]}")  # 索引1对应ai1

4. 常见错误排查



  • 通道顺序错误:确认数据数组索引0对应ai0,索引1对应ai1。

  • 缓冲区大小不匹配:确保data数组维度为(通道数, 样本数)。

  • 触发设置:检查是否使用了触发配置导致只采集部分数据。


5. 高级诊断工具



  • 使用NI-DAQmx的示波器功能:

    • 在MAX中右键点击设备,选择"NI示波器"实时监控输入信号。


  • 查看错误日志:
    try:
    # 采集代码
    except nidaqmx.DaqError as e:
    print("DAQmx错误:", e)


6. 信号可视化验证


import matplotlib.pyplot as plt

plt.figure(figsize=(10,4))
plt.subplot(211)
plt.plot(data[0], label='Channel 0')
plt.legend()
plt.subplot(212)
plt.plot(data[1], label='Channel 1')
plt.legend()
plt.show()

通过以上步骤,可系统性地定位并解决双通道采集异常问题。若仍无法解决,建议:尝试交换输入信号以排除传感器故障;更新NI-DAQmx驱动至最新版本;或联系NI技术支持提供设备自检报告。

举报

王芳宁

2025-3-27 17:34:46
用了信号拆分,解决啦
举报

更多回帖

发帖
×
20
完善资料,
赚取积分