求助!!LABVIEW生成的DLL被调用后无法停止!

2019-07-17 12:21发布

如附件图所示,读取本地文件夹里的文件,然后通过采集卡发送出去,输入量是文件地址的字符串和while循环的停止标志位(1表示停止循环,0表示无限循环)。 微信图片_20180209165334.png 微信图片_20180209165725.png labview生成DLL,在PYTHON环境中调用DLL。但是调用该DLL的函数,signal trans("D:TESTVF",0),可以将文件夹中的一个个文件读取出来并形成波形由采集卡发送出去,可是该DLL函数就再也退出不while循环,就不能再给函数赋值signal trans("D:TESTVF",1),使其停止while,不再发送数据。
觉得这样的程序结构导致的这样的问题,各位有没有好的办法解决,多谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
sszx2007
1楼-- · 2019-07-17 18:06
你把“停止标志位”放在while循环里面就行了
呼呼721
2楼-- · 2019-07-17 21:57
sszx2007 发表于 2018-2-22 22:42
你把“停止标志位”放在while循环里面就行了

试过了,不行。在考虑用类似生产者消费者的模式,做一个多线程的,开始和停止不陷在循环里。
目前还没有想到合适的方法
sszx2007
3楼-- · 2019-07-18 00:36
既然你是在PYTHON环境中调用这个DLL,那个这个VI你就不应该放个循环进去,你的循环应该写在PYTHON中,然后在PYTHON的循环中调用这个DLL。
呼呼721
4楼-- · 2019-07-18 04:35
 精彩回答 2  元偷偷看……
呼呼721
5楼-- · 2019-07-18 09:09
sszx2007 发表于 2018-2-26 20:43
既然你是在PYTHON环境中调用这个DLL,那个这个VI你就不应该放个循环进去,你的循环应该写在PYTHON中,然后在PYTHON的循环中调用这个DLL。

这个方法也试过了,如果LABVIEW只负责读取文件输出文件,python自己调用DLL去开始和停止读取文件,发现PYTHON也不能实现停止,因为Labview适度去一个文件夹,然后一个个的去读取里面的文件,还是得等到文件都读取完了才会停止FOR循环,循环中间不可能去读取外界输入的参数去停止。
呼呼721
6楼-- · 2019-07-18 11:07
sszx2007 发表于 2018-2-26 20:43
既然你是在PYTHON环境中调用这个DLL,那个这个VI你就不应该放个循环进去,你的循环应该写在PYTHON中,然后在PYTHON的循环中调用这个DLL。

其实就想知道,LABVIEW在while循环运行起来后,是否可以给while循环里输入一个参数,使其停止循环。实际操作时是,做成DLL函数后,while循环运行,相当于函数被占用,不能再别调用,就不能给其赋值了。

一周热门 更多>