Chapter 4 49
Preparation for Accurate Measurement (Executing Compensation)
Using the Multi-compensation Function
4. Preparation for
Accurate Measurement
(Executing Compensation)
620 END SELECT
630 Compen_meas: !
640 PRINT "Set "&Standard$&"-Connection."
650 INPUT "OK? [Y/N]",Inp_char$
660 IF UPC$(Inp_char$)="Y" THEN
670 FOR I=1 TO 2
680 PRINT "Frequency:";Freq(I)
690 OUTPUT @Agt4288a;":SOUR:FREQ ";Freq(I)
700 OUTPUT @Agt4288a;"*CLS"
710 OUTPUT @Agt4288a;"*OPC?"
720 ENTER @Agt4288a;Buff$
730 ! Measurement
740 ON INTR 7 GOTO Meas_end
750 ENABLE INTR 7;2
760 OUTPUT @Agt4288a;":CORR:COLL "&Std$
770 Meas_wait: GOTO Meas_wait
780 Meas_end: OFF INTR 7
790 ! Error Check
800 OUTPUT @Agt4288a;":SYST:ERR?"
810 ENTER @Agt4288a;Err_no,Err$
820 IF Err_no<>0 THEN
830 PRINT "Error: "&Err$
840 GOTO Compen_meas
850 END IF
860 ! Data Check
870 OUTPUT @Agt4288a;":CORR:DATA? "&Std$
880 ENTER @Agt4288a;Para1,Para2
890 Err_flag=0
900 SELECT Standard$
910 CASE "Open"
920 Ym=SQRT(Para1*Para1+Para2*Para2)
930 PRINT "G =";Para1,"B =";Para2,"|Y| =";Ym
940 IF Ym>=Limit THEN Err_flag=1
950 CASE "Short"
960 Zm=SQRT(Para1*Para1+Para2*Para2)
970 PRINT "R =";Para1,"X =";Para2,"|Z| =";Zm
980 IF Zm>=Limit THEN Err_flag=1
990 CASE "Load"
1000 OUTPUT @Agt4288a;":CORR:CKIT:STAN3?"
1010 ENTER @Agt4288a;Cpref,Dref
1020 Bref=2*PI*Freq(I)*Cpref
1030 Gref=Bref*Dref
1040 Zref=1/SQRT(Gref*Gref+Bref*Bref)
1050 Bm=2*PI*Freq(I)*Para1
1060 Gm=Bm*Para2
1070 Zm=1/SQRT(Gm*Gm+Bm*Bm)
1080 PRINT "Cpref=";Cpref,"Dref=";Dref,"|Zref| =";Zref
1090 PRINT "Cp =";Para1,"D =";Para2,"|Z| =";Zm
1100 IF ABS((Zm-Zref)/Zref)>=Limit THEN Err_flag=1
1110 END SELECT
1120 IF Err_flag<>0 THEN
1130 PRINT "Out of limit!!"
1140 GOTO Compen_meas
1150 END IF
1160 NEXT I
1170 PRINT Standard$&" Data Measurement Complete"
1180 OUTPUT @Agt4288a;":SOUR:FREQ ";Curr_freq
1190 RETURN 0
1200 ELSE
1210 PRINT "Program Interruption"
1220 OUTPUT @Agt4288a;":SOUR:FREQ ";Curr_freq
1230 RETURN -1
1240 END IF
1250 FNEND