目前我正在为基于Linux的机器(Ubuntu)的C ++实验开发一个数据采集程序,我在Labview中有许多VI,它们在Windows中编程控制实验仪器(电机,信号发生器) ..)。目的是在2个PC之间进行双向通信,Linux将询问要执行哪些VI,以及何时完成,将信号发送回Linux机器。 我的问题是:
答案 0 :(得分:1)
最好(也是最简单)的方法是实现基于TCP的客户端 - 服务器通信(TCP将确保数据无损。当使用UDP或串行等其他机制时,应始终确保正确接收命令)。
在LabVIEW站点,您将拥有TCP侦听器(服务器),它将在指定端口侦听来自Linux计算机的命令。
接到命令后,LabVIEW代码可以通过相同的TCP连接完成工作并进行回复。
这是关于您的问题的非常好的文章:https://decibel.ni.com/content/docs/DOC-9131
答案 1 :(得分:-1)
它们是C ++和LabVIEW之间通信的几种选择。 (以及Linux / Windows)。
如果您愿意在Linux机器上运行LabVIEW,可以使用几种LabVIEW通信架构。这是NI的白皮书。 http://www.ni.com/white-paper/12079/en/ 提供共享变量,网络流,Web服务,TCP / IP等选项。
您还可以获取LabVIEW代码并将其编译为DLL并从C ++调用它以利用上述某些功能。如果不是,您可能不得不转到TCP / IP路由或Web服务。
我建议使用TCP / IP,双方都很容易实现。 如果您更熟悉串行协议,也可以使用它们进行通信。