• 要求—使用硬件定时计数器输入操作驱动一个控制循环。
  • 解答—使用“等待下一采样时钟”函数/VI同步计数器操作和计数器的采样时钟。

    优点

    • 计数器任务允许灵活的定时机制,事件检测可从软件上保证控制循环的流程。换言之,控制循环具有动态的时钟频率。
    • 当“等待下一采样时钟”函数/VI没有在下一个采样时钟边沿之前发生,NI-DAQmx将返回一个错误。

    缺点

    读取、处理和写入操作仅限于设备开始采集数据和到达下一个采样时间边沿之间的时间。

  • 应用范例-硬件定时计数器任务

    使用计数器输入任务(例如,边沿计数),控制数字线基于一些预定义的控制逻辑的控制循环。该应用范例通过使用实时FIFO进行通信。在LabWindows/CVI中,使用线程安全的队列,而不是实时FIFO。

    时序示意图



    应用范例2-硬件定时计数器任务

    控制循环:检测离散输入,使用这些值更新计数器输出任务,以脉冲频率模式生成脉冲宽度调制控制信号。该应用范例通过使用实时FIFO进行通信。在LabWindows/CVI中,使用线程安全的队列,而不是实时FIFO。

    时序示意图



    LabVIEW范例-硬件定时计数器任务

    备注 该范例针对LabVIEW用户而写,但是编程思想适用于其他ADE,例如,LabWindows/CVI。
    • 将“等待下一采样时钟”VI连接至计数器输入任务。
    • 如“等待下一采样时钟”VI不在下一个采样时钟边沿到达之前执行,将会返回错误。

    范例的程序框图



    例2

    • 将“等待下一采样时钟”VI连接至计数器输出任务。
    • 如“等待下一采样时钟”VI不在下一个采样时钟边沿到达之前执行,将会返回错误。

    范例的程序框图



    备注
    • 在LabVIEW循环中仅使用一个“等待下一采样时钟”VI。如在一个LabVIEW循环中有多个硬件定时的I/O任务,可将“等待下一采样时钟”VI连接至循环中任何一个硬件定时单点任务。
    • 当循环溢出发生时,如要收到一个警告而非错误,请将DAQmx实时»将最近错误转换为警告属性设置为TRUE。
    • 硬件定时计数器操作没有多路复用模拟输入的转换周期。所以,实时FIFO可以放在LabVIEW循环的任意位置。
    • 在进行计数器写入时如丢失时钟边沿,NI-DAQmx提供恢复机制。如恢复机制不成功,NI-DAQmx将会返回一个错误,任务中的后续操作不再是硬件定时。
    • DAQmx实时»写入恢复模式属性允许用户选择等待中断或轮询两种机制中的一种。等待中断是默认选项,允许NI-DAQmx在尝试恢复时执行低优先级的进程。轮询模式下允许更高的采样率。