加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 电子发烧 > 技术文章

LabVIEW关于定时的研究

时间:2012-11-03  来源:123485.com  作者:9stone

二.Wait Until Next ms Multiple
 
       要比较好的解释这个vi,需要知道系统(至少Windows里有)中有一个millisecond timer这样一个计时器,这个vi跟这个计时器有着千丝万缕的关系。
       简单来说,这个vi将一直等到ms timer得到输入值的整数倍才结束,通过下面的example,将会更好的理解(Wait Until Demo 1.vi)。程序中,首先输入50ms给Wait Until,计算第一次Wait Until花的时间,再输入50ms,同样地计算出第二次Wait Until花的时间。
 
       运行完程序后,得到大致下面的结果:
 
        每次运行的结果都不相同,但是可以看到,第一次Wait Until所花的时间总不是50ms,而第二次花的时间肯定是50ms,并且Timer Value两次一般都是50ms的倍数;出现这样的情况是这样来解释:首先,在程序运行的时候,系统的Timer值并不会正好是50的倍数,假设为10450935,那么程序在运行了15ms后Timer达到10450950(50的倍数)从而结束第一个Wait Until;在之后又进入第二个Wait Until,在达到后一个50的倍数(10451000)后完成。
       因此,如果将Wait Until并行地放在While循环中时,可能会出现两个问题,首先是它的第一次的周期就是不确定的。如下面的例子(Wait Until Parallel Demo 1.vi):

       将按钮调在Wait Until和Wait,运行程序后,得到下面的对比结果:
  
      可以看到,在用Wait Until时,第一次(即第二个值)都达不到20ms,但用Wait时,第一次就能保证在20ms,这是由于程序刚开始时Timer值不是整数倍导致。
       用Wait Until Next ms Multiple.vi的第二个问题见下面的链接,讲得也很清楚了:http://zone.ni.com/devzone/cda/tut/p/id/4120
       最后再看一个例子,当Wait Until放在顺序模式中时,大致可以起到Wait的并行模式的作用,但是在代码时间超过设定值时,两者还是有着很大的区别。
 
     当将Loop Num设大后,代码执行时间超过了20ms,此时得到的结果如下图,执行周期达到了40ms,这也证明了一旦代码时间超过设定值后,Wait Until就会一直等到下一个设定值的整数倍才能结束。
 


 

分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->技术文章
  • 电子应用基础
  • 电源技术
  • 无线传输技术
  • 信号处理
  • PCB设计
  • EDA技术
  • 单片机学习
  • 电子工具设备
  • 技术文章
  • 精彩拆解欣赏
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门