7651-01.txt

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