"7651-01.txt"의 두 판 사이의 차이

 
1번째 줄: 1번째 줄:
 
[[Yokogawa 7651]]
 
[[Yokogawa 7651]]
 
<pre>
 
<pre>
10    !2020/05/01 Yokogawa 7651 DC Source로 출력 + HP3458A DMM으로 측정
+
10    !2020/05/04 Yokogawa 7651 DC Source로 출력 + HP3458A DMM으로 측정
 
20    ! DC 전압: 10mV +-12.0000mV 100mV +-120.000mV 1V +-1.20000V 10V +-12.0000V 30V +-32.000V
 
20    ! DC 전압: 10mV +-12.0000mV 100mV +-120.000mV 1V +-1.20000V 10V +-12.0000V 30V +-32.000V
 
30    ! DC 전류: 1mA +-1.20000mA(10nA) 10mA +-12.0000mA 100mA +-120.000mA(1uA)
 
30    ! DC 전류: 1mA +-1.20000mA(10nA) 10mA +-12.0000mA 100mA +-120.000mA(1uA)
11번째 줄: 11번째 줄:
 
90    ! 트리거: E  - 기능,범위,출력값,출력ON/OFF 명령어 뒤에 반드시 사용해야 한다.
 
90    ! 트리거: E  - 기능,범위,출력값,출력ON/OFF 명령어 뒤에 반드시 사용해야 한다.
 
100    ! 출력값 확인: OD, 출력 헤더 H0, H1 - 헤더 없고 있고
 
100    ! 출력값 확인: OD, 출력 헤더 H0, H1 - 헤더 없고 있고
150   ! xmin, xmax, nop 로그계산방법
+
110   ! xmin, xmax, nop 로그계산방법
160   ! k=(xmax/xmin)^(1/(nop-1))
+
120   ! k=(xmax/xmin)^(1/(nop-1))
170   ! x=xmin*k^(n-1)  n=1,...,nop
+
130   ! x=xmin*k^(n-1)  n=1,...,nop
180   INTEGER I,J,Nop,Count
+
140    DIM Str$[255]
190    REAL K,Vmin,Vmax,Vset,Vmeas,Tmp
+
150   INTEGER I,Nop,Count,Sign
200    Nop=101
+
160   GOSUB Fileopen
210   GOSUB Fileopen
+
170   ASSIGN @Src TO 703  !Yokogawa 7651
220   ASSIGN @Source TO 703  !
+
180   ASSIGN @Dmm TO 722    !HP 3458A
230   ASSIGN @Dmm TO 722    !HP 3458A
+
190   T0=TIMEDATE
240   T0=TIMEDATE
+
200   OUTPUT @Src;"H0"  !출력데이터에서 헤더 off
250    Func$="I"
+
210    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
260   OUTPUT @Source;"H0"  !출력데이터에서 헤더 off
+
220    GOSUB Measurement
270    OUTPUT @Source;"O1"   !output ON
+
230 !  GOSUB Calibration
280    OUTPUT @Source;"E"
+
240    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
290    SELECT Func$
+
250    STOP
300    CASE "V","v"   !V출력, I측정
+
260 Calibration: !
310     OUTPUT @Source;"F1"
+
270    OUTPUT @Src;"F1E" !DCV
320     OUTPUT @Source;"E"
+
280    OUTPUT @Src;"R2E" !10mV range
330     Vmin=1.E-7   ! 0.1uV
+
290    GOSUB Cal
340     Vmax=32      !32V
+
300    OUTPUT @Src;"R3E" !100mV range
350     OUTPUT @File;"No., Time[s], Yokogawa7651 set[V], HP3458A meas[V]"
+
310   GOSUB Cal
360      FOR I=1 TO Nop
+
320   OUTPUT @Src;"R4E" !1V range
370       Count=I
+
330    GOSUB Cal
380       K=(Vmax/Vmin)^(1/(Nop-1))
+
340   OUTPUT @Src;"R5E" !10V range
390       Vset=Vmin*K^(I-1)
+
350   GOSUB Cal
400       OUTPUT @Source;"SA";Vset
+
360    OUTPUT @Src;"R6E" !100V range
410       OUTPUT @Source;"E"
+
370   GOSUB Cal
420       GOSUB Source_dataout
+
380   Str$="전류 측정합니다. DMM을 전류측정으로 세팅하고 단자를 전류로 꼽으시요"
430       Vset=Set
+
390   DIALOG "INFORMATION",Str$,Btn
440       WAIT .1
+
400   OUTPUT @Src;"F5E" !DCI
450       OUTPUT @Dmm;"TRIG SGL"
+
410   OUTPUT @Src;"R4E" !1mA range
460       ENTER @Dmm;Vmeas
+
420   GOSUB Cal
470       T=TIMEDATE-T0
+
430   OUTPUT @Src;"R5E" !10mA range
480       DISP Count,"SP=";Vset,"PV=";Vmeas
+
440   GOSUB Cal
490       OUTPUT @File;Count,T,Vset,Vmeas
+
450   OUTPUT @Src;"R6E" !100mA range
500     NEXT I
+
460   GOSUB Cal
510     OUTPUT @Source;"APPLY DCV 0"
+
470   RETURN
520    CASE "I"
+
480 Measurement:    !
530     OUTPUT @Source;"F5"
+
490   Nop=101
540     OUTPUT @Source;"E"
+
500   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
550      Imin=1.E-! 10nA에서부터
+
510   Str$="전압 측정합니다. DMM을 전압측정으로 세팅하고 단자를 전압에 꼽으시요"
560      Imax=.12    ! 120mA까지
+
520    DIALOG "INFORMATION",Str$,Btn
570      OUTPUT @File;"No., Time[s], Yokogawa7651 set[A], HP3458A meas[A]"
+
530   OUTPUT @Src;"F1E"       !func DCV
580     FOR I=1 TO Nop
+
540   Min=1.E-6      ! min = 0.1uV이지만 의미있는 1uV부터
590       Count=I
+
550    Max=32          !32V
600       K=(Imax/Imin)^(1/(Nop-1))
+
560    OUTPUT @File;"No., Time[s], Yokogawa7651 set[V], HP3458A meas[V], Diff[ppm]"
610       Iset=Imin*K^(I-1)
+
570    OUTPUT @Src;"R2E"      !range 1mA
620        OUTPUT @Source;"SA ";Iset
+
580   GOSUB Discharge
630       OUTPUT @Source;"E"
+
590   Sign=-1
640       GOSUB Source_dataout
+
600   GOSUB Meas_loop
650       Iset=Set
+
610   OUTPUT @Src;"R2E"       !range 10mV
660       WAIT .1
+
620    GOSUB Discharge
670       OUTPUT @Dmm;"TRIG SGL"
+
630   Sign=+1
680       ENTER @Dmm;Imeas
+
640   GOSUB Meas_loop
690       T=TIMEDATE-T0
+
650   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
700        DISP Count,"Set I=";Iset," Meas I=";Imeas
+
660   Str$="전류 측정합니다. DMM을 전류측정으로 세팅하고 단자를 전류에 꼽으시요"
710       OUTPUT @File;Count,T,Iset,Imeas
+
670   DIALOG "INFORMATION",Str$,Btn
720     NEXT I
+
680   OUTPUT @Src;"F5E"
730      OUTPUT @Source;"APPLY DCI 0"
+
690   Min=1.E-8    ! 10nA에서부터
740    END SELECT
+
700   Max=.12       ! 120mA까지
750    OUTPUT @Source;"O0"  !output OFF
+
710   OUTPUT @File;"No., Time[s], Yokogawa7651 set[A], HP3458A meas[A], Diff[ppm]"
760    OUTPUT @Source;"E"
+
720   OUTPUT @Src;"R4E"     !range 1mA
770    OUTPUT @Dmm;"TRIG AUTO"
+
730    GOSUB Discharge
780    STOP
+
740    Sign=-1
790 Source_dataout: !!
+
750    GOSUB Meas_loop
800   OUTPUT 703;"OD"
+
760    OUTPUT @Src;"R4E"       !range 1mA
810    ENTER 703;Set
+
770    GOSUB Discharge
820    RETURN
+
780    Sign=+1
830 Fileopen: !
+
790   GOSUB Meas_loop
840    DIM Filename$[20],Dhms$[8]
+
800    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
850   Time$=TIME$(TIMEDATE)
+
810   OUTPUT @Dmm;"TRIG AUTO"
860   Date$=DATE$(TIMEDATE)
+
820    STOP
870    Dhms$=Date$[1;2]&Time$[1;2]&Time$[4;2]&Time$[7;2]
+
830 Discharge: !
880   Filename$=Dhms$&".txt"
+
840    FOR I=1 TO 10        !Max 값으로 측정한 후 남은 전하를 방전하자.
890   CREATE Filename$,1
+
850     OUTPUT @Src;"O1E"    !output ON
900    ASSIGN @File TO Filename$;FORMAT ON
+
860     OUTPUT @Src;"SA";1.E-7*Sign;"E"
 +
870      WAIT .1
 +
880     OUTPUT @Src;"O0E"     !output OFF
 +
890     WAIT .1
 +
900    NEXT I
 
910    RETURN
 
910    RETURN
920    END
+
920 Meas_loop:  !
 +
930   OUTPUT @Src;"O1E"      !output ON
 +
940    FOR I=1 TO Nop
 +
950      Count=I
 +
960      T1=TIMEDATE-T0
 +
970      K=(Max/Min)^(1/(Nop-1))
 +
980      V=Min*K^(I-1)
 +
990      V=Sign*V    !세팅값이 -인지 +인지
 +
1000    V=DROUND(V,6)  !입력 유효자리수 6
 +
1010    OUTPUT @Src;"SA";V;"E"
 +
1020    WAIT .1
 +
1030    GOSUB Source_reading    !V0 = 소스 세팅값을 읽는다.
 +
1040    DISP "set error=";DROUND(ABS((V0-V)/V)*1.E+6,2);"ppm"
 +
1050    OUTPUT @Dmm;"TRIG SGL"
 +
1060    ENTER @Dmm;V1
 +
1070    V2=DROUND(ABS((V1-V0)/V0)*1.E+6,2)  ! ppm 오차
 +
1080    PRINT "No.=";Count," Set=";V0," Meas=";V1," Diff=";V2;"ppm"
 +
1090    OUTPUT @File;Count,T1,V0,V1,V2
 +
1100  NEXT I
 +
1110  OUTPUT @Src;"O0E"      !output OFF
 +
1120  RETURN
 +
1130 Source_reading:!!
 +
1140  OUTPUT 703;"OD"
 +
1150  ENTER 703;V0
 +
1160  RETURN
 +
1170 Fileopen: !
 +
1180  DIM Filename$[20],Dhms$[8]
 +
1190  Time$=TIME$(TIMEDATE)
 +
1200  Date$=DATE$(TIMEDATE)
 +
1210  Dhms$=Date$[1;2]&Time$[1;2]&Time$[4;2]&Time$[7;2]
 +
1220  Filename$=Dhms$&".txt"
 +
1230  CREATE Filename$,1
 +
1240  ASSIGN @File TO Filename$;FORMAT ON
 +
1250  RETURN
 +
1260 Dmm_reading: !
 +
1270  OUTPUT @Dmm;"TRIG SGL"
 +
1280  ENTER @Dmm;Rdg
 +
1290  Rdg=DROUND(Rdg,7)
 +
1300  RETURN
 +
1310 Cal: ! 출력 ON하고 세팅하고, OFF하고 range 변경해야 한다.
 +
1320  OUTPUT @Src;"O1E"  !output ON
 +
1330    ! +zero
 +
1340  OUTPUT @Src;"YZP0"
 +
1350  GOSUB Dmm_reading
 +
1360  OUTPUT @Src;"YZS";Rdg
 +
1370    ! +full
 +
1380  OUTPUT @Src;"YZP1"
 +
1390  GOSUB Dmm_reading
 +
1400  OUTPUT @Src;"YZS";Rdg
 +
1410    ! -zero
 +
1420  OUTPUT @Src;"YZP2"
 +
1430  GOSUB Dmm_reading
 +
1440  OUTPUT @Src;"YZS";Rdg
 +
1450    ! -full
 +
1460  OUTPUT @Src;"YZP3"
 +
1470  GOSUB Dmm_reading
 +
1480  OUTPUT @Src;"YZS";Rdg
 +
1490    ! end
 +
1500  OUTPUT @Src;"YZW"  !write
 +
1510  OUTPUT @Src;"O0E"  !output OFF
 +
1520  RETURN
 +
1530  END
 
</pre>
 
</pre>

2020년 5월 4일 (월) 12:50 기준 최신판

Yokogawa 7651

10     !2020/05/04 Yokogawa 7651 DC Source로 출력 + HP3458A DMM으로 측정
20     ! DC 전압: 10mV +-12.0000mV 100mV +-120.000mV 1V +-1.20000V 10V +-12.0000V 30V +-32.000V
30     ! DC 전류: 1mA +-1.20000mA(10nA) 10mA +-12.0000mA 100mA +-120.000mA(1uA)
40     ! 기능: DCV F1, 범위 10mV:R2, 100mV:R3, 1V:R4, 10V:R5, 30V:R6
50     !       DCA F5, 범위 1mA:R4, 10mA:R5, 100mA:R6
60     ! 세팅: S+nn.nnEnn 또는 S-0.00001
70     ! 자동범위에서 세팅: SA
80     ! 출력 ON/OFF: O0 및 O1
90     ! 트리거: E  - 기능,범위,출력값,출력ON/OFF 명령어 뒤에 반드시 사용해야 한다.
100    ! 출력값 확인: OD, 출력 헤더 H0, H1 - 헤더 없고 있고
110    ! xmin, xmax, nop 로그계산방법
120    ! k=(xmax/xmin)^(1/(nop-1))
130    ! x=xmin*k^(n-1)   n=1,...,nop
140    DIM Str$[255]
150    INTEGER I,Nop,Count,Sign
160    GOSUB Fileopen
170    ASSIGN @Src TO 703  !Yokogawa 7651
180    ASSIGN @Dmm TO 722     !HP 3458A
190    T0=TIMEDATE
200    OUTPUT @Src;"H0"   !출력데이터에서 헤더 off
210    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
220    GOSUB Measurement
230 !  GOSUB Calibration
240    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
250    STOP
260 Calibration: !
270    OUTPUT @Src;"F1E" !DCV
280    OUTPUT @Src;"R2E" !10mV range
290    GOSUB Cal
300    OUTPUT @Src;"R3E" !100mV range
310    GOSUB Cal
320    OUTPUT @Src;"R4E" !1V range
330    GOSUB Cal
340    OUTPUT @Src;"R5E" !10V range
350    GOSUB Cal
360    OUTPUT @Src;"R6E" !100V range
370    GOSUB Cal
380    Str$="전류 측정합니다. DMM을 전류측정으로 세팅하고 단자를 전류로 꼽으시요"
390    DIALOG "INFORMATION",Str$,Btn
400    OUTPUT @Src;"F5E" !DCI
410    OUTPUT @Src;"R4E" !1mA range
420    GOSUB Cal
430    OUTPUT @Src;"R5E" !10mA range
440    GOSUB Cal
450    OUTPUT @Src;"R6E" !100mA range
460    GOSUB Cal
470    RETURN
480 Measurement:     !
490    Nop=101
500    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
510    Str$="전압 측정합니다. DMM을 전압측정으로 세팅하고 단자를 전압에 꼽으시요"
520    DIALOG "INFORMATION",Str$,Btn
530    OUTPUT @Src;"F1E"       !func DCV
540    Min=1.E-6       ! min = 0.1uV이지만 의미있는 1uV부터
550    Max=32          !32V
560    OUTPUT @File;"No., Time[s], Yokogawa7651 set[V], HP3458A meas[V], Diff[ppm]"
570    OUTPUT @Src;"R2E"       !range 1mA
580    GOSUB Discharge
590    Sign=-1
600    GOSUB Meas_loop
610    OUTPUT @Src;"R2E"       !range 10mV
620    GOSUB Discharge
630    Sign=+1
640    GOSUB Meas_loop
650    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
660    Str$="전류 측정합니다. DMM을 전류측정으로 세팅하고 단자를 전류에 꼽으시요"
670    DIALOG "INFORMATION",Str$,Btn
680    OUTPUT @Src;"F5E"
690    Min=1.E-8     ! 10nA에서부터
700    Max=.12        ! 120mA까지
710    OUTPUT @File;"No., Time[s], Yokogawa7651 set[A], HP3458A meas[A], Diff[ppm]"
720    OUTPUT @Src;"R4E"      !range 1mA
730    GOSUB Discharge
740    Sign=-1
750    GOSUB Meas_loop
760    OUTPUT @Src;"R4E"       !range 1mA
770    GOSUB Discharge
780    Sign=+1
790    GOSUB Meas_loop
800    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
810    OUTPUT @Dmm;"TRIG AUTO"
820    STOP
830 Discharge: !
840    FOR I=1 TO 10         !Max 값으로 측정한 후 남은 전하를 방전하자.
850      OUTPUT @Src;"O1E"     !output ON
860      OUTPUT @Src;"SA";1.E-7*Sign;"E"
870      WAIT .1
880      OUTPUT @Src;"O0E"     !output OFF
890      WAIT .1
900    NEXT I
910    RETURN
920 Meas_loop:  !
930    OUTPUT @Src;"O1E"      !output ON
940    FOR I=1 TO Nop
950      Count=I
960      T1=TIMEDATE-T0
970      K=(Max/Min)^(1/(Nop-1))
980      V=Min*K^(I-1)
990      V=Sign*V     !세팅값이 -인지 +인지
1000     V=DROUND(V,6)  !입력 유효자리수 6
1010     OUTPUT @Src;"SA";V;"E"
1020     WAIT .1
1030     GOSUB Source_reading     !V0 = 소스 세팅값을 읽는다.
1040     DISP "set error=";DROUND(ABS((V0-V)/V)*1.E+6,2);"ppm"
1050     OUTPUT @Dmm;"TRIG SGL"
1060     ENTER @Dmm;V1
1070     V2=DROUND(ABS((V1-V0)/V0)*1.E+6,2)   ! ppm 오차
1080     PRINT "No.=";Count," Set=";V0," Meas=";V1," Diff=";V2;"ppm"
1090     OUTPUT @File;Count,T1,V0,V1,V2
1100   NEXT I
1110   OUTPUT @Src;"O0E"       !output OFF
1120   RETURN
1130 Source_reading:!!
1140   OUTPUT 703;"OD"
1150   ENTER 703;V0
1160   RETURN
1170 Fileopen: !
1180   DIM Filename$[20],Dhms$[8]
1190   Time$=TIME$(TIMEDATE)
1200   Date$=DATE$(TIMEDATE)
1210   Dhms$=Date$[1;2]&Time$[1;2]&Time$[4;2]&Time$[7;2]
1220   Filename$=Dhms$&".txt"
1230   CREATE Filename$,1
1240   ASSIGN @File TO Filename$;FORMAT ON
1250   RETURN
1260 Dmm_reading: !
1270   OUTPUT @Dmm;"TRIG SGL"
1280   ENTER @Dmm;Rdg
1290   Rdg=DROUND(Rdg,7)
1300   RETURN
1310 Cal: ! 출력 ON하고 세팅하고, OFF하고 range 변경해야 한다.
1320   OUTPUT @Src;"O1E"  !output ON
1330    ! +zero
1340   OUTPUT @Src;"YZP0"
1350   GOSUB Dmm_reading
1360   OUTPUT @Src;"YZS";Rdg
1370    ! +full
1380   OUTPUT @Src;"YZP1"
1390   GOSUB Dmm_reading
1400   OUTPUT @Src;"YZS";Rdg
1410    ! -zero
1420   OUTPUT @Src;"YZP2"
1430   GOSUB Dmm_reading
1440   OUTPUT @Src;"YZS";Rdg
1450    ! -full
1460   OUTPUT @Src;"YZP3"
1470   GOSUB Dmm_reading
1480   OUTPUT @Src;"YZS";Rdg
1490    ! end
1500   OUTPUT @Src;"YZW"  !write
1510   OUTPUT @Src;"O0E"  !output OFF
1520   RETURN
1530   END