Espec SU-222
10 !chamber SU-222 + 3458A DMM
20 ! 2019-4-1
30 OPTION BASE 1
40 INTEGER Count
50 DIM Filename$[20],Dhms$[8]
60 DIM Msg$[100]
70 Time$=TIME$(TIMEDATE)
80 Date$=DATE$(TIMEDATE)
90 Dhms$=Date$[1;2]&Time$[1;2]&Time$[4;2]&Time$[7;2]
100 Filename$=Dhms$&".txt"
110 ASSIGN @Su TO 701
120 ASSIGN @Dmm TO 722
130 CLEAR SCREEN
140 CREATE Filename$,1
150 ASSIGN @File TO Filename$;FORMAT ON
160 OUTPUT @File;"Count, Time[m], Temp['C], Meas Value"
170 Count=0
180 T0=TIMEDATE
190 ! GOSUB Measure1 ! 온도에서 0.1도 변하면
200 GOSUB Measure2 ! 측정값에서 오차 발생
210 ! GOSUB Measure3 ! 5초마다 온도, 측정값에서 오차
220 ! OUTPUT @Su;"TEMP,S25"
230 OUTPUT @Su;"POWER,OFF"
240 STOP
250 Measure1: !온도 오차
260 Temp0=0
270 OUTPUT @Dmm;"NPLC 10"
280 LOOP
290 T1=(TIMEDATE-T0)
300 GOSUB Meas_temp
310 IF Temp0<>Temp THEN !온도 변화가 0.1 발생되면
320 Count=Count+1
330 OUTPUT @Dmm;"TRIG SGL"
340 ENTER @Dmm;Value
350 PRINT "Count=";Count;", Elapsed Time=";DROUND(T1,3);"s, Temp=";Temp;"'C,";" Meas=";DROUND(Value,6)
360 OUTPUT @File;Count,T1/60.,Temp,Value
370 Temp0=Temp
380 END IF
390 EXIT IF (T1/60.)>360 ! 360=6 hours
400 END LOOP
410 RETURN
420 Measure2: !측정값 오차, 온도까지 읽으면 샘플링이 늦어진다.
430 Value0=0
440 OUTPUT @Dmm;"NPLC 1"
450 LOOP
460 T1=(TIMEDATE-T0)
470 OUTPUT @Dmm;"TRIG SGL"
480 ENTER @Dmm;Value
490 Diff=ABS((Value0-Value)/Value)
500 IF Diff>.001 THEN !측정값에서 .1% 차이가 발생되면
510 Count=Count+1
520 GOSUB Meas_temp
530 PRINT "Count=";Count;", Elapsed Time=";PROUND(T1,-4);"s, Temp=";Temp;"'C,";" Meas=";PROUND(Value,-4)
540 OUTPUT @File;Count,T1/60.,Temp,Value
550 Value0=Value
560 END IF
570 EXIT IF (T1/60.)>360 ! 360=6 hours
580 END LOOP
590 RETURN
600 Measure3: !측정값 오차 및 온도 오차
610 Value0=0
620 Temp0=0
630 OUTPUT @Dmm;"NPLC 1"
640 ON CYCLE 5 GOSUB Meas_temp2
650 LOOP
660 T1=(TIMEDATE-T0)
670 OUTPUT @Dmm;"TRIG SGL"
680 ENTER @Dmm;Value
690 Diff=ABS((Value0-Value)/Value)
700 IF Diff>.005 THEN !측정값에서 .5% 차이가 발생되면
710 Count=Count+1
720 PRINT "Count=";Count;", Elapsed Time=";PROUND(T1,-4);"s, Temp=";Temp;"'C,";" Meas=";PROUND(Value,-4)
730 OUTPUT @File;Count,T1/60.,Temp,Value
740 Value0=Value
750 END IF
760 EXIT IF (T1/60.)>360 ! 360=6 hours
770 END LOOP
780 RETURN
790 Meas_temp: !
800 OUTPUT @Su;"TEMP?"
810 WAIT .1
820 ENTER @Su;Temp,Tmp,Tmp,Tmp
830 RETURN
840 Meas_temp2: !
850 OUTPUT @Su;"TEMP?"
860 WAIT .1
870 ENTER @Su;Temp,Tmp,Tmp,Tmp
880 IF Temp0<>Temp THEN !온도 변화가 0.1 발생되면
890 Count=Count+1
900 PRINT "Count=";Count;", Elapsed Time=";PROUND(T1,-4);"s, Temp=";Temp;"'C,";" Meas=";PROUND(Value,-4)
910 OUTPUT @File;Count,T1/60.,Temp,Value
920 Temp0=Temp
930 END IF
940 RETURN
950 END