测量多端器件

E5071C

测量多端口器件

= 4 && typeof(BSPSPopupOnMouseOver) == 'function') BSPSPopupOnMouseOver(event)" class=BSSCPopup onclick="BSSCPopup('Application_Programs.htm',400,300);return false">有关应用程序的其他方面

概述

apl_sys.vba 展示了详细说明如何测量一个(3端)双工器的样本程序(VBA程序)。该VBA程序由以下模块组成:

  • 对于带有2端口S参数测试仪的E5071C,因为存在E5071C不能测量的参数,所以会出现运行时错误。
     

    对象名

    模块类型

    说明

    frmDupRes

    用户表单

    显示分析结果

    mdlDupMeas

    标准模块

    进行双工器测量

程序概述

该程序使用85032F校准套件进行全3端口校准,测量一个(3端)双工器,计算并显示极限测试结果,插入损耗和带通波动。下图示出了(3端)双工器测量程序的简单流程:

双工器测量程序的流程

 

 

程序说明

当运行这个VBA程序时,要进行复位,设置测量条件,并显示消息"Perform the full 3-port calibration"(进行全3端口校准)。为了进行全3端口校准,点击 Yes(是);否则点击No(否)。

为了进行校准,遵循屏幕上的消息将Agilent 85032F校准套件的每个标准连接到指定的端口,然后点击OK,开始测量校准数据。点击Cancel(删除),返回校准开始。不能跳过隔离校准。当完成对所有标准的校准数据测量时,显示消息"All calibration data completion" (“所有的校准数据已完成”),并计算校准系数。

  • 当您在完成必要的校准数据测量之前取消校准数据测量时,设置条件可能不能返回到它的原始状态。

然后,设置极限线,并进行极限测试判断所需的设置。

显示消息"Set the DUT between test cables."(“在测试电缆之间设置被测件。”)之后,在测试电缆之间连接被测件(双工器),然后点击Yes(是)。设置极限线并进行单次扫描。然后,对于迹线1(Tx: S13)和迹线(Rx: S21),显示极限测试的合格/不合格判断、通带内插入损耗和波动分析结果。

点击Exit(退出),显示分析结果。显示提示重新测量的消息。为了进行测量,点击Yes(是),否则点击No(否)以结束程序。用于显示分析结果(对象名称:frmDupRes)的用户表单中程序的详细信息在此不作介绍。

“apl_sys.vba”程序的执行结果显示

下面详细说明双工器的测量程序(对象名称:mdlDupMeas)。添加行号只用于说明,并不在实际的程序源代码中出现。

90行

将校准套件号(4: 85032F)存储到CalKit(校准套件)变量中。

110行

关闭显示更新。关断显示更新能缩短绘图时间和目标处理时间。

140行

将E5071C返回到预置状态。

170行到180行

对于通道1,这些行使连续触发启动模式接通,并将触发源设置为总线触发。

200行

调用Setup_Parameter程序(910到1140行)。如欲了解Setup_Parameter程序的信息,参见后面的说明。

220行

调用Setup_Segment程序(1160到1530行)。如欲了解Setup_Segment程序的信息,参见后面的说明。

250行

将通道1的校准套件号存储到CalKit(校准套件)变量中。

260行

将1、2和3存储到Port(端口),表示端口用于全3端口校准的变量中。

280行

调用Calib_Solt程序  

310行

调用Setup_Limitline程序(2420到3180行)。如欲了解Setup_Limitline程序的信息,参见后面的说明。

330行

调用Setup_Register程序(3200到3260行)。如欲了解Setup_Register程序的信息,参见后面的说明。

380行

显示提示 “连接DUT(被测件)”的消息,连接完成之后等待点击OK按钮。

410行

清除有问题的极限状态事件寄存器和有问题的通道1状态事件寄存器。

420行到430行

产生用于起动单次扫描的触发脉冲,并等待测量完成(由= 4 && typeof(BSPSPopupOnMouseOver) == 'function') BSPSPopupOnMouseOver(event)" class=BSSCPopup onclick="BSSCPopup('../../Command_Reference/IEEE/SCPI_IEEE4882_OPC.htm');return false">SCPI.IEEE4882.OPC对象读出1)。

450行到460行

对于迹线1和迹线2,这些行进行自动定标,以设置最佳比例。

490行到500行

读出有问题的极限状态事件寄存器,并将读出值的AND和2(在该值中只有位1是1)存储到Test_Ch1变量中。

510行到530行

读出有问题的极限通道1状态事件寄存器的值,并将读出值的AND和2(在这个值中只有位1是1)存储到Test_Tr1变量中,并将读出值的AND和4(该值中只有位2是1)存储到Test_Tr2变量中。

560行到610行

将迹线1规定为工作迹线并设置分析范围(起点 :1.85 GHz和终点:1.91 GHz)。然后,这些行设置峰值搜索的归向(正峰值和负峰值)和峰值偏移值的下限(0)。

620行到640行

搜索分析范围内的最小值并将分析结果存储到IlossTx变量中。

650行

利用波动分析功能将分析范围内正峰值与负峰值之间响应差的最大值存储到RipTx变量中。

670行到720行

将迹线2规定为工作迹线并设置分析范围(起点:1.93 GHz和终点:1.99 GHz)。然后,这些行设置峰值搜索的归向(正峰值和负峰值)和峰值偏移值的下限(0)。

730行到750行

搜索分析范围内的最小值并将分析结果存储到IlossRx变量中。

760行

利用波动分析功能将分析范围内正峰值与负峰值之间响应差的最大值存储到RipRx变量中。  

790行

调用Display_Update程序(3280行到3620行):如欲了解Display_Update程序的信息,参见后面的说明。

810行

在用来显示分析结果的屏幕上显示用户表单(对象名:frmDupRes)。

830行到870行

显示询问您是否想重新进行测量的消息。点击Yes(是)按键,以返回到被测件(DUT)连接部分。点击No(否)按键,以结束程序。

程序: Setup_Parameter (910行到1140行)

970行到1020行

将通道布局(“D1”:通道1显示),图形布局(“D1_2”:上/下两部分分离显示)、迹线1的测量参数(S13)、迹线2的测量参数(S21)、迹线1的数据格式(MLOG)和迹线2的数据格式(MLOG)分别存储到变量ChDisp、TracDisp、Par(0)、Par(1)、Fmt(0)和Fmt(1)中。

1040行到1060行

将通道1~2的迹线数、通道布局设置为ChDisp变量,以及将通道1的图形布局设置为TracDisp变量。

1080行到1120行

将迹线1的测量参数设置为Par(0)变量、迹线1的数据格式设置为Fmt(0)变量、迹线2的测量参数设置为Par(1)变量以及迹线2的数据格式设置为Fmt(1)变量。

程序:Setup_Segment (1160行到1530行)

1200行到1260行

将对进入SegmData(0)中的通道1的段表设置的条件存储到SegmData(6)变量中。设置情况如下:激励设置方式:起/止值。每段的中频(IF)带宽设置:断开。每段的功率设置:断开。每段的扫描延迟设置:断开。每段的扫描时间设置:断开。段数:5。

1280行到1470行

将进入SegmData(7)的通道1的1~5段的扫描起始值、扫描终止值和测量点数分别存储到SegmData(21)变量中。

1490行

将通道1的段表设定到SegmData变量。

1500行

将通道1的扫描类型设定到“segment”。

1510行

将通道1图形的水平轴显示方法设定到顺序基制(测量点数按测量顺序均匀处在轴线上)。

程序:Calib_Solt (1550行到2420行)

参见Calib_Solt的1200行到2130行。

程序:Setup_Limitline (2440行到3180行)

2490行

将迹线1极限表中的行数(5)存储到LimDataS13(0)变量中。

2500行到2790行

将进入LimDataS13(1)中的迹线1极限表内的设置存储到LimDataS13(25)变量中。

2820行

将迹线2极限表内的行数(4)存储到LimDataS21(0) 变量中。

2830行到3060行

将进入LimDataS21(1)的迹线2极限表内的设置存储到LimDataS21(20) 变量中。

3080行到3110行

将迹线1规定为工作迹线,将迹线1的极限线存储到LimDataS13变量中并加以显示。然后,这些行取决于迹线1的极限测试功能。

3130行到3160行

将迹线2规定为工作迹线,将迹线2的极限线存储到LimDataS21变量中并加以显示。然后,这些行取决于迹线2的极限测试功能。

程序:Setup_Register (3200行到3260行)

3220行到3230行

设定仪器,使只有当有问题的极限通道状态事件寄存器的1位和2位从0变化到1时(正向过渡),有问题的极限通道状态事件寄存器的1位和2位才设定到1。

3240行

启动有问题的极限通道状态事件寄存器的1位和2位。

 

程序:Display_Update (3280行到3620)

3300行

只一次更新LCD屏幕上的显示。

3320行到3380行

当迹线1的极限测试结果为不合格时(Test_Tr1=2),这些行以红色背景在用户表单(对象名:frmDupRes)上显示Tx(S13)“Limit test result: Fail”(极限测试结果:不合格),相反,当迹线1的极限测试结果为合格时(Test_Tr11?2),他们以蓝色背景在用户表单(对象名:frmDupRes)上显示Tx(S13)“Limit test result: Pass”(极限测试结果:合格)。

3400行到3460行

当迹线2的极限测试结果为不合格时(Test_Tr2 = 4),这些行以红色背景在用户表单(对象名:frmDupRes上显示Rx(S21) "Limit test result: Fail" (极限测试结果:不合格);相反,当迹线1的极限测试结果为合格时(Test_Tr2 4),他们以蓝色背景在用户表单(对象名:frmDupRes) 上显示Rx(S21) "Limit test result: Pass" (极限测试结果:合格)。

3480行到3540行

当通道1的极限测试结果为不合格时(Test_Ch1 = 2),这些行以红色背景在用户表单(对象名:frmDupRes)上显示"Overall limit test result: Fail" (全面极限测试结果:不合格),相反,当通道1的极限测试结果为合格时 (Test_Ch1 2),他们以蓝色背景在用户表单(对象名:frmDupRes) 上显示"Overall limit test result: Pass" (全面极限测试结果:合格)。

3560行到3600行

在用户表单(对象名:frmDupRes)上分别将对迹线1和2的分析结果(插入损耗和带通波动)显示为Tx(S13)和Rx(S21)。

样本程序

双工器测量(对象名:mdlDupMeas)

10| Sub Main()

20|

30| Dim CalKit As Long, Dmy As Long, Rgst As Long, I As Long, Buff As Long

40| Dim Test_Ch1 As Integer, Test_Tr1 As Integer, Test_Tr2 As Integer

50| Dim IlossTx As Variant, IlossRx As Variant

60| Dim RipTx As Double, RipRx As Double

70| Dim Port As Variant

80|

90| CalKit = 4 'Calibration kit :85032F

100|

110| SCPI.DISPlay.ENABle = False

120|

130| '''Presetting the E5071C

140| SCPI.SYSTem.PRESet

150|

160| '''Setting measurement conditions

170| SCPI.INITiate(1).CONTinuous = True

180| SCPI.TRIGger.SEQuence.Source = "BUS"

190|

200| Setup_Parameter

210|

220| Setup_Segment

230|

240| '''Full 3-port calibration

250| SCPI.SENSe(1).CORRection.COLLect.CKIT.Select = CalKit

260| Port = Array(1, 2, 3)

270|

280| Calib_Solt 1, 3, Port

290|

300| '''Setting analysis conditions

310| Setup_Limitline

320|

330| Setup_Register

340|

350| Meas_Start:

360|

370| '''Connecting DUT

380| MsgBox "Connect DUT between test cables."

390|

400| '''Performing single sweep

410| SCPI.IEEE4882.CLS

420| SCPI.TRIGger.SEQuence.SINGle

430| Dmy = SCPI.IEEE4882.OPC

440|

450| SCPI.DISPlay.WINDow(1).TRACe(1).Y.SCALe.AUTO

460| SCPI.DISPlay.WINDow(1).TRACe(2).Y.SCALe.AUTO

470|

480| '''Judging limit test

490| Rgst = SCPI.STATus.QUEStionable.LIMit.EVENt

500| Test_Ch1 = CInt(Rgst And 2)

510| Rgst = SCPI.STATus.QUEStionable.LIMit.CHANnel(1).EVENt

520| Test_Tr1 = CInt(Rgst And 2)

530| Test_Tr2 = CInt(Rgst And 4)

540|

550| '''Analyzing insertion loss/bandpass ripple

560| SCPI.CALCulate(1).PARameter(1).Select

570| SCPI.CALCulate(1).SELected.FUNCtion.DOMain.STARt = 1850000000#

580| SCPI.CALCulate(1).SELected.FUNCtion.DOMain.STOP = 1910000000#

590| SCPI.CALCulate(1).SELected.FUNCtion.DOMain.STATe = True

600| SCPI.CALCulate(1).SELected.FUNCtion.PPOLarity = "both"

610| SCPI.CALCulate(1).SELected.FUNCtion.PEXCursion = 0

620| SCPI.CALCulate(1).SELected.FUNCtion.TYPE = "MIN"

630| SCPI.CALCulate(1).SELected.FUNCtion.EXECute

640| IlossTx = SCPI.CALCulate(1).SELected.FUNCtion.DATA

650| RipTx = MaxPeakToPeak(1)

660|

670| SCPI.CALCulate(1).PARameter(2).Select

680| SCPI.CALCulate(1).SELected.FUNCtion.DOMain.STARt = 1930000000#

690| SCPI.CALCulate(1).SELected.FUNCtion.DOMain.STOP = 1990000000#

700| SCPI.CALCulate(1).SELected.FUNCtion.DOMain.STATe = True

710| SCPI.CALCulate(1).SELected.FUNCtion.PPOLarity = "both"

720| SCPI.CALCulate(1).SELected.FUNCtion.PEXCursion = 0

730| SCPI.CALCulate(1).SELected.FUNCtion.TYPE = "MIN"

740| SCPI.CALCulate(1).SELected.FUNCtion.EXECute

750| IlossRx = SCPI.CALCulate(1).SELected.FUNCtion.DATA

760| RipRx = MaxPeakToPeak(1)

770|

780| '''Displaying the results

790| Display_Update Test_Tr1, Test_Tr2, Test_Ch1, IlossTx, IlossRx, RipTx, RipRx

800|

810| frmDupRes.Show

820|

830| Buff = MsgBox("Do you make another measurement?", vbYesNo, "Duplexer Measurement")

840|

850| If Buff = vbYes Then

860| GoTo Meas_Start

870| End If

880|

890| End Sub

900|

910| Private Sub Setup_Parameter()

920|

930| Dim I As Long

940| Dim ChDisp As String, TracDisp As String

950| Dim Par(1) As String, Fmt(1) As String

960|

970| ChDisp = "D1"

980| TracDisp = "D1_2"

990| Par(0) = "S13"

1000| Par(1) = "S21"

1010| Fmt(0) = "MLOG"

1020| Fmt(1) = "MLOG"

1030|

1040| SCPI.CALCulate(1).PARameter.Count = 2

1050| SCPI.DISPlay.Split = ChDisp

1060| SCPI.DISPlay.WINDow(1).Split = TracDisp

1070|

1080| For I = 1 To 2

1090| SCPI.CALCulate(1).PARameter(I).DEFine = Par(I - 1)

1100| SCPI.CALCulate(1).PARameter(I).Select

1110| SCPI.CALCulate(1).SELected.Format = Fmt(I - 1)

1120| Next I

1130|

1140| End Sub

1150|

1160| Private Sub Setup_Segment()

1170|

1180| Dim SegmData(21) As Variant

1190|

1200| SegmData(0) = 5 'Anytime 5 is set at seg ment settings

1210| SegmData(1) = 0 'Allows stimulus range to be set using Start/Stop frequency

1220| SegmData(2) = 0 'Not allows IF bandwidth to be set

1230| SegmData(3) = 0 'Not allows power to be set

1240| SegmData(4) = 0 'Not allows delay time to be set

1250| SegmData(5) = 0 'Not allows sweep time to be set

1260| SegmData(6) = 5 'Number of segments

1270|

1280| '''Segment 1

1290| SegmData(7) = 1730000000# 'Start frequency

1300| SegmData(8) = 1830000000# 'Stop frequency

1310| SegmData(9) = 50 'Number of points

1320| '''Segment 2

1330| SegmData(10) = 1830000000# 'Start frequency

1340| SegmData(11) = 2030000000# 'Stop frequency

1350| SegmData(12) = 400 'Number of points

1360| '''Segment 3

1370| SegmData(13) = 2030000000# 'Start frequency

1380| SegmData(14) = 2130000000# 'Stop frequency

1390| SegmData(15) = 50 'Number of points

1400| '''Segment 4

1410| SegmData(16) = 3650000000# 'Start frequency

1420| SegmData(17) = 4030000000# 'Stop frequency

1430| SegmData(18) = 38 'Number of points

1440| '''Segment 5

1450| SegmData(19) = 5500000000# 'Start frequency

1460| SegmData(20) = 6020000000# 'Stop frequency

1470| SegmData(21) = 52 'Number of points

1480|

1490| SCPI.SENSe(1).SEGMent.DATA = SegmData

1500| SCPI.SENSe(1).SWEep.TYPE = "SEGM"

1510| SCPI.DISPlay.WINDow(1).X.SPACing = "OBAS"

1520|

1530| End Sub

1540|

1550| Private Sub Calib_Solt(Chan As Long, SoltType As Long, Port A s Variant)

1560|

1570| Dim Dmy As Long, I As Long, J As Long, Buff As Long

1580|

1590| Cal_Start:

1600|

1610| Buff = MsgBox("Perform the full " & SoltType & "-port calib ration.", vbOKCancel, "Full" & SoltType & "-port calibration")

1620| If Buff = vbCancel Then

1630| GoTo Cal_Skip

1640| End If

1650|

1660| Select Case SoltType

1670| Case 1

1680| SCPI.SENSe(Chan).CORRection.COLLect.METHod.SOLT1 = Port(0)

1690| Case 2

1700| SCPI.SENSe(Chan).CORRection.COLLect.METHod.SOLT2 = Port

1710| Case 3

1720| SCPI.SENSe(Chan).CORRection.COLLect.METHod.SOLT3 = Port

1730| Case 4

1740| SCPI.SENSe(Chan).CORRection.COLLect.METHod.SOLT4 = Port

1750| End Select

1760|

1770| For I = 1 To SoltType

1780|

1790| Buff = MsgBox("Connect the Open standard to Port " & CS tr(Port(I - 1)) & ".", vbOKCancel, "Full" & SoltType & "-port calibr ation")

1800| If Buff = vbOK Then

1810| SCPI.SENSe(Chan).CORRection.COLLect.ACQuire.OPEN = Port(I - 1)

1820| Dmy = SCPI.IEEE4882.OPC

1830| Else

1840| GoTo Cal_Start

1850| End If

1860|

1870| Buff = MsgBox("Connect the Short standard to Port " & C Str(Port(I - 1)) & ".", vbOKCancel, "Full" & SoltType & "-port calib ration")

1880| If Buff = vbOK Then

1890| SCPI.SENSe(Chan).CORRection.COLLect.ACQuire.Short = Port(I - 1)

1900| Dmy = SCPI.IEEE4882.OPC

1910| Else

1920| GoTo Cal_Start

1930| End If

1940|

1950| Buff = MsgBox("Connect the Load standard to Port " & CS tr(Port(I - 1)) & ".", vbOKCancel, "Full" & SoltType & "-port calibr ation")

1960| If Buff = vbOK Then

1970| SCPI.SENSe(Chan).CORRection.COLLect.ACQuire.Load = Port(I - 1)

1980| Dmy = SCPI.IEEE4882.OPC

1990| Else

2000| GoTo Cal_Start

2010| End If

2020| Next I

2030|

2040| For I = 1 To SoltType - 1

2050| For J = I + 1 To SoltType

2060| Buff = MsgBox("Connect the Thru standard between Por t " & CStr(Port(I - 1)) & " and Port " & CStr(Port(J - 1)) & ".", vb OKCancel, "Full" & SoltType & "-port calibration")

2070| If Buff = vbOK Then

2080| SCPI.SENSe(Chan).CORRection.COLLect.ACQuire.THRU = Array(Port(I - 1), Port(J - 1))

2090| Dmy = SCPI.IEEE4882.OPC

2100| SCPI.SENSe(Chan).CORRection.COLLect.ACQuire.THRU = Array(Port(J - 1), Port(I - 1))

2110| Dmy = SCPI.IEEE4882.OPC

2120| Else

2130| GoTo Cal_Start

2140| End If

2150| Next J

2160| Next I

2170|

2180| If SoltType <> 1 Then

2190| Buff = MsgBox("Do you measure the Isolation (Optional)? ", vbYesNo, "Full" & SoltType & "-port calibration")

2200| If Buff = vbYes Then

2210| For I = 1 To SoltType - 1

2220| For J = I + 1 To SoltType

2230| Buff = MsgBox("Connect the Load standard to Port " & Port(I - 1) & " and Port " & Port(J - 1) & ".", vbOKCancel, "Full" & SoltType & "-port calibration")

2240| If Buff = vbOK Then

2250| SCPI.SENSe(Chan).CORRection.COLLect.ACQuire.ISOLation = Array(Port( I - 1), Port(J - 1))

2260| Dmy = SCPI.IEEE4882.OPC

2270| SCPI.SENSe(Chan).CORRection.COLLect.ACQuire.ISOLation = Array(Port( J - 1), Port(I - 1))

2280| Dmy = SCPI.IEEE4882.OPC

2290| Else

2300| GoTo Cal_Start

2310| End If

2320| Next J

2330| Next I

2340| End If

2350| End If

2360|

2370| SCPI.SENSe(1).CORRection.COLLect.SAVE

2380| MsgBox "All calibration data completion."

2390|

2400| Cal_Skip:

2410|

2420| End Sub

2430|

2440| Private Sub Setup_Limitline()

2450|

2460| Dim LimDataS13(25) As Variant, LimDataS21(20) As Variant

2470|

2480| '''Limit line for S13

2490| LimDataS13(0) = 5 'Number of segment

2500| '''Limit_line 1

2510| LimDataS13(1) = 1 'Maximum

2520| LimDataS13(2) = 1730000000# 'Beginning of stimulus

2530| LimDataS13(3) = 1930000000# 'End of stimulus

2540| LimDataS13(4) = 0 'Beginning of response

2550| LimDataS13(5) = 0 'End of response

2560| '''Limit_line 2

2570| LimDataS13(6) = 2 'Minimum

2580| LimDataS13(7) = 1850000000# 'Beginning of stimulus

2590| LimDataS13(8) = 1910000000# 'End of stimulus

2600| LimDataS13(9) = -8 'Beginning of response

2610| LimDataS13(10) = -8 'End of response

2620| '''Limit_line 3

2630| LimDataS13(11) = 1 'Maximum

2640| LimDataS13(12) = 1930000000# 'Beginning of stimulus

2650| LimDataS13(13) = 1990000000# 'End of stimulus

2660| LimDataS13(14) = -35 'Beginning of response

2670| LimDataS13(15) = -35 'End of response

2680| '''Limit_line 4

2690| LimDataS13(16) = 1 'Maximum

2700| LimDataS13(17) = 1990000000# 'Beginning of stimulus

2710| LimDataS13(18) = 2130000000# 'End of stimulus

2720| LimDataS13(19) = -40 'Beginning of response

2730| LimDataS13(20) = -40 'End of response

2740| '''Limit_line 5

2750| LimDataS13(21) = 1 'Maximum

2760| LimDataS13(22) = 2130000000# 'Beginning of stimulus

2770| LimDataS13(23) = 6020000000# 'End of stimulus

2780| LimDataS13(24) = -20 'Beginning of response

2790| LimDataS13(25) = -20 'End of response

2800|

2810| '''Limit line for S21

2820| LimDataS21(0) = 4 'Number of segment

2830| '''Limit_line 1

2840| LimDataS21(1) = 1 'Maximum

2850| LimDataS21(2) = 1730000000# 'Beginning of stimulus

2860| LimDataS21(3) = 1850000000# 'End of stimulus

2870| LimDataS21(4) = -40 'Beginning of response

2880| LimDataS21(5) = -40 'End of response

2890| '''Limit_line 2

2900| LimDataS21(6) = 1 'Maximum

2910| LimDataS21(7) = 1850000000# 'Beginning of stimulus

2920| LimDataS21(8) = 1910000000# 'End of stimulus

2930| LimDataS21(9) = -40 'Beginning of response

2940| LimDataS21(10) = -40 'End of response

2950| '''Limit_line 3

2960| LimDataS21(11) = 1 'Maximum

2970| LimDataS21(12) = 1910000000# 'Beginning of stimulus

2980| LimDataS21(13) = 6020000000# 'End of stimulus

2990| LimDataS21(14) = 0 'Beginning of response

3000| LimDataS21(15) = 0 'End of response

3010| '''Limit_line 4

3020| LimDataS21(16) = 2 'Minimum

3030| LimDataS21(17) = 1930000000# 'Beginning of stimulus

3040| LimDataS21(18) = 1990000000# 'End of stimulus

3050| LimDataS21(19) = -10 'Beginning of response

3060| LimDataS21(20) = -10 'End of response

3070|

3080| SCPI.CALCulate(1).PARameter(1).Select

3090| SCPI.CALCulate(1).SELected.LIMit.DATA = LimDataS13

3100| SCPI.CALCulate(1).SELected.LIMit.DISPlay.STATe = True

3110| SCPI.CALCulate(1).SELected.LIMit.STATe = True

3120|

3130| SCPI.CALCulate(1).PARameter(2).Select

3140| SCPI.CALCulate(1).SELected.LIMit.DATA = LimDataS21

3150| SCPI.CALCulate(1).SELected.LIMit.DISPlay.STATe = True

3160| SCPI.CALCulate(1).SELected.LIMit.STATe = True

3170|

3180| End Sub

3190|

3200| Private Sub Setup_Register()

3210|

3220| SCPI.STATus.QUEStionable.LIMit.CHANnel(1).PTRansition = 6

3230| SCPI.STATus.QUEStionable.LIMit.CHANnel(1).NTRansition = 0

3240| SCPI.STATus.QUEStionable.LIMit.CHANnel(1).ENABle = 6

3250|

3260| End Sub

3270|

3280| Sub Display_Update(Test_Tr1 As Integer, Test_Tr2 As Integer, Test_Ch1 As Integer, IlossTx As Variant, IlossRx As Variant, RipTx As Variant, RipRx As Variant)

3290|

3300| SCPI.DISPlay.UPDate.IMMediate

3310|

3320| If Test_Tr1 = 2 Then

3330| frmDupRes.lblJudgeS13.BackColor = RGB(255, 0, 0)

3340| frmDupRes.lblJudgeS13.Caption = "Fail"

3350| Else

3360| frmDupRes.lblJudgeS13.BackColor = RGB(0, 0, 255)

3370| frmDupRes.lblJudgeS13.Caption = "Pass"

3380| End If

3390|

3400| If Test_Tr2 = 4 Then

3410| frmDupRes.lblJudgeS21.BackColor = RGB(255, 0, 0)

3420| frmDupRes.lblJudgeS21.Caption = "Fail"

3430| Else

3440| frmDupRes.lblJudgeS21.BackColor = RGB(0, 0, 255)

3450| frmDupRes.lblJudgeS21.Caption = "Pass"

3460| End If

3470|

3480| If Test_Ch1 = 2 Then

3490| frmDupRes.lblResult.BackColor = RGB(255, 0, 0)

3500| frmDupRes.lblResult.Caption = "Fail"

3510| Else

3520| frmDupRes.lblResult.BackColor = RGB(0, 0, 255)

3530| frmDupRes.lblResult.Caption = "Pass"

3540| End If

3550|

3560| frmDupRes.txtIlossS13.Text = Format(IlossTx(0), "0.#### ")

3570| frmDupRes.txtIlossS21.Text = Format(IlossRx(0), "0.#### ")

3580|

3590| frmDupRes.txtRipS13.Text = Format(RipTx, "0.####")

3600| frmDupRes.txtRipS21.Text = Format(RipRx, "0.####")

3610|

3620| End Sub