有没有办法开发Python GUI来控制LabVIEW VI?

问题描述 投票:1回答:2

我正在建立一个基于Python3的软件,用于测试装备,目前这些装备使用NI的cRIO硬件和其他NI硬件。系统在Windows计算机上运行。

要控制这些硬件,我们需要在LabVIEW上构建VI和子VI。我知道LabVIEW带有自己的用户界面,但我仍然希望在python中开发我的GUI,因为未来并非所有的钻机都会使用NI硬件或LabVIEW。将来可以有MATLAB插件。

我在网上看过可以在LabVIEW VI中使用python函数的教程,但是对于我可以使用LabVIEW VI并在Python上构建GUI的参考点是什么?

提前谢谢你的帮助。

python software-design labview
2个回答
2
投票

我同意最好的选择可能是直接实现基于TCP / IP的通信,但是如果你想要更简单的东西(特别是如果你的通信是“这是一套运行VI的指令”,那么运行那个VI然后给我结果“)你可能想看一下

特别是,Wiresmith工具使用TCP / IP连接到您指定的VI(或exe),然后可以使用简单的VI将消息写回控制台。

我最近一直在使用SCons(基于Python的构建系统),并且发现它非常有用,但这可能是一个比完整测试系统简单得多的界面。


2
投票

最灵活的架构是使用TCP / IP,UDP和Web服务的某种组合,以适合您需要进行的通信类型。这也使您可以灵活地在cRIO(或其他设备)和主机PC之间移动I / O代码的不同部分,因为无论您是在与其他设备通信还是在同一台计算机上,相同的协议都能正常工作。

这些选项在NI CompactRIO Developers' Guide的第4章中得到了很好的介绍,但总结如下:

  • 用于消息,命令或流数据的TCP / IP,其中不会丢失任何数据
  • 用于广播更新的UDP,其中低延迟比100%完整性更重要
  • 用于访问当前值(标签)的Web服务 - 我想这些也适用于短消息或命令。

在LabVIEW中有所有这些示例,一旦理解了基础知识,您应该能够毫不费力地实现相应的Python通信结束 - 同样,将来用MATLAB替代LabVIEW代码(如果你真的必须)。

请记住,在过去几年中,您在Web服务中所做的工作已经发生了很大的变化,因此,如果您在线查看任何示例,请检查它们是否与最新功能保持同步。

或者,我自己也没有这方面的经验,但你可能想看看ZeroMQ,它有PythonLabVIEW和许多其他语言的绑定。

© www.soinside.com 2019 - 2024. All rights reserved.