在Linux

时间:2016-07-19 13:12:48

标签: linux windows labview serial-communication

目前我正在为基于Linux的机器(Ubuntu)的C ++实验开发一个数据采集程序,我在Labview中有许多VI,它们在Windows中编程控制实验仪器(电机,信号发生器) ..)。目的是在2个PC之间进行双向通信,Linux将询问要执行哪些VI,以及何时完成,将信号发送回Linux机器。 我的问题是:

  1. 我可以从Linux向终端中的Labview发送信号或命令(终端,它可以实现到我的C代码中),反之亦然?怎么样?
  2. TCP Labview可能是一个解决方案吗?或者我应该尝试通过串行通信设置PC间“通话”(这很容易在物理上设置)?

2 个答案:

答案 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,双方都很容易实现。 如果您更熟悉串行协议,也可以使用它们进行通信。