【问题标题】:Is there a way i can develop a Python GUI to control LabVIEW VIs?有没有办法开发 Python GUI 来控制 LabVIEW VI?
【发布时间】:2019-04-04 14:33:57
【问题描述】:

我正在为测试设备设置一个基于 Python3 构建的软件,目前这些设备使用 National Instruments cRIO 硬件和其他 NI 硬件。系统在Windows电脑上运行。

为了控制这些硬件,我们需要在 LabVIEW 上构建的 VI 和子 VI。我知道 LabVIEW 有它自己的用户界面,但我仍然想用 python 开发我的 GUI,因为未来并非所有的装备都会使用 NI 硬件或 LabVIEW。未来可能会有MATLAB插件。

我在网上看到了可以在 LabVIEW VI 中使用 Python 函数的教程,但是有什么参考点可以让我使用 LabVIEW VI 并在 Python 上构建 GUI?

提前感谢您的帮助。

【问题讨论】:

标签: python software-design labview


【解决方案1】:

我同意最好的选择可能是直接实现基于 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 中的代码未来(如果你真的必须)。

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

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

    【讨论】:

    • 编辑添加:ZeroMQ 也可能是一个选项。
    猜你喜欢
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多