NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

相同的网络发布的共享变量能否在多台PC设备上通信

已解决!
转到解答

我的开发过程是建立一个工程,然后有一个控制器子程序和一个主机子程序。车间有10台PC控制器,运行的是相同的应用程序,但IP地址各不相同,中控室有1台主机,主机通过局域网采集每台控制器的实时数据。

请问大家,如果让控制器使用一个网络发布的共享变量来向主机发送检测数据,这无疑是最方便简单的,但同时有十份相同的程序,会不会使主机无法辨认谁是谁啊?这种架构的网络,大家觉得怎么样做比较好?

0 项奖励
1 条消息(共 4 条)
5,358 次查看
解答
已被主题作者 yao-xiaoer 接受

是的,如果使用共享变量的话是无法区别各个主机的IP地址的。这种情况建议使用网络数据流,例如UDP,主机打开一个UDP连接,然后读取数据。其他从机也打开一个UDP连接,有数据就给主机的IP和端口发。这样主机可以读到数据、从机IP和端口,进而加以区分。  不能使用TCP,因为TCP是建立在连接上的,除非你那边不在乎频繁的建立、断开这样的过程。  UDP对于1对多比较好用一点

0 项奖励
2 条消息(共 4 条)
5,351 次查看

很谢谢你的答复。

我仔细看了通讯相关的几种方式,有“网络流”、“datasocket”,TCP和UDP等等,按无连接优于有连接的原则,TCP似乎应该剔除,那么“网络流”、“datasocket”又如何呢?哪种技术更简单好用些?

0 项奖励
3 条消息(共 4 条)
5,347 次查看
解答
已被主题作者 yao-xiaoer 接受

网络数据流也是端对端的,类似TCP,这种建立在连接上的通讯,主要是保证了数据传输可靠性。 还是建议您使用UDP

0 项奖励
4 条消息(共 4 条)
5,341 次查看