PT301-01.BAS
Togotech (토론 | 기여)님의 2024년 1월 29일 (월) 15:43 판 (새 문서: <a href="../e-load/PT301-01.txt">(PT301-01.txt)</a> PT301-01.BAS - 이 페이지 <pre> 10 ! mode = 1 volt, 2 time, 3 step time, 4 varistor 20 ! 2024-01-29 30 CLEAR SC...)
<a href="../e-load/PT301-01.txt">(PT301-01.txt)</a> PT301-01.BAS - 이 페이지
10 ! mode = 1 volt, 2 time, 3 step time, 4 varistor 20 ! 2024-01-29 30 CLEAR SCREEN 40 OPTION BASE 1 50 GOSUB Fileopen 60 GOSUB Inst_open 70 GOSUB Measure 80 GOSUB Inst_close 90 GOSUB Fileclose 100 STOP 110 Measure: ! 120 ! OUTPUT @Pt301;"" 130 OUTPUT @File;"No.,Time[s],Load Curr[A],Burden Volt[V], Ripple V[mV], Noise V[mV]" 140 Curr_start=0 !!!!!!!!!!!!!!!!!!! 150 Curr_stop=1 !!!!!!!!!!!!!!!!!!! 160 Nop=101 170 Volt=Volt_start 180 I=0 190 GOSUB Chart_var 200 GOSUB Init_chart 210 T0=TIMEDATE 220 LOOP 230 I=I+1 240 Curr_set=Curr_start+(Curr_stop-Curr_start)*(I-1)/(Nop-1) 250 OUTPUT @Pt301;"A";Curr_set !!!!!!!!!!!!!!!!!!!!!!!!!! 260 Time=TIMEDATE-T0 270 WAIT .2 !!!!!!!!!!!!!!!!!!!!!!!! 280 GOSUB Reading 290 IF I=1 THEN Volt_save=Volt 300 ! X(1)=Curr_set 310 Y(1)=Ripp 320 CONTROL @Strip;SET("POINT LOCATION":Curr_set,"VALUES":Y(*)) !!!!!!!!!!!!!!!!!!!!!!!!!!! 330 PRINT "Count=";I;", T=";PROUND(Time,-2);" I=";Curr;", V=";Volt;", Ripple=";Ripp;", Noise=";Nois 340 OUTPUT @File;I,Time,Curr,Volt,Ripp,Nois 350 EXIT IF ABS((Volt-Volt_save)/Volt_save)*100>50 !직전 전압에 비해 50% 이상 변하면 360 EXIT IF Curr>Max_curr+.1 370 EXIT IF Volt>Max_volt+1 380 EXIT IF Ripp>2000 390 EXIT IF Nois>2000 400 EXIT IF I=Nop 410 Volt_save=Volt 420 END LOOP 430 RETURN 440 Reading: ! 450 OUTPUT @Pt301;"M0" 460 ENTER @Pt301;Curr 470 OUTPUT @Pt301;"M1" 480 ENTER @Pt301;Volt 490 OUTPUT @Pt301;"M3" 500 ENTER @Pt301;Ripp 510 OUTPUT @Pt301;"M4" 520 ENTER @Pt301;Nois 530 RETURN 540 Fileopen: ! 550 DIM Filename$[20],Dhms$[8] 560 Time$=TIME$(TIMEDATE) 570 Date$=DATE$(TIMEDATE) 580 Dhms$=Date$[1;2]&Time$[1;2]&Time$[4;2]&Time$[7;2] 590 Filename$=Dhms$&".txt" 600 CREATE Filename$,1 610 ASSIGN @File TO Filename$;FORMAT ON 620 RETURN 630 Fileclose: ! 640 ASSIGN @File TO * 650 RETURN 660 Inst_close: ! 670 OUTPUT @Pt301;"A";0 !!!!!!!!!!!!!!!!!!!!!!!!!! 680 RETURN 690 Inst_open: ! 700 DIM Id$[25] 710 ASSIGN @Pt301 TO 702 720 OUTPUT @Pt301;"V" !check version 730 ENTER @Pt301;Id$ 740 DISP Id$ 750 Max_volt=VAL(Id$[8;3]) 760 Max_curr=VAL(Id$[13;3]) 770 RETURN 780 Chart_var: ! 790 X_origin=Curr_start 800 X_range=Curr_stop-Curr_start 810 X_axis_label$="Current [A]" 820 Y_origin=0 !!!!!!!!!!!!!!!!!!!!!!!!!!!! 830 Y_range=Max_volt !!!!!!!!!!!!!!!!!!!!!!! 840 Y_axis_label$="Ripple [mV]" !!!!!!!!!!!! 850 RETURN 860 Init_chart: ! 870 DIM X_axis_label$[25],Y_axis_label$[25] 880 INTEGER Trace_num 890 INTEGER Screen_dims(1:2),Gwindow_dims(1:4) 900 REAL Y(1:1) 910 GESCAPE CRT,36;Screen_dims(*) ! Get screen width and height. 920 ! 930 ! Set the dimensions of the graphics window using GESCAPE 33 so 940 ! that it is centered on the screen. 950 ! 960 Gwindow_dims(1)=Screen_dims(1)*.25 ! X of upper left. 970 Gwindow_dims(2)=Screen_dims(2)*.01 ! Y of upper left. 980 Gwindow_dims(3)=Screen_dims(1)*.7 ! Width. 990 Gwindow_dims(4)=Screen_dims(2)*.6 ! Height. 1000 GESCAPE CRT,33;Gwindow_dims(*) ! Set graphics window geometry. 1010 ! 1020 GESCAPE CRT,35 ! Move the graphics window to the top. 1030 ! 1040 ! Create a stripchart. Make it invisible until all changes are made. 1050 ! 1060 ASSIGN @Strip TO WIDGET "STRIPCHART";SET("VISIBLE":0) 1070 ! 1080 ! Set the overall attributes. 1090 ! 1100 CONTROL @Strip;SET("TITLE":"Data Logger") 1110 CONTROL @Strip;SET("MINIMUM SCROLL":2) 1120 CONTROL @Strip;SET("MOVABLE":0) 1130 CONTROL @Strip;SET("MAXIMIZABLE":0) 1140 CONTROL @Strip;SET("X":0,"Y":0) 1150 ! 1160 ! Size the stripchart to exactly fill the graphics window. 1170 ! 1180 Vert_borders=26 1190 Horiz_borders=8 1200 Height=Gwindow_dims(4)-Vert_borders 1210 Width=Gwindow_dims(3)-Horiz_borders 1220 CONTROL @Strip;SET("WIDTH":Width,"HEIGHT":Height) 1230 ! 1240 CONTROL @Strip;SET("CURRENT AXIS":"X") 1250 CONTROL @Strip;SET("ORIGIN":X_origin,"RANGE":X_range) 1260 CONTROL @Strip;SET("AXIS LABEL":X_axis_label$) 1270 !CONTROL @Strip;SET("DIGITS":5) 1280 ! 1290 CONTROL @Strip;SET("CURRENT AXIS":"Y") 1300 CONTROL @Strip;SET("ORIGIN":Y_origin,"RANGE":Y_range) 1310 CONTROL @Strip;SET("AXIS LABEL":Y_axis_label$) 1320 ! 1330 CONTROL @Strip;SET("VISIBLE":1) ! Show the stripchart. 1340 ! 1350 RETURN 1360 END