检测测量结束

E5071C

检测测量结束

关于控制E5071C的其他主题

概述

本章利用样本程序演示如何触发仪器开始新的测量周期以及如何检测测量周期的结束。触发系统负责检测测量周期(触发)的开始以及启动/停止对每个通道的测量。

利用状态寄存器或SCPI.TRIGger.SEQuence.SINGle对象可检测测量的结束。

利用状态寄存器

状态寄存器能检测E5071C的状态。如果程序以SPCI命令为基础,可利用SRQ(服务请求)中断检测测量结束。

另一种情况是,程序以COM对象为基础,这样就不能使用SRQ中断;但可以用下列对象中断程序直到测量完成生成SRQ。

样本程序磁盘内有名为meas_srq.vba的样本程序,它演示如何利用状态寄存器中断程序,直到测量结束。此VBA程序由以下模块组成:

对象名

模块类型

内容

frmSrqMeas

UserForm

利用状态寄存器等待测量结束。

mdlSrqMeas

标准模块

调用UserForm.

  • 当通道/迹线的最大数量设置为9通道/9迹线时,此样本程序正常运行。

当运行此VBA程序时,出现以下UserForm。

运行meas_srq.vba程序时的UserForm

 如欲了解有关如何使用其中各部分的信息,参见以下说明。

  1. 程序启动每个通道的连续活动模式,并确定启动或禁用每个用于测量的通道。

  2. 程序触发仪器启动新的测量周期、等待测量结束并显示消息。详情参见对编码窗口的说明。

  3. 退出程序,出现UserForm。

在Visual Basic Editor中打开UserForm(对象名:frmSrqMeas),双击Meas(测量)Exit(退出)按钮打开编码窗口。下面描述与子程序相关的各个按钮。

Exit(退出)按钮时,调用程序。

30行

从存储器中卸载UserForm并终止程序。

当用户点击UserForm(70到390行)上的Meas(测量)按钮时,调用程序。

110行

隐藏屏幕上的UserForm(对象名:frmSrqMeas)。

130行

显示9通道窗口。

140行

将触发源设置为“bus”。

160行到240行

这些行根据相应选件按钮的开或关启动或关闭每个通道的连续活动模式。默认情况下,只有通道1的连续活动模式处于启动状态。

260行到270行

这些行对仪器进行配置,以使操作状态事件寄存器的bit 4只在操作状态条件寄存器的bit 4从1变为0(负过渡)时设置为1。

280行

启用操作状态事件寄存器的bit 4。

290行

启用状态字节寄存器的bit 7。

300行

清除状态字节寄存器和操作状态事件寄存器。

310行

触发仪器启动测量周期。

320行

验证仪器在测量周期内,并中断程序直到测量结束。设置100秒的超时(最大值)。

330行到350行

这些行显示有关检测测量结束的测量完成消息。

370行

显示屏幕上的UserForm(对象名:frmSrqMeas)

 

利用SRQ检测测量结束(对象名:frmSrqMeas)

10| Private Sub cmdExit_Click()

20|

30| Unload Me

40|

50| End Sub

60|

70| Private Sub cmdMeas_Click()

80|

90| Dim Cond As Boolean

100|

110| frmSrqMeas.Hide

120|

130| SCPI.DISPlay.Split = "d123_456_789"

140| SCPI.TRIGger.SEQuence.Source = "bus"

150|

160| SCPI.INITiate(1).CONTinuous = optOn1.Value

170| SCPI.INITiate(2).CONTinuous = optOn2.Value

180| SCPI.INITiate(3).CONTinuous = optOn3.Value

190| SCPI.INITiate(4).CONTinuous = optOn4.Value

200| SCPI.INITiate(5).CONTinuous = optOn5.Value

210| SCPI.INITiate(6).CONTinuous = optOn6.Value

220| SCPI.INITiate(7).CONTinuous = optOn7.Value

230| SCPI.INITiate(8).CONTinuous = optOn8.Value

240| SCPI.INITiate(9).CONTinuous = optOn9.Value

250|

260| SCPI.STATus.OPERation.PTRansition = 0

270| SCPI.STATus.OPERation.NTRansition = 16

280| SCPI.STATus.OPERation.ENABle = 16

290| SCPI.IEEE4882.SRE = 128

300| SCPI.IEEE4882.CLS

310| SCPI.IEEE4882.TRG

320| WaitOnSRQ Cond, 100000

330| If Cond = True Then

340| MsgBox "Measurement Completion"

350| End If

360|

370| frmSrqMeas.Show

380|

390| End Sub

 

利用SCPI.TRIGger.SEQuence.SINGle对象

当通过发出SCPI.TRIGger.SEQuence.SINGle对象触发仪器时,可以用SCPI.IEEE4882.OPC对象来中断程序直到测量结束

样本程序磁盘内有名为“meas_srq.vba”的样本程序,它演示如何利用SCPI.TRIGger.SEQuence.SINGle对象来中断程序,直到测量结束。此VBA程序由以下模块组成:

对象名

模块类型

内容

frmSingMeas

UserForm

利用SCPI.TRIGger.SEQuence.SINGleSCPI.IEEE4882.OPC对象来中断程序直到测量结束。

mdlSingMeas

标准模块

调用

  • 当通道/迹线的最大数量设置为9通道/9迹线时,此样本程序正常运行。

当运行此VBA程序时,出现Userform

在Visual Basic Editor中,打开UserForm(对象名:frmSrqMeas),双击Meas(测量)Exit(退出)按钮打开编码窗口。下面说明与子程序相关的各个按钮。

当用户点击UserForm(10到50行)上的Exit(退出)按钮时,调用程序。

30行

从存储器卸载UserForm并终止程序。

当用户点击UserForm(70到330行)上的Meas(测量)按钮时,调用程序。

110行

隐藏屏幕上的UserForm(对象名:frmSrqMeas)。

130行

显示9通道窗口。

140行

设置触发源为“bus”。

160行到240行

这些行根据相应选件按钮开或关启动或关闭每个通道的连续活动模式。默认情况下,只有通道1的连续活动模式处于打开状态。

260行

对仪器进行触发以开始测量周期。

270行

执行SCPI.IEEE4882.OPC对象中断程序直到返回1的值(指示测量结束)。

290行

显示测量完成的消息。

310行

显示屏幕上的UserForm(对象名:frmSrqMeas)。

 

利用SCPI.TRIGger.SEQuence.SINGle对象中断程序直到测量结束(对象名:frmSingMeas)

10| Private Sub cmdExit_Click()

20|

30| Unload Me

40|

50| End Sub

60|

70| Private Sub cmdMeas_Click()

80|

90| Dim Dmy As Long

100|

110| frmSingMeas.Hide

120|

130| SCPI.DISPlay.Split = "d123_456_789"

140| SCPI.TRIGger.SEQuence.Source = "bus"

150|

160| SCPI.INITiate(1).CONTinuous = optOn1.Value

170| SCPI.INITiate(2).CONTinuous = optOn2.Value

180| SCPI.INITiate(3).CONTinuous = optOn3.Value

190| SCPI.INITiate(4).CONTinuous = optOn4.Value

200| SCPI.INITiate(5).CONTinuous = optOn5.Value

210| SCPI.INITiate(6).CONTinuous = optOn6.Value

220| SCPI.INITiate(7).CONTinuous = optOn7.Value

230| SCPI.INITiate(8).CONTinuous = optOn8.Value

240| SCPI.INITiate(9).CONTinuous = optOn9.Value

250|

260| SCPI.TRIGger.SEQuence.SINGle

270| Dmy = SCPI.IEEE4882.OPC

280|

290| MsgBox "Measurement Completion"

300|

310| frmSingMeas.Show

320|

330| End Sub