104 Chapter 9
Measurement Applications (Sample Programs)
Basic Capacitor Measurement
560 !=============================================
570 DEF FNCompen(@Agt4288a,Standard$,Limit)
580 DIM Inp_char$[9],Buff$[9],Std$[9],Err$[50]
590 REAL Curr_freq,Freq(1:2),Para1,Para2,Zm,Ym,Gm,Bm
600 REAL Cpref,Dref,Zref,Gref,Bref
610 INTEGER Err_flag
620 OUTPUT @Agt4288a;":SOUR:FREQ?"
630 ENTER @Agt4288a;Curr_freq
640 Freq(1)=1.E+3
650 Freq(2)=1.E+6
660 Load_para$="CPD"
670 OUTPUT @Agt4288a;":STAT:OPER:ENAB 128"
680 OUTPUT @Agt4288a;"*SRE 128"
690 SELECT Standard$
700 CASE "Open"
710 Std$="STAN1"
720 CASE "Short"
730 Std$="STAN2"
740 CASE "Load"
750 Std$="STAN3"
760 CALL Inp_data("Load(Cp) Value @1kHz",Load1(1))
770 CALL Inp_data("Load(D) Value @1kHz",Load2(1))
780 CALL Inp_data("Load(Cp) Value @1MHz",Load1(2))
790 CALL Inp_data("Load(D) Value @1MHz",Load2(2))
800 OUTPUT @Agt4288a;":CORR:CKIT:STAN3:FORM "&Load_para$
810 FOR I=1 TO 2
820 OUTPUT @Agt4288a;":SOUR:FREQ ";Freq(I)
830 OUTPUT @Agt4288a;":CORR:CKIT:STAN3 ";Load1(I);",";Load2(I)
840 NEXT I
850 END SELECT
860 Compen_meas: !
870 PRINT "Set "&Standard$&"-Connection."
880 INPUT "OK? [Y/N]",Inp_char$
890 IF UPC$(Inp_char$)="Y" THEN
900 FOR I=1 TO 2
910 PRINT "Frequency:";Freq(I)
920 OUTPUT @Agt4288a;":SOUR:FREQ ";Freq(I)
930 OUTPUT @Agt4288a;"*CLS"
940 OUTPUT @Agt4288a;"*OPC?"
950 ENTER @Agt4288a;Buff$
960 ! Measurement
970 ON INTR 7 GOTO Meas_end
980 ENABLE INTR 7;2
990 OUTPUT @Agt4288a;":CORR:COLL "&Std$
1000 Meas_wait: GOTO Meas_wait
1010 Meas_end: OFF INTR 7
1020 ! Error Check
1030 OUTPUT @Agt4288a;":SYST:ERR?"
1040 ENTER @Agt4288a;Err_no,Err$
1050 IF Err_no<>0 THEN
1060 PRINT "Error: "&Err$
1070 GOTO Compen_meas
1080 END IF
1090 ! Data Check
1100 OUTPUT @Agt4288a;":CORR:DATA? "&Std$
1110 ENTER @Agt4288a;Para1,Para2
1120 Err_flag=0
1130 SELECT Standard$
1140 CASE "Open"
1150 Ym=SQRT(Para1*Para1+Para2*Para2)
1160 PRINT "G =";Para1,"B =";Para2,"|Y| =";Ym
1170 IF Ym>=Limit THEN Err_flag=1
1180 CASE "Short"
1190 Zm=SQRT(Para1*Para1+Para2*Para2)