Chapter 4 41
Preparation for Accurate Measurement (Executing Compensation)
Executing OPEN/SHORT/LOAD Compensation
4. Preparation for
Accurate Measurement
(Executing Compensation)
390 CASE "Short"
400 Std$="STAN2"
410 CASE "Load"
420 Std$="STAN3"
430 CALL Inp_data("Load(Cp) Value @1kHz",Load1(1))
440 CALL Inp_data("Load(D) Value @1kHz",Load2(1))
450 CALL Inp_data("Load(Cp) Value @1MHz",Load1(2))
460 CALL Inp_data("Load(D) Value @1MHz",Load2(2))
470 OUTPUT @Agt4288a;":CORR:CKIT:STAN3:FORM "&Load_para$
480 FOR I=1 TO 2
490 OUTPUT @Agt4288a;":SOUR:FREQ ";Freq(I)
500 OUTPUT @Agt4288a;":CORR:CKIT:STAN3 ";Load1(I);",";Load2(I)
510 NEXT I
520 END SELECT
530 Compen_meas: !
540 PRINT "Set "&Standard$&"-Connection."
550 INPUT "OK? [Y/N]",Inp_char$
560 IF UPC$(Inp_char$)="Y" THEN
570 FOR I=1 TO 2
580 PRINT "Frequency:";Freq(I)
590 OUTPUT @Agt4288a;":SOUR:FREQ ";Freq(I)
600 OUTPUT @Agt4288a;"*CLS"
610 OUTPUT @Agt4288a;"*OPC?"
620 ENTER @Agt4288a;Buff$
630 ! Measurement
640 ON INTR 7 GOTO Meas_end
650 ENABLE INTR 7;2
660 OUTPUT @Agt4288a;":CORR:COLL "&Std$
670 Meas_wait: GOTO Meas_wait
680 Meas_end: OFF INTR 7
690 ! Error Check
700 OUTPUT @Agt4288a;":SYST:ERR?"
710 ENTER @Agt4288a;Err_no,Err$
720 IF Err_no<>0 THEN
730 PRINT "Error: "&Err$
740 GOTO Compen_meas
750 END IF
760 ! Data Check
770 OUTPUT @Agt4288a;":CORR:DATA? "&Std$
780 ENTER @Agt4288a;Para1,Para2
790 Err_flag=0
800 SELECT Standard$
810 CASE "Open"
820 Ym=SQRT(Para1*Para1+Para2*Para2)
830 PRINT "G =";Para1,"B =";Para2,"|Y| =";Ym
840 IF Ym>=Limit THEN Err_flag=1
850 CASE "Short"
860 Zm=SQRT(Para1*Para1+Para2*Para2)
870 PRINT "R =";Para1,"X =";Para2,"|Z| =";Zm
880 IF Zm>=Limit THEN Err_flag=1
890 CASE "Load"
900 OUTPUT @Agt4288a;":CORR:CKIT:STAN3?"
910 ENTER @Agt4288a;Cpref,Dref
920 Bref=2*PI*Freq(I)*Cpref
930 Gref=Bref*Dref
940 Zref=1/SQRT(Gref*Gref+Bref*Bref)
950 Bm=2*PI*Freq(I)*Para1
960 Gm=Bm*Para2
970 Zm=1/SQRT(Gm*Gm+Bm*Bm)
980 PRINT "Cpref=";Cpref,"Dref=";Dref,"|Zref| =";Zref
990 PRINT "Cp =";Para1,"D =";Para2,"|Z| =";Zm
1000 IF ABS((Zm-Zref)/Zref)>=Limit THEN Err_flag=1
1010 END SELECT
1020 IF Err_flag<>0 THEN