为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

炎炎设计 2021-12-29 10:18:41
我正在为测试设备设置一个基于 Python3 的软件,目前这些设备使用 National Instruments cRIO 硬件和其他 NI 硬件。系统在 Windows 计算机上运行。为了控制这些硬件,我们需要在 LabVIEW 上构建的 VI 和子 VI。我知道 LabVIEW 有自己的用户界面,但我仍然想用 python 开发我的 GUI,因为不是所有的装备将来都会使用 NI 硬件或 LabVIEW。将来可能会有 MATLAB 插件。我在网上看过一些教程,可以在 LabVIEW VI 中使用 Python 函数,但是有什么参考点可以让我使用 LabVIEW VI 并在 Python 上构建 GUI?提前谢谢你的帮助。
查看完整描述

2 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

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

这些选项在 NI CompactRIO 开发人员指南的第 4 章中得到了很好的介绍,但总结如下:

  • 用于消息、命令或流数据的 TCP/IP,不会丢失数据

  • UDP 用于广播更新,其中低延迟比 100% 完整性更重要

  • 用于访问当前值(标签)的 Web 服务——我想说这些也适用于短消息或命令。

LabVIEW 中有所有这些示例,一旦理解了基础知识,您应该能够轻松实现通信的相应 Python 端——同样,将来用 MATLAB 或其他东西代替 LabVIEW 代码(如果你真的必须)。

请记住,在过去几年中,您可以在 LabVIEW 中使用 Web 服务执行的操作发生了很大变化,因此,如果您查看任何在线示例,请务必检查它们是否具有最新功能。

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


查看完整回答
反对 回复 2021-12-29
?
Helenr

TA贡献1780条经验 获得超4个赞

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

  • Wiresmith CLI工具(在VI包装在GitHub上发布,目前比可通过VIPM更新),或

  • NI CLI 工具,默认安装在 LabVIEW 2018 中,但支持 2014 年以后的版本下载链接文档

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

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


查看完整回答
反对 回复 2021-12-29
  • 2 回答
  • 0 关注
  • 289 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信