完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
求大神指点一二啊,谢谢
|
|
|
|
求大神
|
|
|
|
没什么问题,重置vi的提示并不影响程序功能,而是你vi占用了太多资源没有及时释放由系统的资源管理重置该vi占用的资源,建议你的for循环添加一个小的延时。
|
|
|
|
静夜style 发表于 2017-7-13 08:50 好的。我试试,谢谢!!! |
|
|
|
静夜style 发表于 2017-7-13 08:50 从资源管理器中发现CPU和内存使用都正常,而且偶发出现程序卡死,强制关闭就出现重置VI,请问什么原因呢? |
|
|
|
本帖最后由 静夜style 于 2018-1-5 14:53 编辑
强制关闭VI也不是立即就结束所有的ni相关进程,当点击了关闭,ni自带的垃圾处理功能就会运行,用来处理运行时产生的资源消耗,像一般的c,c++等语言需要自己编写垃圾处理的,就拿打开文件来说吧,labview允许你调试的时候只打开文件而不关闭,并且在你结束之后自动调用结束这个功能,这个在lv开发环境下是可取的,c,c++肯定是不允许的。另一个例子就是关于labview中的while循环的问题,当你有一个while循环没有任何退出条件,但是你又结束了当前while循环所在的vi,此时labview是不会去结束你的那个while循环的,而是把那个循环当做一个单独的线程去运行,但是有可能该while循环内部调用了已经被结束的vi的控件,那么此时while循环就访问了一块非法的内存,那么labview就需要去针对这个while循环做异常结束,也就是看到重置vi这个提示。 关于程序优化的建议,所有的循环尽可能给出退出的条件,而不是无休止的一直执行,关闭vi前面板的时候,请一定要结束所有的相关的循环,避免自动变成后台的僵尸进程。推荐使用关闭labview而不是关闭vi,关闭labview会关闭所有的子进程。适当的禁止前面板自动刷新,前面板最好用事件结构处理,但是处理前面板的时候最好关闭延迟响应,前面板按钮等控件所触发的事件最好用子VI去调用,这样不会出现前面板假死。数据传递到子VI比直接拖一大堆框图节点效率更高一些,并行的几个循环一定要注意变量值的变化,轮询模式的标准状态机一定要给while循环加至少50ms延时。事件结构千万不要嵌套,也不要在同一个vi中使用两个或更多的事件结构,一个vi最多一个事件结构,否则很大概率会出现事件无响应。条件结构嵌套最好不要超过3层,如果超过了,请话卡诺图重新整理逻辑,否则很大概率得不到正确的结果。 |
|
|
|
静夜style 发表于 2018-1-5 14:49 多谢专家指导! |
|
|
|
一语惊醒梦中人
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
关于DAQExpress软件中电压的最大值最小值是根据什么来确定的?
1513 浏览 0 评论
基于LabVIEW的声发射定位:如何准确获取信号到达不同传感器的时差?
1462 浏览 1 评论
2471 浏览 0 评论
2824 浏览 0 评论
Labview使用SFTP在WIN10系统正常,但是WIN11系统下会报错,请问有知道怎么解决的么
3006 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-15 11:23 , Processed in 0.856559 second(s), Total 88, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191