差错检测(SRQ)
概述
这个样本程序说明如何使用SRQ检测是否发生差错。
这个程序设置SRQ,然后故意发送无效参数产生差错,并让该程序进行处理。在差错处理部分,这个程序检查差错,显示差错数量与差错消息,然后显示指示程序终止的消息。参见该程序的检测是否发生差错。 参见该程序的检测查错的发生。
由差错导致的顺序拦截不能在Excel VBA上执行。
在HT Basic中的样本程序(srq_err.bas)
10 DIM Buff$[9],Err_mes$[50]
20 INTEGER Err_no
30 !
40 ASSIGN @Agte507x TO 717
50 !
60 OUTPUT @Agte507x;"*ESE 60"
70 OUTPUT @Agte507x;"*SRE 32"
80 OUTPUT @Agte507x;"*CLS"
90 OUTPUT @Agte507x;"*OPC?"
100 ENTER @Agte507x;Buff$
110 !
120 ON INTR 7 GOTO Err_proc
130 ENABLE INTR 7;2
140 OUTPUT @Agte507x;":CALC1:PAR:COUN 2"
150 PRINT "Trace 1 Meas.Para: S21"
160 PRINT "Trace 1 Format : Log Mag"
170 OUTPUT @Agte507x;":CALC1:PAR1:DEF S21"
180 OUTPUT @Agte507x;":CALC1:PAR1:SEL"
190 OUTPUT @Agte507x;":CALC1:FORM MLOG"
200 PRINT "Trace 2 Meas.Para: S11"
210 PRINT "Trace 2 Format : Log Mag"
220 OUTPUT @Agte507x;":CALC1:PAR2:DEF S11"
230 OUTPUT @Agte507x;":CALC1:PAR2:SEL"
240 OUTPUT @Agte507x;":CALC1:FORM LOG"
250 OUTPUT @Agte507x;"*OPC?"
260 ENTER @Agte507x;Buff$
270 GOTO Skip_err_proc
280 Err_proc: OFF INTR 7
290 OUTPUT @Agte507x;";:SYST:ERR?"
300 ENTER @Agte507x;Err_no,Err_mes$
310 PRINT "Error occurred!!"
320 PRINT " No:";Err_no,"Description: "&Err_mes$
330 PRINT "PROGRAM INTERRUPT!!"
340 GOTO Prog_end
350 Skip_err_proc: PRINT "PROGRAM DONE."
360 Prog_end: END
说明
40行
为I/O通道分配GPIB地址。
60行到70行
这些行启动标准事件状态寄存器中的位2、3、4、5,并设置服务请求启动寄存器中的位5到位1。
80行到100行
这些行清除状态位寄存器、标准事件状态寄存器和差错序列。
120行到130行
这些行为SRQ中断设置分支目标,以启动SRQ中断。
140行到60行
这些行设置测量参数、迹线1与迹线2的数据格式。迹线2的数据格式设置无效参数就会产生差错。
280行到330行
这些行按以下方式定义差错处理器。
290行到300行: 这些行从差错序列获取差错的差错数量、差错消息。
310行到330行 这些行显示指示差错、差错数量、差错消息的消息,还显示说明程序中断的消息。
350行
显示关闭消息。注意,除非该程序在为迹线2的数据格式设置相关参数之后再次运行,否则不会显示该消息。