LabVIEW如何减少下一代测试系统中的硬件过时2
HAL最佳实践
从通用测试函数中分离测试逻辑
一个重要的最佳实践是将特定于dut的测试逻辑与更通用的、可重用的测试模块分离,以提高重用性并减少重新验证和文档成本。解耦和使层模块化可以改进系统架构,使层更容易开发和维护。例如,将特定于dut的测试限制(不可重用)与实际的限制测试实现(可重用)分离。将更通用的测试代码放在更高级别的ASL中的另一个原因是减少重复代码的数量。
将通用测试功能与仪器驱动程序和硬件分离
将通用测试功能与仪器驱动程序和硬件分离,可以使ASL软件模块获得相同的测量结果。向DSSP实例添加更多代码以使工具的行为与其他工具类似也是有效的。例如,如果大多数数字万用表(DMM)都可以实现多点测量,而您需要使用只能进行单点测量的DMM,则可以在单点DMM的DSSP实现级别中添加循环代码,使其从ASL的角度表现得像多点DMM。
将测试系统参数与测试逻辑分离
另一个最佳实践是将测试系统参数与测试逻辑分离。这减少了对工具或特定DSSP实例的硬编码依赖。它还使将测试应用程序编译成可执行文件成为可能,因为您不必更改代码来修改测试硬件。
动态或静态互换性设计
在设计特定于应用程序的HAL时,您可以在动态或静态互换性之间进行选择。动态互换性意味着您在运行时选择特定的DSSP实现。在这种情况下,您使用一个XML配置文件来标识硬件资源名称和DSSP父类的LabVIEW类实现。使用LabVIEW类迫使你在实现的虚拟仪器(VIs)中拥有相同的连接器窗格(类似于函数参数),这与函数类似。静态可互换性意味着函数包含相同的函数参数,但不需要在运行时进行额外的交换。静态交换函数的常用方法是“查找和替换”。静态互换性的主要缺点是替换函数所需要的努力。任何类型的互换性都需要在开发时(动态)或部署后(静态)进行工作
HAL实现实例
这个例子展示了一个用户定义的HAL和来自四个不同制造商的仪器。它展示了一个使用本文中描述的最佳实践设计和实现的系统。LabVIEW用于其简单的图形化系统设计功能,这些功能针对测试软件开发、大量本地仪器驱动程序选择和面向对象编程(OOP)进行了优化。这个例子使用了OOP,因为它是一个现有的框架,可以确保子类之间的接口一致。更重要的是,它提供了动态互换性,因此您需要更改的唯一元素就是配置文件。您可以在其他ade中实现相同的示例,并使用OOP以外的机制来实现动态互换性。
一个简单的系统最好地突出了用户定义的HAL设计原则和最佳实践;但是,您可以将相同的原则和实践应用于更复杂的系统。选择动态互换性是因为它使将来更容易使用系统。此外,选择需要更多前期工作和编码的互换性类型会为示例增加更多价值。
该示例系统使用Fluke DMM、Agilent函数发生器、Tektronix示波器和NI PXI开关来测试带有低频低通滤波器和LED的DUT。然后将系统迁移到NIPXI模块化仪器上演示HAL。下图显示了测试应用程序的顶级用户界面
1. 初始化所有设备—InitializeAllDevices首先将交换机配置为测试DUT 1,然后读取XML配置文件以确定仪器类型、硬件资源名称和DSSP类路径。然后动态加载相应的DSSP类,并调用每个DSSP类的Initialize Device实例。每个初始化设备打开硬件资源会话并重置仪器。
InitializeAllDevices将类引用保存在全局变量中,以供其他VIs使用。频率扫描测试-使用FrequencySweepTest ASL VI测试低频低通滤波器。ASL VI在一个循环中调用两个主要的DSSP函数:Generate Signal和ReadMaxAmp。生成信号VI生成具有可变频率和振幅的可选波形。在执行频率扫描时,使用恒定振幅的正弦波,每次执行频率扫描测试循环时,正弦波的频率增加,直到满足停止频率。
在循环的每次迭代期间,ReadMaxAmp DSSP VI测量DUT滤波器输出的最大振幅。输出频率和测量振幅存储在一个数组中,传递给极限测试函数。
3.极限测试——极限测试VI从FreqSweepTest VI中获取原始数据,并使用过滤器错误限制来计算过滤器响应数据是否超出界限。如果没有,则极限测试通过,VI从“test passed”指示器输出一个“True”。极限测试VI还输出波形图,显示频率扫描测试和极限的结果。
4. LED测试- DUT上的LED通过施加电流和测量LED上的电压来测试。这是通过使用数字万用表(DMM)的二极管测试功能完成的。如果产生的电压在限制范围内,测试通过,“True”被传递到“LED测试通过?””指标。LED测试VI还输出被测量的实际电压。LED测试完成后,使用CloseAll.vi关闭所有的引用。
5. 关闭所有设备—除了错误簇,这个VI没有任何输入或输出。它使用DSSP类全局变量为正在使用的每个DSSP类调用Close VIs。然后,每个DSSP的单独Close VI负责关闭特定工具的资源会话
需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。