同台PC上连个程序的通讯。

2019-07-18 01:45发布

在一台PC上面如何实现两个Vi的数据交互,或者说如何在编写一个Vi(假设为A),这个Vi预留数据输出接口,以后有新的Vi(假设为B)的时候只要知道这个接口 就可以和A通讯。
×××××××××××××××××××××××××××××××××××××
PS:如果是基于C++编程的话,可以通过 油槽等方式解决。 但是labview里面如果实现还真不知道

PS:最好不要涉及到全局变量,有全局变量的程序 大都不好。


PS:当然了 也可以使用PC上面两个串口通讯,不过这有些麻烦。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
wenluderen
1楼-- · 2019-07-19 09:16
LabVIEW2016 发表于 2015-12-30 12:50
网口占用的是端口好几万个端口占用一两个没有关系的……

说的  也是  我试一下。。

我就是担心 会影响到数据采集的稳定性。

比如:Basler 500万的相机  ,按通常的14帧秒算账的话,,占用的带宽是很庞大的。

况且,数据从网卡里面走了下,速度可能会降低。


不过我还是试下 你说的方案。。
高顺周
2楼-- · 2019-07-19 12:11
sushu 发表于 2015-12-29 18:09
A是一个队列状态机,创建一个case,解析B传来的数据。新建B之后,根据A队列的名称,发送相应的数据即可。或者使用Actor framework,更方便。

桑心啊 版主。。 在同一个项目的两个Vi 可以使用队列实现数据交换。但是如果两个VI 不在一个项目里面,就不行了。。。
高顺周
3楼-- · 2019-07-19 17:38
ShuiMoLise 发表于 2015-12-29 21:47
使用队列,datasocket,本机tcp通讯都可以。顺便说一下,全局变量也没有楼主想的那么糟糕

刚刚测试了DataSocket这个方案,在两个项目里面是可以通讯的。 字母 中文都可以。

不过有个问题,就是我发现的时候 就发送一次,,但是却可以接受无数次。。

这个不好。 缓冲区没有清理机制。  

另外我也测试了 一个端口从打开到关闭的时间,合计需要250-300mS。

ShuiMoLise
4楼-- · 2019-07-19 19:33
高顺周 发表于 2015-12-30 21:10
刚刚测试了DataSocket这个方案,在两个项目里面是可以通讯的。 字母 中文都可以。

不过有个问题,就是我发现的时候 就发送一次,,但是却可以接受无数次。。

datasocket打开时间没测试过,个人觉得数据传输数度还是很快的,你应该看过用他传递波形数据的吧,数据传输还是很流畅的,其实最优方案还是队列啦。我说那些是给你拓展一下思路
Huxianxin8827
5楼-- · 2019-07-19 22:27
 精彩回答 2  元偷偷看……
sushu
6楼-- · 2019-07-19 23:09
高顺周 发表于 2015-12-30 20:19
桑心啊 版主。。 在同一个项目的两个Vi 可以使用队列实现数据交换。但是如果两个VI 不在一个项目里面,就不行了。。。

不同的项目文件夹。还没有研究过,不能是一个项目吗?

一周热门 更多>