LabVIEW语言是一种图形化编程语言,是专门为测试、测量或控制的工程应用程序而构建的。这意味着LabVIEW擅长于工程特定的软件需求,如简化硬件集成、创建以工程为中心的用户界面、从LabVIEW生态系统访问内置分析库等。LabView在军工、航空航天行业用的比较多,组态软件民用比较多。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
LabVIEW优势:
1> 快速原型验证。面向的通常是硬件工程师或不太懂软件编程的研究者。为了达到容易上手的目的,很多复杂的功能都通过封装简化,很多软件理论也进一步弱化,从而达到短时间内出成果的目的。其好处是,学习曲线短,开发应用程序速度快,但这也导致LabVIEW易学难精。
2> 别适合做图形化应用程序开发的开发平台,若不是计算机科班出身,建议优先考虑LabVIEW。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
LabVIEW缺点:
1>在数据处理方面不尽人意。很多仪器在处理复杂信号的时候需要借助Matlab强大的信号分析处理能力,但一般仪器厂家提供的分析软件不支持与Matlab的接口,将两者功能进行结合也有难度。
2>后期修改程序比较麻烦,一旦要改,改动的地方就比较大,这对于较大型的程序是很不利的。虚拟仪器的使用者更希望能够方便的修改软件配置,满足不同个体的需求,LabVIEW在这一点上有局限性。在程序开发过程中,不可避免的遇到需求不断增加,功能不断累积。当程序规模越来越大时,打包、编译、框架、人员等初期验证并不需要太多关注的问题反而成为制约开发的重要因素。
3>LabVIEW也不擅长协议分析,搭建功能块进行协议分析较为繁琐。
而Python在数据处理、协议分析方面要优于LabVIEW。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
现在需要使用NI硬件卡采集物理数据,用LabVIEW编程采集上来,再使用Python进行数据分析,以及和其它系统通信,进行协议分析。需要将LabVIEW、Python结合使用,发挥两者的优势。
有如下几种方式:
A)LabVIEW2018 含Python调用节点
LabVIEW+Python可以非常方便快速的完成应用程序用户界面和程序框架的开发。
应用举例1:Python负责深度学习算法开发、调试和训练,并编写好推断函数;LabVIEW负责用户界面开发、应用程序架构开发,并调用Python编写好的推断函数,实现深度学习推断功能。
应用举例2:物联网:终端+web端/app,若自动化测试,需要硬件自动化测试,也需要web/APP自动化测试。Labview+Python脚本是否可以完美解决物联网自动化需求。
1> LabVIEW负责用户界面开发、应用程序架构开发;
2> Python负责协议解析等;
3> LabVIEW调用Python编写好的协议模块,进行网络通信;
B)OpenG 中的LabPython,也是labview调用python
----可能不支持最新版的labview,可能已经落伍,能搜到的资料较少
C)Enthought 价格较高
LabVIEW/Python集成工具包 当A)方式不够用时,再考虑
D)利用System Exec函数,直接运行.py文件
Calling NI Hardware DLLs Using ctypes
---->This solution provides an intuitive way to integrate Python scripts with most hardware componets.
LabVIEW DLLs:LabVIEW has the ability to generate DLLs composed of hardware API functions
that can be called from Python.
Python作为一个胶水语言,能找到各种各样的库文件,写小的测试脚本非常方便。在不复杂的程序,如测试序列,非常适合使用python。(某一个应用,从和仪表通信到数据分析,全部用Python)。
1> PYQT:可以轻松开发出优质的GUI界面。Python与QT库的混合体。
2> NumPy ---数据处理 用于科学计算的封装库,相当于Matlab的Python版本,它提供了矩阵、线性代数、傅立叶变换等的解决办法。NumPy提供两种基本的对象ndarray(N-dimensional arrayobie ct)和ufunc(universal function object)。NumPy的核心是ndarray对象,它是一个封装好的,只能存储同个类型数据的多维数组。Pandas ---用于数据处理和分析的库,创建一个功能强大的数据结构,以存储我们的测量结果。
3>PyVISA库,用来控制仪器
the easiest way(for me) to communicate with python code from LabVIEW is to send TCP commands from LabVIEW to Python and back. The idea is to run python scipt in python ide itself and write LabVIEW client which will send TCP requests in python script and receive response from python.