在LabVIEW开发环境中实现仪器驱动系统的应用方案

发布者:HappyExplorer最新更新时间:2023-10-18 来源: elecfans关键字:LabVIEW  开发环境 手机看文章 扫描二维码
随时随地手机看文章

美国NI公司推出的虚拟仪器开发平台LabVIEW(LaboratoryVirtual Instrument EngineeringWor bench)是目前应用最广、发展最快、功能最强的图形化软件开发环境。LabVIEW在仪器控制、数据采集、数据分析处理和数据显示等方面有着显著的优点。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通信的全部功能。它还内置了便于应用TCP/IP、Activex等软件标准的库函数。这是一个功能强大且灵活的软件。利用LabvIEW可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。


特别是在仪器控制方面,NIVISA提供了方便的图形化编程节点,可以让用户很快的根据自己所需仪器的特点编写相应的仪器驱动,然后在LabVIEW开发环境中调用这些驱动,编写需要的应用程序,从而方便快捷的完成计算机对仪器的控制以及计算机与仪器之间的通信。


VlSA简介

计算机与仪器通信的实现是仪器发展史的一个里程碑。可编程地控制仪器给仪器控制领域到来了极大的改进和灵活性,并且可以不再依赖于具体的人工操作。LabVIEW开发环境提供了强有力的编程支持,这就使得测试系统的主要任务转移到计算机与仪器连接的接口和总线问题上。这就需要一个既可以表示接口特性又可以详细表示仪器性能的软件体系,而且这个软件体系应具有很好的通用性。VISA驱动很好地满足了这些需求。VISAAPI(Application Programming Interface,应用编程接口)可以通用于基于Ethernet,GPIB,GPIB—VXI,VXI,PXI和串口等多种总线的测试系统,使用者不必再研究各个接口总线特定的API。


作为仪器I/O函数库,VISA编程与传统的I/0软件编程基本相同,主要是通过设备的端口读写操作和属性控制,实现与仪器的命令与数据交换。VISA函数按照功能基本上可以分为基本I,0、格式化I/O、内存I/O、资源管理、共享内存管理、事件处理和属性控制等几大类。用户可以在VISA中利用SCPI命令来控制基于消息基的仪器和带有SCPI命令翻译节点的基于寄存器级的仪器,对于不接收SCPI命令的仪器,也可以通过使用VISA的寄存器读写节点直接访问仪器的底层寄存器的方法来实现对仪器的控制。VISA函数库中的函数以VISA节点的形式出现。


VISA节点位于AllFunction》》Instrument I/O》》VISA目录下, 基本的VISA节点有:VISA Write、VISARead、VISAClear、VISA Read STB.VISA Asserlt Trigger。

高级节点包含更多的函数:VISA Open(打开一个仪器资源),VISA Close(关闭一个一个资源),VIsA Find Resource(寻找VISA资源),VIsA write FromFile,VISA Read to File,VISALock Analy,VISA Unlock(VISA解锁),VISA Status I)escription(状态描述),VISA Set.Timeout,Property Node(属性节点)以及Interface Specific(指定接口)子模板、Event Handling(事件处理)子模板、High Level RegisterAccess(高级寄存器读写)子模板、Low Level Register Access(低级寄存器读写)子模板等几个部分。LabVIEw的帮助文档给出了这些VISA节点的具体用法和详细介绍。


1673G系列逻辑分析仪

1673G具有34通道的逻辑分析系统,150MHz状态速率,500MHz定时速率,64k标准采集内存,使用选项001(选项001表示当前使用的是系统级的命令)时256k内存,使用选项002(选项002表示当前使用的是选件逻辑分析仪)时2M内存。选项003(选项003表示当前使用的是选件示波器)示波器:2通道,500MHz,2GSa/s,32k内存;选项004码型发生器:32通道,100M矢量/秒,256k矢量深。1673G具有2GB硬驱和l-44 MB:DOS软驱;配有VGA分辨率的彩色平板显示器,帮助用户迅速找到信息;可以选择鼠标操作或前面板操作,使用简便设计良好的用户界面;支持可选的PC式键盘;支持ASCII数据和PCX/TIFF/EPS屏幕快照等文件格式,配有Centronics打印机端口,GPIB和RS-232编程能力;可以通过x-windows实现局域网远程操作,通过FTP/NFs实现数据传送;提供23种预先定义的触发功能,支持图形表示和普通语言描述,简便地设置强大的测量功能。


驱动设计

仪器驱动是用来控制可编程仪器的一组函数的集合,包含对仪器的各种操作:配置,读出、写入和触发等。仪器驱动函数的工作流程是:读取前面板上对仪器的控制命令一把命令格式化为仪器能够解析的命令字符串→读取仪器返回的响应结果→根据读取的结果更新前面板上的显示。仪器驱动已具有交互性,可编程性和通用性。仪器驱动一般通用于某一类的仪器。对于某个仪器的特殊的性能,则另外编写相应的函数。


仪器驱动包含两大类的VIs,一类是组件VIs(componentVIs),一个函数控制仪器的一个特定的功能,另一类是高级的应用函数VIs(Application vIs),一个函数由多个组件vIs组合而成,实现仪器的一个基本的测试或测量操作。其设计模型如图1所示。

在LabVIEW开发环境中实现仪器驱动系统的应用方案

应用函数VI位于仪器驱动层次的最高级,通过调用组件级的VI来实现一般的仪器配置和测试操作。用户只调用这些高级应用VIs就可以实现单一的面向测量的仪器接口。

组件vIs是较低级的仪器驱动函数。组件VIs是模块化的VIs,它们包含了仪器所有的配置和测量功能,共分为六类:初始化(Initialize),配置(Configuration),操作和状态(Action/Status), 数据(data),功能(Utilitv)和结束(Close)。组件VIs与仪器的具体功能有关。在设计仪器驱动时,根据仪器的功能将相应的指令归类。


要对逻辑分析仪1673G编写仪器驱动,首先熟练仪器的操作,研究其指令系统,然后确定要实现的VIs。表l给出了选件003示波器要实现的vIs。


1673G的指令包括普通的SCPI命令,系统级的设置和配置命令,以及针对各个选件(逻辑分析仪,示波器和码型产生器)的命令。文中的驱动主要针对逻辑分析仪和示波器进行编写,预达到可以对逻辑分析仪和示波器进行仪器控制,并且可以得到逻辑分析仪和示波器的采集数据,可以得到示波器的测量数据。


以实现初始化函数AGl673GInitialize.vi为例, 先用VISAOPEN节点打开一个仪器的Session,然后调用propertv nodtj识别仪器的接口类型,建立计算机与仪器之间的通信。然后调用VIsA write向仪器发出%IDN?命令,接着调用vIsA 0PEN读取仪器的响应结果,对读取到的字符串进行分析,与仪器的标识符进行比较,若结果正确就输出dupVIsA Session供以后的函数节点调用。程序调试成功后把程序制作成sutVI以备调用。具体流程如图2所示。

然后根据表1的命令分类,依据各种命令的功能,组合成各种(20mponent VIs和ApplicatioVIs功能,然后同上的方法调用VISA节点和LahvIEw对字符串和数据、数组之间转换的节点(VI模板)编写所有的驱动VI,并且在最后形成一个VI树。VI树中应包含仪器驱动所有的V!,如图3所示。


基于VISA仪器驱动的设计基本步骤:熟悉仪器的操作,熟悉仪器的变成指令,确定要实现的VIs,形成仪器驱动的设计框架;调用VISA节点实现组件VIs,并在组件VIs的基础上实现需要的应用VIs;把仪器驱动中的VI制作成subVI以方便用户调用;描述各个VI的功能和连接线用法。


文中的仪器驱动成功实现了计算机对安捷伦1673G的控制,并且可以把仪器采集到的数据读人计算机中,利用LabVIEW强大的分析功能进行数据分析。而且文中使用的驱动制作方法适用于其他支持的VISA的仪器。


关键字:LabVIEW  开发环境 引用地址:在LabVIEW开发环境中实现仪器驱动系统的应用方案

上一篇:基于虚拟仪器技术实现发动机综合性能测试系统的设计
下一篇:在LabVIEW开发环境中实现仪器驱动系统应用方案

推荐阅读最新更新时间:2024-11-13 07:54

利用LabVIEW为美国军方构建超声无损测试系统
" Labview 提供了与多个设备的必要连接,其中包括来自第三方的脉冲发生器/接收器和开关。" 修改超声无损管线测试以适合枪管测试 FBS 公司开发了其面向管线测试行业的超声测试和系统集成的核心专业技术。在此领域中,FBS 是北美第一个将超声导波技术应用在长距离管线检测的公司。利用该项技术,FBS 公司可以从单个位置检测数百英尺的管线。这包括地下管线、焦油封涂的管线和装有产品的管线。 由于该项技术在管线检测行业取得了商业成功,枪管检测等其他行业的公司对该项技术做出改进以适应自己的应用。 目前美国 军方 所采用的枪管检测技术主要局限于视觉检测。美国 军方 很少因为视觉发现的缺陷而丢弃枪管,但时常因为使用
[测试测量]
利用<font color='red'>LabVIEW</font>为美国军方构建超声无损测试<font color='red'>系统</font>
Labview数据转化与连线编辑
Labview中的数据转化与连线编辑作为一小部分总结一下。 关于数据转化,需要注意到Labview中的数据类型,在这基础上继续深入了解数据转换。Labview中数据的分类是按照常量和变量来分类的,而相应的量又可以继续分为数字类以及非数字类。数字类的数据类型是经常涉及到数据类型转换的一项。 数据类型的转换分为自动转换和强制转换两种,通常情况下Labview是默认完成自动转换的。强制转换不仅会占内存而且会更加耗时间,从很多教程中看到这么描述。因此,这也就成了一种不推荐的编程习惯,尽量在设计的时候保持数据的一致性。这儿有点让人想不通的地方,既然没有什么有点为什么还会有这种功能呢? 连线的编辑基本分为添
[测试测量]
labview中dll的调用(包括生成dll)
 LabVIEW支持通过调用DLL文件的方式与其它编程语言混合使用。比如,在实际的工程项目中,用户可以用C++语言实现软件的运算部分,并把这些功能构建在DLL文件中,然后再使用 LabVIEW编写程序的界面部分,并通过调用编写好的DLL来调用运算部分的功能。   LabVIEW 中是通过Call Library Function Node(CLN)节点来完成DLL文件调用的。创建一个新的VI,右击程序框图,在Functions Palette中依次选中Connectivity Libraries&Executables工具栏即可找到该节点(图1)。 图1 Call Library Function Node   将节点
[测试测量]
labview局部变量与全局变量
之前做上位机就想拿一个停止键控制两个并行的循环,如下 那时候拿布尔里面的停止按钮做局部变量没有成功,会出现如下的错误(当时太匆忙没有解决) 现在找到解决办法了,前面板-停止控件-属性-操作-按钮动作,里面可以选择不同的触发方式,我试了下觉得保持转换直到释放用在这里比较不错。 今天还试了下全局变量(需要点击在弹出的前面板上放需要用到的变量),建好的全局变量在程序框图-函数-选择VI里面可选。可在前面板上放不同的控件(目前还没有需要,有需要时可以试试,放一个控件的试过了,还不错,不过简单的程序没必要) 不太使用全局变量的原因之一是效率低
[测试测量]
通过LabVIEW FPGA加速嵌入式系统原型化的过程
嵌入式系统的发展趋势 嵌入式系统一般是指一个独立且具有专门用途的系统,随着半导体技术的飞速发展,嵌入式系统正在渗入现代社会的各个方面,被广泛应用于航空航天、通信设备、消费电子、工业控制、汽车、船舶等领域。巨大的市场需求推动了嵌入式系统向更高的技术水平发展。 嵌入式系统的开发流程,一般可以分为三个阶段:设计,原型化及发布。设计主要是对产品本身以及其中牵涉到的算法、概念进行设计,原型化是对设计的可行性进行验证或评估,发布是产品的最终实现。大部分情况下,整个开发流程中需要牵涉到多种软件开发工具。比如在设计的时候,可能会使用文本数学工具进行算法设计、建模、仿真,在原型化验证阶段,图形化的开发环境现在已经成为仿真、验证的主流工具。在发布
[测试测量]
通过<font color='red'>LabVIEW</font> FPGA加速嵌入式<font color='red'>系统</font>原型化的过程
基于LabVIEW的地面伽玛能谱仪校准软件的设计
1.引言 地面伽玛能谱测量是利用便携式伽玛能谱仪直接在现场测定土壤、岩石中钾、铀、钍含量的一种核地球物理方法。在解决地球科学、环境科学等领域具有重要作用 .地面伽玛能谱仪的校准通常采用饱和模型法,目前,仪器校准系数的计算方法大多采用离线工计算,工作繁琐,易出错。为此,笔者针对地面伽玛能谱仪校准的校准系数、灵敏度系数、准确度的计算特点,运用LabVIEW设计出一款自动计算软件。 2.伽玛能谱仪的校准与检验 2.1 灵敏度系数及校准系数的计算 按照规范,伽玛能谱仪的校准方程式如下:     式中,Ik、Iu、Ith分别为谱仪在模型上实测的钾道、铀道和钍道扣除本底后的净计数率;QK、QU、QTh分别为模型中钾、铀、钍扣除本底的模型含量
[电源管理]
基于<font color='red'>LabVIEW</font>的地面伽玛能谱仪校准软件的设计
Labview与C51单片机实现串口通信
Labview串口通信学会两种方法,一种是利用visa(虚拟仪器软件构架),另一种是调用activeX控件。 第一种方法(VISA)程序如图 首先,设置串口参数,串口初始化,循环内利用VISA WITE实现对串口的写操作,延时200毫秒,用VISA READ实现读操作,中间有个端口属性节点的作用是计算端口的总的字节数。非常简单,但我花了一天时间搞懂。 第二种方法 调用active X 程序图如下所示 ACTIVE X串口通信的最大优点是可以利用中断实现数据的传送或对下位机的控制,MSCOMM32控件实现串口通信主要是通过对其属性节点的设置来实现的。并利用到了事件回调方法实现中断程序。
[单片机]
高云半导体EDA工具增加对Ubuntu支持,实现一体化开发环境
2020年2月19日,中国广州-全球增长最快的可编程逻辑公司—广东高云半导体科技股份有限公司(以下简称“高云半导体”)宣布在Ubuntu操作系统中支持其FPGA EDA开发软件,从而为开发人员进行人工智能和物联网应用开发提供了一体化开发环境。 传统的FPGA EDA开发工具对Windows和Red Hat系统的支持已有很长的历史,但在许多情况下缺乏对其他Linux版本(如Ubuntu)的支持。但是Ubuntu系统已经成为人工智能解决方案开发最受欢迎的操作系统,FPGA EDA工具和Ubuntu平台不兼容的限制已变成开发人员面临的重大障碍。因为其开源性和脚本编写功能,Ubuntu已成为神经网络模型开发软件(例如Caffe,
[物联网]
高云半导体EDA工具增加对Ubuntu支持,实现一体化<font color='red'>开发环境</font>

推荐帖子

宽带放大器资料
求宽带放大器资料,请大虾帮忙……宽带放大器资料就没有大虾们做过这个吗???求………………多宽????
chenzui 模拟电子
关于一个程序的问题请教大家,谢谢!
我在keil软件里编了一个程序,通过此软件编译连接是好的,无错误,无警告。但当我把它放到仿真器软件里时编译的时候就有错误了,这是怎么一回事?应该如何解决它。以下是那个软件以及仿真软件提示的错误,请大家给我指点一下了,谢谢!//===================================================#includeAT892051.H#includeintrins.h#includegyp.h//************************
armchina 嵌入式系统
有兄弟有那个平衡球的例程吗?就是乒乓球在圆形平板上滑动永远不会掉下来~
有兄弟有那个平衡球的例程吗?就是乒乓球在圆形平板上滑动永远不会掉下来~或者他的程序构思也行~有兄弟有那个平衡球的例程吗?就是乒乓球在圆形平板上滑动永远不会掉下来~这是一个好想法!在B站看到的一位UP主的分享。是你想要的那种吗?基于Arduino板球系统的第二版,对稳定性准确性做了改进优化,制作材料,3D打印模型以及源代码开源,制作材料及源代码地址https://github.com/brickfuns/ballplate 谢谢,虽然还是有点区别。但是这个已经很
hd666666 PCB设计
51串口通信的问题 请高人们帮忙看看这个程序 谢谢
做学校的点子大赛,需要单片机之间的通信,传送固定数据的程序调出来了,但是我用计时器产生的变动数据传送却出问题了,想请教一下问题出在哪下面是大概的程序发送端:(定时器0每秒加一个数的那部分没问题,省略了,这些只是发送数据的程序变量sec就是定时器产生的变动数据)voidultra_init(void){TMOD=0X20;TH1=0Xfd;TL1=0Xfd;TR1=1;SCON=0x40;ET1=0;EA=1;ES=1;}voidTim
changyuan009 嵌入式系统
汽车BMS跟储能BMS有什么区别?两者哪种难度更大呢?
问题如题,两种BMS的区别大吗?主要的区别在哪里呢?各自的重点要要求是什么样的?设计难度上来说,哪种比较难呢??大侠们有懂的来给讲讲呀~~汽车BMS跟储能BMS有什么区别?两者哪种难度更大呢?从设计要求上看汽车BMS是需要高的功率响应速度和功率特性、SOC估算精度、状态参数计算数量一般的储能BMS是注重稳定和大规模管理能力 汽车BMS设计难度较大,汽车BMS需要在高速运动环境中确保电池的安全和性能,对功率响应速度、SOC估算精度等要求极高,
手可摘棉花 汽车电子
小广播
最新测试测量文章
换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved