微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > 简单搭配,让延时更听你的话!

简单搭配,让延时更听你的话!

时间:10-02 整理:3721RD 点击:
延时函数恐怕是我们在LabVIEW中使用频率最高的函数之一了
在有些项目或程序中,你也许会遇到这样的情况:在主循环运行的同时,你需要某一个或者多个并行循环中每隔N秒(N比较长)做一个动作(比如:每5秒检测一次端口是否正常,每10秒记录一次运行状态,每一分钟发送一个回执,等等),像如下这样:




那么,你的麻烦来了,你会发现,当你按下"STOP"时,你常常需要无奈的等上半天,运气不好的话,你需要等待的时间几乎等于最长的那个延时时间~~
这个时候有人会说,可以用这个

或者

来解决这个问题么

可行!但是如果在这几个主从循环结束后如果我们还有其他的动作要做呢?比如说:关闭设备,关闭端口,亦或是记录配置数据……直接结束显然不是一个适应性强的方法;
你不妨试试这样:




一样的延时效果,不一样的退出速度,喜欢的话,你可以把它做成你自己的延时子VI放到用户库中,立即拥有一个随时调用,随意停止的延时

PS:别忘了给你的VI画一个漂亮的图标,让编程变成一种享受

果断收藏了 赞一个

如果是很简单的程序,用变量无妨,如果要是大型程序,最后少用甚至不用局部或全局变量,原因:1.破环了labview的数据流概念;2.进行了内存复制;3.程序看起来会很混乱。虽然现在计算机的内存都足够大,但我觉得养成一个好的编程习惯是很有必要的。

停止循环这里用局部变量还是可以的,不过我也比较喜欢用user event或者queue来停止循环。

这里主要解决的是存在大延时循环的问题,userevent是无法解决这个问题的:)

嗯,我是说同步停止循环
至于延时,本来就应该如此写,做一个基本延时,然后其它是基本延时的倍数。让我想起以前写单片机程序的时候

觉得实现LZ所说的功能,用while嵌套一个事件结构更好吧


呵呵,你这个程序如何退出循环?
我想有以下两种方式:
1、用小编的局部变量,不过要把局部变量放到timeout事件里,但如此一来就有退出按钮按下大延时问题,小编就是解决这个问题才发的这个“你知道吗”;
2、用用户定义事件,这是可以的

在四个循环的事件结构里都添加一个停止按钮鼠标按下的事件,然后把一个T常量连到while停止上,不就可以停止了?

非常简单

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

网站地图

Top