Prober02-ibw.txt

프루버

10     !파일로 존재하는 XY 좌표대로, 특성값을 읽어들이는 프로그램 2020/04/19 김명기, 
20     !hp 3478A DMM
30     !hp 4284A LCR
40     !Keithley 2420 SourceMeter
50     DIM Infilename$[20],Outfilename$[20],Dhms$[8]
60     INTEGER I,J,Diex,Diey
70     DIM Tmp$[1]
80     Time$=TIME$(TIMEDATE)
90     Date$=DATE$(TIMEDATE)
100    Dhms$=Date$[1;2]&Time$[1;2]&Time$[4;2]&Time$[7;2]
110    Infilename$="XY-01.txt"
120    Outfilename$=Dhms$&".txt"
130    CREATE Outfilename$,1
140    ASSIGN @Infile TO Infilename$;FORMAT ON
150    ASSIGN @Outfile TO Outfilename$;FORMAT ON
160    ASSIGN @Probe TO 402
170    Inst=3
180    SELECT Inst
190    CASE 1  !3478A
200      ASSIGN @Dmm TO 427
210      OUTPUT @Outfile;"No.,Time,X,Y,R"
220    CASE 2  !4284A
230      ASSIGN @Lcr TO 417
240      OUTPUT @Lcr;"TRIG:SOUR BUS"
250      OUTPUT @Lcr;"ABORT;:INIT"
260      OUTPUT @Outfile;"No.,Time,X,Y,A-value,B-value"
270    CASE 3  !2420
280      ASSIGN @Sm TO 424
290      OUTPUT @Sm;"FORM:ELEM VOLT, CURR"
300      OUTPUT @Sm;"SOURCE:CLEAR:AUTO ON"
310      OUTPUT @Outfile;"No.,Time,X,Y,Volt,Curr"
320    END SELECT 
330    GOSUB Infile_retrieve
340    T0=TIMEDATE
350    FOR I=1 TO Total_count
360      Diex=X(I)
370      Diey=-Y(I)
380      OUTPUT @Probe;"MOX"&VAL$(Diex)&"Y"&VAL$(Diey)
390      ENTER @Probe;Tmp$
400      WAIT 1
410      T1=TIMEDATE-T0
420      SELECT Inst
430      CASE 1   !3478A
440        ENTER @Dmm;R
450        PRINT I,INT(T1);"sec","X=";X(I),"Y=";Y(I),"R=";R
460        OUTPUT @Outfile;I,T1,X(I),Y(I),R
470      CASE 2   !4284A
480        OUTPUT @Lcr;"TRIGGER:IMMEDIATE"
490        OUTPUT @Lcr;"FETCH?"
500        ENTER @Lcr;A,B,C
510        PRINT I,INT(T1);"sec","X=";X(I),"Y=";Y(I),"A=";A,"B=";B
520        OUTPUT @Outfile;I,T1,X(I),Y(I),A,B
530      CASE 3   !2420
540        OUTPUT @Sm;"READ?"
550        ENTER @Sm;Volt,Curr
560        PRINT I,INT(T1);"sec","X=";X(I),"Y=";Y(I),"V=";Volt,"i=";Curr
570        OUTPUT @Outfile;I,T1,X(I),Y(I),Volt,Curr
580      END SELECT 
590    NEXT I
600    STOP
610 Infile_retrieve:    !
620    INTEGER Nod,Total_count
630    Nod=3000
640    ALLOCATE INTEGER X(Nod),Y(Nod)
650    ENTER @Infile;Total_count
660    FOR I=1 TO Total_count
670      ENTER @Infile;X(I),Y(I)
680    NEXT I
690    ASSIGN @Infile TO *
700    RETURN
710    END