Chapter 9 119
Measurement Applications (Sample Programs)
Measurement with changing channels (scanning)
9. Measurement Applications
(Sample Programs)
1880 Std$="STAN2"
1890 CASE "Load"
1900 Std$="STAN3"
1910 CALL Inp_data("Load(Cp) Value @1kHz",Load1(1))
1920 CALL Inp_data("Load(D) Value @1kHz",Load2(1))
1930 CALL Inp_data("Load(Cp) Value @1MHz",Load1(2))
1940 CALL Inp_data("Load(D) Value @1MHz",Load2(2))
1950 OUTPUT @Agt4288a;":CORR:CKIT:STAN3:FORM "&Load_para$
1960 FOR I=1 TO 2
1970 OUTPUT @Agt4288a;":SOUR:FREQ ";Freq(I)
1980 OUTPUT @Agt4288a;":CORR:CKIT:STAN3 ";Load1(I);",";Load2(I)
1990 NEXT I
2000 END SELECT
2010 Compen_meas: !
2020 PRINT "Set "&Standard$&"-Connection."
2030 INPUT "OK? [Y/N]",Inp_char$
2040 IF UPC$(Inp_char$)="Y" THEN
2050 FOR I=1 TO 2
2060 PRINT "Frequency:";Freq(I)
2070 OUTPUT @Agt4288a;":SOUR:FREQ ";Freq(I)
2080 OUTPUT @Agt4288a;"*CLS"
2090 OUTPUT @Agt4288a;"*OPC?"
2100 ENTER @Agt4288a;Buff$
2110 ! Measurement
2120 ON INTR 7 GOTO Meas_end
2130 ENABLE INTR 7;2
2140 OUTPUT @Agt4288a;":CORR:COLL "&Std$
2150 Meas_wait: GOTO Meas_wait
2160 Meas_end: OFF INTR 7
2170 ! Error Check
2180 OUTPUT @Agt4288a;":SYST:ERR?"
2190 ENTER @Agt4288a;Err_no,Err$
2200 IF Err_no<>0 THEN
2210 PRINT "Error: "&Err$
2220 GOTO Compen_meas
2230 END IF
2240 ! Data Check
2250 OUTPUT @Agt4288a;":CORR:DATA? "&Std$
2260 ENTER @Agt4288a;Para1,Para2
2270 Err_flag=0
2280 SELECT Standard$
2290 CASE "Open"
2300 Ym=SQRT(Para1*Para1+Para2*Para2)
2310 PRINT "G =";Para1,"B =";Para2,"|Y| =";Ym
2320 IF Ym>=Limit THEN Err_flag=1
2330 CASE "Short"
2340 Zm=SQRT(Para1*Para1+Para2*Para2)
2350 PRINT "R =";Para1,"X =";Para2,"|Z| =";Zm
2360 IF Zm>=Limit THEN Err_flag=1
2370 CASE "Load"
2380 OUTPUT @Agt4288a;":CORR:CKIT:STAN3?"
2390 ENTER @Agt4288a;Cpref,Dref
2400 Bref=2*PI*Freq(I)*Cpref
2410 Gref=Bref*Dref
2420 Zref=1/SQRT(Gref*Gref+Bref*Bref)
2430 Bm=2*PI*Freq(I)*Para1
2440 Gm=Bm*Para2
2450 Zm=1/SQRT(Gm*Gm+Bm*Bm)
2460 PRINT "Cpref=";Cpref,"Dref=";Dref,"|Zref| =";Zref
2470 PRINT "Cp =";Para1,"D =";Para2,"|Z| =";Zm
2480 IF ABS((Zm-Zref)/Zref)>=Limit THEN Err_flag=1
2490 END SELECT
2500 IF Err_flag<>0 THEN
2510 PRINT "Out of limit!!"