SU-3458.txt

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