微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > labview中的定时

labview中的定时

时间:10-02 整理:3721RD 点击:
    在进行labview编程时经常用到while循环,随之会经常使用到定时。而对于定时的使用这一块可能会遇到一些困惑,针对自己原来遇到的一些困惑自己也试着记录一些自己的解惑的感想,权当自己写的日记。
    首先,要搞懂在windowdos操作系统下使用labview到底能够达到怎么样的精度(针对labview普通版本而不是labview实时操作系统)。因为对于labview RT系统而言,LabVIEW Real-Time模块提供了可在NI嵌入式硬件设备和特定第三方PC上运行的实时操作系统(RTOS)软件。这不在讨论之内。
    微软公司提供的基于Windows操作系统的软件开发工具Visual C++提供的软件定时器中使用多媒体定时器比较精确。该定时器拥有自己单独的线程,调用回调函数。它不依赖于消息机制,而是建立在中断的基础上。在20ms以上的定时任务中,精度可达lms。定时间隔在7—20ms之间,误差在1—3ms。对于小于7ms的定时,则不易实现。所以受限于操作系统,不要奢望定时精度能够很精确。所以对于ms级别甚至更精确的定时是不容易实现的。当然这与机器和操作系统也相关。所以在精度要求较高的定时场合首先要考虑程序的运行环境。
    其次就是聊聊在进行延时的时候VI的选取。当初自己在这这些VI的使用时经常不加区分使用。下面慢慢介绍部分:
    1) Wait ms /等待(ms) 函数
      


      顾名思义就是在程序执行后继续等待一段时间。这是个延时函数,但带来了一个潜在的后果就是由于程序代码执行的时间可能是不确定的可能会造成每个循环执行的时间都不确定。一般的程序如果仅仅是想加个延时而不需要别的考虑的话可以使用,不过一般情况下我自己还是不喜欢使用的。另外有一点觉得很有意思的就是:在labview编程的时候各种VI的名称和图标也能够更好的帮助我们记住和认识他们。比如wait ms和wait until next ms multiple这两个VI从名称和图标仔细的看的话能帮助自己更好的理解和加深记忆。感兴趣的可以试试。
    2)Wait until next ms multiple/等待下一个整数倍毫秒 函数
        


       这个函数主要用于同步。比如对于while循环中每次循环用于保持代码执行时间相同。提醒一点:在使用这个VI函数之前首先估计出程序代码执行的时间,可以首先进行测试。例如程序代码执行时间约为30ms,而你如果想每次循环执行时间定为20ms,那么这样做是徒劳的。因为如果等待的时间还没有程序代码执行的时间长的话,每次执行的时间是以程序代码执行的时间为基准的。也就是说比如你可以设等待时间为50ms,那么每次循环执行Nms后延时(50-N)ms,这样就能保证每次循环执行的总时间为50ms。如果两个while同时执行的话就保证了两个循环的同步。
    3)时间延迟 函数
         


    这是一个快速VI,作用与等待函数类似。放置的时候更加的方便。但这个VI由于是快速VI其包含的节点数更多,这对程序的性能有一定的影响。不推荐使用。
      


时间延迟 函数包含节点数
      


     等待(ms) 函数包含节点数
    以上仅个人观点


Wait ms 函数并不是在程序执行后继续等待一段时间。

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

网站地图

Top