You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NI PCI 6713数字触发模拟输出配置报错求助(Python 3.7)

解决NI PCI 6713数字触发模拟输出的-89120错误

这个-89120错误(设备上未找到要路由的源终端)很常见,通常和DAQmx任务的配置顺序、终端名称写法有关。结合你的PCI 6713设备和代码,我给你几个针对性的解决思路:

1. 调整任务配置顺序(最可能解决问题)

DAQmx对配置顺序有严格要求——必须先配置定时(样本时钟),再配置触发。你的代码里先设置了启动触发,再配置采样时钟,这会导致DAQmx无法正确关联触发信号和定时引擎,从而抛出终端找不到的错误。

修改后的代码应该是这样的:

import nidaqmx

# 用with语句自动管理任务生命周期,避免资源泄漏
with nidaqmx.Task() as task:
    # 第一步:添加模拟输出通道
    task.ao_channels.add_ao_voltage_chan("Dev12/ao0")
    
    # 第二步:配置采样时钟定时,指定采样数(你要输出11个点)
    task.timing.cfg_samp_clk_timing(
        rate=1,
        samps_per_chan=11,
        sample_mode=nidaqmx.constants.AcquisitionType.FINITE
    )
    
    # 第三步:配置数字边沿启动触发
    task.triggers.start_trigger.cfg_dig_edge_start_trig("Dev12/PFI0")
    
    # 先把数据写入缓冲区,再启动任务(有限采样场景推荐这么做)
    task.write([1,2,3,4,5,6,7,8,9,10,0], auto_start=False)
    
    task.start()
    # 等待任务完成再结束
    task.wait_until_done()

2. 简化终端名称写法

当你的任务已经关联了Dev12的通道时,DAQmx会自动绑定到该设备,所以触发源可以直接写PFI0,不需要加Dev12/前缀。你可以试试把触发配置改成:

task.triggers.start_trigger.cfg_dig_edge_start_trig("PFI0")

3. 确认NI MAX中的路由可用性

虽然手册说PFI<0..9>支持ao/StartTrigger,但还是要再核对一下:

  • 打开NI MAX,找到Dev12设备
  • 查看它的终端路由表,确认PFI0确实可以路由到ao/StartTrigger
  • 确保没有其他任务占用了PFI0引脚

如果以上步骤都试过还是不行,你可以在NI MAX里创建一个测试任务,手动配置触发,然后导出为Python代码,对比自己的代码差异——这是排查DAQmx配置问题的万能方法。

内容的提问来源于stack exchange,提问作者Rémi Baudoux

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:23:20