原文地址:https://bbs.elecfans.com/jishu_486554_1_1.html,转载过来用在留存学习。
1.    前言
使用labview撰写程序的过程中,难免会面临软硬件的结合,尤其LabVIEW在程序与测试仪器的应用范围甚广,要如何利用LabVIEW操作测试仪 器就成为相当重要的课题,笔者因工作需求也常面临这类问题,若是使用NI相关设备时都较好解决,但公司里总是会有许许多多不同的测试仪器,要如何进行仪器 控制,真的很费神,在解决问题的过程中,从各方学习到不少经验,在此分享笔者到目前的收获给各位。
2. 利用范例程序(vi档)进行控制
在使用测试仪器时,若是仪器厂商有提供LabVIEW的范例程序,最直接的就是能使用范例程序进行控制,若是程序需求不大,甚至能将范例程序稍作修改马上产出程序,以下以DAQ及传统箱型仪器为例;
2-1.  以DAQ为例:
连接上DAQ后,如图1-1-1,点选Block Diagram -> Measurement I/Q -> NI-DAQmx -> DAQ Assistant,进入如图1-1-2的设定画面,在此可以设定输入与输出的讯号,设定完成就可以直接在程序里使用。
个人觉得DAQ蛮好用的,尤其是当你的仪器有电压输出又想要连接到LabVIEW分析时,就可以将电压讯号接到DAQ的Voltage,利用DAQ Assistant快速的建立分析程序,笔者就曾利用DAQ Assistant快速建立读取光侦测器数值的程序。

图2-1-1 DAQ Assistant

图2-1-2 DAQ设定画面
除了使用DAQ Assistant来控制DAQ以外,NI Example Finder里也有许多DAQ相关的范例程序,从NI Example Finder -> Hardware Input and Output -> DAQmx,如图2-1-3,NI提供许多种范例程序,从类比输入输出、数位类比输入输出到计数功能皆有,且与DAQ Assistant不同的是,范例程序里使用的元件不是如同DAQ Assistant全包起来,而是每个独立元件,因此使用者可以依自己的需求将范例程序另存新档改成符合需求的程序,如图2-1-4,但有一点要注意的是 由于使用独立元件,所以要自行先确认DAQ已与计算机连接上,此部份可在Measurement & Automation Explorer中作好仪器的确认,如图2-1-5。

图2-1-3 NI Example Finder

图2-1-4 类比电流

图2-1-5 Measurement & Automation Explorer
2-2. 仪器厂商提供范例程序
许多工程师应该会遇到同样的问题,就是手边或公司有非NI的设备,又希望能快速的进行程序撰写,此时就可以询问厂商,假如手上的资料撷取仪器有范例程序能 使用,只要安装驱动程序,即可在LabVIEW里轻松使用其DAQ;在RF仪器中,笔者使用过的传统箱型仪器同样有范例程序,让笔者在设计程序上减了不少 麻烦,如图1-2-1,将厂商提供的initial与Mask范例程序放进程式后并接好连线,就可以使用程序抓取IQnxn读取到的Mask讯号。

图2-2-1 传统箱型仪器范例
3. 使用DLL控制仪器
DLL,又称为动态连结函式库,是将控制常用的程序码制作而成,当程序呼叫DLL时才会载入存储器中,利用DLL来操作仪器对计算机的使用上较节省存储器, 有些仪器厂商没有LabVIEW范例程序,仅提供DLL进行呼叫控制,虽然在操作上不如范例程序方便,但透过LabVIEW的呼叫功能,可以利用 LabVIEW的Call Library Function Node载入DLL来进行仪器的操作,网站上也有许多载入DLL相关的信息,因此在此作简单介绍。
点选Block Diagram -> Connectivity -> Libraries & Executables -> Call Library Function Node,如图2-1~图2-3,并设定仪器DLL放置路径与资料型态后即可使用,不过要注意的一点是要载入DLL前要先了解此DLL送出来的资料为何, 这部份可透过仪器厂商的解说文件得知;在图2-4中,笔者使用Call Library Function Node载入读取Power的DLL档,在Function Name选择Getpower,由于Power的数值含小数点,因此在资料型态的部份选择8-type Double,并在输出的部份接一个Double Numeric Indicator,建立好后当程序执行到此部份就可以获得power数值并进行后续的程序。

图3-1 Call Library Function Node

图3-2 设定呼叫路径

图3-3 设定资料型态

图3-4 简易程序
4.  利用SCPI控制仪器
不少仪器有支援SCPI指令,一般常用的箱型讯号产生器皆有支援,在没有范例程序以及DLL可以呼叫的情况下,就可以思考使用SCPI指令来操作仪器,通 常仪器有支援SCPI指令都会有详细的指令集,取得指令集后,可使用RS232/GPIB/LAN等界面连接主机进行仪器控制,而要利用LabVIEW输 入SCPI指令给仪器就要透过Block Diagram -> Instrument I/Q -> VISA里的VISA元件进行操作,如图3-1,在VISA元件区,我们可以利用Open、Close、Write、Read等元件进行程序设计,笔者分 别以GPIB和LAN两种界面作介绍:

图4-1 VISA
4-1.   使用GPIB界面连接仪器
将仪器与主机用GPIB线材连接后,就可以开始试着使用SCPI进行控制,但在此之前要先从仪器上取得GPIB Address,通常GPIB Address会在仪器的Information或Settings里,且当使用2台以上的GPIB仪器时,可以修改彼此间的数值才不会造成仪器冲突,取 得GPIB Address后要先建立主机与仪器的连线,在SCPI指令中开启连线的指令为
GPIB0::GPIB Address::INSTR以笔者的讯号产生器为例,GPIB Address为23,因此笔者输入的指令为GPIB0::23::INSTR,将此串指令用字串连进LabVIEW VISA Open元件,如图3-1-1,

图4-1-1 VISA Open
连接后下一步就是要确定是否有连到仪器,此时我们可以利用另外一个指令来确认,确认指令为*IDN?
这个指令主要是用来判断仪器的型号等,在此我们是拿来确认连接状况,因此就可以将指令用VISA Write跟VISA Read作结合,如图3-1-2,

图4-1-2 GPIB确认仪器连接
若执行上没问题,以常用的箱型讯号产生器为例,就会看到String Indicator收到一连串信息『......Technologies, N5182B,MY51350428, .........』,注意一点,每台仪器出来的讯息都不一样,因此详细资料意义要从指令集手册中了解;而为了使用让程序更严谨一点,我们可以对图 3-1-2的程序作修改,如图3-1-3,首先将GPIB Address独立用String Control,这样就可以任意更改,接下来用Case Structure接在Open的Error out,此步骤是为了确认是否连接正常,若连接正常进入『No Error』就写入读取仪器的指令并读出,连接错误就将错误讯息Open Fail连至dialog显示并停止程序,这样设计是为了让程序在连接错误的第一时间马上反馈给使用者,才不会未连接到仪器却程序持续进行,这一部份完成 后就可以依要完成的动作输入对应的指令来完成程序。

图4-1-3 GPIB确认仪器连接进阶版
4-2. 使用LAN界面连接仪器
使用LAN界面,也就是使用网络线连接主机与仪器,这种连接方式只要将主机连到HUB,就可以接到多台测试仪器,也免去要接一堆GPIB线或是计算机USB 孔不够的问题,在此笔者是使用SCPI里的TCPIP进行控制,其实无论是使用GPIB或是LAN的SCPI指令都大同小异,举例来说,LAN界面的开启 连线指令为
TCPIP0::IP Address::inst0::INSTR
与GPIB指令比对,除了Address不一样外,基本上架构是一样的,就连查询仪器型号指令也是*IDN?,因此我们可以直接将GPIB的程序作点修改 来使用,例如目前测试仪器的IP Address为192.168.100.254,就可以将程序修改成如图3-2-1,同样的也可改成进阶版的程序,如图3-2-2;不过在使用LAN介 面时要注意IP是否会相冲,以笔者经验,通常测试仪器的IP Address不太能作修改,因此若程序会用到两台以上的仪器,而IP又相同时,就要考虑是否一台用GPIB,一台用LAN,若要用LAN的方式去连接, 就要去询问仪器厂商是否能协助调整IP

图4-2-1 LAN确认仪器连接

图4-2-2 LAN确认仪器连接进阶版
5.   结语
以上为目前有用到的连接测试仪器的方式,通常在遇到新的仪器时,笔者都会先去询问仪器厂商是否有范例程序,毕竟有范例程序的情况下能加速程序开发,若没有 笔者就会上网寻找或是连到NI网站『仪器驱动程序数据库IDNet』,NI网站上数据库有蛮多种各家仪器的范例程序,且这些程序基本上都相当完整,因此若 是想追求用vi档完成程序的可以到NI网站去寻宝,祝各位都能顺利使用LabVIEW控制仪器。

如何利用LabVIEW连接测试仪器并进行仪器操作相关推荐

  1. labview连接mysql数据库_labview使用DSN与数据库的连接包括access,mysql

    labview与数据库的连接: labview与上面两种数据库的连接方法基本相同,下面交叉讲述这两种数据库与labview的连接. 当然第一步就是先安装好这两种数据库,对于access数据的安装比较简 ...

  2. 利用LabVIEW开发应变量测试

    利用LabVIEW开发应变量测试     应变为一种广泛被使用的测量项目,在建筑体结构,例如桥梁.水坝主体监控,乃至于PCB主机板的锡裂测试,应变测试都是不可或缺的一项测量项目.当应变测试成为一套判断 ...

  3. 怎么用vc采集ni卡数据_利用labview、matlab和c实现非ni接口卡的数据采集及处理

    利用LabVIEW .MATLAB 和C 实现非NI 接口卡的数据采集及处理** 周旭欣1 董兵超1 向明礼2 李拥秋1 袁支润1? (1.四川大学生物力学研究所,成都:610065:2.四川大学化工 ...

  4. 利用LABVIEW的python接口调用Pluto SDR

    利用LABVIEW的python接口调用Pluto SDR 1. 介绍 LABVIEW是NI公司推出的一款非常适合用于实时信号处理的编程软件,其图形化的开发方式有效缩短了测试验证应用设计的时间,而且N ...

  5. 怎么在Linux中telnet服务器,怎么利用Telnet连接Linux服务器

    利用Telnet连接Linux服务器需要确保:windows客户端开启telnet功能.linux服务器开启telnet服务 首先,linux服务器开启telnet服务: 许多Linux系统在默认情况 ...

  6. LabVIEW连接MySQL数据库

    LabVIEW连接MySQL数据库 本文主要介绍LabVIEW与MySQL数据库的连接,在实现连接之前需要事先安装好mysql connector odbc和mysql installer commu ...

  7. Java案例:利用JDBC连接Oracle数据库

    Java案例:利用JDBC连接Oracle数据库 一.准备工作 1.启动SQL Developer,设置java.exe路径 2.在Oracle SQL Developer里,新建数据库连接 连接名: ...

  8. [转载] python bp神经网络 mnist_Python利用全连接神经网络求解MNIST问题详解

    参考链接: Python中的单个神经元神经网络 本文实例讲述了Python利用全连接神经网络求解MNIST问题.分享给大家供大家参考,具体如下: 1.单隐藏层神经网络 人类的神经元在树突接受刺激信息后 ...

  9. Labview连接mysql进行仿真

    相关软件的准备 欢迎访问我的小站. 我的软件环境是LabVIEW 2018(32位)的,这个很重要,因为不同位数的labview需要安装不同位数的Connector odbc,还需要安装visio的运 ...

最新文章

  1. 在php中插入数据显示在html_PHP中的浮点型数据计算之程序员脱发问题
  2. 如何删除写保护的文件_如何找回已删除或永久删除的Office Excel文件
  3. arm交叉编译bluez-5.25
  4. rsync的基本操作
  5. 网络知识:视频监控传输带宽与存储容量的计算方法
  6. 206. 反转链表 golang
  7. 鳗鱼刺多怎么处理图像_怎么在做鱼前去除鳗鱼刺?
  8. java循环 排序 查找
  9. python判断_轻松python文本专题-判断对象里面是否是类字符串(推荐使用isinstance(obj,str))...
  10. lambda qt 参数 槽函数_C++中的lambda表达式用法
  11. 超火的ipad procreate必备神仙笔刷资源打包下载
  12. 最常见绩效考核方法有哪些?5种有效方法介绍
  13. C语言小技巧之如何求平均数
  14. 南宁计算机职称考试网,南宁人事考试职称网
  15. 学会了手工计算开平方
  16. Navicat for MySQL的使用
  17. python爬取discuz_爬虫技术实践(二)Discuz! 按板块爬取帖子内容实战
  18. html 组织结构 图表,HTML5实现的矢量卡片式组织结构图
  19. vscode设置启动时不打开上一次目录
  20. wannacry 勒索病毒_WannaCry:勒索软件尸检

热门文章

  1. cadence SPB17.4 - allegro - 区域规则设置 - 以smd_pin_to_smd_pin为例
  2. bzoj 3823: 定情信物 线性筛逆元
  3. win10 安装IIS出现找不到引用的汇编,错误0x80073701
  4. java itextpdf签章 根据关键字定位在pdf文件中的坐标
  5. 程序包管理器控制台在哪
  6. 服务器是否有必要一定是SSD硬盘?使用SSD又有什么优缺点?
  7. 第十章 阿布·坎迪
  8. 猿创征文|AnimeGANv2 照片动漫化:如何基于 PyTorch 和神经网络给 GirlFriend 制作漫画风头像?
  9. VUE2 脚手架搭建
  10. 中国的银行、证券和保险机构的简要历史