42 Chapter 4
Preparation for Accurate Measurement (Executing Compensation)
Executing OPEN/SHORT/LOAD Compensation
1030 PRINT "Out of limit!!"
1040 GOTO Compen_meas
1050 END IF
1060 NEXT I
1070 PRINT Standard$&" Data Measurement Complete"
1080 OUTPUT @Agt4288a;":SOUR:FREQ ";Curr_freq
1090 RETURN 0
1100 ELSE
1110 PRINT "Program Interruption"
1120 OUTPUT @Agt4288a;":SOUR:FREQ ";Curr_freq
1130 RETURN -1
1140 END IF
1150 FNEND
1160 !=============================================
1170 ! Compensation Data File Save Function
1180 !=============================================
1190 SUB Save_comp_data(@Agt4288a,File_name$)
1200 DIM Load_para$[5]
1210 REAL Freq(1:2),Open(1:2,1:2),Shor(1:2,1:2)
1220 REAL Load(1:2,1:2),Load_ref(1:2,1:2)
1230 INTEGER Cable,F_shift,Fr,Std
1240 OUTPUT @Agt4288a;":CAL:CABL?"
1250 ENTER @Agt4288a;Cable
1260 OUTPUT @Agt4288a;":SYST:FSH?"
1270 ENTER @Agt4288a;F_shift
1280 !
1290 Freq(1)=1.E+3
1300 Freq(2)=1.E+6
1310 FOR Fr=1 TO 2
1320 OUTPUT @Agt4288a;":SOUR:FREQ ";Freq(Fr)
1330 OUTPUT @Agt4288a;":CORR:DATA? STAN1"
1340 ENTER @Agt4288a;Open(Fr,1),Open(Fr,2)
1350 OUTPUT @Agt4288a;":CORR:DATA? STAN2"
1360 ENTER @Agt4288a;Shor(Fr,1),Shor(Fr,2)
1370 OUTPUT @Agt4288a;":CORR:DATA? STAN3"
1380 ENTER @Agt4288a;Load(Fr,1),Load(Fr,2)
1390 OUTPUT @Agt4288a;":CORR:CKIT:STAN3?"
1400 ENTER @Agt4288a;Load_ref(Fr,1),Load_ref(Fr,2)
1410 NEXT Fr
1420 OUTPUT @Agt4288a;":CORR:CKIT:STAN3:FORM?"
1430 ENTER @Agt4288a;Load_para$
1440 !
1450 ON ERROR GOTO Skip_purge
1460 PURGE File_name$
1470 Skip_purge: OFF ERROR
1480 CREATE File_name$,1
1490 ASSIGN @File TO File_name$
1500 OUTPUT @File;Cable,F_shift,Open(*),Shor(*),Load(*),Load_ref(*),Lo
ad_para$
1510 ASSIGN @File TO *
1520 PRINT "Save file name: "&File_name$
1530 SUBEND
1540 !=============================================
1550 ! Data Input Function
1560 !=============================================
1570 SUB Inp_data(Mes$,Inp_val)
1580 DIM Inp_char$[30]
1590 ON ERROR GOTO Inp_start
1600 Inp_start:!
1610 PRINT "Input "&Mes$
1620 INPUT "Value?",Inp_char$
1630 Inp_val=VAL(UPC$(Inp_char$))
1640 PRINT "Input Value: ";Inp_val
1650 INPUT "OK? [Y/N]",Inp_char$