"TR6143-bas"의 두 판 사이의 차이
14번째 줄: | 14번째 줄: | ||
140 GOSUB Stimulus_select | 140 GOSUB Stimulus_select | ||
150 GOSUB Measure | 150 GOSUB Measure | ||
− | 160 | + | 160 ! GOSUB Inst_close |
170 GOSUB Fileclose | 170 GOSUB Fileclose | ||
180 STOP | 180 STOP | ||
23번째 줄: | 23번째 줄: | ||
230 GOSUB Chart_var | 230 GOSUB Chart_var | ||
240 GOSUB Init_chart | 240 GOSUB Init_chart | ||
− | 250 Wait=. | + | 250 Wait=.001 !계측기 세팅을 한 후, 첫 측정에서 측정값이 0이 나오는 현상 때문에 잠시 대기 시간 |
260 T0=TIMEDATE | 260 T0=TIMEDATE | ||
270 Count=0 | 270 Count=0 | ||
− | 280 FOR I=1 TO | + | 280 FOR I=1 TO 200 !배터리 충방전실험을 5회 실시 |
290 GOSUB Cycle | 290 GOSUB Cycle | ||
300 NEXT I | 300 NEXT I | ||
310 RETURN | 310 RETURN | ||
320 Cycle: ! | 320 Cycle: ! | ||
− | 330 | + | 330 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
− | 340 | + | 340 !충전. 정전류, 전압제한(전압을 읽는다.) |
− | 350 | + | 350 !전류 전압을 +로 표기한다. |
− | 360 | + | 360 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
370 Test$="C" | 370 Test$="C" | ||
380 Cmd$="I4" !2A range | 380 Cmd$="I4" !2A range | ||
− | 390 Cmd$=Cmd$&" D "&VAL$(Ic)&"A" !D1.0A | + | 390 Cmd$=Cmd$&" D"&VAL$(Ic)&"A" !D1.0A |
− | 400 Cmd$=Cmd$&" D "&VAL$(Vc)&"V" !D4.2V | + | 400 Cmd$=Cmd$&" D"&VAL$(Vc)&"V" !D4.2V |
410 OUTPUT @Src;Cmd$ !"I4 D1A D4.2V" | 410 OUTPUT @Src;Cmd$ !"I4 D1A D4.2V" | ||
420 OUTPUT @Src;"E" !Operate ON | 420 OUTPUT @Src;"E" !Operate ON | ||
53번째 줄: | 53번째 줄: | ||
530 EXIT IF Volt>=Vc !측정 전압이 충전최고 전압에 도달하면 | 530 EXIT IF Volt>=Vc !측정 전압이 충전최고 전압에 도달하면 | ||
540 END LOOP | 540 END LOOP | ||
− | 550 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | + | 550 OUTPUT @Src;"H" !Operate OFF |
− | + | 560 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
− | + | 570 !충전, 충전 최고전압에 도달하면. 정전압, 전류제한(전류를 읽는다.) | |
− | + | 580 !전류 전압을 +로 표기한다. | |
− | + | 590 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
− | + | 600 Test$="C" | |
− | + | 610 Cmd$="V5" !32V range | |
− | + | 620 Cmd$=Cmd$&" D"&VAL$(Vc)&"V" !D4.2V | |
− | + | 630 Cmd$=Cmd$&" D"&VAL$(Ic)&"A" !D1.0A | |
− | + | 640 OUTPUT @Src;Cmd$ !"V5 D 4.2V D 1.0A" | |
− | + | 650 OUTPUT @Src;"E" !Operate ON | |
− | + | 660 WAIT Wait | |
− | + | 670 Pre_v=Curr | |
− | + | 680 LOOP | |
− | + | 690 Time=(TIMEDATE-T0)/60 | |
− | + | 700 GOSUB Reading !충전전압에 도달되어, 흐르는 전류를 측정한다. | |
− | + | 710 Curr=Data | |
− | + | 720 Volt=Vc | |
− | + | 730 IF Data<Pre_v THEN !측정값이 직전값보다 작으면 | |
− | + | 740 GOSUB Data_process | |
− | + | 750 END IF | |
− | + | 760 EXIT IF Curr<=Ic_end !현재 전류가 종료전류에 도달하면 | |
− | + | 770 END LOOP | |
− | + | 780 OUTPUT @Src;"H" !Operate OFF | |
− | + | 790 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
− | + | 800 !방전 전류는 - 이다 | |
− | + | 810 !전류 전압을 +로 표기한다. | |
− | + | 820 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
− | + | 830 !charge volt limit=Vc | |
− | + | 840 Test$="D" | |
− | + | 850 Cmd$="I4" !2A range | |
− | + | 860 Cmd$=Cmd$&" D"&VAL$(Id)&"A" !D-1.0A | |
− | + | 870 Cmd$=Cmd$&" D"&VAL$(Vc)&"V" !D4.2V | |
− | + | 880 OUTPUT @Src;Cmd$ !"I4 D1A D4.2V" | |
− | + | 890 OUTPUT @Src;"E" !Operate ON | |
− | + | 900 WAIT Wait | |
− | + | 910 Pre_v=Vc | |
− | + | 920 LOOP | |
− | + | 930 Time=(TIMEDATE-T0)/60 | |
− | + | 940 GOSUB Reading !일정 전류 방전 , 전압이 측정된다. | |
− | + | 950 Volt=Data | |
− | + | 960 Curr=Id | |
− | + | 970 IF Data<Pre_v THEN !측정값이 직전값보다 작으면 | |
− | + | 980 GOSUB Data_process | |
− | + | 990 END IF | |
− | + | 1000 EXIT IF Volt<=Vd !현재 전압이 충전전압에 도달하면 | |
− | + | 1010 END LOOP | |
− | + | 1020 OUTPUT @Src;"H" !Operate OFF | |
− | + | 1030 RETURN | |
− | + | 1040 Data_process: ! | |
− | + | 1050 Count=Count+1 | |
− | + | 1060 Y1=(Volt/Vc)*100 !전압 [%] | |
− | + | 1070 Y2=(Curr/Ic)*100 !전류 [%] | |
− | + | 1080 !IF Test$="C" THEN | |
− | + | 1090 ! Y(1)=-Y1 | |
− | + | 1100 ! Y(2)=-Y2 | |
− | + | 1110 !ELSE !"D" | |
− | + | 1120 Y(1)=Y1 | |
− | + | 1130 Y(2)=Y2 | |
− | + | 1140 !END IF | |
− | + | 1150 CONTROL @Strip;SET("POINT LOCATION":Time,"VALUES":Y(*)) | |
− | + | 1160 PRINT "Count=";Count;", T=";PROUND(Time,-4);"m, V=";Volt;"V, I=";Curr;"A" | |
− | + | 1170 OUTPUT @File;Count,PROUND(Time,-4),Volt,Curr | |
− | + | 1180 Pre_v=Data | |
− | + | 1190 RETURN | |
− | + | 1191 Reading: ! | |
− | 1210 !" DV +03.857E+0" 앞에 공백이 하나 추가되어 나온 적이 있다. | + | 1192 LOOP |
− | + | 1193 GOSUB Reading1 | |
− | + | 1194 EXIT IF Data<>0 | |
− | + | 1195 END LOOP | |
− | + | 1196 RETURN | |
− | + | 1200 Reading1: ! | |
− | + | 1210 ! 전압을 측정하면 나타나는 데이터 포맷 | |
− | + | 1220 ! 12345678901234 | |
− | + | 1230 !"DV +03.857E+0" 원래 | |
− | + | 1240 !" DV +03.857E+0" 앞에 공백이 하나 추가되어 나온 적이 있다. | |
− | + | 1250 ! 전압를 측정하면 나타나는 데이터 포맷 | |
− | + | 1260 ! 12345678901234 | |
− | + | 1270 !"DI +0.6310E+0" 원래 | |
− | + | 1280 ENTER @Src;A1$ | |
− | + | 1290 A2$=TRIM$(A1$) !앞뒤 공백 모두 없앤다 | |
− | + | 1300 Data=VAL(A2$[3,13]) | |
− | + | 1310 ! Data=PROUND(Data,-3) !소수점 3자리. 0.1mA까지 측정되면 너무 많은 데이터가 획득되므로 | |
− | + | 1320 Data=DROUND(Data,3) !유효수자 3자리 | |
− | + | 1330 RETURN | |
− | + | 1340 Fileopen: ! | |
− | + | 1350 DIM Filename$[20],Dhms$[8] | |
− | + | 1360 Time$=TIME$(TIMEDATE) !하루가 늦게 계산되므로 하루 추가 +24*3600 | |
− | + | 1370 Date$=DATE$(TIMEDATE) | |
− | + | 1380 Dhms$=Date$[1;2]&Time$[1;2]&Time$[4;2]&Time$[7;2] | |
− | + | 1390 Filename$=Dhms$&".txt" | |
− | + | 1400 CREATE Filename$,1 | |
− | + | 1410 ASSIGN @File TO Filename$;FORMAT ON | |
− | + | 1420 RETURN | |
− | + | 1430 Fileclose:! | |
− | + | 1440 ASSIGN @File TO * | |
− | + | 1450 RETURN | |
− | + | 1460 Battery_select: ! | |
− | + | 1470 DIM Msg$[25] | |
− | + | 1480 INTEGER Size,Length,Btn,Battery_no | |
− | + | 1490 Size=4 | |
− | + | 1500 Length=6 | |
− | + | 1510 ALLOCATE Battery$(Size)[Length] | |
− | + | 1520 Battery$(1)="Li" | |
− | + | 1530 Battery$(2)="NiCd" | |
− | + | 1540 Battery$(3)="3-NiCd" | |
− | + | 1550 Battery$(4)="EDLC" | |
− | + | 1560 Msg$="배터리 종류" | |
− | + | 1570 DIALOG "LIST",Msg$,Btn;SET("ITEMS":Battery$(*),"COLUMNS":Length,"ROWS":Size),RETURN("SELECTION":Battery_no) | |
− | + | 1580 Battery_no=Battery_no+1 | |
− | + | 1590 RETURN | |
− | + | 1600 Inst_close:! | |
− | + | 1610 OUTPUT @Src;"H" !Operate OFF | |
− | + | 1620 RETURN | |
− | + | 1630 Inst_open: ! | |
− | + | 1640 ASSIGN @Src TO 714 !advantest TR6143 | |
− | + | 1650 RETURN | |
− | + | 1660 Stimulus_select: ! | |
− | + | 1670 SELECT Battery$(Battery_no) | |
− | + | 1680 CASE "Li" | |
− | + | 1690 Vc=4.2 !4.2V 충전전압 | |
− | + | 1700 Vd=3.7 !3.2V 방전종료전압 | |
− | + | 1710 Ic=2 !100mA 충전전류 | |
− | + | 1720 Ic_end=1 !충전 종료 전류 | |
− | + | 1730 Id=-2 !100mA 방전전류 음수 | |
− | + | 1740 CASE "NiCd" !표준 1.2V | |
− | + | 1750 Vc=1.3 !1.5V 충전전압 | |
− | + | 1760 Vd=.9 !0.9V 방전종료전압 | |
− | + | 1770 Ic=.001 !100mA 충전전류 | |
− | + | 1780 Ic_end=.0005 !충전 종료 전류 | |
− | + | 1790 Id=-.0001 !100mA 방전전류 음수 | |
− | + | 1800 CASE "3-NiCd" !표준 3.6V | |
− | + | 1810 Vc=4.7 !4.1V 충전전압 | |
− | + | 1820 Vd=1.5 !3.1V 방전종료전압 | |
− | + | 1830 Ic=.0005 !100mA 충전전류 | |
− | + | 1840 Ic_end=.00035 !충전 종료 전류 | |
− | + | 1850 Id=-5.E-5 !100mA 방전전류 음수 | |
− | + | 1860 CASE "" | |
− | + | 1870 Msg$="충전전류[A], 방전전류[A], 충전종료전류[A], " | |
− | + | 1880 END SELECT | |
− | + | 1890 !GOSUB Dialog_string3 | |
− | + | 1900 RETURN | |
− | + | 1910 Chart_var: ! | |
− | + | 1920 X_origin=0 !time=0 | |
− | + | 1930 X_range=12*60 !1 hours *60min | |
− | + | 1940 X_axis_label$="Elapsed Time [Min]" | |
− | + | 1950 Y_origin=-110 | |
− | + | 1960 Y_range=220 | |
− | + | 1970 Y_axis_label$="Volt & Current [%]" | |
− | + | 1980 RETURN | |
+ | 1990 Init_chart: ! | ||
+ | 2000 DIM X_axis_label$[25],Y_axis_label$[25] | ||
+ | 2010 INTEGER Trace_num | ||
+ | 2020 INTEGER Screen_dims(1:2),Gwindow_dims(1:4) | ||
+ | 2030 REAL Y(1:2) !Y(1) Volt, Y(2) Current | ||
+ | 2040 GESCAPE CRT,36;Screen_dims(*) ! Get screen width and height. | ||
2050 ! | 2050 ! | ||
− | 2060 ! Create a stripchart. Make it invisible until all changes are made. | + | 2060 ! Set the dimensions of the graphics window using GESCAPE 33 so |
− | + | 2070 ! that it is centered on the screen. | |
− | + | 2080 ! | |
− | + | 2090 Gwindow_dims(1)=Screen_dims(1)*.25 ! X of upper left. | |
− | + | 2100 Gwindow_dims(2)=Screen_dims(2)*.2 ! Y of upper left. | |
− | + | 2110 Gwindow_dims(3)=Screen_dims(1)*.7 ! Width. | |
− | + | 2120 Gwindow_dims(4)=Screen_dims(2)*.6 ! Height. | |
− | + | 2130 GESCAPE CRT,33;Gwindow_dims(*) ! Set graphics window geometry. | |
− | + | 2140 ! | |
− | + | 2150 GESCAPE CRT,35 ! Move the graphics window to the top. | |
− | + | 2160 ! | |
− | + | 2170 ! Create a stripchart. Make it invisible until all changes are made. | |
− | + | 2180 ! | |
− | + | 2190 ASSIGN @Strip TO WIDGET "STRIPCHART";SET("VISIBLE":0) | |
− | + | 2200 ! | |
− | + | 2210 ! Set the overall attributes. | |
− | + | 2220 ! | |
− | + | 2230 CONTROL @Strip;SET("TITLE":"Data Logger") | |
− | + | 2240 CONTROL @Strip;SET("MINIMUM SCROLL":2) | |
− | + | 2250 CONTROL @Strip;SET("MOVABLE":0) | |
− | + | 2260 CONTROL @Strip;SET("MAXIMIZABLE":0) | |
− | + | 2270 CONTROL @Strip;SET("X":0,"Y":0) | |
− | + | 2280 ! | |
− | + | 2290 ! Size the stripchart to exactly fill the graphics window. | |
2300 ! | 2300 ! | ||
− | 2310 | + | 2310 Vert_borders=26 |
− | 2320 | + | 2320 Horiz_borders=8 |
− | 2330 | + | 2330 Height=Gwindow_dims(4)-Vert_borders |
− | 2340 | + | 2340 Width=Gwindow_dims(3)-Horiz_borders |
− | 2350 CONTROL @Strip;SET(" | + | 2350 CONTROL @Strip;SET("WIDTH":Width,"HEIGHT":Height) |
2360 ! | 2360 ! | ||
− | 2370 RETURN | + | 2370 CONTROL @Strip;SET("CURRENT AXIS":"X") |
− | + | 2380 CONTROL @Strip;SET("ORIGIN":X_origin,"RANGE":X_range) | |
+ | 2390 CONTROL @Strip;SET("AXIS LABEL":X_axis_label$) | ||
+ | 2400 !CONTROL @Strip;SET("DIGITS":5) | ||
+ | 2410 ! | ||
+ | 2420 CONTROL @Strip;SET("CURRENT AXIS":"Y") | ||
+ | 2430 CONTROL @Strip;SET("ORIGIN":Y_origin,"RANGE":Y_range) | ||
+ | 2440 CONTROL @Strip;SET("AXIS LABEL":Y_axis_label$) | ||
+ | 2450 ! | ||
+ | 2460 CONTROL @Strip;SET("VISIBLE":1) ! Show the stripchart. | ||
+ | 2470 ! | ||
+ | 2480 RETURN | ||
+ | 2490 END |
2020년 1월 10일 (금) 09:25 판
10 ! Advantest TR6143
20 ! 2020-01-08 30 ! 기능 및 범위: V3,V4,V5,V6 = 320mV 3.2V 32V 110V(default) 40 ! I-1, I0, I1, I2, I3, I4 = 32uA 320uA 3.2mA 32mA 320mA 2A 50 ! 0.01mV~110V 60 ! 입력숫자: D + dddd unit, 예 D + 0500.0 MA 70 ! 출력 on/off E, H 80 ! response mode slow/fast RP0, PR1 90 ! integration time 10ms, 1PLC, 10PLC, 100PLC = IT2, IT3, IT4, IT5 100 OPTION BASE 1 110 GOSUB Battery_select 120 GOSUB Fileopen 130 GOSUB Inst_open 140 GOSUB Stimulus_select 150 GOSUB Measure 160 ! GOSUB Inst_close 170 GOSUB Fileclose 180 STOP 190 Measure: ! 200 INTEGER Count,I 210 DIM Cmd$[25],A1$[14],A2$[14],Test$[1] 220 OUTPUT @File;"No.,Time[m],Volt[V],Curr[A]" 230 GOSUB Chart_var 240 GOSUB Init_chart 250 Wait=.001 !계측기 세팅을 한 후, 첫 측정에서 측정값이 0이 나오는 현상 때문에 잠시 대기 시간 260 T0=TIMEDATE 270 Count=0 280 FOR I=1 TO 200 !배터리 충방전실험을 5회 실시 290 GOSUB Cycle 300 NEXT I 310 RETURN 320 Cycle: ! 330 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 340 !충전. 정전류, 전압제한(전압을 읽는다.) 350 !전류 전압을 +로 표기한다. 360 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 370 Test$="C" 380 Cmd$="I4" !2A range 390 Cmd$=Cmd$&" D"&VAL$(Ic)&"A" !D1.0A 400 Cmd$=Cmd$&" D"&VAL$(Vc)&"V" !D4.2V 410 OUTPUT @Src;Cmd$ !"I4 D1A D4.2V" 420 OUTPUT @Src;"E" !Operate ON 430 WAIT Wait 440 Pre_v=0 450 LOOP 460 Time=(TIMEDATE-T0)/60 470 GOSUB Reading 480 Volt=Data 490 Curr=Ic 500 IF Data>Pre_v THEN !측정값이 직전값보다 크면 510 GOSUB Data_process 520 END IF 530 EXIT IF Volt>=Vc !측정 전압이 충전최고 전압에 도달하면 540 END LOOP 550 OUTPUT @Src;"H" !Operate OFF 560 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 570 !충전, 충전 최고전압에 도달하면. 정전압, 전류제한(전류를 읽는다.) 580 !전류 전압을 +로 표기한다. 590 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 600 Test$="C" 610 Cmd$="V5" !32V range 620 Cmd$=Cmd$&" D"&VAL$(Vc)&"V" !D4.2V 630 Cmd$=Cmd$&" D"&VAL$(Ic)&"A" !D1.0A 640 OUTPUT @Src;Cmd$ !"V5 D 4.2V D 1.0A" 650 OUTPUT @Src;"E" !Operate ON 660 WAIT Wait 670 Pre_v=Curr 680 LOOP 690 Time=(TIMEDATE-T0)/60 700 GOSUB Reading !충전전압에 도달되어, 흐르는 전류를 측정한다. 710 Curr=Data 720 Volt=Vc 730 IF Data<Pre_v THEN !측정값이 직전값보다 작으면 740 GOSUB Data_process 750 END IF 760 EXIT IF Curr<=Ic_end !현재 전류가 종료전류에 도달하면 770 END LOOP 780 OUTPUT @Src;"H" !Operate OFF 790 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 800 !방전 전류는 - 이다 810 !전류 전압을 +로 표기한다. 820 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 830 !charge volt limit=Vc 840 Test$="D" 850 Cmd$="I4" !2A range 860 Cmd$=Cmd$&" D"&VAL$(Id)&"A" !D-1.0A 870 Cmd$=Cmd$&" D"&VAL$(Vc)&"V" !D4.2V 880 OUTPUT @Src;Cmd$ !"I4 D1A D4.2V" 890 OUTPUT @Src;"E" !Operate ON 900 WAIT Wait 910 Pre_v=Vc 920 LOOP 930 Time=(TIMEDATE-T0)/60 940 GOSUB Reading !일정 전류 방전 , 전압이 측정된다. 950 Volt=Data 960 Curr=Id 970 IF Data<Pre_v THEN !측정값이 직전값보다 작으면 980 GOSUB Data_process 990 END IF 1000 EXIT IF Volt<=Vd !현재 전압이 충전전압에 도달하면 1010 END LOOP 1020 OUTPUT @Src;"H" !Operate OFF 1030 RETURN 1040 Data_process: ! 1050 Count=Count+1 1060 Y1=(Volt/Vc)*100 !전압 [%] 1070 Y2=(Curr/Ic)*100 !전류 [%] 1080 !IF Test$="C" THEN 1090 ! Y(1)=-Y1 1100 ! Y(2)=-Y2 1110 !ELSE !"D" 1120 Y(1)=Y1 1130 Y(2)=Y2 1140 !END IF 1150 CONTROL @Strip;SET("POINT LOCATION":Time,"VALUES":Y(*)) 1160 PRINT "Count=";Count;", T=";PROUND(Time,-4);"m, V=";Volt;"V, I=";Curr;"A" 1170 OUTPUT @File;Count,PROUND(Time,-4),Volt,Curr 1180 Pre_v=Data 1190 RETURN 1191 Reading: ! 1192 LOOP 1193 GOSUB Reading1 1194 EXIT IF Data<>0 1195 END LOOP 1196 RETURN 1200 Reading1: ! 1210 ! 전압을 측정하면 나타나는 데이터 포맷 1220 ! 12345678901234 1230 !"DV +03.857E+0" 원래 1240 !" DV +03.857E+0" 앞에 공백이 하나 추가되어 나온 적이 있다. 1250 ! 전압를 측정하면 나타나는 데이터 포맷 1260 ! 12345678901234 1270 !"DI +0.6310E+0" 원래 1280 ENTER @Src;A1$ 1290 A2$=TRIM$(A1$) !앞뒤 공백 모두 없앤다 1300 Data=VAL(A2$[3,13]) 1310 ! Data=PROUND(Data,-3) !소수점 3자리. 0.1mA까지 측정되면 너무 많은 데이터가 획득되므로 1320 Data=DROUND(Data,3) !유효수자 3자리 1330 RETURN 1340 Fileopen: ! 1350 DIM Filename$[20],Dhms$[8] 1360 Time$=TIME$(TIMEDATE) !하루가 늦게 계산되므로 하루 추가 +24*3600 1370 Date$=DATE$(TIMEDATE) 1380 Dhms$=Date$[1;2]&Time$[1;2]&Time$[4;2]&Time$[7;2] 1390 Filename$=Dhms$&".txt" 1400 CREATE Filename$,1 1410 ASSIGN @File TO Filename$;FORMAT ON 1420 RETURN 1430 Fileclose:! 1440 ASSIGN @File TO * 1450 RETURN 1460 Battery_select: ! 1470 DIM Msg$[25] 1480 INTEGER Size,Length,Btn,Battery_no 1490 Size=4 1500 Length=6 1510 ALLOCATE Battery$(Size)[Length] 1520 Battery$(1)="Li" 1530 Battery$(2)="NiCd" 1540 Battery$(3)="3-NiCd" 1550 Battery$(4)="EDLC" 1560 Msg$="배터리 종류" 1570 DIALOG "LIST",Msg$,Btn;SET("ITEMS":Battery$(*),"COLUMNS":Length,"ROWS":Size),RETURN("SELECTION":Battery_no) 1580 Battery_no=Battery_no+1 1590 RETURN 1600 Inst_close:! 1610 OUTPUT @Src;"H" !Operate OFF 1620 RETURN 1630 Inst_open: ! 1640 ASSIGN @Src TO 714 !advantest TR6143 1650 RETURN 1660 Stimulus_select: ! 1670 SELECT Battery$(Battery_no) 1680 CASE "Li" 1690 Vc=4.2 !4.2V 충전전압 1700 Vd=3.7 !3.2V 방전종료전압 1710 Ic=2 !100mA 충전전류 1720 Ic_end=1 !충전 종료 전류 1730 Id=-2 !100mA 방전전류 음수 1740 CASE "NiCd" !표준 1.2V 1750 Vc=1.3 !1.5V 충전전압 1760 Vd=.9 !0.9V 방전종료전압 1770 Ic=.001 !100mA 충전전류 1780 Ic_end=.0005 !충전 종료 전류 1790 Id=-.0001 !100mA 방전전류 음수 1800 CASE "3-NiCd" !표준 3.6V 1810 Vc=4.7 !4.1V 충전전압 1820 Vd=1.5 !3.1V 방전종료전압 1830 Ic=.0005 !100mA 충전전류 1840 Ic_end=.00035 !충전 종료 전류 1850 Id=-5.E-5 !100mA 방전전류 음수 1860 CASE "" 1870 Msg$="충전전류[A], 방전전류[A], 충전종료전류[A], " 1880 END SELECT 1890 !GOSUB Dialog_string3 1900 RETURN 1910 Chart_var: ! 1920 X_origin=0 !time=0 1930 X_range=12*60 !1 hours *60min 1940 X_axis_label$="Elapsed Time [Min]" 1950 Y_origin=-110 1960 Y_range=220 1970 Y_axis_label$="Volt & Current [%]" 1980 RETURN 1990 Init_chart: ! 2000 DIM X_axis_label$[25],Y_axis_label$[25] 2010 INTEGER Trace_num 2020 INTEGER Screen_dims(1:2),Gwindow_dims(1:4) 2030 REAL Y(1:2) !Y(1) Volt, Y(2) Current 2040 GESCAPE CRT,36;Screen_dims(*) ! Get screen width and height. 2050 ! 2060 ! Set the dimensions of the graphics window using GESCAPE 33 so 2070 ! that it is centered on the screen. 2080 ! 2090 Gwindow_dims(1)=Screen_dims(1)*.25 ! X of upper left. 2100 Gwindow_dims(2)=Screen_dims(2)*.2 ! Y of upper left. 2110 Gwindow_dims(3)=Screen_dims(1)*.7 ! Width. 2120 Gwindow_dims(4)=Screen_dims(2)*.6 ! Height. 2130 GESCAPE CRT,33;Gwindow_dims(*) ! Set graphics window geometry. 2140 ! 2150 GESCAPE CRT,35 ! Move the graphics window to the top. 2160 ! 2170 ! Create a stripchart. Make it invisible until all changes are made. 2180 ! 2190 ASSIGN @Strip TO WIDGET "STRIPCHART";SET("VISIBLE":0) 2200 ! 2210 ! Set the overall attributes. 2220 ! 2230 CONTROL @Strip;SET("TITLE":"Data Logger") 2240 CONTROL @Strip;SET("MINIMUM SCROLL":2) 2250 CONTROL @Strip;SET("MOVABLE":0) 2260 CONTROL @Strip;SET("MAXIMIZABLE":0) 2270 CONTROL @Strip;SET("X":0,"Y":0) 2280 ! 2290 ! Size the stripchart to exactly fill the graphics window. 2300 ! 2310 Vert_borders=26 2320 Horiz_borders=8 2330 Height=Gwindow_dims(4)-Vert_borders 2340 Width=Gwindow_dims(3)-Horiz_borders 2350 CONTROL @Strip;SET("WIDTH":Width,"HEIGHT":Height) 2360 ! 2370 CONTROL @Strip;SET("CURRENT AXIS":"X") 2380 CONTROL @Strip;SET("ORIGIN":X_origin,"RANGE":X_range) 2390 CONTROL @Strip;SET("AXIS LABEL":X_axis_label$) 2400 !CONTROL @Strip;SET("DIGITS":5) 2410 ! 2420 CONTROL @Strip;SET("CURRENT AXIS":"Y") 2430 CONTROL @Strip;SET("ORIGIN":Y_origin,"RANGE":Y_range) 2440 CONTROL @Strip;SET("AXIS LABEL":Y_axis_label$) 2450 ! 2460 CONTROL @Strip;SET("VISIBLE":1) ! Show the stripchart. 2470 ! 2480 RETURN 2490 END