• 要求—I/O需硬件定时。所有输出值都必须在采样时钟的某个边沿发生时同步更新。应用程序使定时循环。
  • 解答—使用“DAQmx创建定时源”函数/VI创建一个控制定时循环的定时源,循环中包括I/O操作和控制算法。

    优点

    • 定时源使用户可指定I/O信号(例如,采样时钟信号)来触发定时循环的执行。
    • 定时源(例如,通过任务控制循环)具有严格的延迟检查机制,当其他模拟通道被多路复用或采样时,允许其他线程执行。
    • 定时循环提供循环是否按时完成的反馈。
    • 可使用多个定时循环创建一个使用不同I/O硬件子系统的多速率应用。

    缺点

    • 与LabVIEW的While循环相比,占用的系统开销稍大。
    • 循环执行之前需更多准备代码。
  • 应用范例-使用定时循环硬件定时同步更新I/O(仅限于LabVIEW)

    模拟控制循环,从特定数量的模拟输入通道读取采样,使用控制算法(例如PID)处理数据,然后将新的控制值写入模拟输出通道。

    可使用通过任务控制循环定时源创建该类范例。通过任务控制循环定时源使用模拟输入任务中的采样时钟信号,对与采样时钟相关的所有任务提供严格的延迟检查。

    通过任务控制循环定时源也允许用户指定采样时钟事件被处理和定时循环开始执行之间的时间延迟。在等待模拟采样多路复用和数字化的过程中,这个延迟(也称休眠时间)避免了定时循环中的“DAQmx读取”函数/VI占用全部CPU时间。

    时序示意图



    LabVIEW范例-使用定时循环硬件定时同步更新I/O

    • 创建定时循环的从任务控制循环定时源。该信号是驱动定时循环执行的时基。
    • 定时循环向应用程序提供上个循环是否按时完成的反馈。通过"Finished Late [i-1]"节点传递反馈。
    • 允许循环刚开始执行时预留出若干次准备循环,以测试处理器缓冲和其他事件。

    范例的程序框图



    备注
    • 当使用通过任务控制循环定时源时,DAQmx读取VI为轮询模式。轮询模式避免了定时循环中中断引起的额外时间开销。
    • 可通过DAQmx定时属性节点增加模拟输入转换率。这减少了转换指定数量采样所需的时间。考虑整个数据采集系统的最小稳定时间以避免信号降级和干扰。
    • 不要在这些任务上使用“等待下一采样时钟”VI。
    • 低优先级的进程,包括低优先级的定时循环,可在定时循环等待下一次执行之前执行。
    • 要最优化多通道控制应用程序的性能,其中低优先级的线程可能会要求额外的处理时间,请给“DAQmx创建定时源”VI的休眠时间(us)接线端提供一个非零值。非零值可使其他线程使用转换模拟输入采样的时间进行其他任务,例如,通信或记录数据至磁盘。
    • 不影响应用程序的休眠时间的最大值取决于若干因素,包括采集样本的模拟通道数量、采样转换率和系统配置。

    下列程序框图显示了对于多通道配置下最大休眠时间和低优先级线程的数量。



    *见下列标准配置。

    图形显示了当使用特定硬件软件配置采集8条通道的信号时,最大可达到的采样率随休眠时间的增加(0-5微秒)而减少。但是,对于12通道和16通道配置而言,休眠时间从10微秒增加至15微秒并不明显影响最大可达到的I/O速率。对于12和16通道配置,额外的休眠时间允许其他线程执行,但是不会影响应用程序的总体I/O速率。

    标准配置

    • 硬件配置:
      • NI PXI-8196 RT控制器
      • NI PXI-6070 E系列MIO设备
      • NI PXI-6723模拟输出设备
    • 软件配置:
      • LabVIEW Real-Time 8.0
      • NI-DAQmx 8.0
      • 以太网驱动设置为轮询模式
    • 标准配置的详细信息:
      • 工作单位是指一般优先级的循环在I/O定时循环并行运行时递增一个不带符号64位数的次数,如上图采样时钟所示。
      • 模拟输入转换未显式配置。DAQmx驱动自动根据通道数量和采样时钟率自动计算模拟输入转换。