微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > LabVIEW 程序执行架构——程序执行时间控制

LabVIEW 程序执行架构——程序执行时间控制

时间:10-02 整理:3721RD 点击:

程序执行时间控制介绍

在介绍时间控制元件之前,我们先来了解为什么程序需要控制时间。举例来说,若我们想要做到每秒显示出一张不一样的图片,那我们就会需要控制循环的速度以达到此目的。那除了需要固定间隔时间动作的需求外,还有什么情况我们会用到时间控制呢?如果今天想要设计一个简单的加法运算程序,但是你又想要让程序能够不断地重覆执行以随使用者不同的输入值而做立即运算,所以使用了 While 循环和加法元件来完成。不过当你真正执行这个程序的时候,会发现下面图片所显示的情况:




你应该会发现,只是很单纯的一个加法程序,却因为没有加上任何的时间控制元件,使得因为循环而不断向 CPU 要资源,而造成 CPU 满载。由此可知时间控制在程序设计中扮演着非常重要的角色。


时间控制元件介绍

LabVIEW 时间控制的相关元件都是放在 Programming >> Timing 里,而接着我们会针对三个比较常使用到的元件来向各位介绍。




Tick Count (ms)

首先看到的是 Tick Count,你可以把这个元件当成一个秒表,它会传回目前系统所计数的数值,而此数值的计算范围是从 0 到 2 ^ 32 - 1 (4294967295),所以一定的时间后,数值就会从头开始计数。而计数的单位是毫秒 (ms)。




通常我们会使用 Tick Count 元件来计算相对的间隔时间,如用来估算程序片段所需要的执行时间,可以使用 Sequence Structure 和 Tick Count 来配合。只需要在程序执行时先记录一次系统的计数值,然后等到程序执行完后,再取得目前的计数值,再将两个数值相减后即可获得程序的执行时间:



Wait (ms)

Wait 元件,就字义上很容易了解到它的功能,就是一个等待的元件。当程序执行到 Wait 元件时,会停留你所设定的时间,单位也是毫秒 (ms),等到时间到达时,程序就会继续往下执行。




Wait 元件常在循环中被使用,以控制循环中每一圈的间隔时间。你可以单独放在循环中使用,也可以搭配 Sequence Structure 来做时间的控制:




Wait Until Next ms Multiple

这个元件是一个比较特殊的时间元件,使用时还是需要设定一个等待的时间,不过它跟 Wait 的动作方式不同。它会去确认目前系统内部的计数值是否和 Wait Until Next ms Multiple 达到倍数关系,如果达到,即满足等待的条件。举例来说,目前系统的计数值是 2100 (ms),如果你设 50 给 Wait Until Next ms Multiple,则程序执行到这个元件时,会等到 2150 (ms) 时才会继续往下执行。




那 Wait Until Next ms Multiple 一般是如何使用呢?虽然说他的动作方式和 Wait 元件不完全一样,不过使用的方式大致上相同,可以独立放在循环中,或是搭配 Sequence Structure 来使用:




Wait 及 Wait Until Next ms Multiple 的比较

这两个元件都是在做时间控制使用,针对于一般的情况下动作其实很类似。这两个元件最大的差别是 Wait Until 会与CPU Timer 对齐,因此时间误差不会累积;但 Wait 不会对齐,因此长时间执行后误差有可能会累积。此外,由于 Wait Until 要对齐 CPU timer,因此第一个 Loop 的时间可能小于指定时间,这在 context help 内可以找到。





学习啦...

不错,说得很好。

谢谢LZ分享 学习了!

写的好!                          

非常不错,感谢小编的分享!

不错啊                                    

谢谢小编分享,资料很好

有意思,谢谢小编分享,资料很不错

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top