????????再生是指 DAQ 设备“重新生成”之前生成的样本的能力。换句话说,当启用再生时,写入用户缓冲区或 FIFO 的数据将被 DAQ 设备重复使用。通过这种方式,可以实现连续输出,而无需 LabVIEW(或其他 ADE)不断将新数据写入缓冲区。例如,可以将正弦波的单个周期写入缓冲器,并且可以使用再生来输出连续波形。
????????有两种再生模式:用户缓冲区(PC 内存)再生和 FIFO 再生。
????????NI-DAQ? 默认采用用户缓冲区再生,即使用 PC 内存中的用户缓冲区来写入和重新生成数据。在 LabVIEW 中,DAQmx Write 属性节点可用于操纵数据写入缓冲区的方式并禁用重新生成。在这种情况下,我们感兴趣的具体属性是 RegenMode 属性。请看下图。
?
????????通过 FIFO 再生,数据直接从板载 FIFO 再生。没有数据通过总线传输。此外,所有数据都必须适合 FIFO。要在 DAQmx 中启用 FIFO 再生,必须使用 DAQmx 通道属性节点。将“true”连接到 AO.UseOnlyOnBrdMem 属性。请看下图。
????????除 FIFO 再生模式外,用户缓冲区再生和非再生模式都可以随时将新数据写入 PC 缓冲区。因此,模拟输出信号可以随时更改。
????????然而,在用户缓冲区再生的情况下,可能会出现毛刺效应,即新旧样本的混合。?
????????在再生模式下使用 DAQmx 任务时,无法确定当前正在生成哪个样本或覆盖循环缓冲区中的特定样本。
为了在特定循环次数后停止再生,可以使用以下选项之一作为替代方案:
?
????????如果事先已知周期数,请使用(波形中的样本数)x(所需的周期数)有限样本配置模拟输出任务。
????????需要禁用再生,以便缓冲区不会被重复的数据填满,而在读取更改之前必须先读取这些数据。
????????因此,最优的解决方案将是:
????????因此,这将是通过更改输出值来更改模拟输出的最佳(尽管是简单的)解决方案:请参见下图
?