关于多线程竞争VISA资源串口, 我有多个功能使用了VISA串口, 都是并行执行的,怎么解决这个问题?

2019-07-17 11:41发布

关于多线程竞争VISA资源串口, 我有多个功能使用了VISA串口, 都是并行执行的,怎么解决这个问题

子VI都都是子面板打开

2.如何做一个功能 , 前面板无人操作某一段事件内, 则发生一个事件

3,异步调用的VI有时候可以初始化WHILE外部循环有时候不可以

我的这些功能单独测试都是没有问题的,,急,在线等

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
老蜗牛
1楼-- · 2019-07-17 17:14
多个labview子vi无法同时处理同一个串口,如果需要,应该是编程逻辑需要修改。
woshisu
2楼-- · 2019-07-17 21:28
老蜗牛 发表于 2018-5-11 20:32
多个labview子vi无法同时处理同一个串口,如果需要,应该是编程逻辑需要修改。

。。怎么改最好 状态机吗??
老蜗牛
3楼-- · 2019-07-17 22:56
woshisu 发表于 2018-5-11 20:42
。。怎么改最好 状态机吗??

目前不是改程序的问题,而是要捋一下程序的架构和编程思路。第一步干嘛,第二步干嘛,而不能先把子程序写好,再来考虑主程序架构。labview编程有一种从上到下,全局到局部,整体到细节的感觉,而不能从底往顶考虑架构。
wyq95361977
4楼-- · 2019-07-18 01:47
 精彩回答 2  元偷偷看……
zhouyezuishuai
5楼-- · 2019-07-18 03:52
我一直想不明白,为什么要用子面板这种方式?这种方式相当于动态调用VI,也就是说每个子VI在程序开始就加载在内存中了,即使当前这个子VI不在最前交互的界面,也还是在内存中运行的  相反,如果直接拖放VI到程序框图,LabVIEW会在运行完毕后把子VI从内存中释放出去   我这里做项目一般都是用队列来处理这种硬件通讯的问题,事件结构超时分支入读的命令,需要写数据的时候在队列最前端入一个写的命令  动态调用VI我一般只有在显示某些用户可能无法及时处理的弹窗而又不能影响后台程序运行的情况下才会用到
啊哈dD
6楼-- · 2019-07-18 06:19
我是这么想的  一个线程负责收发  一个负责处理数据 一个用来刷新数据   关键的问题是怎么处理缓存区的数据  没做过

一周热门 更多>