66311B-0-bas.txt
Togotech (토론 | 기여)님의 2020년 4월 8일 (수) 14:27 판 (새 문서: 66311B-0-bas.txt <pre> 10 ! 2018-10-10 measure1 !순간전류 측정 20 ! 2019-09-20 measure2 !전압상승에 따른 전류측정 30 ! 2019-12-24 measure3 !전류...)
10 ! 2018-10-10 measure1 !순간전류 측정 20 ! 2019-09-20 measure2 !전압상승에 따른 전류측정 30 ! 2019-12-24 measure3 !전류상승에 따른 전압측정 40 ! 2019-12-24 measure4 !시간에 따른 전류 전압 측정 50 OPTION BASE 1 60 ASSIGN @Ps TO 705 70 OUTPUT @Ps;"*RST" 80 OUTPUT @Ps;"*IDN?" 90 ENTER @Ps;Id$ 100 DISP Id$ 110 GOSUB Fileopen 120 GOSUB Measure1 !아니면 Measure2,3 130 ! GOSUB Measure2 !아니면 Measure1,3 140 ! GOSUB Measure4 !아니면 Measure1,2 150 GOSUB Fileclose 160 STOP 161 Measure1: !펄스 측정 162 !sec minimum sampling interval 15usec, x 4001 = 60msec 163 Volt=.6 164 INTEGER Nop,I 165 Nop=4001 !max buffer size = 4096 166 Time=10 !sec 167 Rate=Time/(Nop-1) !>15usec 이상이어야 한다. 168 ALLOCATE Yarray(Nop),Xarray(Nop) 169 DIM Id$[50] 171 OUTPUT @Ps;"VOLT 0.6" 172 OUTPUT @Ps;"CURR 1" 173 OUTPUT @Ps;"SENS:CURR:DET ACDC" ! Set meter to ACDC(펄스 측정에 최적화) 174 OUTPUT @Ps;"SENS:CURR:RANG MAX" !!!!! MIN=0.02A, MAX=3A !!!!!!!!!!!! 175 OUTPUT @Ps;"TRIG:ACQ:SOUR INT" ! Set to trigger on pulse 176 OUTPUT @Ps;"SENS:FUNC ""CURR""" ! Acquire current reading 177 OUTPUT @Ps;"TRIG:ACQ:LEV:CURR 0.01 " !!!!! Trigger at 10uA 최소 !!!!!!!!!!!!! 178 OUTPUT @Ps;"TRIG:ACQ:SLOPE:CURR POS" ! Trigger on positive slope 179 OUTPUT @Ps;"TRIG:ACQ:HYST:CURR .005" ! Set hysteresis of trigger !!!!!!!!!!!!!!! 180 OUTPUT @Ps;"SENS:SWE:TINT ";Rate ! Set sample time interval to (rate) 181 OUTPUT @Ps;"SENS:SWE:POIN ";Nop ! Set number of measurement samples in sweep 182 OUTPUT @Ps;"SENS:SWE:OFFS:POIN 100 " ! Number of sample points before trigger 184 OUTPUT @Ps;"INIT:NAME ACQ" ! Initiate the trigger system. 185 OUTPUT @Ps;"OUTP ON" 194 ! Controller now waits for trigger to occur. 204 OUTPUT @Ps;"FETCH:ARRAY:CURR?" ! Get the data after measurement completes. 214 ENTER @Ps;Yarray(*) 224 OUTPUT @Ps;"VOLT 0" 234 ! OUTPUT @Ps;"OUTP OFF" 244 GOSUB Reading1 254 Y_max=Curr_max !for chart 264 OUTPUT @File;"No.,Time[s],Volt[V],Curr[A]" 274 GOSUB Chart_var 284 GOSUB Init_chart 294 FOR I=1 TO Nop 304 Xarray(I)=(I-1)*Rate 314 Y(1)=Yarray(I) 324 CONTROL @Strip;SET("POINT LOCATION":Xarray(I),"VALUES":Y(*)) 334 NEXT I 344 FOR I=1 TO Nop 354 OUTPUT @File;I,Xarray(I),Volt,Yarray(I) 364 NEXT I 374 RETURN 384 Measure4: ! 15V 3A wait 없다, 394 Max_power=1 404 Set_curr=1 414 Set_volt=.6 424 OUTPUT @Ps;"SOUR:VOLT ";Set_volt 434 OUTPUT @Ps;"CURR ";Set_curr 444 OUTPUT @Ps;"SENS:CURR:RANG 3" !0.02 low 454 OUTPUT @File;"No.,Time[s],Volt[V],Curr[A],Resi[ohm],Powe[W]" 464 OUTPUT @Ps;"OUTP ON" 474 I=0 484 T0=TIMEDATE 494 LOOP 504 I=I+1 514 Time=(TIMEDATE-T0) 524 GOSUB Reading2 !output=volt,curr 534 IF Curr=0 THEN 544 Curr=1.E-6 554 ELSE 564 END IF 574 Resi=Volt/Curr 584 Powe=Volt*Curr 594 ! PRINT "Count=";I; 604 ! PRINT ", T=";PROUND(Time,-1); 614 ! PRINT "s, V=";PROUND(Volt,-3); 624 ! PRINT "V, C=";PROUND(Curr,-3); 634 ! PRINT "A, R=";PROUND(Resi,-3); 644 ! PRINT "ohm, P=";PROUND(Powe,-3); 654 ! PRINT "W" 664 OUTPUT @File;I,Time,Volt,Curr,Resi,Powe 674 EXIT IF Powe>Max_power 684 EXIT IF Set_volt>15 694 EXIT IF Volt>15.1 704 EXIT IF Curr>.5 714 EXIT IF Time>100 724 END LOOP 734 OUTPUT @Ps;"VOLT 0" 744 OUTPUT @Ps;"OUTP OFF" 754 RETURN 764 Measure3: ! 15V 3A 774 Max_power=10 !2W 이상이면 종료 784 Set_curr=0 794 Set_curr_step=.005 804 OUTPUT @Ps;"SOUR:VOLT 15" 814 OUTPUT @Ps;"CURR 0" 824 OUTPUT @Ps;"SENS:CURR:RANG 3" !0.02 low 834 OUTPUT @File;"No.,Time[s],Volt[V],Curr[A],Resi[ohm],Powe[W]" 844 OUTPUT @Ps;"OUTP ON" 854 I=0 864 T0=TIMEDATE 874 LOOP 884 I=I+1 894 Set_curr=Set_curr+Set_curr_step 904 Time=(TIMEDATE-T0) 914 OUTPUT @Ps;"CURR ";Set_curr 924 GOSUB Reading2 !output=volt,curr 934 IF Curr=0 THEN 944 Curr=1.E-6 954 ELSE 964 END IF 974 Resi=Volt/Curr 984 Powe=Volt*Curr 994 PRINT "Count=";I; 1004 PRINT ", T=";PROUND(Time,-1); 1014 PRINT "s, V=";PROUND(Volt,-3); 1024 PRINT "V, C=";PROUND(Curr,-3); 1034 PRINT "A, R=";PROUND(Resi,-3); 1044 PRINT "ohm, P=";PROUND(Powe,-3); 1054 PRINT "W" 1064 OUTPUT @File;I,Time,Volt,Curr,Resi,Powe 1074 IF Curr>.02 THEN 1084 OUTPUT @Ps;"SENS:CURR:RANG 3" 1094 END IF 1104 WAIT 1 1114 EXIT IF Powe>Max_power 1124 EXIT IF Set_volt>15 1134 EXIT IF Volt>15 1144 EXIT IF Curr>3 1154 END LOOP 1164 OUTPUT @Ps;"VOLT 0" 1174 OUTPUT @Ps;"OUTP OFF" 1184 RETURN 1194 Measure2: ! 15V 3A 1204 Max_power=10 !2W 이상이면 종료 1214 Set_volt=0 1224 Set_volt_step=.01 1234 OUTPUT @Ps;"SOUR:CURR 3" 1244 OUTPUT @Ps;"SENS:CURR:RANG 3 " !0.02 low 1254 OUTPUT @File;"No.,Time[s],Volt[V],Curr[A],Resi[ohm],Powe[W]" 1264 OUTPUT @Ps;"OUTP ON" 1274 I=0 1284 T0=TIMEDATE 1294 LOOP 1304 I=I+1 1314 Set_volt=Set_volt+Set_volt_step 1324 Time=(TIMEDATE-T0) 1334 OUTPUT @Ps;"VOLT ";Set_volt 1344 GOSUB Reading2 !output=volt,curr 1354 IF Curr=0 THEN 1364 Curr=1.E-6 1374 ELSE 1384 END IF 1394 Resi=Volt/Curr 1404 Powe=Volt*Curr 1414 PRINT "Count=";I; 1424 PRINT ", T=";PROUND(Time,-1); 1434 PRINT "s, V=";PROUND(Volt,-3); 1444 PRINT "V, C=";PROUND(Curr,-3); 1454 PRINT "A, R=";PROUND(Resi,-3); 1464 PRINT "ohm, P=";PROUND(Powe,-3); 1474 PRINT "W" 1484 OUTPUT @File;I,Time,Volt,Curr,Resi,Powe 1494 IF Curr>.02 THEN 1504 OUTPUT @Ps;"SENS:CURR:RANG 3" 1514 END IF 1524 WAIT 1 1534 EXIT IF Powe>Max_power 1544 EXIT IF Set_volt>15 1554 EXIT IF Volt>15 1564 EXIT IF Curr>3 1574 END LOOP 1584 OUTPUT @Ps;"VOLT 0" 1594 OUTPUT @Ps;"OUTP OFF" 1604 RETURN 1614 Reading1: ! 1624 OUTPUT @Ps;"FETCH:CURR:MAX?" 1634 ENTER @Ps;Curr_max 1644 OUTPUT @Ps;"FETCH:CURR:MIN?" 1654 ENTER @Ps;Curr_min 1664 OUTPUT @Ps;"FETCH:CURR:HIGH?" 1674 ENTER @Ps;Curr_high 1684 OUTPUT @Ps;"FETCH:CURR:LOW?" 1694 ENTER @Ps;Curr_low 1704 OUTPUT @File;"Max Curent = ";Curr_max 1714 OUTPUT @File;"Min Curent = ";Curr_min 1724 OUTPUT @File;"High Curent = ";Curr_high 1734 OUTPUT @File;"Low Curent = ";Curr_low 1744 RETURN 1754 Reading2: ! 1764 OUTPUT @Ps;"MEAS:VOLT?" 1774 ENTER @Ps;Volt 1784 OUTPUT @Ps;"MEAS:CURR?" 1794 ENTER @Ps;Curr 1804 RETURN 1814 Fileopen: ! 1824 DIM Filename$[20],Dhms$[8] 1834 Time$=TIME$(TIMEDATE) 1844 Date$=DATE$(TIMEDATE) 1854 Dhms$=Date$[1;2]&Time$[1;2]&Time$[4;2]&Time$[7;2] 1864 Filename$=Dhms$&".txt" 1874 CREATE Filename$,1 1884 ASSIGN @File TO Filename$;FORMAT ON 1894 RETURN 1904 Fileclose:! 1914 ASSIGN @File TO * 1924 RETURN 1934 Chart_var: ! 1944 X_origin=0 1954 X_range=Rate*Nop 1964 X_axis_label$="Time [sec]" 1974 Y_origin=0 1984 Y_range=Y_max 1994 Y_axis_label$="Curr [A]" 2004 RETURN 2014 Init_chart: ! 2024 DIM X_axis_label$[25],Y_axis_label$[25] 2034 INTEGER Trace_num 2044 INTEGER Screen_dims(1:2),Gwindow_dims(1:4) 2054 REAL Y(1:1) !챠트가 하나 2064 GESCAPE CRT,36;Screen_dims(*) ! Get screen width and height. 2074 ! 2084 ! Set the dimensions of the graphics window using GESCAPE 33 so 2094 ! that it is centered on the screen. 2104 ! 2114 Gwindow_dims(1)=Screen_dims(1)*.25 ! X of upper left. 2124 Gwindow_dims(2)=Screen_dims(2)*.2 ! Y of upper left. 2134 Gwindow_dims(3)=Screen_dims(1)*.7 ! Width. 2144 Gwindow_dims(4)=Screen_dims(2)*.6 ! Height. 2154 GESCAPE CRT,33;Gwindow_dims(*) ! Set graphics window geometry. 2164 ! 2174 GESCAPE CRT,35 ! Move the graphics window to the top. 2184 ! 2194 ! Create a stripchart. Make it invisible until all changes are made. 2204 ! 2214 ASSIGN @Strip TO WIDGET "STRIPCHART";SET("VISIBLE":0) 2224 ! 2234 ! Set the overall attributes. 2244 ! 2254 CONTROL @Strip;SET("TITLE":"Data Logger") 2264 CONTROL @Strip;SET("MINIMUM SCROLL":2) 2274 CONTROL @Strip;SET("MOVABLE":0) 2284 CONTROL @Strip;SET("MAXIMIZABLE":0) 2294 CONTROL @Strip;SET("X":0,"Y":0) 2304 ! 2314 ! Size the stripchart to exactly fill the graphics window. 2324 ! 2334 Vert_borders=26 2344 Horiz_borders=8 2354 Height=Gwindow_dims(4)-Vert_borders 2364 Width=Gwindow_dims(3)-Horiz_borders 2374 CONTROL @Strip;SET("WIDTH":Width,"HEIGHT":Height) 2384 ! 2394 CONTROL @Strip;SET("CURRENT AXIS":"X") 2404 CONTROL @Strip;SET("ORIGIN":X_origin,"RANGE":X_range) 2414 CONTROL @Strip;SET("AXIS LABEL":X_axis_label$) 2424 !CONTROL @Strip;SET("DIGITS":5) 2434 ! 2444 CONTROL @Strip;SET("CURRENT AXIS":"Y") 2454 CONTROL @Strip;SET("ORIGIN":Y_origin,"RANGE":Y_range) 2464 CONTROL @Strip;SET("AXIS LABEL":Y_axis_label$) 2474 ! 2484 CONTROL @Strip;SET("VISIBLE":1) ! Show the stripchart. 2494 ! 2504 RETURN 2514 END