2 回答
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,它具有可用于Python、LabVIEW和许多其他语言的绑定。
TA贡献1780条经验 获得超4个赞
我同意最好的选择可能是直接实现基于 TCP/IP 的通信,但是如果您想要更简单的东西(特别是如果您的通信采用“这是运行 VI 的一组指令,请运行该 VI 然后给我结果”)你可能想看看
该Wiresmith CLI工具(在VI包装在GitHub上发布,目前比可通过VIPM更新),或
特别是,Wiresmith 工具使用 TCP/IP 连接到您指定的 VI(或 exe),然后可以使用简单的 VI 将消息写回控制台。
我最近将它与 SCons(基于 Python 的构建系统)一起使用,并发现它非常有用,但这可能是一个比完整测试系统简单得多的界面。
添加回答
举报