- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
检测测量结束
概述
利用状态寄存器
利用SCPI.TRIGger.SEQuence.SINGle对象
关于控制E5071C的其他主题
概述
本章利用样本程序演示如何触发仪器开始新的测量周期以及如何检测测量周期的结束。触发系统负责检测测量周期(触发)的开始以及启动/停止对每个通道的测量。
利用状态寄存器或SCPI.TRIGger.SEQuence.SINGle对象可检测测量的结束。
利用状态寄存器
状态寄存器能检测E5071C的状态。如果程序以SPCI命令为基础,可利用SRQ(服务请求)中断检测测量结束。
另一种情况是,程序以COM对象为基础,这样就不能使用SRQ中断;但可以用下列对象中断程序直到测量完成生成SRQ。
WaitOnSRQ
样本程序磁盘内有名为meas_srq.vba的样本程序,它演示如何利用状态寄存器中断程序,直到测量结束。此VBA程序由以下模块组成:
对象名 | 模块类型 | 内容 |
frmSrqMeas | UserForm | 利用状态寄存器等待测量结束。 |
mdlSrqMeas | 标准模块 | 调用UserForm. |
当通道/迹线的最大数量设置为9通道/9迹线时,此样本程序正常运行。
当运行此VBA程序时,出现以下UserForm。
运行meas_srq.vba程序时的UserForm
如欲了解有关如何使用其中各部分的信息,参见以下说明。
程序启动每个通道的连续活动模式,并确定启动或禁用每个用于测量的通道。
程序触发仪器启动新的测量周期、等待测量结束并显示消息。详情参见对编码窗口的说明。
退出程序,出现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.SINGle和SCPI.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
上一篇:显示Visual Basic Editor
下一篇:利用VBA在线帮助