基于泰克的远程控制接口编程设计.docx

上传人:b****6 文档编号:4093153 上传时间:2022-11-27 格式:DOCX 页数:21 大小:693.56KB
下载 相关 举报
基于泰克的远程控制接口编程设计.docx_第1页
第1页 / 共21页
基于泰克的远程控制接口编程设计.docx_第2页
第2页 / 共21页
基于泰克的远程控制接口编程设计.docx_第3页
第3页 / 共21页
基于泰克的远程控制接口编程设计.docx_第4页
第4页 / 共21页
基于泰克的远程控制接口编程设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于泰克的远程控制接口编程设计.docx

《基于泰克的远程控制接口编程设计.docx》由会员分享,可在线阅读,更多相关《基于泰克的远程控制接口编程设计.docx(21页珍藏版)》请在冰豆网上搜索。

基于泰克的远程控制接口编程设计.docx

基于泰克的远程控制接口编程设计

泰克AFG3101的远程控制接口编程

摘要

仪器仪表生产厂家近几年先后推出了带LAN接口的仪器仪表,如Tek3000系列示波器(LAN接口作为标准配置,不带RS232、GPIB接口)、泰克AFG3000系列任意波形/函数发生器、AgilentN6705A直流电源分析仪等,由于其体积小、重量轻、功能强,在中国拥有大量的用户。

在程控方面如何像通过GPIB接口控制这类仪器的功能一样,充分利用其LAN接口功能,避免不必要的无形浪费,以满足工作中对该类仪器的程控需求,是广大科技工作者所面临的问题,也是近年来仪器生产厂家和程序设计研究人员关注的焦点问题之一。

本课题研究的内容是基于网络的程控接口编程,以泰克AFG3101任意波形/函数发生器为例,设计了在LabVIEW7.0开发环境下编程,利用VISA与仪器硬件接口无关的特性,通过LAN网口和SCPI程控命令实现对其进行远程控制。

关键词:

信号发生器,LAN,VISA,LabVIEW

ABSTRACT

Instrument-producersintroducedsomekindofinstrumentsviaLANinterfaceonebyoneinrecentyears,suchasTek3000seriesOscilloscope(LANinterfaceforstandard,noRS232andGPIBinterface),TektronixAFG3000seriesArbitrary/FunctionGeneratorsandAgilentN6705Adirectcurrentsourceanalyzerandsoon.Becauseofitssmallsize,litterweightandpowerfulfunctions,therearealargeamountofusersinChina.ThecontroloftheinstrumentviaLANinterfacelikeGPIBinterfaceisoneoftheproblemfocusedoninstrumentbyproducersandprogrammersinrecentyears,anditsalsocanavoidunnecessaryexpenses.ThissubjecttaskisProgramofLANinterfacecontrolonLabVIEW7.0(takeTektronixAFG3000seriesArbitrary/FunctionGeneratorforillustrationandbasedonVISAfunctionwhichwasindependentoftheinterfacesoftheinstruments).

Keywords:

SignalGenerators,LAN,VISA,LabVIEW

目录

第一章绪论………………………………………………………………………3

一、课题提出的背景和意义……………………………………………………3

二、毕业设计的任务……………………………………………………………3

第二章LabVIEW简介…………………………………………………………5

第三章VISA的概念与特点…………………………………………………6

一、VISA的由来……………………………………………………………6

二、VISA模型结构和特点…………………………………………………6

三、VISA编程………………………………………………………………9

第四章可编程仪器标准命令(SCPI)介绍……………………………10

一、SCPI的作用………………………………………………………………9

二、SCPI的内容……………………………………………………………11

第五章编程前的准备工作…………………………………………………14

一、获得计算机的IP地址和子网配置………………………………14

二、信号发生器的连接与设置…………………………………………14

三、在MAX中进行仪器设备资源名设置……………………………16

第六章LabVIEW7.0环境下的VISA程序设计………………………19

一、程序设计……………………………………………………………………19

二、所遇问题及解决方法……………………………………………………20

三、运行结果……………………………………………………………………23

第七章总结………………………………………………………………………25

致谢…………………………………………………………………………………26

参考文献……………………………………………………………………………27

第一章绪论

一、课题提出的背景和意义

随着计算机技术、通信技术与仪器技术的不断发展,使得虚拟仪器得到了进一步发展。

计算机网络技术、总线技术的发展,乃至Internet网的发展拓展了虚拟仪器测试系统的应用范围。

同时仪器仪表生产厂家近几年来也先后推出了带LAN接口的智能仪表。

利用网络技术将分散在不同地理位置不同功能的测试设备联系在一起,使昂贵的硬件设备、软件在网络内得以共享,减少了设备重复投资。

而且对于有些危险的、环境恶劣的不适合人员操作的工作可实行远程控制。

远程用户仅依靠一台计算机就可以通过Internet来控制仪器,还可以从网络上直接获得实验数据,实时观察到实验结果。

所以,研究如何通过网络来控制仪器的意义显而易见。

二、毕业设计的任务

本次毕业设计的任务就是以泰克AFG3000系列任意波形/函数发生器为例,在LabVIEW7.0开发环境下编程,通过LAN网口实现对其进行程序控制。

随着接口技术的成熟和不断发展,其技术已经渗入到各行各业,为了适应这一形势的变化,仪器仪表生产厂家近几年先后推出了带GPIB、RS-232、LAN接口的仪器仪表(如Tek3000系列示波器以LAN接口作为标准配置,不带RS-232、GPIB接口)。

VISA是美国国家仪器NI公司开发的一种用来与各种仪器总线进行通信的高级应用编程接口。

VISA总线I/O软件是一个综合软件包,不受平台、总线和环境的限制,可用来对USB、GPIB、串口、VXI、PXI和以太网系统进行配置、编程和调试。

受计算机技术的迅猛发展影响的仪器仪表行业也发生了巨大的变革,即仪器的手动操作使用改为计算机控制自动测试,其仪器的接口标准由IEEE-488.1升级为IEEE-488.2,但是这里仍然存在着同一种类的仪器,即程控代码不同而引起仪器不能互换,若是自动检测装置的话,还得针对不同的仪器厂家的仪器而重新设计软件,针对这种情况,1990年世界著名仪器厂家(包括HP、Tektronix、Fluke、NI、Philips、B&K、Wavetek等)共同研究制定了用于可程控仪器的标准命令,即SCPI(StandardCommandforProgramInstrument)。

SCPI比IEEE-488.2-1987更进一步,用一种标准的方式来叙述各种各样的仪器功能,促进了同一种类的各仪器之间以及有相同功能的各仪器之间的一致性,从而大大减少了自动测试系统程序设计开发时间。

所以,本设计决定利用VISA库函数和可实现对仪器仪表编程控制的标准通用语言SCPI在LabVIEW7.0开发环境下进行编程。

 

第二章LabVIEW简介

虚拟仪器(VirtualInstrument,简称VI)是基于计算机系统的数字化测量测试仪器,它充分利用现有计算机资源,配以独特设计的仪器硬件和专用软件,能实现普通仪器的全部功能以及一些在普通仪器上无法实现的特殊功能,因此常被称作“软件仪器”。

VI利用数据采集模块完成一般测量测试仪器的数据采集功能;利用计算机系统完成一般测量测试仪器的数据分析和输出显示等功能。

VI是计算机技术、现代测量技术共同发展的结晶,代表着当今仪器发展的最新趋势。

美国NI公司开发的LabVIEW是虚拟仪器领域中最具代表性的图形化编程开发平台,是目前国际上首推并应用最广的数据采集和控制开发环境之一,主要应用于仪器控制,以及数据采集、分析和显示等领域,并适用于多种不同的操作系统平台。

与传统程序语言不同,LabVIEW采用强大的图形化语言(G语言)编程,面向测试工程师而非专业程序员,编程非常方便,人机交互界面直观友好,具有强大的数据可视化分析和仪器控制能力等特点。

在LabVIEW开发环境下,用户可以创建32位的编译程序,从而为常规的数据采集、测试、测量等任务提供更快的运行速度。

LabVIEW是真正的编译器,用户可以创建独立的可执行文件,能够脱离开发环境而单独运行。

LabVIEW的开发环境分为三部分:

前面板、框图程序和图标/连接端口。

前面板是图形化的用户界面,用于设置输人数值和观察输出量。

在前面板中,输入量被称为控制,输出量被称为指示,它们通过各种图标,如按钮、旋钮、开关、图表等出现在前面板上,模拟真实仪器。

框图程序由节点和数据连线组成,它利用图形语言对前面板上的控制对象即输入量和输出量进行控制,节点用来实现函数和功能调用,数据连线表示程序执行过程的数据流,它定义了程序框图内的数据流动方向。

通过对仪器的软件对象进行图形化组合操作,利用LabVIEW内置的TCP/IP协议组和图形化的通讯模型,就可以使用多种设备,包括GPIB、VXI、PXI、串口、PLC以及插入式数据采集板等进行数据采集,经济方便地实现网络通讯和程序通讯以及现场测控和远程测控。

 

第三章VISA的概念与特点

一、VISA的由来

随着虚拟仪器系统的出现与发展,I/O接口软件作为虚拟仪器系统软件结构中承上启下的一层,其模型化与标准化越来越重要。

I/O接口软件驻留于虚拟仪器系统的系统管理器——计算机系统中,是实现计算机系统与仪器之间命令与数据传输的桥梁和纽带。

许多仪器生产厂家在推出硬件接口电路的同时,也纷纷推出了不同结构的I/O接口软件,有的只针对某类仪器(如NI公司用于控制GPIB仪器的NI-488及用于控制VXI仪器的NI-VXI),有的在向统一化的方向靠拢(如HP公司的SICL—标准仪器控制语言),这些都是在仪器生产厂家内部通用的、优秀的I/O接口软件。

一般的I/O接口软件的结构都采用了自顶向下的设计模型:

首先列出该I/O接口软件需要控制的所有仪器类型,然后列出了各类仪器的所有控制功能,最后将各类仪器控制功能中相同的操作功能尽可能地以统一的形式进行合并,并将统一的功能函数称为核心功能函数(如将GPIB仪器的读/写与RS232串行仪器的读/写统一为一个核心功能函数)。

所有统一形式的核心函数与其它无法合并的、与仪器类型相关的操作功能函数一起构成了自顶向下的I/O接口软件,实现不同类型的仪器的互操作性与兼容性。

然而,这种构成方法只适用于消息基器件的互操作性(如消息读、消息写、软件触发、状态获取、异步事件处理等功能),对于如中断处理、内存映射、接口配置、硬件触发等属于器件特有的操作,根本无法得到统一的核心函数,消息基器件与寄存器基器件无法在自顶向下的I/O接口软件中得到统一。

核心函数集在整个I/O接口软件中只有一个小子集,特定操作函数集是一个大子集。

自顶向下结构的I/O接口软件实质上是建立在仪器类型层的叠加,并没有真正实现接口软件的统一性。

同时应该说,自顶向下的设计方法为真正统一的I/O接口软件的设计与实现提供了经验借鉴与尝试。

VPP联盟在考察了多个I/O接口软件之后,提出了一种自底向上的I/O接口软件模型,也就是VISA。

二、VISA模型结构和特点

(一)VISA模型结构

VISA是虚拟仪器软件结构(VirtualInstrumentSoftwareArchitecture)的缩写,实质是一个I/O接口软件及其规范的总称。

一般情况下,将这个I/O接口软件称为VISA。

如上所说,VISA的构成是采用了自底向上的结构。

与自顶向下的方法不同的是,VISA的实现首先定义了管理所有资源的资源(在这儿,资源的概念相当于面向对象程序设计中的对象),这个资源称为VISA资源管理器,它用于管理、控制与分配VISA资源的操作功能。

各种操作功能主要包括:

1、资源寻址;

2、资源创建与删除;

3、资源属性的读取与修改;

4、操作激活;

5、事件报告;

6、并行与存取控制;

7、缺省值设置。

第二步是在资源管理器基础上,列出了各种仪器各自的操作功能,并实现操作功能的合并。

在这个基础上实现的资源实质可以包括不同格式的操作,如读资源包括了消息基器件的读,也包括了寄存器基器件的读;既可以包括同步读操作,又可以包括异步读操作。

每一个资源内部,实质是各种操作的集合。

这种资源在VISA中即为仪器控制资源,包含各种仪器操作的资源称为通用资源,而将无法合并的功能,称为特定仪器资源。

第三步,需要定义与创建一个用API实现的资源,为用户提供单一的控制所有VISA仪器控制资源的方法,在VISA中称为仪器控制资源组织器。

与自顶向下的构成方式相比,VISA的构成模型是从仪器操作本身开始的,它实现的统一是深入到操作功能中去而不是停留于仪器类型之上。

在VISA的结构中,仪器类型的区别体现到统一格式的资源中的操作的选取,对于VISA使用者来说,形式上与用法上是单一的。

在理论层次上,自顶向下的方法属于归纳范畴,而自底向上的方法则属于演绎范畴。

因此,自顶向下是对过去所有仪器类型的总结,而不可能提供扩展接口,而自底向上的结构是从共性到个性的推广,它的兼容性不仅仅是过去、现在,还可以包括将来。

正由于这种自底向上的设计方法,VISA为虚拟仪器系统软件结构提供了一个共同的、统一的基础,来自于不同供应厂家的不同的仪器软件,可以运行于同一平台之上了。

VISA结构模型自下往上,构成一个金字塔结构,最底层为资源管理器,其上为I/O级资源、仪器级资源与用户自定义资源集。

其中,用户自定义资源集的定义,在VISA规范中并没有规定,它是VISA的可变层,实现了VISA的可扩展性与灵活性,而在金字塔顶的用户层应用,是用户利用VISA资源实现的应用程序,其本身并不属于VISA资源。

(二)VISA的特点

基于自底向上结构模型的VISA创造了一个统一形式的I/O控制函数集,它是所有现存的I/O接口软件的功能超集,在形式上与其它I/O接口软件十分相似。

一方面,对于初学者或是简单任务的设计者来说,VISA提供了简单易用的控制函数集,在应用形式上相当简单。

另一方面,对于复杂系统的组建者来说,VISA提供了非常强大的仪器控制功能与资源管理功能,能提供仪器间的互操作性与兼容性。

它是易用性、可扩展性、互操作性、兼容性的完全统一体。

与其它现存的I/O接口软件相比,VISA具有以下几个特点:

1、VISA的I/O控制功能适用于各种仪器类型,VISA包含了VXI仪器、GPIB仪器、RS232串行接口仪器等各类仪器的控制操作,也包含了消息基器件、寄存器基器件、存贮器件等仪器的操作,其形式上是统一的。

2、VISA的I/O控制功能适用于各种仪器硬件接口类型,以VXI仪器系统为例,无论采用嵌入式计算机结构、GPIB接口外挂式结构、MXI接口外挂式结构,还是采用IEEE1394接口外挂式结构,对于VXI仪器的操作函数是一样的。

同样,无论VXI仪器在系统中的逻辑地址是多少,仪器操作函数也是一样的。

3、VISA的I/O控制功能适用于单处理器系统结构,也适用于多处理器结构或分布式网络结构。

4、VISA的I/O控制功能适用于多种网络机制,无论虚拟仪器系统网络构成为VXI多机箱扩展网络还是以太网,仪器操作是一致的。

5、VISA的I/O软件库的源代码是唯一的,其与操作系统及编程语言无关,只是提供了不同形式的API文件作为系统的引出。

由于VISA结构考虑到了多种仪器类型与网络机制的兼容性,因此以VISAI/O接口软件为基础的虚拟仪器系统,不仅可以与过去已有的仪器系统(如GPIB仪器系统及串行接口仪器系统)结合,也完全可以将仪器系统从过去的集中式结构过渡到分布式结构。

VISA的兼容性与互操作性,保证了新一代仪器完全可以加入到虚拟仪器系统中去,同时也保证了仪器系统的投资者不会因为新仪器的出现而将过去的系统抛弃,从而可以不使投资浪费。

系统集成时,不必再选择某家特殊的软件和硬件产品,可以根据自己的需要,在所有的VPP产品中作出最佳选择,系统的兼容性与强健性大大增强了,系统的标准化与统一性也找到了最基础的保障。

三、VISA编程

对于C和C++程序,你必须在每一个文件的开始处添加包含VISA调用函数visa.h头文件:

#include“visa.h”这个头文件包含了VISA函数的原型的声明和所有VISA的常量和错误代码的定义。

Visa.h头文件也包含了visatype.h头文件。

该visatype.h头文件对VISA的所有类型进行了定义。

而关于会话,会话其实是一个通讯通道。

会话必须在默认的资源管理器中被首先打开,接着是你将会使用的每一种资源。

首先,你必须通过默认资源管理器的viOpenDefaultRM函数来建立一个会话。

这个函数的第一次调用用来初始化默认的资源管理器并返回该资源管理器会话的会话。

你仅需要打开默认资源管理器一次就可以了。

然而,后来的对viOpenDefaultRM函数的调用则返回同样的默认资源管理器资源的唯一的会话。

接下来,你利用viOpen函数对指定的资源打开一个会话。

而在退出程序的时候需要对打开的会话进行关闭操作,在关闭每一个会话时,必须调用viClose函数以释放掉分配给该会话的数据资源。

你如果关闭默认的资源管理器会话,则所有被该会话打开的会话将会被关闭。

对于LabVIEW就简单多了,只需直接利用VISA模版中相应的VISA函数:

“VISAOPEN”、“VISAWRITE”、“VISAREAD”、“VISACLOSE”就可以了。

 

第四章可编程仪器标准命令(SCPI)介绍

一、SCPI的作用

由于程控仪器品种繁多、程控功能复杂,长期以来,对仪器消息未能做到标准化,即程控仪器命令集由仪器制造商自行规定,这给仪器使用者和系统设计人员在编程上造成很大困难。

即使是同一功能程控,其命令也可能大有差别。

例如:

不同厂家生产的数字多用表直流电压测量功能,使用的程控命令就可能有DC、DCV、FI、FUI等。

因此编程人员在编写应用软件时,要逐个查阅编程手册,而且由于兼容性差,更换仪器就必须修改程序,程控命令之间还可能出现混淆和矛盾,关键是参考了的相关的理论知识。

早在IEEE488.1推广的过程中就曾经提出了对程控命令的标准化要求,由于当时技术条件的限制这项工作进展十分困难。

1988年HP公司提出了它的系统语言HP-SL。

作为一种通用语言,它的通用命令可以超越仪器而实现标准化。

1989年HP-SL改称测试和测量系统语言TMSL,但这时仍为独家的或称为单方的解决方案。

1990年4月,由HP、TEK等九家知名的仪器制造商组成的联合体,一致同意采用可程控仪器的标准命令SCPI,并公布了它的第一个标准文本SCPIRev1990。

很难考虑到覆盖所有仪器的全部功能,SCPI被制成一个“活”的标准,不但从它的理事到一般成员都可以对它的补充和修改提出意见,即使非成员同样可以提出意见,并经过一定手续写入新版本。

因此可以说,SCPI不但其内容行业内开放,而且提供了一种开放的补充和完善机制。

对于遵循SCPI的仪器或它所覆盖的功能,仪器的程控功能有最大的兼容性,这种广泛的兼容性为编程提供了方便。

日前SCPI已得到了广泛支持和应用,虽然它是建立在IEEE488.2的基础上,但它除了应用在IEEE488总线中,还用于最新发展的VXI总线中,它使程控命令和响应消息标准化,提高了仪器的互换性,它的助记符简单明确,便于记忆,可以大大缩短编程时间和便于测试系统程序维护,还能保护用户的软件投资不因测试程序被淘汰而遭受损失。

 

二、SCPI的内容

SCPI主要包括三部分内容:

语法形式、命令标记和数据变换格式。

(一)语法形式

1.助记符

SCPI的助记符均按“简略式”规则书写、具体规则如下:

(1)如果一个英文词的字母个数少于4个,这个词本身就是助记符。

(2)如果一个英文词的字母个数超过4个,则用前4个字母作为助记符。

(3)如果助记符是元音字母,则去掉这个元音字母,只保留3个字母。

(4)如果不是单词、是一个句子,则使用每一个单词中的第一个字母和最后一个单词的全部字母作为关键词,再按上述

(1)、

(2)、(3)进行处理。

例如:

单词Frequency,Power,free,ACVolts,助记符FREQ,POW,FREE,ACV。

另外,SCPI还可以采用一种长形助记符形式,它的字母与关键字母相同,只不过分为两部分,第一部分为上述的简略助记符,用英文大写字母表示,第二部分为关键词的其它部分,用小写字母表示,如Power可记作Pow,也可记作POWer。

这种形式更利于方便地阅读程序。

2.层次结构

SCPI的指令普遍采用复合层结构,组成一个“树型网络”,即将多个助记符连起来构成一个复合词,而助记符之间用冒号隔开,以表示一个完整的功能。

如,设置输入衰减器(InputAttenuator)可写为INPUT:

ATTenuator。

为什么要采用这种多层结构呢?

因为,一个指令助记符很可能在一台仪器中频繁使用,而带来一些冲突。

如ATTenuator,即可以是输出衰减器,也可以是输入衰减器,若采用单一层次结构、则助记符将非常繁琐且意义不明确,若采用多层结构、写成“树型网络”的形式:

OUTPut:

ATTenuator或INPut:

ATTenuator。

这样条理清楚,单词意义明确,当然上例为两级“树型网络”,同样,也可以有三级,四级或更多的“树型网络”,这要根据需要而定。

3.标准参数格式

SCPI规定了几种标准的参数格式,一般有数值参数、布尔参数、开关参数等形式。

其中数值参数用ASCII码传递,另外还包括最大值、最小值、无穷大的使用。

布尔参数有两个取值,即1、0或ON、OFF。

开关参数可能有多个开关值,例如:

触发源可以有内触发、外触发、总线触发和立即触发等。

另外参数也可由其它功能的设置决定,这种情况称为耦合。

用关键字AUTO对是否进行耦合进行控制,AUTOON表示使用耦合。

AUTOOFF表示不使用,AUTOONCE表示先接入自动耦合,然后把耦合断开,使刚刚耦合的参数固定下来,是对上面的原型进行分析所得到的。

(二)命令标记

SCPI给出了IEEE488.2的13个必备命令和400个以上的SCPI选择命令。

但每个具体仪器并不需要具备所有的功能而只需选择其中几个即可。

为了使标准化的命令不依赖于具体仪器的硬件,SCPI给出了通用仪器模型,如图1所示。

 

在图中每一个方框对应于SCPI中的一个子系统,分别用于产生信号、处理信号和测量信号等。

这样编程人员不必了解一台仪器实际上是怎样完成具体的测量,只要根据需要选择有关系统的指令即可。

当然,对一些具体的子系统,如测量功能单元、信号产生单元又有更详尽的描述模型,具体请参看SCPI文本。

有了通用仪器模型,编程工作就会变得简单方便,首先根据需要,找到了系统功能块,然后沿着“树型网络”从树顶开始向下寻找各分支,检查有没有要完成的功能的指令。

若有,则无需进行

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1