历史上的今天
返回首页

历史上的今天

今天是:2025年02月12日(星期三)

正在发生

2020年02月12日 | 关于示波器远程控制之VB编程的介绍分析和介绍

2020-02-12 来源:elecfans

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

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


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

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

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

3、编程控制与验证


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


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

关于示波器远程控制之VB编程的介绍分析和介绍

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

关于示波器远程控制之VB编程的介绍分析和介绍

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


关于示波器远程控制之VB编程的介绍分析和介绍

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


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


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

关于示波器远程控制之VB编程的介绍分析和介绍

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

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

关于示波器远程控制之VB编程的介绍分析和介绍

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

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 "DATA? BMP, COLOR" '送入获取图像数据的指令

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

' Output display data to a file:

Dim strPath As String: strPath = "c:Testscopescreen.bmp?imageView2/2/w/550"

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::INSTR")

Call Getscreen

推荐阅读

史海拾趣

General Dynamics SATCOM Technologies公司的发展小趣事

对于集成电路控制方式的恒水压自动控制电路,网友可能会提出多个问题,以下是一些常见问题及其回答:

1. 恒水压自动控制电路的基本工作原理是什么?

回答
恒水压自动控制电路主要利用集成电路(如单片机、微处理器等)对水压进行实时监测与控制。其基本工作原理是通过压力传感器采集水系统中的水压信号,将模拟信号转换为数字信号后送入微处理器进行处理。微处理器根据预设的水压值与实际水压值进行比较,通过控制水泵电机或其他执行机构的启停或转速来调节水流量,从而实现水压的恒定控制。

2. 如何实现精确的水压控制?

回答
实现精确的水压控制需要依赖于高精度的压力传感器和先进的控制算法。首先,选择具有高精度和良好稳定性的压力传感器是关键。其次,在控制算法上,常采用PID(比例-积分-微分)控制算法,通过不断调整比例、积分和微分系数来优化控制效果,使系统能够快速响应水压变化并保持稳定。此外,还可以引入模糊控制、神经网络控制等先进算法,以进一步提高控制系统的智能化水平和控制精度。

3. 恒水压自动控制电路中的集成电路如何选择?

回答
在选择集成电路时,需要考虑多个因素,包括控制精度、处理能力、成本、功耗以及是否易于编程等。对于恒水压自动控制电路来说,单片机或ARM等微处理器是常见的选择。这些微处理器具有较高的集成度和较强的数据处理能力,能够满足实时控制和复杂算法的需求。同时,还需要考虑其外部接口和扩展性,以便与压力传感器、电机驱动器等其他元件进行连接和通信。

4. 如何解决电路中的噪声和干扰问题?

回答
在恒水压自动控制电路中,噪声和干扰可能会影响压力传感器的测量精度和控制系统的稳定性。为了解决这些问题,可以采取以下措施:

  • 在电路设计阶段,采用合理的布局和布线方式,减少信号线之间的串扰和耦合。
  • 使用屏蔽线和滤波器来抑制高频噪声和电磁干扰。
  • 对模拟信号进行滤波处理,提高信号的信噪比。
  • 在软件层面,采用数字滤波算法进一步滤除噪声干扰。

5. 如何实现远程监控和故障诊断?

回答
为了实现恒水压自动控制电路的远程监控和故障诊断,可以将控制系统与物联网技术相结合。通过在控制系统中集成无线通信模块(如Wi-Fi、蓝牙、NB-IoT等),将实时水压数据、运行状态等信息传输到云端服务器或远程监控中心。同时,可以通过手机APP、网页等客户端远程查看和控制系统状态,及时发现并处理故障问题。此外,还可以利用大数据分析技术对历史数据进行挖掘和分析,为系统的优化和维护提供数据支持。

以上是对集成电路控制方式的恒水压自动控制电路可能遇到的问题及其回答的总结。希望这些信息能够对网友有所帮助。

APTA Group Inc公司的发展小趣事

除了在经济领域的成功,APTA Group Inc还注重履行社会责任。公司积极参与环保事业,推动绿色生产,减少对环境的影响。同时,APTA还关注社会公益事业,通过捐款捐物等方式回馈社会。这些举措不仅提升了公司的社会形象,也赢得了公众的认可和尊重。


请注意,上述故事是基于假设构建的,并非APTA Group Inc的实际经历。如果您需要更具体的信息,建议直接访问该公司的官方网站或查阅相关新闻报道,以获取更准确的发展故事。

FTCAP Fischer & Tausche Capacitor Group公司的发展小趣事

在电子行业的发展过程中,APTA Group Inc也遭遇了不少挑战。例如,原材料价格的波动、国际贸易环境的变化等都曾给公司带来不小的压力。然而,APTA并未被这些困难击垮,而是积极调整战略,优化生产流程,降低成本,提高产品质量。这种在挑战中展现出的韧性和应变能力,使得APTA能够在逆境中保持稳健的发展态势。

ERP公司的发展小趣事

随着云计算和大数据技术的兴起,电子智链在2010年代初期开始了技术转型。公司投入大量资源研发基于云计算的ERP系统,并在2015年成功推出“云链”系列产品。这一产品迅速受到市场的欢迎,电子智链的客户群迅速扩大,不仅涵盖了中小型企业,还吸引了众多大型电子集团。同时,公司也在国际市场上积极扩张,与多家海外企业建立了合作关系。

中微股份(Cmsemicon)公司的发展小趣事

在品牌建设方面,中微股份(Cmsemicon)同样取得了显著成果。公司注重品牌形象的塑造和传播,通过参加国内外行业展会、发布新产品、加强与客户和合作伙伴的沟通等方式,不断提升品牌知名度和美誉度。同时,公司还积极拓展市场,与全球众多知名企业建立了长期稳定的合作关系。这些努力不仅为公司带来了更多的商业机会,也为公司的长远发展奠定了坚实基础。

ERA Transformers公司的发展小趣事

随着市场需求的不断增长,ERA Transformers公司面临着扩大生产规模的挑战。为了满足客户需求并保持市场竞争力,公司决定投资建设一个新的生产基地。经过精心规划和筹备,新的生产基地顺利建成并投入使用。这不仅大大提高了公司的生产能力,还进一步提升了产品质量和生产效率。新基地的建成标志着ERA Transformers公司在电子行业中的地位更加稳固。

问答坊 | AI 解惑

电子设计基础知识

本帖最后由 paulhyde 于 2014-9-15 04:10 编辑 一些关于 大赛的 基础知识  …

查看全部问答>

关于WinCE下显示驱动中的SetMode函数

WinCE下显示驱动中有DDGPE::SetMode (int modeId, HPALETTE *palette)函数 modeId:用来设置当前显示模式如:640*480,800*480等 请问下wince下是如何调用SetMode 函数的,这个modeId的值是如何指定的。…

查看全部问答>

只支持8级灰度的硬件,文字显示时如果反锯齿?

WINCE5.0平台,支持8级灰度的硬件,用ClearType的话,字符显示效果更差。 有没有其它方法?…

查看全部问答>

NAND FLASH从K9F1208修改成K9F1G08要跳电阻?为什么?不是完全兼容吗?难道操作的周期数不一样?

NAND FLASH从K9F1208修改成K9F1G08要跳电阻?为什么?不是完全兼容吗?难道操作的周期数不一样?…

查看全部问答>

高科技大型上市公司招聘: 嵌入式系统设计工程师 /通信产品设计工程师 / 系统软件设计工程师 工作地点 深圳

本公司是深圳一家高科技大型上市公司,主要经营电力系统产品生产研发,微电子产品生产研发,光磁设备,公司内有员工高层公寓,食堂,文体活动中心,员工家属楼多处,座落于美丽的深圳市福田区笔架山与莲花山之间,公司目前有员工6000多人,工程师及 ...…

查看全部问答>

wince 内核 C/C++ 代码在什么目录? 我的wince跑不起来(可能是运行中 出错了)?

wince 内核 C/C++ 代码在什么目录?  我的wince跑不起来(可能是运行中 出错了)? 我想在内核代码上加输出信息,看看运行到了哪一步了.  怎么加?…

查看全部问答>

请玩过MSP430F5438的大侠们帮我一下!!!

刚接触MSP430F5438,请教各位大侠,这款单片机初始化需要做哪些工作啊???谢啦!!! [ 本帖最后由 雨西关 于 2011-10-5 11:03 编辑 ]…

查看全部问答>

【EE征集令】免费贡献闲置物品

又到了次就迎新的时候了,大家还记得去年的“挖宝”吗?没错就是挖宝,你敢挖,我敢送,挖宝活动将会成为EEWORLD的常驻活动,每年辞旧迎新的时候都会举办,但是大家要记住,以后每年的形式都会不一样哦,新来的筒子们可以去搜索一下以前的挖宝帖子 ...…

查看全部问答>

TMS320F28335的SCI接口输出幅度有错

在我的电路板上使用的芯片是TMS320F28335 IO电压为:3.35V 内核电压为1.81V。 首先电路焊接是没 的,电压供给也是没问题的。然后程序也是没有问题的。   但是现在的错误是SCI  B口工作的时候输出幅度是错误的,输出高电平为3.5V, ...…

查看全部问答>