对于绝大多数的程控仪表,除了支持面板的操作之外,还提供编程控制接口和所有面板对应操作的指令(SCPI)。
譬如,有时需要仪表长时间的重复某些操作来完成一项测试任务,就可以通过EXCEL的VBA简单的编程,就可以实现。
本博文详细介绍从驱动安装,到EXCEL VBA设计编辑,到VB代码实现等所有的过程,供初学者手把手的学习和实验。
一、准备工作
a. 电脑安装的为Office 2010,
b. 下载及安装安捷伦IO Library,http://www.home.agilent.com/zh-CN/pd-1985909-pn-E2094/io-libraries-suite-162?nid=-33002.977662&cc=CN&lc=chi
c. 使用GPIB,LAN或USB将PC与仪表连接,并配置正确的地址(如IP地址)
d. 使用IO Connect Expert 正确的连通仪表,如下图:
二、创建Excel并在添加VBA对应控件
a. 新建Excel文件,通过文件->选项-> 自定义功能区->开发工具, 添加“开发工具”栏;
b. 开发工具->插入->Active X 控件, 图添加如下图的一个“按钮”(鼠标拖拽)
c. 选中“按钮”,右键编辑器属性,如将“按钮”名称修改为“IDN?”
d. 双击“IDN?”按钮,进入到VBA 代码编辑环境。
三、添加Visa32仪表驱动库文件及编写控制软件
a. 在VBA编辑环境,通过 文件->导入文件,添加Visa32.bas驱动控件,该文件默认路径为:
”C:\Program Files (x86)\IVI Foundation\VISA\WinNT\include”
b. 默认会生成 CommandButton1_Click()函数,可以通过添加和修改代码,包括添加仪表控制指令实现与仪表的通信。
“*IDN?”指令返回结果将显示在 Excel的第一行,第二列
c. 完成代码编辑后,保存 并 通过运行->退出设计模式
四、运行和调试开发的自动控制软件
a. 正常情况下,点击“IDN?”按键,应该会在Excel表中显示对应连接的仪表的识别信息,如下图N6705B所示:
b. 按照以上步骤二、三可以开发更多的仪表控制的功能,如设置电源的电压值(表格的第二行,第二列);
c. 此外,安捷伦的IO Connect Expert 还提供通信指令监测功能,方便查看PC与仪表通信指令,如下
Dim v1 As Long
Private Sub CommandButton1_Click()
Dim rm As Long
Dim result As String * 100
Call viOpenDefaultRM(rm)
Call viOpen(rm, "GPIB1::5::INSTR", 0, 0, v1)
Call viVPrintf(v1, "*IDN?" & Chr(10), 0)
Call viVScanf(v1, "%t", result)
Excel.Cells(1, 2) = result
End Sub
Private Sub CommandButton2_Click()
Dim valstr As String * 100
valstr = Excel.Cells(2, 2)
Call viVPrintf(v1, "VOLT " & valstr & Chr(10), 0)
End Sub
用户282178 2016-4-23 19:22
用户1208903 2014-10-8 10:14
shihlin_812989226 2014-10-8 08:45
用户586067 2014-8-1 08:18