【问题标题】:NI DAQmx -- How to configure software trigger?NI DAQmx -- 如何配置软件触发?
【发布时间】:2015-07-27 21:20:54
【问题描述】:

我这辈子都不知道如何使用 National Instruments DAQ mx 启用软件触发。文档模糊地提到了属性,或者它只能与开关设备一起使用,但它非常不完整。当然,NI 网站上的一个示例页面是完全空白的。我没有或不想要 LabView。

我只是想设置它,以便它同时获取和生成 1000 个样本。有很多关于模拟或数字硬件触发的文档,但我只想能够在相同的软件指令上开始生成/采集。

如果我发出两条顺序指令(一条用于生成样本,一条用于获取样本),它可能已经足够好了,但我真的很想正确地执行它,因为我不知道启动两个任务之间的时间偏差。

那么如何生成软件触发器来同时启动 2 个任务?

顺便说一句,我在 Windows 7 x64 上使用带有 USB6363 设备的 PyDAQmx。

谢谢

【问题讨论】:

    标签: nidaqmx daq-mx


    【解决方案1】:

    测量同步

    为了让单个事件同时启动两个任务,两个子系统必须电气同步。同步子系统有两种方式,都需要共享不同的电信号:

    1. 同步启动
    2. 同步采样

    只有第一个,这两个任务将同时开始,但随着时间的推移,它们各自的时钟可能会出现偏差或漂移。当在同一设备上时,例如在您的情况下,漂移是不可能的,因为设备上只有一个振荡器。单个设备在时间上始终是自相干的;换句话说,单个设备已经进行了同步采样。同步不同设备时,启动触发器和采样时钟信号必须共享。

    同步启动

    为了在电气上同步两个任务的启动,它们必须使用相同的启动触发信号,该信号可以使用设备的内部信号名称从 DAQmx API 编程[1]。。 p>

    在您的示例中,您希望在软件事件上启动模拟输入和模拟输出任务。 AI 和 AO 子系统必须先电耦合,然后软件事件才能触发两者启动。

    我知道您正在使用 PyDAQmx,但这里是 C 中的伪代码(官方 API):

    TaskHandle analogInputHandle;
    TaskHandle analogOutputHandle;
    
    // Other configuration...
    
    // Connect AO start to AI start
    DAQmxCfgDigEdgeStartTrig(analogOutputHandle, "ai/StartTrigger", DAQmx_Val_Rising);
    
    // Arm the AO task
    // It won't start until the start trigger signal arrives from the AI task
    DAQmxStartTask(analogOutputHandle);
    
    // Start the AI task
    // This generates the AI start trigger signal and triggers the AO task
    DAQmxStartTask(analogInputHandle);    
    

    通过这种方式,AI 和 AO 子系统已配置为使用ai/StartTrigger 信号开始其任务,当程序启动 AI 任务时,设备会按需生成脉冲,并且两个测量同时开始.

    [1] NI-DAQmx 帮助 :: 终端名称
    http://zone.ni.com/reference/en-XX/help/370466V-01/TOC22.htm

    【讨论】:

    • 谢谢,我能够在安装的文档中找到 SynchAI-AO.c 文件。这说得通;我错过了可以连接内部电信号来触发事物的概念。我现在正在转换为 Python :)
    • 任务应该在这个序列的哪个位置开始?
    • 谢谢@Eric。我更新了我的回复以包含更多细节。简而言之:在启动 AI 任务(master)之前启动 AO 任务​​(slave)。
    • 我看到你摆脱了SendSoftwareTrigger,我发现它只会崩溃。
    • NI documentation for labview's DAQmx 建议您在开始任一任务之前还应该调用TaskControl(handle, Val_Task_Reserve)。你知道为什么会这样吗?我发现它在有和没有它的情况下都有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多