我正在为测试平台设置一个基于Python3构建的软件,目前这些平台使用National Instruments cRIO硬件和其他NI硬件。系统在Windows计算机上运行。
要控制这些硬件,我们需要基于LabVIEW构建的VI和子VI。我知道LabVIEW带有自己的用户界面,但是我仍然想用python开发我的GUI,因为将来并不是所有的钻机都将使用NI硬件或LabVIEW。将来可能会有MATLAB插件。
我看过在线教程,可以在LabVIEW VI中使用python函数,但是对于我来说,可以使用LabVIEW VI并在Python上构建GUI的参考点是什么?
谢谢您的帮助。
答案 0 :(得分:2)
最灵活的体系结构是根据需要进行的通信类型使用TCP / IP,UDP和Web服务的某种组合。 这也使您可以灵活地在cRIO(或其他设备)和主机PC之间移动I / O代码的不同部分,因为无论您是要与其他设备还是在同一台计算机上进行通信,相同的协议都将起作用。
NI CompactRIO Developers' Guide的第4章很好地介绍了这些选项,但总结如下:
在LabVIEW中有所有这些示例,一旦您了解了基础知识,就应该能够轻松实现通信的相应Python端-类似地,用MATLAB或其他替代LabVIEW代码的方法未来(如果确实需要)。
请记住,在过去的几年中,您可以使用LabVIEW在Web服务上做很多改变,因此,如果您在线查看任何示例,请检查它们是否具有最新功能。
答案 1 :(得分:2)
我同意最好的选择是直接实现基于TCP / IP的通信,但是如果您想简化一些事情(特别是如果您的通信采用“以下是运行VI的指令集, VI,然后给我结果”),您可能想看看
尤其是,Wiresmith工具使用TCP / IP连接到您指定的VI(或exe),然后可以使用简单的VI将消息写回到控制台。
我最近一直在将它与SCons(基于Python的构建系统)一起使用,并且发现它非常有用,但是它可能比完整的测试系统简单得多。