LabVIEW定时研究:Wait(ms).vi与WaitUntilNextmsMultiple.vi对比

需积分: 50 8 下载量 136 浏览量 更新于2024-08-10 收藏 606KB PDF 举报
"顺序模式-rhcsa/rhce red hat linux certification study guide seventh edition" 在LabVIEW编程中,定时是非常关键的一个环节,特别是在实时系统和控制应用中。本资源主要探讨了两种常用的定时VI:Wait(ms).vi 和 WaitUntilNextms Multiple.vi,并通过实验演示了它们在不同模式下的行为差异。 1. **Wait(ms).vi**: - **顺序模式**: 在一个While循环中,如果Wait(ms).vi被顺序执行,它会按照指定的时间如实地延迟。例如,如果先执行了一个0.05s的Time Delay.vi,接着是20ms的Wait(ms).vi,那么总的循环周期大约是0.05s + 0.02s = 0.07s。这意味着,如果前面的代码执行时间增加,整个循环周期也会相应增加。 - **并行模式**: 当Wait(ms).vi与其他代码并行执行时,特别是在非实时系统中,它可以确保其自身部分的运行时间精确地等于设定值。例如,如果有多个Wait(ms).vi并行运行,它们各自的延迟时间会独立计算,总循环周期为所有延迟之和。 2. **WaitUntilNextms Multiple.vi**: - 这个VI通常用于实现定周期的While循环,但它并不总是如预期那样工作。首次运行时,它的延迟时间可能不等于设定值,因为等待会从当前时间点开始,而不是从下一个毫秒边界开始。此外,如果代码执行时间超过设定值,WaitUntilNextms Multiple.vi可能无法保证固定的循环周期,这可能导致不可预测的行为。 3. **两者区别**: - **周期性定时**: 若要在While循环中实现定周期,应使用Wait(ms).vi,因为它能更好地保证循环周期的稳定性,尤其是在并行执行时。 - **精确定时**: 对于精确到毫秒级别的定时,WaitUntilNextms Multiple.vi可能会有初始的不准确性,但后续迭代的延迟会更加准确,尽管这可能会牺牲掉第一次循环的准时性。 - **并行执行**: Wait(ms).vi在并行环境下能保证自身的定时精度,而WaitUntilNextms Multiple.vi可能受到其他并行代码的影响。 4. **应用考虑**: - 当代码执行时间较短且对周期精度要求较高时,两者可以通过编程调整达到相似效果。但当代码执行时间较长,Wait(ms).vi会累积延迟,而WaitUntilNextms Multiple.vi则会根据剩余时间调整等待,这两种方法的处理方式截然不同。 选择使用Wait(ms).vi还是WaitUntilNextms Multiple.vi取决于具体的应用需求和环境。在设计LabVIEW程序时,理解这些定时VI的工作原理和特性至关重要,以便正确地控制程序的执行流程和时间特性。
2017-08-08 上传
2017-08-08 上传
2017-08-08 上传