使用VISA编程入门教程
概述
下图示出对具有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" "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 |
标准模块 |
利用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编程入门教程相关推荐
- python快速编程入门教程-终于懂得python快速编程入门教程
为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为module.version.pyc,version是模块的预编译版本编码,一般都包含Python的版 ...
- 【转载】PHP面向对象(OOP)编程入门教程
面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持. 如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们 ...
- PHP面向对象(OOP)编程入门教程
面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们就 ...
- socket 编程入门教程(三)TCP原理:5、TCP的三次握手(three-way handshake)
socket 编程入门教程(三)TCP原理:5.TCP的三次握手(three-way handshake) 前面3个小节介绍了socket机制对TCP协议三次握手的实现,需要强调的是,与协议独立于实现 ...
- 《Delphi XE6 android 编程入门教程》推荐
近5.6年已经没有看见关于delphi的新技术的书出来了(看来在国内delphi的使用量确实很低了), 高勇同学最近出了一本<Delphi XE6 android 编程入门教程>,上周刚拿 ...
- 怎么查看电脑有没有python_python人工智能爬虫系列:怎么查看python版本_电脑计算机编程入门教程自学...
本文由简码编程原创,保留所有版权,转载请注明出处. 本python人工智能爬虫系列教程基于Python3.0版本, 将python结合windows桌面开发工具aardio一起做可视化的开发, 用py ...
- python编程入门-Python编程入门经典pdf(Python编程入门教程) 高清中文版
Python编程入门经典pdf(Python编程入门教程)下载.Python编程入门经典pdf高清版帮助各位更好的进行Python编程的学习以及理解,最经典的课题,最深入的概念,让你在Python编程 ...
- TZC Python编程入门教程 ————题解
本博客原文地址:Python编程入门教程(以在线评测平台为载体) - 暴力都不会的蒟蒻 - 博客园,原文体验更佳 如果你是一名浙江2020级及以后的高中生要学习Python,抑或是一位科学工作者要学习 ...
- 学习嵌入式的书籍推荐,嵌入式编程入门教程学习大纲
嵌入式系统是当前热门.具发展前景的IT应用领域之一,很多数字包括手机.电子字典.可视电话.数字相机.数字摄像机.机顶盒.智能玩具医疗仪器和航空航天设备等都是典型的嵌入式系统.越来越多的人想要了解学习嵌 ...
最新文章
- python做bi系统_如何使用Python创建可视化对象
- php 语句插入失败,php – Mysqli准备语句插入不插入
- 第五个页面:更多电影页面
- Android中级篇之百度地图SDK v3.5.0-百度地图定位[超详细图解定位基础]
- MFRC522开发笔记
- 移动App的发展趋势
- 文献学习(part74)--Data Clustering: 50 Years Beyond K-means
- python中next(reader)_Python错误self.reader.next()
- ubuntu c++检测usb口事件变化_炼就“火眼金睛”,FETA40i-C核心板“牵手”光时域反射仪...
- UVA 11039.Building designing
- UniversalVideoView
- 七牛云 转码_YYC松鼠短视频系统V2.0版本发布,亮点新增转码加水印功能
- [转]使用Git Submodule管理子模块
- 化学能推进永远无法实现外星旅行
- 可能是最高颜值的三方网易云音乐播放器 (全平台支持)
- 完美数——C++代码及思路分析 leetcode507
- Word页码从当前页自增
- VSCode 的扩展包C/C++ IntelliSense, debugging, and code browsing的IntelliSense功能无法使用
- 【Unity Shader】Special Effects(一)UI特效的动画播放器
- 【C++】模板(初级)
热门文章
- Delphi 串口通信技术资料
- WPF 导入google思源字体(.otf)格式字体
- 关于三菱GXWORK安装失败或者安装向导被中断的解决办法
- strcmp和stricmp,C 标准库 string.h
- Docker版本分为CE和EE了
- 经验正交函数 (EOF) / 主成分 (PCA) 分解及Python实现
- iOS底层开发消息发送与转发流程
- 编译和运行一个ARM64内核
- 行业翻译类词汇-项目管理词汇
- [WARNING]: IPv4 forwarding is disabled. Networking will not work