用EXCEL内嵌的Visual Basic for Application 编程,通过 UGSimple USB-GPIB 控制器来驱动仪器34401A,并从34401A读取数据
现在市场上有很多中USB-GPIB 控制器,或叫 USB 转GPIB链接线。 每种GPIB控制器都有它的 函数库(dll库)。各种GPIB 控制器的价钱插别很大。这里以一种价钱较便宜的USB-GPIB 控制器UGSimple USB-GPIB 控制器为例,看它的VBA编程时怎么用的。UGSimple USB-GPIB 控制器在淘宝上有卖。
用EXCEL内嵌的VBA编程的好处是 仪器测试读取的数据可以同时放入EXCEL表格里,并同时进行数据处理。并且VBA 相对其它编程语言来讲,容易好学。这里用一个Office 2003的EXCEL 来说明。
拿到UGSimple 以后,首先是安装 。现将UGSimple插入电脑的USB接口。然后启动UGSimple_setup.exe,按照它的安装过程安装好UGSimple 软件。
这里用一台 安捷伦的 6位半万用表 34401A为例。安装好UGSimple 软件后,将UGSimple 的GPIB 接头 (GPIB host)插入34401A的GPIB设备接口 (GPIB device),GPIB接头插好后,硬件就连接好了。然后,打开 34401A的电源, 设置 34401A的GPIB 地址为 22。
下来该做软件的工作了。我们先看一下UGSimple是否连接正确。点电脑上的Start->All Programs->LQ Electronics->UGSimple->UGSimple (不好意思,我的电脑是用的英文界面),打开UGSimple 的主控板。在Address栏输入22,在GPIB command 栏 写入 *IDN?,然后点击 主控板上的Command Write键,这时,*IDN?指令就送到34401A里去了。然后再点击 主控板上的Data Read键, 如果读回HEWLETT-PACKARD,34401A,0,11-5-2,则所有连接正确, 见下图。
打开Office2003 的 EXCEL,在 (2, “B”) 单元格写入 “直流电压”,在(2, “D”)单元格写入“交流电压”。之后,我们将会把读到的数据写入相应的直流或交流电压下面。点击菜单 Tools->Macro->Visual Basic. 如果右边是灰色,点击左边的Sheet1(Sheet1),右边的VBA编辑器就出现了。
首先在最上面写上 UGSimple 的GPIB 指令 发送函数 Gwrite 和 读取指令Gread的函数声明, 以及用于延时的函数Sleep的函数声明。
Private Declare Function Gwrite Lib "C:\Program Files\LQElectronics\UGSimple\UGSimpleAPI\LQUGSimple_s.dll" Alias "#100" (ByVal address As Integer, ByVal SCPI As String) As Integer
Private Declare Function Gread Lib "C:\Program Files\LQElectronics\UGSimple\UGSimpleAPI\LQUGSimple_s.dll" Alias "#101" (ByVal address As Integer) As String
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
然后在开始VBA 编程。其程序如下,
Private Sub sendread()
Dim command, data As String
Dim success, r As Integer
For r = 3 To 7 '设循环
success = Gwrite(22, "MEAS:VOLT:DC?") '发送直流电压读取指令
If success <> "0" Then '判断发送指令是否成功,
MsgBox ("Something Wrong!") '显示出错
GoTo out '退出
End If '判断结束
Sleep (200) '延时0.2秒,等34401A准备数据
data = Gread(22) '读取数据
Worksheets("Sheet1").Cells(r, "B") = CDbl(data) '将数据写入相应栏里
success = Gwrite(22, "MEAS:VOLT:AC?") '发送交流电压读取指令
If success <> "0" Then '判断发送指令是否成功
MsgBox ("Something Wrong!") '显示出错
GoTo out '退出
End If '判断结束
Sleep (800) '延时0.8秒,等34401A准备数据
data = Gread(22) '读取数据
Worksheets("Sheet1").Cells(r, "D") = CDbl(data) '将数据写入相应栏里
Next r '下一个循环
out: '退出
End Sub
安装好的程序里也有EXCEL的例子。
用EXCEL内嵌的Visual Basic for Application 编程,通过 UGSimple USB-GPIB 控制器来驱动仪器34401A,并从34401A读取数据的更多相关文章
- Visual Basic for Application
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'The note of Visual Basic for Applicati ...
- C# Dsoframer.ocx 如何在winform中嵌入Excel,内嵌Excel,word
如果你还不太清楚Dspframer.ocx怎么放到窗体上就看上一篇文章,里面详细介绍了是如何放到窗体上的. 链接:http://www.cnblogs.com/pingming/p/4182045.h ...
- C# 如何在winform中嵌入Excel,内嵌Excel,word
近使用.net做一个小软件遇到一个问题,就是想实现把excel表格在winform中打开,同时可以操作,不单单是打开.或者就提取数据.在网上找了好多资料,发现这方面的资料比较少,即使有,都是旧版本的使 ...
- Visual Basic 2012 借助DataGridView控件将SQL server2012 数据导入到Excel 2010
摘 要: SQL Server 2012 数据和Excel 2010之间的连接和数据的传输,本篇文章主要针对的是SQL Server 2012 数据导入到Excel 2010文件中.Excel软件对 ...
- Visual Basic了解
Visual Basic是一种由微软公司开发的结构化的.模块化的.面向对象的.包含协助开发环境的事件驱动为机制的可视化程序设计语言.这是一种可用于微软自家产品开发的语言.它源自于Basic编程语言.V ...
- 杂项-软件: VBA(Visual Basic for Applications)
ylbtech-杂项-软件: VBA(Visual Basic for Applications) VBA (Visual Basic宏语言) Visual Basic for Application ...
- Beennan的内嵌汇编指导(译)Brennan's Guide to Inline Assembly
注:写在前面,这是一篇翻译文章,本人的英文水平很有限,但内嵌汇编是学习操作系统不可少的知识,本人也常去查看这方面的内容,本文是在做mit的jos实验中的一篇关于内嵌汇编的介绍.关于常用的内嵌汇编(AT ...
- Visual Basic相关图书推荐
Visual Basic从入门到精通(第2版) 作 者 国家863中部软件孵化器 编 出 版 社 人民邮电出版社 出版时间 2015-03-01 版 次 2 页 数 61 ...
- MongoDB .Net Driver(C#驱动) - 内嵌数组/嵌入文档的操作(增加、删除、修改、查询(Linq 分页))
目录 一.前言 1. 运行环境 二.前期准备工作 1. 创建 MongoDBContext MongoDb操作上下文类 2.创建测试类 3.创建测试代码 三.内嵌数组增加元素操作 1.Update.S ...
随机推荐
- C++语法
http://stackoverflow.com/questions/4269034/what-is-the-meaning-of-prepended-double-colon
- DotNet 资源大全中文版【转】
转自:https://github.com/jobbole/awesome-dotnet-cn 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesom ...
- CSS定位position
position选项来定义元素的定位属性,选项有5个可选值:static.relative.absolute.fixed.inherit 属性值为relative.absolute.fixed时top ...
- haproxy +keepalived 原创
Haproxy+keepalived 原理: HAProxy介绍及其定位 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.根 ...
- [Maven]Maven详解
转自:http://www.cnblogs.com/hongwz/p/5456578.html 一.前言 以前做过的项目中,没有真正的使用过Maven,只知道其名声很大,其作用是用来管理jar ...
- OAF_开发系列21_实现OAF事物控制TransactionUnitHelper(案例)
20150716 Created By BaoXinjian
- nginx长连接设置
http { keepalive_timeout 20; --长连接timeout keepalive_requests 8192; --每个连接最大请求数} events { worker_conn ...
- Stanford NLP学习笔记:7. 情感分析(Sentiment)
1. 什么是情感分析(别名:观点提取,主题分析,情感挖掘...) 应用: 1)正面VS负面的影评(影片分类问题) 2)产品/品牌评价: Google产品搜索 3)twitter情感预测股票市场行情/消 ...
- java 无符号byte转换
java中的byte类型是有符号的,值得范围是-128-127 做网络通讯时,接收过来的数据往往都是无符号的byte,值得范围是0-255 因此直接转换时,存储到java显示的值就会有问题 int o ...
- opencv从txt文本读取像素点并显示
opencv从txt文本读取像素点并显示 文本储存格式为每行一个像素点,排列为RGB.每帧图像的帧头为65535. 如下图所示 废话不多说,代码如下: // #include <iostrea ...