当前位置:首页>java>LabVIEW编程不正常退出VI

LabVIEW编程不正常退出VI

  • 2026-09-16 13:12:10
LabVIEW编程不正常退出VI
今天看某群又有人问这个问题,说自己的程序,退出时候。一直弹出如下界面。然后关也关不掉,要等好久。大多时候,都是自己任务管理器强制结束的。
为什么会出现这个对话框呢?先说原因:
LabVIEW中出现“重置VI”一般有以下几种原因:
原因
说明
强制中止VI
当你点击“中止执行”按钮(红色停止按钮)或使用Stop函数时,LabVIEW会向所有执行线程发送重置请求。
VI正在执行阻塞操作
如果VI在进行I/O或其他阻塞操作,中止后LabVIEW会等待这些线程完成,显示“重置VI”提示。
非多线程操作系统
在非多线程系统上,使用Stop函数也会导致“重置VI”消息。Stop函数主要用于调试,不建议用于正式代码。
LabVIEW关闭时等待进程结束
关闭LabVIEW时,如果有VI未正常终止,也会出现“重置VI”提示,需等待所有进程结束。

重点说明

  • 避免强制中止
    :强制中止VI时,VI的状态无法保证,可能导致资源(如文件、硬件)未正确释放。建议设计程序化的停止方法,让VI正常完成执行。
  • 阻塞操作
    :如果“重置VI”提示长时间不消失,说明某个线程还在执行阻塞任务。此时可尝试等待,或用操作系统的任务管理器强制关闭LabVIEW(注意可能丢失未保存的数据)。
总而言之:就是非正常退出程序。比如,看到网上有人出现这原因,截图,
抑或有人用这个函数退出程序:
这不得不提之前公众号发过的一个常见错误。中间就有,不经常测试停止功能。
这么多年,我看过很多低端代码,甚至有人直接N个while死循环,退出直接
界面做的也挺好看,功能也正常,就是不要去看代码或者修改代码,不如自己写,状态机都可用不用。纯条件结构到底,看得都累。
当然,还有其他类型的,即使程序上正常退出,实际上也由于某些线程阻塞了,导致VI重置。那就是调用第三方接口。我见过的最多的是.NET接口调用时,卡死在调用里面也不返回,这时候LabVIEW无法正常退出,就只能重置VI了。
所以,第三方少用,不管是自己写的,还是别人提供的,除非严格的测试过。出了问题,很难搞。好不容易定位到某一个地方了,发现是个黑盒子,看不到里面,无解。当然,必须用就用吧,有些人就喜欢.NET写后台,LabVIEW做界面,各取所长。
十几年前,那时候天天泡QQ,遇到的提问也形形色色,当时有人问我,有没有办法,编程替代LabVIEW这个单次运行,和停止功能。而且还不止一个人。
现在倒是没人问我了,可能网上咨询渠道多了,可能我也没去关注了。
所以,这就不得不提使用现有的模板的好处了。不管是JKI,还是CSM,或者其他状态机之类的。有些线程的模板拿出来,里面的有些常用功能都给我们写好了,我们只关注自己的那部分的代码实现即可。

最新文章

随机文章