美国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所示。
应用函数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开发环境中实现仪器驱动系统应用方案
推荐阅读最新更新时间:2024-11-13 07:54
推荐帖子
- 用于GSM/GPRS手机的富有特性录音机/播放机
- lorant 移动便携
- 宽带放大器资料
- 求宽带放大器资料,请大虾帮忙……宽带放大器资料就没有大虾们做过这个吗???求………………多宽????
- 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估算精度等要求极高,
- 手可摘棉花 汽车电子
- #第六届立创电赛#离线语音 美队空伴
- LF120ABDT-TR 12V 极低压降稳压器的典型应用
- 使用 AD5292 数字电位器、OP184 运算放大器和 MOSFET 在减小的输出范围内提高精度的可编程电压源
- STM32F103C8T6的拓展板
- 用于 16 位 ADC AD7701 的 ADR420 超精密、低噪声、5.00 Vout XFET 电压基准的典型应用
- 焊接夹具
- 适用于 ADP7104 9V 低压差 (LDO) 线性稳压器的 ADP7104RDZ-REDYKIT、ADP7104RD-EVALZ SOIC RedyKit
- BTS5215L智能高端电源开关典型应用电路
- 具有双输入的 LTC3126IUFD 5V、750kHz 降压转换器的典型应用电路
- AR0234CSSC00SUKAH3-GEVB:具有 2MP 彩色 0deg 全局快门 CMOS 图像传感器的 2.3MP 评估板