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

news2025/4/4 14:56:58

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

许多测试系统的问题是,整个系统运行的时间必须超过单个系统组件的支持时间。有时被测试的设备有几十年的有效使用寿命,而许多测试仪器已经过时,在5年或更短的时间后就不再支持了。其他时候,被测试的设备的有效使用寿命以月为单位。这两个都是生命周期不匹配的例子。

生命周期不匹配导致需要在不改变测试应用程序、测试fixture和被测设备(dut)的情况下升级过时的仪器,或者需要在不改变任何硬件或特定于硬件的软件的情况下改变测试应用程序软件。更新测试系统需要新的测试软件开发、重新验证和重新记录,这些都是昂贵的、资源密集型的和耗时的。为了尽量减少与迁移或升级测试系统相关的时间和成本,您可以在测试系统中使用硬件抽象层(hal)来将测试应用程序与仪器硬件分离。本文涵盖了HAL的架构、最佳实践、特性和优点,并概述了LabVIEW和基于c的实现的示例。

硬件抽象类HAL

大多数HAL可以分为三组:行业标准、供应商定义和用户定义。行业标准HAL由行业标准机构定义和维护。供应商定义的HAL由单个供应商提供和维护。用户定义的HAL由构建测试系统的最终用户定义和维护。本文主要关注用户定义的HALs。

行业标准

一个著名的行业标准HAL是由IVI基金会维护的可互换虚拟仪器(IVI)。IVI为八种部署最广泛的仪器类型提供了标准的应用程序接口(API)。IVI规范具有基本、扩展和特定于仪器的API选项;检查范围;模拟;以及其他功能,使升级仪器更容易。IVI的一个限制是用户可能需要仅在特定于仪器的驱动程序中可用的功能,从而降低了互换性。这是因为用户很难扩展现有的IVI类驱动程序。

供应商定义

供应商定义的HAL是指供应商为不同的仪器类型和型号创建一个插件系统。厂商定义的HAL具有由厂商投资于设计、生产、支持和维护的优势。供应商定义的HALs的限制包括支持的仪器的广度和深度、质量以及快速轻松添加新仪器的能力——尤其是竞争对手的仪器。此外,供应商可能会专注于最大化系统中仪器的性能,而不是整体系统性能。依赖HAL供应商的技术支持可能会增加停机时间和成本,特别是在不提供源代码的情况下。源代码的缺乏限制了您可以帮助自己或快速添加新工具的能力。此外,供应商定义的HAL的过时将有效地淘汰您的整个测试系统。

用户定义的

用户定义的HAL的优点是,可以自定义它们以满足独特需求并优化系统性能。如果架构良好,HAL将促进更好的测试应用程序开发并增加重用。建议选择一个广泛使用、支持良好的应用程序开发环境(ADE),该环境足够强大且不需要高级编程技能。用户定义的HAL的限制包括设计、实现和维护它们的时间和成本

以仪器为中心和特定于应用程序的HALs

三个HAL类别中的每一个都有一个以仪器为中心的应用程序接口(API),一个特定于应用程序的API,或两者的组合。

Instrument-Centric

以仪器为中心的API通过使用一组通用的仪器类函数调用来抽象仪器的差异,这些函数调用是唯一仪器可以支持的。例如,IVI采用以工具为中心的抽象视图——也就是说,让顶级测试应用程序调用以工具为中心的API,使所有工具看起来相似(例如,iviscope_configureacquitiontype)。具有以仪器为中心的API的用户定义的hal可以使用“myDMM”或“standardSigGen”调用来抽象唯一的仪器。

特定于应用程序

在特定于应用程序的方法中,测试应用程序调用特定于应用程序的API,该API与其需要执行的测试类型(例如,LED test)保持一致。特定于应用程序的HALs将您与特定仪器类型的行为隔离开来。用户定义的hal更有可能使用特定于应用程序的api,因为除了硬件差异之外,它们还可以抽象仪器的复杂性。特定于应用程序的HALs有助于将特定于dut的参数与可重用的测试逻辑分离。此外,特定于应用程序的hal可以使用以仪器为中心的hal来提供额外的抽象层。

HAL选择优先事项

类别选择

如果能满足您的要求,请选择一个行业标准HAL。许多公司的投资和标准多年来的稳定性减少了您设计、开发和维护它的需要,节省了您的时间和金钱。如果行业标准的HALs不能满足您的需求,其余选项是由供应商定义的或用户定义的。通过实现您自己的用户定义的HAL,您可以选择最适合您的应用程序的架构、工具和行业软件标准。非常仔细地考虑供应商定义的HAL解决方案,因为它们可能会将您锁定在他们的技术架构和业务结构中,限制您更快更容易地迁移的能力——这是HAL的首要要点。

API的选择

在设计用户定义的HAL时,重要的是要确定以仪器为中心的API还是特定于应用程序的API最能满足您的需求。如果以仪器为中心的API是更好的选择,那么定义一个内部通用的以仪器为中心的API“标准”,您可以跨多种类型的dut使用它。将函数分成类似于IVI的三类——基本、扩展和特定。每种仪器类型的最常用函数都包含在基本函数中。在许多(但不是所有)工具中共享的函数被分组在扩展函数中,如果该函数存在于

最后,将不常用函数分组到特定函数中。在可能的情况下构建IVI标准,因为它减少了在系统升级期间定义和实现以及迁移的时间和精力。如果特定于应用程序的API对于您的需求来说是更好的选择,那么您需要确定应用程序功能的哪个部分开发效率最高且最容易重用

自定义HAL架构

下图显示了用户定义的HAL的体系结构。测试应用程序位于顶层。测试应用程序开发人员只需要知道要运行哪些测试、这些测试的参数以及测试硬件需求(采样率、分辨率等等)。在设计测试时,开发人员不需要知道具体的仪器。LabVIEW示例中的测试应用程序名为“Main test App.vi”,它调用来自HAL的函数。建议在HAL中有两个级别。示例HAL有一个应用程序分离层(ASL),测试应用程序将调用它,还有一个特定于设备的软件插件(DSSP), ASL将调用它。

需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/109807.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

技能梳理32@电源防反接电路+光耦隔离电路+串口磁耦隔离电路

电源防反接电路 CN2是个防反接插座; F1是个自恢复保险丝; MB6S是个整流桥电路,主要是这个模块实现的防反接效果; SPX3819是个电平转换模块,封装挺小的;LDO-EN是用来控制SPX3819是否使能的; …

等保2.0参与医院网络安全管理的重要性

随着现代医院 IT 技术架构的演变、新兴技术的引入,来自医院内外部的各种安全风险不断出现,对医院网络安全提出了更多挑战,医院网络安全在技术层面和管理层面都亟待完善。为此,借鉴相关法律法规、行业标准等,提出提升现…

Web前端开发神器WebStorm v2022.3发布——支持新的CSS功能

WebStorm是一款JavaScript 开发工具。被广大中国JS开发者誉为"Web前端开发神器""最强大的HTML5编辑器""最智能的JavaSscript IDE"等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。 WebStorm v2022.3官方正式版下载…

百度工程师教你玩转设计模式(装饰器模式)

作者 | 北极星小组 想要写好代码,设计模式(Design Pattern)是必不可少的基本功,设计模式是对面向对象设计(Object Oriented Design)中反复出现的一类问题的一种解决方案,本篇介绍装饰器模式&am…

(第一章)OpGL超级宝典学习:配置和超级宝典相同的工作环境

目录前言配套资源配置解压文件夹复制资源HOWTOBUILD什么是CMake什么是GLFW安装CMake开始构建build glfw生成debug和release的lib库build sample推送结语前言 最近发现学习好像到了一定的瓶颈,马上要到2023年了,想要在新的一年开始后对自己有一定的突破&a…

Kubernetes 实现自动扩容和自愈应用实践

Kubernetes 自动扩容和自愈 tags: 实践 文章目录Kubernetes 自动扩容和自愈1. 背景2. 准备3. kind 部署 kubernetes4.实践4.1 部署 deployment4.2 创建 Service4.3 创建 Ingress4.4 部署 Ingress-nginx4.5 K8s 实现自愈4.6 k8s 实现自动扩容5. 其他1. 背景 在生产非 kubernet…

java进阶—List

上节回顾 List 是一个有序的,允许重复的Collection,其下的子类主要有 ArrayList LinkedList,Vector(这个官方不推荐使用) 那么同为list的子类,ArrayList 跟 LinkedList 有什么区别呢? 这里就涉及到了list的底层两种实现方式&…

《计算机体系结构量化研究方法》第2章-存储器层次结构设计 2.1 引言

一、概述 1、存储器层次结构:层次由速度和容量各不相同的存储器组成。 2、存储器层次结构被分为几个级别——离处理器越近,容量越小速度越快。 3、包含性质:大多数情况下,低层级存储器中的数据是上一级存储器中数据的超集。比如…

基于RSA的数字签名设计与实现

信息安全课程的第二个实验,主要是用java、js,前端页面用的html写的。 页面成果展示: 基本公私钥生成 实验环境为win10系统,使用git命令行工具——git bash生成公私钥。生成私钥,密钥长度为1024bit并从私钥中提取公钥 …

如何在 Spring Boot 项目中开启 “热部署“

目录 1. 添加热部署框架支持 2. 设置当前项目 Settings 和新项目 Settings 开启项目自动编译 3. 开启运行中热部署 4. 使用 Debug 启动项目 (社区版 IDEA) 1. 添加热部署框架支持 在 pom.xml 中添加如下框架引用: <dependency><groupId>org.springframework.b…

vue3中常用的三种组件传值方式

比较大型的项目中经常会涉及到多个组件之间进行传值&#xff0c;所以对之前用过的一些传值方法做个笔记&#xff0c;还有就是对不同的情况下需要使用哪一种传值方法更合适的思维进行一个总结 vue3中常用的三种组件传值方式mitt依赖注入pinia总结mitt 因为vue3去掉了全局事件总…

qt实现的pdf阅读器(二)--XpdfReader在linux下的编译

目录 1.简介 2.需求说明 3.编译 3.3. 下载源码 3.2. 移植安装包和依赖库 3.2.1 准备工作 3.3.2 了解 3.3.3 编译并安装zlib 3.3.4 编译并安装libpng 3.3.5 编译并安装lcms 3.3.6 编译并安装freetype 3.3.7 编译xpdf 3.3.8 查看运行编译好的xpdf 1.简介 Xpdf 是一个免…

我以为自己MySQL够牛逼了,直到看到了Alibaba的面试题

前言 众所周知&#xff0c;简历上“了解&#xff1d;听过名字&#xff1b;熟悉&#xff1d;知道是啥&#xff1b;熟练&#xff1d;用过&#xff1b;精通&#xff1d;做过东西”。 相信大家对于MySQL的索引都不陌生&#xff0c;索引(Index)是帮助MySQL高效获取数据的数据结构。…

SpringBoot Disruptor框架遇到的问题

1.消息重复消费问题 问题描述&#xff1a; 项目中启动了多个消费者,测试中发现同一条消息被多次消费。 解决方案&#xff1a; ①幂等方案处理 ②disrutor提供了不同的处理机制&#xff1a; 自定义消费者实现EventHandler接口,他是属于重复消费&#xff0c; 自定义消费者实现W…

SVN培训笔记(下拉项目、同步修改、添加文件、修改文件、删除文件、改名文件等)

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/128417196 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

【矩阵论】7. 范数理论——非负/正矩阵

7.5 非负/正矩阵 7.5.1 定义 a. 非负/正矩阵定义 一个实矩阵 A(aij)∈RmnA(a_{ij})\in R^{m\times n}A(aij​)∈Rmn 若对每一 iii 和 jjj &#xff0c;aij≥0a_{ij}\ge 0aij​≥0 &#xff0c;则称A是非负矩阵&#xff0c;A≥0A\ge 0A≥0 若对每一 iii 和 jjj &#xff0c;…

简单四则运算语法树可视化

简单四则运算语法树可视化 前几天有一篇博客是关于四则运算和二叉树的&#xff0c;我是把四则运算用二叉树写出来&#xff08;我是用的 JSON 的形式来存储和表达的&#xff09;&#xff0c;并计算最终的结果。最近&#xff0c;也在继续这个方面的东西&#xff0c;不过遇到一些…

uni-app 微信支付-小程序、APP、IOS

小程序 支付 先看官方文档 https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_8_2.shtml 知晓有那些比不可少的流程&#xff0c;之后后端确定返回的参数值&#xff0c;用于前端支付。参数值必须一一对应&#xff0c;不然支付会失败 uni.requestPayment({timeStamp…

mysql5.7主从复制配置

写在最前面&#xff1a;一入编程深似海&#xff0c;从此对象变路人&#xff08;码农没时间谈恋爱&#xff09;。很长一段时间连写个文章的时间都没有了&#xff0c;学完后端、学前端&#xff0c;前端刚入门又要搞容器化&#xff0c;这真是“一重山外一重关&#xff0c;关关难过…

如何在Angular框架中更好地使用字体?一篇文章解答!

作为前端开发人员&#xff0c;在Angular JS中构建项目时&#xff0c;使用自定义字体可能会很棘手。有时候&#xff0c;如果开发者想要把选择的字体添加到项目中&#xff0c;将不得不把它导入到现有的代码中。 PS&#xff1a;Kendo UI致力于新的开发&#xff0c;来满足不断变化…