"3245-01-ibw.txt"의 두 판 사이의 차이

 
3번째 줄: 3번째 줄:
 
1      ! volt-std/3245-01-ibw.txt
 
1      ! volt-std/3245-01-ibw.txt
 
10    !2018/04/30 HP3245A Universal Source로 출력 + HP3458A DMM으로 측정
 
10    !2018/04/30 HP3245A Universal Source로 출력 + HP3458A DMM으로 측정
20    ! DC 전압: -10.25V ~ +10.25V, 6자리(24비트) 고해상도, 3.5자리(12비트) 저해상도 모드
+
20     !2020/09/08 트랜스포머 측정 추가
30     !    저해상도모드에서는 트리거 가능하다.
+
30     ! DC 전압: -10.25V ~ +10.25V, 6자리(24비트) 고해상도, 3.5자리(12비트) 저해상도 모드
40     ! DC 전류: -0.1A ~ +0.1A, 0.1mA~100mA 범위, 0.1nA 해상도
+
40     !    저해상도모드에서는 트리거 가능하다.
50     ! AC 전압(p-p 전압이다.)/전류 1MHz까지, 펄스는 100kHz까지
+
50     ! DC 전류: -0.1A ~ +0.1A, 0.1mA~100mA 범위, 0.1nA 해상도
60     !    duty cycle은 100kHz까지 5%~95%
+
60     ! AC 전압(p-p 전압이다.)/전류 1MHz까지, 펄스는 100kHz까지
70     ! Freq Ref = 1,073,741.824Hz
+
70     !    duty cycle은 100kHz까지 5%~95%
80     ! APPLY DCV | DCI
+
80     ! Freq Ref = 1,073,741.824Hz
90    ! USE CHANA | CHANB = 0 | 100
+
90     ! APPLY DCV | DCI
100   ! TERM FRONT | REAR | OPEN = OFF
+
100    ! USE CHANA | CHANB = 0 | 100
110   ! IMP  0 | 50
+
110   ! TERM FRONT | REAR | OPEN = OFF
120   ! ARANGE ON | OFF  autorange
+
120   ! IMP  0 | 50
130   ! RANGE
+
130   ! ARANGE ON | OFF  autorange
140   ! DELAY 0.04sec (default)
+
140   ! RANGE
150   !
+
150   ! DELAY 0.04sec (default)
160   ! xmin, xmax, nop 로그계산방법
+
160   !
170   ! k=(xmax/xmin)^(1/(nop-1))
+
170   ! xmin, xmax, nop 로그계산방법
180   ! x=xmin*k^(n-1)  n=1,...,nop
+
180   ! k=(xmax/xmin)^(1/(nop-1))
190   INTEGER I,J,Nop,Count
+
190   ! x=xmin*k^(n-1)  n=1,...,nop
200   REAL K,Vmin,Vmax,Vset,Vmeas,Tmp
+
200   INTEGER I,J,Nop,Count
210   GOSUB Fileopen
+
210   REAL K,Vmin,Vmax,Vset,Vmeas,Tmp
220   ASSIGN @Source TO 710  !HP 3245A
+
220   GOSUB Fileopen
230   ASSIGN @Dmm TO 722    !HP 3458A
+
230   ASSIGN @Source TO 710  !HP 3245A
240 !  OUTPUT @Source;"USE CHANB"
+
240   ASSIGN @Dmm TO 722    !HP 3458A
250   OUTPUT @Source;"IMP 0"  ! 0ohm 50ohm
+
250 !  OUTPUT @Source;"USE CHANB"
260   T0=TIMEDATE
+
260   OUTPUT @Source;"IMP 0"  ! 0ohm 50ohm, 대부분 0오옴으로
270   Nop=101
+
270   T0=TIMEDATE
280   Func$="Trans"    ! V I i Trans
+
280   Nop=101
290   Scale$="LOG"  ! 전압 스윕 선택 = LIN LOG
+
290   Func$="Trans"    ! V I i Trans
300   SELECT Func$
+
300   Scale$="LOG"  ! 전압 스윕 선택 = LIN LOG
310   CASE "Trans"  !트랜스 전압비
+
310   SELECT Func$
320     Fstart=10
+
320   CASE "Trans"  !트랜스 전압비
330     Fstop=100000
+
330     Fstart=10
340     Fnop=201  !반드시 2이상
+
340     Fstop=100000
350     Vstart=.1 !Vp-p
+
350     Fnop=201  !반드시 2이상
360      Vstart=Vstart/2.828  ! Vpp=2.828 Vrms
+
360     Vstart=.1 !Vp-p
370     Vstop=10  !Vp-p
+
370  !  Vstart=Vstart/2.828  ! Vpp=2.828 Vrms
380      Vstop=Vstop/2.828    !
+
380     Vstop=10  !Vp-p
390     Vnop=10  !반드시 2이상
+
390  !  Vstop=Vstop/2.828    !
400     ALLOCATE Vset_array(Vnop)
+
400     Vnop=3    !반드시 2이상
410     !!!! 출력 데이터에 헤더 작성 !!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
410     ALLOCATE Vset_a_pp(Vnop),Vset_a_rms(Vnop)
420     OUTPUT @File;"No., Time[s], Freq[Hz]";
+
420     !!!! 출력 데이터에 헤더 작성 !!!!!!!!!!!!!!!!!!!!!!!!!!!!
430     FOR J=1 TO Vnop
+
430     OUTPUT @File;"No., Time[s], Freq[Hz]";
440       SELECT Scale$
+
440     FOR J=1 TO Vnop
450       CASE "LOG"
+
450       SELECT Scale$
460         Kvolt=(Vstop/Vstart)^(1/(Vnop-1))
+
460       CASE "LOG"
470         Vset=Vstart*Kvolt^(J-1)
+
470         Kvolt=(Vstop/Vstart)^(1/(Vnop-1))
480       CASE "LIN"
+
480         Vset=Vstart*Kvolt^(J-1)
490         Vset=Vstart+(Vstop-Vstart)/(Vnop-1)*(J-1)
+
490       CASE "LIN"
500       END SELECT  
+
500         Vset=Vstart+(Vstop-Vstart)/(Vnop-1)*(J-1)
510       OUTPUT @File;", ";Vset;
+
510       END SELECT  
520       Vset_array(J)=Vset
+
520       OUTPUT @File;", ";Vset;
530     NEXT J
+
530        Vset_a_pp(J)=Vset
540     OUTPUT @File;""
+
540       Vset_a_rms(J)=Vset/2.828  !p-p -> rms
550     !!!! 출력 데이터에 헤더 끝  !!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
550     NEXT J
560     FOR I=1 TO Fnop  !주파수는 로그
+
560     OUTPUT @File;""
570       Count=I
+
570     !!!! 출력 데이터에 헤더 끝  !!!!!!!!!!!!!!!!!!!!!!!!!!!!
580       Kfreq=(Fstop/Fstart)^(1/(Fnop-1))
+
580     FOR I=1 TO Fnop  !주파수는 로그
590       Freq=Fstart*Kfreq^(I-1)
+
590       Count=I
600       OUTPUT @Source;"FREQ ";Freq
+
600       Kfreq=(Fstop/Fstart)^(1/(Fnop-1))
610       OUTPUT @File;Count,T,Freq,
+
610       Freq=Fstart*Kfreq^(I-1)
620       PRINT Count,Freq,
+
620       OUTPUT @Source;"FREQ ";Freq
630       FOR J=1 TO Vnop
+
630       OUTPUT @File;Count,T,Freq,
640          Vset=Vset_array(J)
+
640       PRINT Count,Freq,
650         OUTPUT @Source;"APPLY ACV ";Vset
+
650       FOR J=1 TO Vnop
660         WAIT .1
+
660         OUTPUT @Source;"APPLY ACV ";Vset_a_pp(J)
670         OUTPUT @Dmm;"TRIG SGL"
+
670         WAIT .1
680         ENTER @Dmm;Vmeas
+
680         OUTPUT @Dmm;"TRIG SGL"
690         T=TIMEDATE-T0
+
690         ENTER @Dmm;Vmeas !rms
700         PRINT Vmeas,
+
700         T=TIMEDATE-T0
710         OUTPUT @File;Vmeas;",";
+
710          Vratio=Vmeas/Vset_a_rms(J)
720       NEXT J
+
720         PRINT Vratio,
730       PRINT ""
+
730         OUTPUT @File;Vratio;",";
740       OUTPUT @File;""
+
740       NEXT J
750     NEXT I
+
750       PRINT ""
760     OUTPUT @Source;"APPLY ACV 0"
+
760       OUTPUT @File;""
770   CASE "V","v"  !V출력, V측정
+
770     NEXT I
780     Vmin=5        ! 1uV
+
780     OUTPUT @Source;"APPLY ACV 1"
790     Vmax=10      !10V
+
790   CASE "V","v"  !V출력, V측정
800     OUTPUT @File;"No., Time[s], Vset[V], Vmeas[V]"
+
800     Vmin=5        ! 1uV
810     FOR I=1 TO Nop STEP 1
+
810     Vmax=10      !10V
820       Count=I
+
820     OUTPUT @File;"No., Time[s], Vset[V], Vmeas[V]"
830       SELECT Scale$
+
830     FOR I=1 TO Nop STEP 1
840       CASE "LOG"
+
840       Count=I
850         K=(Vmax/Vmin)^(1/(Nop-1))
+
850       SELECT Scale$
860         Vset=Vmin*K^(I-1)
+
860       CASE "LOG"
870       CASE "LIN"
+
870         K=(Vmax/Vmin)^(1/(Nop-1))
880         Vset=Vmin+(Vmax-Vmin)/(Nop-1)*(I-1)
+
880         Vset=Vmin*K^(I-1)
890       END SELECT  
+
890       CASE "LIN"
900       OUTPUT @Source;"APPLY DCV ";Vset
+
900         Vset=Vmin+(Vmax-Vmin)/(Nop-1)*(I-1)
910       WAIT .1
+
910       END SELECT  
920       OUTPUT @Dmm;"TRIG SGL"
+
920       OUTPUT @Source;"APPLY DCV ";Vset
930       OUTPUT @Dmm;"TRIG SGL"
+
930       WAIT .1
940       ENTER @Dmm;Vmeas
+
940       OUTPUT @Dmm;"TRIG SGL"
950       T=TIMEDATE-T0
+
950       OUTPUT @Dmm;"TRIG SGL"
960       Diff=(Vmeas-Vset)/Vset*100
+
960       ENTER @Dmm;Vmeas
970       DISP Count,"Set V=";Vset," Meas V=";Vmeas," Diff[%]=";Diff
+
970       T=TIMEDATE-T0
980        OUTPUT @File;Count,T,Vset,Vmeas
+
980       Diff=(Vmeas-Vset)/Vset*100
990      NEXT I
+
990       DISP Count,"Set V=";Vset," Meas V=";Vmeas," Diff[%]=";Diff
1000     OUTPUT @Source;"APPLY DCV 0"
+
1000      OUTPUT @File;Count,T,Vset,Vmeas
1010   CASE "I"
+
1010    NEXT I
1020     Imin=1.E-9  ! 1nA에서부터
+
1020     OUTPUT @Source;"APPLY DCV 0"
1030     Imax=.1    ! 100mA까지
+
1030   CASE "I"
1040     OUTPUT @File;"No., Time[s], Iset[A], Imeas[A]"
+
1040     Imin=1.E-9  ! 1nA에서부터
1050     FOR I=1 TO Nop
+
1050     Imax=.1    ! 100mA까지
1060       Count=I
+
1060     OUTPUT @File;"No., Time[s], Iset[A], Imeas[A]"
1070       K=(Imax/Imin)^(1/(Nop-1))
+
1070     FOR I=1 TO Nop
1080       Iset=Imin*K^(I-1)
+
1080       Count=I
1090       OUTPUT @Source;"APPLY DCI ";Iset
+
1090       K=(Imax/Imin)^(1/(Nop-1))
1100       WAIT .1
+
1100       Iset=Imin*K^(I-1)
1110       OUTPUT @Dmm;"TRIG SGL"
+
1110       OUTPUT @Source;"APPLY DCI ";Iset
1120       ENTER @Dmm;Imeas
+
1120       WAIT .1
1130       T=TIMEDATE-T0
+
1130       OUTPUT @Dmm;"TRIG SGL"
1140       Diff=(Imeas-Iset)/Iset*100
+
1140       ENTER @Dmm;Imeas
1150       DISP Count,"Set I=";Iset," Meas I=";Imeas," Diff[%]=";Diff
+
1150       T=TIMEDATE-T0
1160       OUTPUT @File;Count,T,Iset,Imeas
+
1160       Diff=(Imeas-Iset)/Iset*100
1170     NEXT I
+
1170       DISP Count,"Set I=";Iset," Meas I=";Imeas," Diff[%]=";Diff
1180     OUTPUT @Source;"APPLY DCI 0"
+
1180       OUTPUT @File;Count,T,Iset,Imeas
1190   CASE "i"
+
1190     NEXT I
1200     OUTPUT @File;"No., Time[s], HP3245A set[A], HP3458A meas[A]"
+
1200     OUTPUT @Source;"APPLY DCI 0"
1210     Count=0
+
1210   CASE "i"
1220     FOR I=-10 TO -1              !0.1A까지만 가능
+
1220     OUTPUT @File;"No., Time[s], HP3245A set[A], HP3458A meas[A]"
1230       OUTPUT @Source;"APPLY DCI 0"      !그렇다고 0이 나오는 것은 아니다. 입력단자를 short시켜야 한다.
+
1230     Count=0
1240       IF I<=-8 THEN
+
1240     FOR I=-10 TO -1              !0.1A까지만 가능
1250         OUTPUT @Dmm;"FUNC DCI ";1.E-7        !범위 0.1uA시작 000.000nA 표시된다.
+
1250       OUTPUT @Source;"APPLY DCI 0"      !그렇다고 0이 나오는 것은 아니다. 입력단자를 short시켜야 한다.
1260       ELSE  
+
1260       IF I<=-8 THEN
1270         OUTPUT @Dmm;"FUNC DCI ";10^(I+1)
+
1270         OUTPUT @Dmm;"FUNC DCI ";1.E-7        !범위 0.1uA시작 000.000nA 표시된다.
1280       END IF  
+
1280       ELSE  
1290   !  전루 측정 범위별로 MATH NULL 수행
+
1290         OUTPUT @Dmm;"FUNC DCI ";10^(I+1)
1300   !  OUTPUT @Dmm;"TRIG SGL"
+
1300       END IF  
1310   !  ENTER @Dmm;Tmp
+
1310   !  전루 측정 범위별로 MATH NULL 수행
1320   !  OUTPUT @Dmm;"MATH NULL"
+
1320   !  OUTPUT @Dmm;"TRIG SGL"
1330   !  OUTPUT @Dmm;"TRIG SGL"
+
1330   !  ENTER @Dmm;Tmp
1340   !  ENTER @Dmm;Tmp
+
1340   !  OUTPUT @Dmm;"MATH NULL"
1350       FOR J=1 TO 9    ! 10을 사용하면, 한 단계 더 높은 범위 1에서 수행되는 것과 겹쳐, NULL 의미에 문제가 된다.
+
1350   !  OUTPUT @Dmm;"TRIG SGL"
1360         Count=Count+1
+
1360   !  ENTER @Dmm;Tmp
1370         Vset=J*10^I            ! 최초 출력 전류는 1E-10A부터 시작
+
1370       FOR J=1 TO 9    ! 10을 사용하면, 한 단계 더 높은 범위 1에서 수행되는 것과 겹쳐, NULL 의미에 문제가 된다.
1380         IF Vset>.1 THEN STOP  ! 전류출력 .1A 초과하면 이상 나오게 프로그래밍되면 정지시킨다.
+
1380         Count=Count+1
1390         OUTPUT @Source;"APPLY DCI ";Vset
+
1390         Vset=J*10^I            ! 최초 출력 전류는 1E-10A부터 시작
1400         WAIT .1
+
1400         IF Vset>.1 THEN STOP  ! 전류출력 .1A 초과하면 이상 나오게 프로그래밍되면 정지시킨다.
1410         OUTPUT @Dmm;"TRIG SGL"
+
1410         OUTPUT @Source;"APPLY DCI ";Vset
1420         ENTER @Dmm;Vmeas
+
1420         WAIT .1
1430         T=TIMEDATE-T0
+
1430         OUTPUT @Dmm;"TRIG SGL"
1440         DISP Count,"Set I=";Vset," Meas I=";Vmeas
+
1440         ENTER @Dmm;Vmeas
1450         OUTPUT @File;Count,T,Vset,Vmeas
+
1450         T=TIMEDATE-T0
1460       NEXT J
+
1460         DISP Count,"Set I=";Vset," Meas I=";Vmeas
1470     NEXT I
+
1470         OUTPUT @File;Count,T,Vset,Vmeas
1480     OUTPUT @Source;"APPLY DCI 0"
+
1480       NEXT J
1490   END SELECT  
+
1490     NEXT I
1500   OUTPUT @Dmm;"TRIG AUTO"
+
1500     OUTPUT @Source;"APPLY DCI 0"
1510   STOP
+
1510   END SELECT  
1520 Fileopen: !
+
1520   OUTPUT @Dmm;"TRIG AUTO"
1530   DIM Filename$[20],Dhms$[8]
+
1530   STOP
1540   Time$=TIME$(TIMEDATE)
+
1540 Fileopen: !
1550   Date$=DATE$(TIMEDATE)
+
1550   DIM Filename$[20],Dhms$[8]
1560   Dhms$=Date$[1;2]&Time$[1;2]&Time$[4;2]&Time$[7;2]
+
1560   Time$=TIME$(TIMEDATE)
1570   Filename$=Dhms$&".txt"
+
1570   Date$=DATE$(TIMEDATE)
1580   CREATE Filename$,1
+
1580   Dhms$=Date$[1;2]&Time$[1;2]&Time$[4;2]&Time$[7;2]
1590   ASSIGN @File TO Filename$;FORMAT ON
+
1590   Filename$=Dhms$&".txt"
1600   RETURN
+
1600   CREATE Filename$,1
1610   END
+
1610   ASSIGN @File TO Filename$;FORMAT ON
 +
1620   RETURN
 +
1630   END
 
</pre>
 
</pre>

2020년 9월 8일 (화) 14:08 기준 최신판

3245A

1      ! volt-std/3245-01-ibw.txt
10     !2018/04/30 HP3245A Universal Source로 출력 + HP3458A DMM으로 측정
20     !2020/09/08 트랜스포머 측정 추가
30     ! DC 전압: -10.25V ~ +10.25V, 6자리(24비트) 고해상도, 3.5자리(12비트) 저해상도 모드
40     !     저해상도모드에서는 트리거 가능하다.
50     ! DC 전류: -0.1A ~ +0.1A, 0.1mA~100mA 범위, 0.1nA 해상도
60     ! AC 전압(p-p 전압이다.)/전류 1MHz까지, 펄스는 100kHz까지
70     !    duty cycle은 100kHz까지 5%~95%
80     ! Freq Ref = 1,073,741.824Hz
90     ! APPLY DCV | DCI
100    ! USE CHANA | CHANB = 0 | 100
110    ! TERM FRONT | REAR | OPEN = OFF
120    ! IMP  0 | 50
130    ! ARANGE ON | OFF   autorange
140    ! RANGE
150    ! DELAY 0.04sec (default)
160    !
170    ! xmin, xmax, nop 로그계산방법
180    ! k=(xmax/xmin)^(1/(nop-1))
190    ! x=xmin*k^(n-1)   n=1,...,nop
200    INTEGER I,J,Nop,Count
210    REAL K,Vmin,Vmax,Vset,Vmeas,Tmp
220    GOSUB Fileopen
230    ASSIGN @Source TO 710  !HP 3245A
240    ASSIGN @Dmm TO 722     !HP 3458A
250 !  OUTPUT @Source;"USE CHANB"
260    OUTPUT @Source;"IMP 0"   ! 0ohm 50ohm, 대부분 0오옴으로
270    T0=TIMEDATE
280    Nop=101
290    Func$="Trans"     ! V I i Trans
300    Scale$="LOG"  ! 전압 스윕 선택 = LIN LOG
310    SELECT Func$
320    CASE "Trans"   !트랜스 전압비
330      Fstart=10
340      Fstop=100000
350      Fnop=201  !반드시 2이상
360      Vstart=.1 !Vp-p
370   !  Vstart=Vstart/2.828  ! Vpp=2.828 Vrms
380      Vstop=10  !Vp-p
390   !  Vstop=Vstop/2.828    !
400      Vnop=3    !반드시 2이상
410      ALLOCATE Vset_a_pp(Vnop),Vset_a_rms(Vnop)
420      !!!! 출력 데이터에 헤더 작성 !!!!!!!!!!!!!!!!!!!!!!!!!!!!
430      OUTPUT @File;"No., Time[s], Freq[Hz]";
440      FOR J=1 TO Vnop
450        SELECT Scale$
460        CASE "LOG"
470          Kvolt=(Vstop/Vstart)^(1/(Vnop-1))
480          Vset=Vstart*Kvolt^(J-1)
490        CASE "LIN"
500          Vset=Vstart+(Vstop-Vstart)/(Vnop-1)*(J-1)
510        END SELECT 
520        OUTPUT @File;", ";Vset;
530        Vset_a_pp(J)=Vset
540        Vset_a_rms(J)=Vset/2.828  !p-p -> rms
550      NEXT J
560      OUTPUT @File;""
570      !!!! 출력 데이터에 헤더 끝   !!!!!!!!!!!!!!!!!!!!!!!!!!!!
580      FOR I=1 TO Fnop   !주파수는 로그
590        Count=I
600        Kfreq=(Fstop/Fstart)^(1/(Fnop-1))
610        Freq=Fstart*Kfreq^(I-1)
620        OUTPUT @Source;"FREQ ";Freq
630        OUTPUT @File;Count,T,Freq,
640        PRINT Count,Freq,
650        FOR J=1 TO Vnop
660          OUTPUT @Source;"APPLY ACV ";Vset_a_pp(J)
670          WAIT .1
680          OUTPUT @Dmm;"TRIG SGL"
690          ENTER @Dmm;Vmeas  !rms
700          T=TIMEDATE-T0
710          Vratio=Vmeas/Vset_a_rms(J)
720          PRINT Vratio,
730          OUTPUT @File;Vratio;",";
740        NEXT J
750        PRINT ""
760        OUTPUT @File;""
770      NEXT I
780      OUTPUT @Source;"APPLY ACV 1"
790    CASE "V","v"   !V출력, V측정
800      Vmin=5        ! 1uV
810      Vmax=10       !10V
820      OUTPUT @File;"No., Time[s], Vset[V], Vmeas[V]"
830      FOR I=1 TO Nop STEP 1
840        Count=I
850        SELECT Scale$
860        CASE "LOG"
870          K=(Vmax/Vmin)^(1/(Nop-1))
880          Vset=Vmin*K^(I-1)
890        CASE "LIN"
900          Vset=Vmin+(Vmax-Vmin)/(Nop-1)*(I-1)
910        END SELECT 
920        OUTPUT @Source;"APPLY DCV ";Vset
930        WAIT .1
940        OUTPUT @Dmm;"TRIG SGL"
950        OUTPUT @Dmm;"TRIG SGL"
960        ENTER @Dmm;Vmeas
970        T=TIMEDATE-T0
980        Diff=(Vmeas-Vset)/Vset*100
990        DISP Count,"Set V=";Vset," Meas V=";Vmeas," Diff[%]=";Diff
1000       OUTPUT @File;Count,T,Vset,Vmeas
1010     NEXT I
1020     OUTPUT @Source;"APPLY DCV 0"
1030   CASE "I"
1040     Imin=1.E-9  ! 1nA에서부터
1050     Imax=.1     ! 100mA까지
1060     OUTPUT @File;"No., Time[s], Iset[A], Imeas[A]"
1070     FOR I=1 TO Nop
1080       Count=I
1090       K=(Imax/Imin)^(1/(Nop-1))
1100       Iset=Imin*K^(I-1)
1110       OUTPUT @Source;"APPLY DCI ";Iset
1120       WAIT .1
1130       OUTPUT @Dmm;"TRIG SGL"
1140       ENTER @Dmm;Imeas
1150       T=TIMEDATE-T0
1160       Diff=(Imeas-Iset)/Iset*100
1170       DISP Count,"Set I=";Iset," Meas I=";Imeas," Diff[%]=";Diff
1180       OUTPUT @File;Count,T,Iset,Imeas
1190     NEXT I
1200     OUTPUT @Source;"APPLY DCI 0"
1210   CASE "i"
1220     OUTPUT @File;"No., Time[s], HP3245A set[A], HP3458A meas[A]"
1230     Count=0
1240     FOR I=-10 TO -1               !0.1A까지만 가능
1250       OUTPUT @Source;"APPLY DCI 0"      !그렇다고 0이 나오는 것은 아니다. 입력단자를 short시켜야 한다.
1260       IF I<=-8 THEN
1270         OUTPUT @Dmm;"FUNC DCI ";1.E-7         !범위 0.1uA시작 000.000nA 표시된다.
1280       ELSE 
1290         OUTPUT @Dmm;"FUNC DCI ";10^(I+1)
1300       END IF 
1310   !   전루 측정 범위별로 MATH NULL 수행
1320   !   OUTPUT @Dmm;"TRIG SGL"
1330   !   ENTER @Dmm;Tmp
1340   !   OUTPUT @Dmm;"MATH NULL"
1350   !   OUTPUT @Dmm;"TRIG SGL"
1360   !   ENTER @Dmm;Tmp
1370       FOR J=1 TO 9     ! 10을 사용하면, 한 단계 더 높은 범위 1에서 수행되는 것과 겹쳐, NULL 의미에 문제가 된다.
1380         Count=Count+1
1390         Vset=J*10^I            ! 최초 출력 전류는 1E-10A부터 시작
1400         IF Vset>.1 THEN STOP   ! 전류출력 .1A 초과하면 이상 나오게 프로그래밍되면 정지시킨다.
1410         OUTPUT @Source;"APPLY DCI ";Vset
1420         WAIT .1
1430         OUTPUT @Dmm;"TRIG SGL"
1440         ENTER @Dmm;Vmeas
1450         T=TIMEDATE-T0
1460         DISP Count,"Set I=";Vset," Meas I=";Vmeas
1470         OUTPUT @File;Count,T,Vset,Vmeas
1480       NEXT J
1490     NEXT I
1500     OUTPUT @Source;"APPLY DCI 0"
1510   END SELECT 
1520   OUTPUT @Dmm;"TRIG AUTO"
1530   STOP
1540 Fileopen: !
1550   DIM Filename$[20],Dhms$[8]
1560   Time$=TIME$(TIMEDATE)
1570   Date$=DATE$(TIMEDATE)
1580   Dhms$=Date$[1;2]&Time$[1;2]&Time$[4;2]&Time$[7;2]
1590   Filename$=Dhms$&".txt"
1600   CREATE Filename$,1
1610   ASSIGN @File TO Filename$;FORMAT ON
1620   RETURN
1630   END