欢迎来到天天文库
浏览记录
ID:5271876
大小:257.96 KB
页数:4页
时间:2017-12-07
《labview编程中的定时》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、LabVIEW初级教程LabVIEWLabVIEW编程中的定时在LabVIEW中我们都不可避免的在循环结构或者顺序结构中使用到定时。为什么要使编用定时呢,常用的定时都有哪些,他们有什么区别?接下来我们将详细为大家介绍。程中1.为什么要使用定时:的一般来说在循环中,我们都会添加一个定时器。他们的作用主要有2个:1.控制代码执行的速率:简单的来说,如果在循环中添加了定时,就可以控制循环定以一定间隔重复执行;或者在串口通信中,在发送指令后等待指定的时间再读返时回值。2.降低CPU占用率:如果没有设置定时,CPU的大部分资源会一直被该线程占用,而无法执行其他线程。在下面的例子
2、(例程在附件中)中,分别是没有定时和定时为100ms时CPU的占用率情况。图1.1程序框图配置间隔100ms定时,CPU占用1%没有定时,CPU占用100%图1.2没有定时和定时情况下CPU占用率2.定时VI用法:在LabVIEW中的常用定时有等待(ms),和等待到下一个整数倍毫秒。1.等待(ms)该VI的输入端为整型,单位是ms。指定代码执行的时间间隔。举例来说,连入VI的输入为10ms,如果循环中代码的运行时间是3ms,那么每次循环的时间是10ms;如果循环中代码的运行时间是14毫秒(大于10ms),那么每次的循环的时间是14ms。可以运行附录中的例程(Wait_
3、ms_example.vi),观察这两种差别。1LabVIEW初级教程LabVIEW(Windows下软件定时的精度在1个ms左右,所以实际的情况会有1ms左右的误差)2.等待到下一个整数倍毫秒该VI输入为整型,单位是ms。该VI将定时和系统的时钟对应起来,使用该定编时VI后,代码将在系统时钟为定时时间的整数倍执行。使用该定时VI的第一次运行时间间隔是不确定的。比如设定定时为1000ms,程对于第一次运行,无论当前时间是50ms还是850ms,都将在下一次1000ms的整数中倍时间第二次运行该代码,那么实际的间隔分别是950ms和150ms。的附录中的例程(ms_mu
4、ltiple_test.vi)说明了这个问题:设定间隔为5000ms,如定果没有经过初始化,那么使用该VI定时后,第一次运行的时间间隔将可能是0~5000中的任意一个值;如果初始化,那么可以保证第一次的时间间隔为5000ms。时3.定时的精度:对于上面提到的定时VI,输入的单位都是ms,但是实际运行的最小间隔在2ms以上。这是因为Windows操作系统中,对线程的操作最小的间隔是2ms。运行附件中的例程(No1msResolution.vi),时间间隔设定为1ms,使用For循环循环另外2000次以观察运行的时间。我们可以看到,实际的执行之间并不是2000ms而是40
5、00ms左右的一个值。4.使用定时的注意事项:在使用等待到下一个整数倍毫秒时需要注意,当该VI处于等待状态时,整个线程都将处于等待状态。在对时间要求较高的实时系统中,往往不可以简单的将该定时VI和代码并行的放置。我们看下面的这个例子,如图4.1所示,我们期望先读取,再输出,并且不断的循环这个过程,在每个循环之间设置定时。读取输出等待读取输出等待图4.1数据采集流程图4.2将定时代码并行放置如果我们按照图4.2的方式编程,没有指定定时和代码的执行次序,那么很有可能会出现下面的情况:首先读取VI运新,然后定时VI执行,在定时VI执行时,整个线程也将停止,然后才执行输出VI
6、。如图4.3所示:2LabVIEW初级教程LabVIEW读取等待输出读取等待输出图4.3并行情况下可能的执行循序为了避免上面的不确定情况,可以通过顺序结构指定定时和代码的执行顺序:编程中的定时图4.4指定定时和代码执行顺序需要注意的是,虽然上面的结构可以保证代码执行的顺序,但是由于是软件定时,由系统引入的不确定性依然存在,在很大程度上影响了定时的精度。定时练习题:1.下图中那个是循环中没有设置定时的情况?A.左B.右2.可以将定时和系统的时间对应起来的是哪种定时?A.等待(ms)B.等待到下一个整数倍毫秒3.以下哪种定时精度是不可以通过定时VI来实现的?A.1msB.
7、10msC.100msD.3ms4.在循环程序中设置定时,间隔为100ms,如果代码的执行时间为70ms,那么实际的定时间隔是多少?A.100msB.170msC.30msD.70ms5.在循环程序中设置定时,间隔为100ms,如果代码的执行时间为170ms,那么实际的定时间隔是多少?A.270msB.170msC.100msD.70ms3LabVIEW初级教程LabVIEW编程中的定时4
此文档下载收益归作者所有