概览
随着测试需求的快速变化和测试项目开发周期的缩短,您和团队能否最大程度地复用现有测试软件和测量库,将尤为重要。那为什么测试工程师不能更频繁地复用更多软件呢?以下是测试团队最常给到的答复:
· 我们正在使用的软件是调任或离职同事所开发的遗留软件,如果对未知部分进行更改,可能会有很大的风险,而且费用也很高。
· 测试和验证工程团队都有各自的工具和语言偏好或团队标准化机制;而且,由于过去项目的工具或软件无法满足当今的需求,要实现代码复用非常困难。
· 工程师亟需要最大程度地提高软件复用程度及构建抽象层或框架,但这不仅成本昂贵且耗时甚久。随着项目周期不断缩短,企业难以将重点放在如何实现标准的复用以及借鉴业界最佳实践上。
现在工程师面临的挑战是应该通过标准化来获得长期优势,还是利用现有的代码和软件技能或偏好?两者应如何取得平衡?为了帮助解决这个挑战,LabVIEW作为一个开放平台,可帮助您将所有的测试硬件和软件系统集成在一起。
使用LabVIEW,您可以将多种编程方法与图形化数据流结合到单个应用程序中。基于这种灵活性,您可以选择所需的工具来创建待测设备(DUT)的控制、配置或测量库。LabVIEW可将多种语言(如.m、C、Python、IEC 61131-3和.NET)集成到您的应用程序中,且能够与本地或网络上运行的其他软件进行互操作,从而帮助团队更快速成功。
内容
· 调用现有DLL和.NET程序集
· 调用MATLAB脚本
· 集成Python脚本
· 通过标准工业协议与外部系统通信
调用现有DLL和.NET程序集
除了将源代码导入LabVIEW程序框图之外,还可在LabVIEW应用程序中调用使用其他语言开发的应用程序和算法。例如,如果您已经有一个C/C ++共享库并且需要在LabVIEW中复用该库,那么可以使用“调用库函数节点”(Call Library Function Node)来调用这个共享库。为了使导入外部库更加容易,LabVIEW还提供了导入共享库向导(import Shared Library Wizard),可自动创建或更新LabVIEW包装VI项目库,以便集成到LabVIEW程序框图中。
图1.使用图形化编程方法和Call Library Function Node(调用库函数节点),复用现有C或C ++共享库。
调用MATLAB脚本
调用使用The MathWorks,Inc.MATLAB®软件开发的MATLAB脚本,其中包含了常见的数值分析、信号处理和高级数学编程方法。这些脚本可以使用MATLAB脚本节点与VI结合在一起,从而可以将MATLAB分析函数集成到测试和测量系统中。
集成Python脚本
LabVIEW也可以调用系统中运行的其他应用程序。过去十年,Python的应用日益普及且不断扩展,为各种应用提供了数十万个现成的代码库。通过开发Python自动化脚本并将其集成至大型的LabVIEW程序,提供了一个直观的解决方案来将Python的灵活脚本编写功能合并到LabVIEW系统设计工具。有多种方法可以复用Python代码,比如Enthought开发的LabVIEW Python集成工具包或者与LabVIEW内部的命令行连接,这些方法提供了针对特定操作系统的接口,来调用可执行文件和其他构建库。
图3.使用LabVIEW Python集成工具包进行内联调用,在LabVIEW中复用现有Python脚本。
通过标准工业协议与外部系统通信
LabVIEW具有通用和特定行业专用的以太网和串行外设通信库。LabVIEW本地支持常用的工业协议(如CAN、PROFINET、OPC UA和EtherCAT),因而可以连接到各种设备、机器和基础架构。如果您的应用程序需要支持多种协议,LabVIEW可以作为一个网关,在其支持的近20种协议之间转换,其中包括针对特定行业的协议,如DNP3和FlexRay。
由于FPGA可以使用LabVIEW进行编程,因此您甚至可以高效地构建自定义通信协议来满足传统或特有通信需求。LabVIEW FPGA模块提供了串行、I2C和SPI等数字总线协议的代码示例,作为开发基础,同时还为Xilinx Aurora、Serial RapidIO、JESD204B和10千兆位以太网等高速串行协议提供了FPGA IP内核。
图 4.使用LabVIEW中的标准协议支持与DUT和其他系统组件进行通信,如NI-XNET仪器驱动程序。