概述

下图示出对具有VISA的仪器进行控制的流程。当用可视Basic语言(Visual Basic languagee)开发VISA程序时,必须回顾一个特殊的编程注意事项(在下面列出的自述文本文件中)。

有关VISA程序库的利用以及利用带有E5071A宏程序(E5071A VBA)的VISA的编程注意事项的详情,请参考包含在IO程序库光盘(CD-ROM)上的下列文件。

  • visa.hlp (VISA程序库的在线帮助)。

  • vbreadme.txt (对利用具有VB的VISA程序库的注释)。

使用VISA控制仪器的流程

第1步:起动VISA

样本程序ctrl_ext.vba. 中的90行处理VISA系统起动对话。VISA的viOpenDefaultRM功能对VISA系统进行初始化和起动。viOpenDefaultRM 功能必须在调用其它VISA功能之前执行,而这个功能的参数是起动信息(ctrl_ext.vba中的Defrm)。

语法

viOpenDefaultRM(param)

参数

参数

(param)

说明

起动信息(输出)

数据类型

长整型

第2步:连接

130行处理连接对话。VISA的viOpen功能进行与规定仪器的连接。viOpen功能返回某个值,使得VISA功能可以将其应用于规定仪器,这个功能的参数是起动信息(Defrm)、规定仪器的地址信息(ctrl_ext.vba中的“GPIB::17::INSTR”)、接入方式(ctrl_ext.vba中的0)、超时(ctrl_ext.vba中的0)和连接信息(ctrl_ext.vba中的Equip)。

语法

viOpen(param1, param2, param3, param4, param5)

参数

参数

(param1)

说明

起动信息(输入)

数据类型

长整型

参数

(param2)

说明

规定仪器的地址信息(输入)

数据类型

字符串型

语法

"GPIB0::gpib address::INSTR"

"USB0::manufacturer ID::model code::serial number::0::INSTR"
(ex. "USB0::2391::2312::MY12345678::0::INSTR")

"TCPIP0::IP address::inst0::INSTR"

参数

(param3)

说明

接入方式(输入0)

参数

(param4)

说明

超时(输入0)

参数

(param5)

说明

连接信息(输出)

数据类型

长整型

第3步. 通信

170行进行通信对话。VISA的viVPrintf功能将程序消息(GPIB命令)发送到规定仪器。这个功能的参数是连接信息(Equip)、程序消息(*EDN?)和待格式化变量(ctrl_ext.vba中的0)。

  • 为了输入/输出GPIB命令,主要是利用viVPrintf 功能和viVScanf功能信息,但也可以利用其它VISA功能。欲知详情,请参考visa.hlp (VISA程序库的在线帮助)。

语法

viVPrintf(param1, param2, param3)

参数

参数

(param1)

说明

连接信息(输出)

数据类型

长整型

参数

(param2)

说明

发送GPIB命令的程序消息时的程序消息,消息结束处要求一个消息终结符(ctrl_ext.vba中的Chr$(10))

数据类型

字符串型

参数

(param3)

说明

变量待格式化,若不可应用,则输入0。

数据类型

规定的数据类型

210行控制接收对话。VISA的viVScanf 功能接收来自规定仪器的结果,并将其存储在输出变量中。这个功能的参数是连接信息(ctrl_ext.vba中的Equip)、输出变量的格式参数(ctrl_ext.vba中的%t)和输出变量(ctrl_ext.vba中的Prod)。

语法

viVScanf(param1, param2, param3)

参数

参数

(param1)

说明

连接信息(输入)

数据类型

长整型

参数

(param2)

说明

输出变量的格式参数

数据类型

字符串型

参数

(param3)

说明

输出变量(输出)

数据类型

字符串型

第4步: 断开

280行处理断开对话。VISA的 viClose 功能将通信中断并使VISA系统终结,这个功能的参数是起动信息(ctrl_ext.vba中的Defrm)。

语法

viClose(param)

Parameter

参数

(param)

说明

起动信息(输入)

数据类型

长整型

样本程序 用来读出外围设备(仪器)产品信息

ctrl_ext.vba 是利用E5071C作为系统控制器时,控制通过USB/GPIB接口电缆连接的仪器的样本程序。这个VBA程序由下列程序模块组成。

对象名

模块类型

内容

mdlVisa

标准模块

读出外部仪器的产品信息。

模块1
模块2

标准模块

利用VISA程序库的两个定义文件

  • 当您由E5071C VBA来控制外围设备时,利用对仪器提供的GPIB命令经VISA进行通信。相反,当您由E5071C VBA来控制仪器本身时,则利用对仪器提供的COM对象进行通信。

90行到100行

对VISA系统进行初始化和起动,并将起动信息输出到Defrm变量。在这个过程期间,若发生差错,程序便转到错误处理程序(320行到360行)。

130行到140行

建立与经GPIB连接的外部仪器(GPIB地址:17)的连接,并将连接信息输出到Equip变量。在这个过程期间,若发生差错,程序便转到错误处理程序(320行到360行)。

170行到180行

查询利用VISA经USB/GPIB接口电缆连接的外部仪器的产品信息,在这个过程期间,若发生差错,程序便转到错误处理程序(320行到360行)。

210行到250行

通过VISA对产品信息进行检索,并将产品信息输出到Prod变量。在消息框中显示读出结果。在这个过程期间,若发生差错,程序便转到错误处理程序(320行到360行)。

280行

中断通信并使VISA系统终结。

320行到360行

若VISA功能发生差错,将显示错误的细节并使程序终结。

读出产品信息(ctrl_ext.vba)

10| Sub Main()

20|

30| Dim status As Long 'VISA function status return code

40| Dim Defrm As Long 'Session to Default Resource Manager

50| Dim Equip As Long 'Session to instrument

60| Dim Prod As String * 100 'String to receive the result

70|

80| ' Initializes the VISA system.

90| status = viOpenDefaultRM(Defrm)

100| If (status <> VI_SUCCESS) Then GoTo VisaErrorHandler

110|

120| ' Opens the session to the specified instrument.

130| status = viOpen(Defrm, "GPIB0::17::INSTR", 0, 0, Equip)

140| If (status <> VI_SUCCESS) Then GoTo VisaErrorHandler

150|

160| ' Asks for the instrument's product information.

170| status = viVPrintf(Equip, "*IDN?" & Chr$(10), 0)

180| If (status <> VI_SUCCESS) Then GoTo VisaErrorHandler

190|

200| ' Reads the result.

210| status = viVScanf(Equip, "%t", Prod)

220| If (status <> VI_SUCCESS) Then GoTo VisaErrorHandler

230|

240| ' Displays the result.

250| MsgBox Prod

260|

270| ' Closes the resource manager session (which closes everything)

280| Call viClose(Defrm)

290|

300| GoTo Prog_end

310|

320| VisaErrorHandler:

330| Dim VisaErr As String * 200

340| Call viStatusDesc(Defrm, status, VisaErr)

350| MsgBox "Error : " & VisaErr, vbExclamation

360| Exit Sub

370|

380| Prog_end:

390|

400| End Sub

使用VISA编程入门教程相关推荐

  1. python快速编程入门教程-终于懂得python快速编程入门教程

    为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为module.version.pyc,version是模块的预编译版本编码,一般都包含Python的版 ...

  2. 【转载】PHP面向对象(OOP)编程入门教程

    面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持. 如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们 ...

  3. PHP面向对象(OOP)编程入门教程

    面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们就 ...

  4. socket 编程入门教程(三)TCP原理:5、TCP的三次握手(three-way handshake)

    socket 编程入门教程(三)TCP原理:5.TCP的三次握手(three-way handshake) 前面3个小节介绍了socket机制对TCP协议三次握手的实现,需要强调的是,与协议独立于实现 ...

  5. 《Delphi XE6 android 编程入门教程》推荐

    近5.6年已经没有看见关于delphi的新技术的书出来了(看来在国内delphi的使用量确实很低了), 高勇同学最近出了一本<Delphi XE6 android 编程入门教程>,上周刚拿 ...

  6. 怎么查看电脑有没有python_python人工智能爬虫系列:怎么查看python版本_电脑计算机编程入门教程自学...

    本文由简码编程原创,保留所有版权,转载请注明出处. 本python人工智能爬虫系列教程基于Python3.0版本, 将python结合windows桌面开发工具aardio一起做可视化的开发, 用py ...

  7. python编程入门-Python编程入门经典pdf(Python编程入门教程) 高清中文版

    Python编程入门经典pdf(Python编程入门教程)下载.Python编程入门经典pdf高清版帮助各位更好的进行Python编程的学习以及理解,最经典的课题,最深入的概念,让你在Python编程 ...

  8. TZC Python编程入门教程 ————题解

    本博客原文地址:Python编程入门教程(以在线评测平台为载体) - 暴力都不会的蒟蒻 - 博客园,原文体验更佳 如果你是一名浙江2020级及以后的高中生要学习Python,抑或是一位科学工作者要学习 ...

  9. 学习嵌入式的书籍推荐,嵌入式编程入门教程学习大纲

    嵌入式系统是当前热门.具发展前景的IT应用领域之一,很多数字包括手机.电子字典.可视电话.数字相机.数字摄像机.机顶盒.智能玩具医疗仪器和航空航天设备等都是典型的嵌入式系统.越来越多的人想要了解学习嵌 ...

最新文章

  1. python做bi系统_如何使用Python创建可视化对象
  2. php 语句插入失败,php – Mysqli准备语句插入不插入
  3. 第五个页面:更多电影页面
  4. Android中级篇之百度地图SDK v3.5.0-百度地图定位[超详细图解定位基础]
  5. MFRC522开发笔记
  6. 移动App的发展趋势
  7. 文献学习(part74)--Data Clustering: 50 Years Beyond K-means
  8. python中next(reader)_Python错误self.reader.next()
  9. ubuntu c++检测usb口事件变化_炼就“火眼金睛”,FETA40i-C核心板“牵手”光时域反射仪...
  10. UVA 11039.Building designing
  11. UniversalVideoView
  12. 七牛云 转码_YYC松鼠短视频系统V2.0版本发布,亮点新增转码加水印功能
  13. [转]使用Git Submodule管理子模块
  14. 化学能推进永远无法实现外星旅行
  15. 可能是最高颜值的三方网易云音乐播放器 (全平台支持)
  16. 完美数——C++代码及思路分析 leetcode507
  17. Word页码从当前页自增
  18. VSCode 的扩展包C/C++ IntelliSense, debugging, and code browsing的IntelliSense功能无法使用
  19. 【Unity Shader】Special Effects(一)UI特效的动画播放器
  20. 【C++】模板(初级)

热门文章

  1. Delphi 串口通信技术资料
  2. WPF 导入google思源字体(.otf)格式字体
  3. 关于三菱GXWORK安装失败或者安装向导被中断的解决办法
  4. strcmp和stricmp,C 标准库 string.h
  5. Docker版本分为CE和EE了
  6. 经验正交函数 (EOF) / 主成分 (PCA) 分解及Python实现
  7. iOS底层开发消息发送与转发流程
  8. 编译和运行一个ARM64内核
  9. 行业翻译类词汇-项目管理词汇
  10. [WARNING]: IPv4 forwarding is disabled. Networking will not work