LabVIEW如何减少下一代测试系统中的硬件过时2

简介: LabVIEW如何减少下一代测试系统中的硬件过时2

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开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

相关文章
|
3天前
|
JavaScript Java 测试技术
基于ssm+vue.js的在线测试管理系统附带文章和源代码设计说明文档ppt
基于ssm+vue.js的在线测试管理系统附带文章和源代码设计说明文档ppt
4 0
|
3天前
|
人工智能 自然语言处理 安全
构建未来:AI驱动的自适应网络安全防御系统提升软件测试效率:自动化与持续集成的实践之路
【5月更文挑战第30天】 在数字化时代,网络安全已成为维护信息完整性、保障用户隐私和企业持续运营的关键。传统的安全防御手段,如防火墙和入侵检测系统,面对日益复杂的网络攻击已显得力不从心。本文提出了一种基于人工智能(AI)技术的自适应网络安全防御系统,该系统能够实时分析网络流量,自动识别潜在威胁,并动态调整防御策略以应对未知攻击。通过深度学习算法和自然语言处理技术的结合,系统不仅能够提高检测速度和准确性,还能自主学习和适应新型攻击模式,从而显著提升网络安全防御的效率和智能化水平。 【5月更文挑战第30天】 在快速迭代的软件开发周期中,传统的手动测试方法已不再适应现代高效交付的要求。本文探讨了如
|
3天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的在线测试管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的在线测试管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
4天前
|
Dart 前端开发 测试技术
移动应用开发的未来:跨平台框架与原生系统的融合深入理解软件测试中的持续集成与持续部署(CI/CD)
【5月更文挑战第30天】 在本文中,我们将深入探讨移动应用开发领域的最新趋势:跨平台开发框架与原生操作系统的融合。随着移动设备成为日常生活的核心,高效、灵活且性能卓越的应用程序需求日益增长。文章分析了当前主流的跨平台工具如React Native和Flutter,并探讨了它们如何与iOS和Android等原生系统相互作用,以及这种融合对开发者、用户和整个移动生态系统意味着什么。我们还将预测未来可能的技术发展,并提出相应的策略建议。
|
4天前
|
运维 监控 测试技术
负载测试:系统性能护航
负载测试:系统性能护航
|
4天前
|
监控 测试技术 Apache
压力测试保系统稳定
压力测试保系统稳定
|
5天前
|
Java 测试技术 Maven
博客系统实现自动化测试
博客系统实现自动化测试
10 1
|
7天前
|
Web App开发 测试技术 API
自动化测试工具Selenium的深度解析
【5月更文挑战第27天】本文旨在深入剖析自动化测试工具Selenium,探讨其架构、原理及应用。通过对其核心组件、运行机制及在实际项目中的应用案例进行详细解读,以期为软件测试人员提供全面、深入的理解与实践指导。
|
2天前
|
运维 安全 网络架构
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
【6月更文挑战第1天】成为网络世界的超级英雄,利用网络模拟工具解决复杂架构难题!此工具提供安全的虚拟环境,允许自由设计和测试网络拓扑,进行性能挑战和压力测试。简单示例代码展示了创建网络拓扑的便捷性,它是网络设计和故障排查的“魔法棒”。无论新手还是专家,都能借助它探索网络的无限可能,开启精彩冒险!快行动起来,你会发现网络世界前所未有的乐趣!
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
|
3天前
|
jenkins 测试技术 持续交付
软件测试中的自动化测试工具及其应用
传统的软件测试流程需要大量的人工投入,其效率低下且容易出现遗漏。而自动化测试工具的出现极大地提高了软件测试的效率和精度。本文将介绍几种常见的自动化测试工具及其应用,分析其优势和不足,并探讨在实际项目中的应用场景。