强制跳出子vi的运行程序,继续执行主vi

2019-07-17 15:48发布

一个子vi里面只有顺序结构,结构内是一些算法模块,假设调用该子vi后,因为某些原因导致某一个算法模块卡住了,也没有提示信息,在子vi中有没有调用节点可以做一个超时,让程序强制停止,然后主程序继续运行


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
木头feng
1楼-- · 2019-07-19 20:44
发烧友Mrhe 发表于 2016-12-15 19:59
当然可以,很简单!你把算法后边加个子VI,子VI是判断有没有错误的 有错误,错误处理下继续进行就可以了!  小子好好学吧!

首先,是在算法模块卡主的,不会有输出,也就没有错误处理的说法了,你没理解我的意思,理解后再说
木头feng
2楼-- · 2019-07-19 21:15
 精彩回答 2  元偷偷看……
木头feng
3楼-- · 2019-07-19 22:02
发烧友Mrhe 发表于 2016-12-16 08:12
道理是通的,在顺序结构前后价格时间计时 在算法那加个循环,计算下时间,时间到了就执行下一步,这不就行了,活学活用,你们学的太僵硬!!!!

在算法模块卡住了,放再循环内,连当前的循环都进行不下去,还想做计时?你想清楚点
木头feng
4楼-- · 2019-07-19 22:26
krize 发表于 2016-12-16 09:35
这样应该比较清楚了吧,自己设置超时时间。

这个调用节点我试过,不行
krize
5楼-- · 2019-07-20 02:52
木头feng 发表于 2016-12-16 11:51
这个调用节点我试过,不行

你的算法模块是用LabVIEW写的吗,还是调用了dll或其它方式? 这个节点关闭VI是没有问题的,你可以尝试把这段代码放到算法模块的子VI里去试一下。
如果实在停止不了算法模块,建议采用异步调用的方式调用算法模块,算法模块的执行结果通过队列或其它方式返回给主程序,同时,调起算法模块以后在主程序里开始计时,超过时间没返回算法结果就认为算法执行失败了,此时可以通知用户算法执行失败了看看要不要采取其它措施。这种方法能保证你的主程序在算法卡住的时候也能继续运行,算法卡住的问题还是需要另外想办法解决。
木头feng
6楼-- · 2019-07-20 05:30
krize 发表于 2016-12-16 12:03
你的算法模块是用LabVIEW写的吗,还是调用了dll或其它方式? 这个节点关闭VI是没有问题的,你可以尝试把这段代码放到算法模块的子VI里去试一下。
如果实在停止不了算法模块,建议采用异步调用的方式调用算法模块,算法模块的执行结果通过队列或其它方式返回给主程序,同时,调起算法模块以后在主程序里开始计时,超过时间 ...

算法模块是labview自带的,不是调用的dll,只是一个模块,而且主程序需要自动化测试,没有人为干预,所以需要监测是否超时,然后给出错误结果,自动重测

一周热门 更多>