专栏名称: 今日芯闻
半导体行业的“资治通鉴”,汇聚半导体行业最新资讯,捕捉全球科技圈最新动态。专注于半导体晶圆代工、IC设计、IC封测、DRAM、NAND Flash等产业。华语圈百万半导体人睡前必读的“今日芯闻”。旗下更多订阅号:芯师爷、全球物联网观察。
目录
相关文章推荐
心禅道  ·  投资#785 ... ·  3 天前  
心禅道  ·  投资#785 ... ·  3 天前  
51好读  ›  专栏  ›  今日芯闻

颤抖吧,电子工程师!是德科技又要送价值上万的示波器啦!

今日芯闻  · 公众号  ·  · 2018-03-09 08:10

正文

* 特别提醒:学当以致用,看完文章别忘了答题哟~

本文基于VBA环境介绍如何实现示波器远程图片保存的程序编程,同时还提供编程源代码。


大家好!我是Keysight的应用工程师陈宏毅,今天我跟大家分享下如何基于Excel的VBA环境进行仪表的自动化控制。

基本的仪表控制分为三个步骤:

1、 确保控制接口的物理连接与正确配置

2、 利用Keysight的IO工具找到仪表

3、 编程控制与验证

首先确保网口的物理连接, 这里我们将控制PC与示波器通过网线直接连接, 并且将仪表与PC的地址修改到同一网段,通过是德科技的IO工具, 我们可以验证连接是否成功。

首先打开IO工具, 输入示波器的IP地址,通过下方的IDN查询按钮,验证连接情况,可以看到,连接成功,我们点击OK将连接成功的仪表加入IO软件的仪表列表中,如下图所示,我们可以通过IO工具中的命令交互对话框与仪表进行简单的控制验证,例如我们输入重启命令*RST,可以看到,示波器已经恢复默认设置,我们还可以输入*IDN?查询示波器的序列号,型号等信息。

接下来我们基于VBA环境来进行仪表控制的开发,我们希望程序能够实现仪表的截图保存的功能,首先打开一个空白的Excel表格,通过alt+f11进入VBA的开发环境,如下图,我们通过Tools—>References…在VBA环境中添加VISA的引用,方便我们在当前环境中使用VISA中的IO库。根据IO工具版本的差异,其自带的VISA库版本也会不同,这里我们添加的是VISA COM 5.9 Type Library。

我们定义两个函数,第一个是仪表的连接函数。

我们可以通过IO工具自带的VISACOM help文件来简化我们的开发工作,如下图,可以看到 VISACOM的help文件中有一章专门用来展示了如何通过VB进行仪表的连接(Creating and Using the Basic Formatted I/O Object),我们直接复制这一段,进行一些小的修改,我们将资源管理对象与消息传递对象拉出来做为全局变量,删除错误跳转语句,将仪表地址作为字符串变量传入。

这段函数完成了仪表的连接与IDN的询问,我们将IDN的返回值拉出来做一个监视,可以看到,变量成功接到了IDN的返回值。

现在我们来定义第二个函数,仪表截图函数。

这个函数的开发,我们来结合官网的示波器编程指南来进行,我们要进行的是仪表的截图,我们在文档中敲入关键字Display,可以看到这里呈现了与显示有关的各种命令。如下图,我们看到,下方有一段仪表截图的示例程序,我们直接将这段代码复制进我们的环境中,将仪表对象改成我们刚才定义的名称,将路径改为我们PC已有的。

定义完之后,我们定义过程调用刚刚定义的两个函数,等待仪表指示操作完成,我们就可以查看刚刚的截图文件了。

如下图,可以看到,在我们定义的路径里多了一个图像文件,里面正是我们示波器的屏幕截图。


具体源代码分享如下,适当修改就可以在您的电脑上实现示波器波形的远程读取。


Public rm As VisaComLib.ResourceManager

Public fmio As New VisaComLib.FormattedIO488


'' connect scope

Public Sub ConnectInstrument(ByVal instrumentAddr As String)


Dim idn As String

Set rm = New VisaComLib.ResourceManager '定义资源管理对象,每个资源管理对象对应一台仪表

Set fmio.IO = rm.Open(instrumentAddr)  '定义接口对象,用来做指令的传递和读取

fmio.IO.Timeout = 5000 '定义超时时间

fmio.WriteString "*IDN?" '通过IDN命令查询仪表的名称,序列号等信息

idn = fmio.ReadString() '回读

End Sub


Public Sub Getscreen()


fmio.IO.Timeout = 20000 '因为图像数据量较大, 所以我们增加IO口的超时时间

Dim byteData() As Byte

fmio.WriteString ":DISPlay:DATA? BMP, COLOR" '送入获取图像数据的指令

byteData = fmio.ReadIEEEBlock(BinaryType_UI1) '通过VISAcom中的ReadIEEEBlock函数读取图像数据

' Output display data to a file:

Dim strPath As String: strPath = "c:Testscopescreen.bmp"

If Len(Dir(strPath)) Then '判断如果文件存在, 先删除

Kill strPath

End If

Close #1   ' If #1 is open, close it.

Open strPath For Binary Access Write Lock Write As #1   ' Open file for output. 将文件以二进制写入的形式打开

Put #1, , byteData   ' Write data. 写入之前获取的二进制图像数据

Close #1   ' Close file. 关闭

fmio.IO.Timeout = 5000 '还原超时时间


End Sub


Public Sub exe()


Call ConnectInstrument("TCPIP0::169.254.150.149::hislip0::INSTR")

Call Getscreen


End Sub


学完就有用武之地,用您的努力为自己赢得一个示波器吧!


长按二维码报名是德科技感恩月 >


关注公众号后进入如下界面

点击“ 感恩月 技术之星 进入答题界面


每周积分和月积分前一百名均有好礼赠送。


2018/3/7 技术文章推荐

Power部分 : IoT电池、动力电芯的自放电精确、快速测量

是德科技创新性自放电测试方案BT2191A(研发)或BT2152(生产),将自放电测试时间缩短至数小时、甚至分钟级别,且可精确测量自放电电流绝对值(uA),而不是以上K值。

射频部分: 物联网射频测试 – FSK调制的测试雷区该怎么避?

虽然FSK调制在数字调制技术中是相对简单的一种,它可是应用非常广泛的数字调制哦!从汽车胎压监测到遥控车钥匙,从简单的遥控玩具到复杂的无人机,再到各种物联网应用,FSK调制都被广泛使用!


关于是德科技

是德科技是一家领先的技术公司,致力于帮助工程、企业和服务提供商客户优化网络,进而将其电子产品以更低的成本、更快地推向市场。从设计仿真到原型验证、再到生产测试以及网络和云环境的优化,是德科技提供了全方位电子信号测试与分析解决方案。我们的客户遍及全球通信、航空航天与国防、汽车、能源、半导体和通用电子终端市场。2017 年 4 月,是德科技完成对 Ixia 的收购。Ixia 公司在网络测试、可见性和安全解决方案领域具有十分雄厚的实力。更多信息,请访问 www.keysight.com

长按,识别上方二维码







请到「今天看啥」查看全文