- GOTO SCREEN begin *>SCREEN begin - PUT HUGE TEXT AT (2,1): "PACIFIC" - PUT HUGE TEXT AT (1,2): "SCIENTIFIC" - DELAY 2000 - CLEAR GRAPHICS SCREEN - PUT LARGE TEXT AT (9,2): "AND" - DELAY 1000 - CLEAR GRAPHICS SCREEN - PUT HUGE TEXT AT (3,1): "EASON" - PUT HUGE TEXT AT (1,2): "TECHNOLOGY" - DELAY 2000 - CLEAR GRAPHICS SCREEN - PUT LARGE TEXT AT (6,1): "TOGETHER" - PUT LARGE TEXT AT (7,2): "BECOME" - PUT LARGE TEXT AT (5,3): "INTELLIGENT" - PUT LARGE TEXT AT (7,4): "MOTION" - DELAY 2000 - GOTO SCREEN demo *>SCREEN demo - PUT TEXT AT (1,1): "This demonstration program is meant to" - PUT TEXT AT (1,2): "show you what you can do with motion" - PUT TEXT AT (1,3): "when you put an intelligent operator" - PUT TEXT AT (1,4): "interface on the front end of quality" - PUT TEXT AT (1,5): "motion control products. Coordinating" - PUT TEXT AT (1,6): "two controllers with different motion" - PUT TEXT AT (1,7): "languages would normally be difficult." - SOFTKEY (6) "MORE" GOTO SCREEN demo1 - SOFTKEY WAIT *>SCREEN QUICK demo1 - CLEAR SCREEN - PUT TEXT AT (1,1): "Allowing an operator to use both axes" - PUT TEXT AT (1,2): "where these differences are not apparent" - PUT TEXT AT (1,3): "would be even more difficult." - PUT TEXT AT (1,4): "An intelligent front end controller" - PUT TEXT AT (1,5): "like the EASON TECHNOLOGY Model 1100" - PUT TEXT AT (1,6): "make the solution not only possible, but" - PUT TEXT AT (1,7): "also elegant." - SOFTKEY (6) "MORE" GOTO SCREEN demo2 - SOFTKEY WAIT *>SCREEN demo2 - CLEAR SCREEN - PUT TEXT AT (1,1): "This program displays a list of part" - PUT TEXT AT (1,2): "numbers. The operator can move a high-" - PUT TEXT AT (1,3): "lighted box around the screen by using" - PUT TEXT AT (1,4): "the ARROW keys to select a part number." - PUT TEXT AT (1,5): "Press ENTER to accept the part. The" - PUT TEXT AT (1,6): "operator will then be guided through" - PUT TEXT AT (1,7): "operations that make the part." - SOFTKEY (6) " RUN" GOTO SCREEN scr1 - SOFTKEY WAIT *>SCREEN scr1 - PUT TEXT AT (2,1): "EASON TECHNOLOGY - PACIFIC SCIENTIFIC" - PUT TEXT AT (10,2): "Demonstration Program" - PUT TEXT AT (4,3): "5240 - Control 5240 drive directly" - PUT TEXT AT (4,4): "5345 - Control 5245 drive directly" - PUT TEXT AT (4,5): "EXIT - Restart program" - PUT TEXT AT (4,6): "RUN - Run machine demo program" - SOFTKEY (1) "5240" GOTO SCREEN go5240 - SOFTKEY (2) "5345" GOTO SCREEN go5345 - SOFTKEY (5) "EXIT" GOTO SCREEN begin - SOFTKEY (6) " RUN" GOTO SCREEN scr2a - GOSUB LABEL setupvar - SOFTKEY WAIT - COMMENT "******* RUN MAIN PROGRAM ****************************" *>SCREEN scr2a - PUT TEXT AT (11,2): "INITIALIZING DRIVES" - PUT LARGE TEXT AT (3,3): "PLEASE STAND BY." - GOSUB LABEL init5240 - GOSUB LABEL init5345 - GOTO SCREEN scr2 *>SCREEN scr2 - PUT TEXT AT (6,1): "USE ARROW KEYS TO CHOOSE PART" - PUT TEXT AT (1,2): "2000123A" - PUT TEXT AT (1,3): "2000134A" - PUT TEXT AT (1,4): "2000144A" - PUT TEXT AT (1,5): "2000145A" - PUT TEXT AT (1,6): "2000147A" - PUT TEXT AT (11,2): "2000150C" - PUT TEXT AT (11,3): "2000151A" - PUT TEXT AT (11,4): "2000155B" - PUT TEXT AT (11,5): "2000156A" - PUT TEXT AT (11,6): "2000157A" - PUT TEXT AT (21,2): "2000158D" - PUT TEXT AT (21,3): "2000200A" - PUT TEXT AT (21,4): "2000210A" - PUT TEXT AT (21,5): "2000211B" - PUT TEXT AT (21,6): "2000221B" - PUT TEXT AT (31,2): "2000223B" - PUT TEXT AT (31,3): "2000224A" - PUT TEXT AT (31,4): "2000225A" - PUT TEXT AT (31,5): "2000239C" - PUT TEXT AT (31,6): "2000244A" - PUT TEXT AT (8,7): "Press ENTER to select." - GOSUB LABEL getpart - GOTO SCREEN scr3 *>SCREEN scr3 - PUT TEXT AT (3,1): "Part:" - PUT TEXT AT (3,2): "Has the following characteristics:" - PUT TEXT AT (9,1): part$ - PUT TEXT AT (9,3): "Number of holes: " - PUT NUMBER holes AT (26,3) USING "##" - PUT TEXT AT (7,4): "Starting location: " - PUT NUMBER startpos AT (26,4) USING "#.###" - PUT TEXT AT (4,5): "Hole to hole spacing: " - PUT NUMBER holesp AT (26,5) USING "#.###" - PUT TEXT AT (15,7): "Is this OK?" - SOFTKEY (5) " YES" GOTO SCREEN scr7 - SOFTKEY (6) " NO" GOTO SCREEN scr4 - SOFTKEY WAIT *>SCREEN scr4 part$="CUSTOM" - PUT TEXT AT (3,1): "Enter the number of holes to drill." - PUT TEXT AT (3,2): "(Enter a number between 1 and 10.)" - PUT TEXT AT (3,7): "Enter number then press ENTER." - GET NUMBER holes AT (20,4) USING "##" DEFAULT holes if (holes>0) and (holes<11) then goto scr5 - CLEAR SCREEN - PUT LARGE TEXT AT (5,2): "OUT OF RANGE" - DELAY 2000 - GOTO SCREEN scr4 *>SCREEN scr5 - PUT TEXT AT (3,1): "Enter the starting location:" - PUT TEXT AT (3,2): "(Enter a distance between 0 and 1.9" - PUT TEXT AT (3,3): "inches)." - PUT TEXT AT (21,5): "inches" - PUT TEXT AT (3,7): "Enter number then press ENTER." - GET NUMBER startpos AT (15,5) USING "#.###" DEFAULT startpos if (startpos>0) and (startpos<2) then goto scr6 - CLEAR SCREEN - PUT LARGE TEXT AT (5,2): "OUT OF RANGE" - DELAY 2000 - GOTO SCREEN scr5 *>SCREEN scr6 - PUT TEXT AT (3,1): "Enter the hole to hole spacing:" - PUT TEXT AT (3,2): "(Enter a number between 0 and 1.9" - PUT TEXT AT (3,3): "inches)." - PUT TEXT AT (3,7): "Enter number then press ENTER." - PUT TEXT AT (21,5): "inches" - GET NUMBER holesp AT (15,5) USING "#.###" DEFAULT holesp if (holesp>0) and (holesp<2) then goto scr3 - CLEAR SCREEN - PUT LARGE TEXT AT (4,2): "OUT OF RANGE" - DELAY 2000 - GOTO SCREEN scr6 *>SCREEN scr7 - PUT LARGE TEXT AT (1,1): "PART # : " - PUT LARGE TEXT AT (10,1): part$ - PUT TEXT AT (16,4): "Parts made: " - PUT TEXT AT (28,4): numparts% - PUT TEXT AT (1,5): "Average time to make part: " - PUT TEXT AT (33,5): "SECONDS" - PUT TEXT AT (28,5): avgtime% - SOFTKEY (1) " GO" GOTO SCREEN scr8 - SOFTKEY (5) " NEW" GOTO SCREEN scr2 - SOFTKEY (6) "EXIT" GOTO SCREEN begin - SOFTKEY WAIT *>SCREEN scr8 - PUT LARGE TEXT AT (1,1): "PART # : " - PUT LARGE TEXT AT (10,1): part$ - PUT TEXT AT (16,4): "Making part." - GOSUB LABEL makepart - GOTO SCREEN scr7 - COMMENT "******* RUN 5240 PROGRAM ****************************" *>SCREEN go5240 - PUT TEXT AT (2,2): "Attempting to establish communications" - PUT TEXT AT (2,3): "with the PacSci MODEL 5240." - PUT LARGE TEXT AT (3,3): "PLEASE STAND BY." - GOSUB LABEL init5240 - GOTO SCREEN r5240 *>SCREEN r5240 - PUT TEXT AT (1,1): "Direct control of" - PUT TEXT AT (1,2): "PACIFIC SCIENTIFIC" - PUT LARGE TEXT AT (11,1): "MODEL 5240" - PUT TEXT AT (3,5): "POSITION:" - LABEL r5240a - GOSUB LABEL disp5240 - PUT LARGE NUMBER posit AT (8,3) USING "+#.###" - PUT TEXT AT (29,5): "INCHES" - SOFTKEY (1) "SETUP" GOTO SCREEN conf5240 - SOFTKEY (2) "ZERO" GOTO SCREEN zer5240 - SOFTKEY (3) "DIST" GOTO SCREEN d5240 - SOFTKEY (4) "MOVE" GOTO SCREEN move5240 - SOFTKEY (5) "STOP" GOTO SCREEN stp5240 - SOFTKEY (6) "EXIT" GOTO SCREEN scr1 - SOFTKEY CHECK - GOTO LABEL r5240a *>SCREEN conf5240 - PUT TEXT AT (2,2): "Set-up PACIFIC SCIENTIFIC MODEL 5240" - PUT TEXT AT (2,3): "motion parameters. Select a function." - SOFTKEY (1) "ACCEL" GOTO SCREEN a5240 - SOFTKEY (2) "SPEED" GOTO SCREEN s5240 - SOFTKEY (3) " JOG" GOTO SCREEN j5240 - SOFTKEY (4) "MODE" GOTO SCREEN m5240 - SOFTKEY (6) "EXIT" GOTO SCREEN r5240 - SOFTKEY WAIT *>SCREEN a5240 - PUT TEXT AT (4,2): "Enter accleration in INCHES/SEC^2" - PUT TEXT AT (4,7): "Press ENTER to accept a new value." - GET NUMBER accel AT (18,4) USING "##.##" DEFAULT accel - GOSUB LABEL acc5240 - GOTO SCREEN conf5240 *>SCREEN s5240 - PUT TEXT AT (8,2): "Enter speed in INCHES/SEC" - PUT TEXT AT (4,7): "Press ENTER to accept a new value." - GET NUMBER speed AT (18,4) USING "##.##" DEFAULT speed - GOSUB LABEL spee5240 - GOTO SCREEN conf5240 *>SCREEN j5240 - PUT TEXT AT (1,1): "Direct control of" - PUT TEXT AT (1,2): "PACIFIC SCIENTIFIC" - PUT LARGE TEXT AT (11,1): "MODEL 5240" - PUT TEXT AT (3,5): "POSITION:" - PUT TEXT AT (3,3): "JOGGING 5240" - PUT TEXT AT (29,5): "INCHES" - SOFTKEY (1) " UP" GOTO SCREEN j5240a - SOFTKEY (2) "DOWN" GOTO SCREEN j5240a - SOFTKEY (6) "EXIT" GOTO SCREEN rx5240 - LABEL j5240a - GOSUB LABEL disp5240 - PUT LARGE NUMBER posit AT (8,3) USING "+#.###" - GOSUB LABEL jog5240 - SOFTKEY CHECK - GOTO LABEL j5240a - LABEL rx5240 - COM: PUT COM 1 TEXT "S" - GOTO SCREEN conf5240 *>SCREEN m5240 - PUT TEXT AT (3,2): "Select DISTANCE mode." - PUT TEXT AT (3,4): "INCR - Select INCREMENTAL motion mode" - PUT TEXT AT (3,5): "ABS - Select ABSOLUTE motion mode" - SOFTKEY (1) "INCR" GOTO SCREEN mi5240 - SOFTKEY (2) "ABS" GOTO SCREEN ma5240 - SOFTKEY WAIT *>SCREEN QUICK mi5240 - GOSUB LABEL mid5240 - GOTO SCREEN conf5240 *>SCREEN QUICK ma5240 - GOSUB LABEL mad5240 - GOTO SCREEN conf5240 *>SCREEN QUICK zer5240 - COM: PUT COM 1 TEXT "Z 0" - GOTO SCREEN r5240 *>SCREEN d5240 - PUT TEXT AT (8,2): "Enter distance in INCHES:" - PUT TEXT AT (4,7): "Press ENTER to accept a new value." - GET NUMBER dist AT (18,4) USING "+#.###" DEFAULT dist - GOSUB LABEL dist5240 - GOTO SCREEN r5240 *>SCREEN QUICK move5240 - GOSUB LABEL mode5240 - COM: PUT COM 1 TEXT accel$ - COM: PUT COM 1 TEXT speed$ - COM: PUT COM 1 TEXT dist$ - GOTO SCREEN r5240 *>SCREEN QUICK stp5240 - COM: PUT COM 1 TEXT "S" - GOTO SCREEN r5240 - COMMENT "******* RUN 5345 PROGRAM ****************************" *>SCREEN go5345 - PUT TEXT AT (2,2): "Attempting to establish communications" - PUT TEXT AT (2,3): "with the PacSci MODEL 5345." - PUT LARGE TEXT AT (3,3): "PLEASE STAND BY." - GOSUB LABEL init5345 - GOTO SCREEN r5345 *>SCREEN r5345 - PUT TEXT AT (1,1): "Direct control of" - PUT TEXT AT (1,2): "PACIFIC SCIENTIFIC" - PUT LARGE TEXT AT (11,1): "MODEL 5345" - PUT TEXT AT (3,5): "POSITION:" - LABEL r5345a - GOSUB LABEL disp5345 - PUT LARGE NUMBER posit AT (8,3) USING "+#.###" - PUT TEXT AT (29,5): "INCHES" - SOFTKEY (1) "SETUP" GOTO SCREEN conf5345 - SOFTKEY (2) "ZERO" GOTO SCREEN zer5345 - SOFTKEY (3) "DIST" GOTO SCREEN d5345 - SOFTKEY (4) "MOVE" GOTO SCREEN move5345 - SOFTKEY (5) "STOP" GOTO SCREEN stp5345 - SOFTKEY (6) "EXIT" GOTO SCREEN scr1 - SOFTKEY CHECK - GOTO LABEL r5345a *>SCREEN conf5345 - PUT TEXT AT (2,2): "Set-up PACIFIC SCIENTIFIC MODEL 5345" - PUT TEXT AT (2,3): "motion parameters. Select a function." - SOFTKEY (1) "ACCEL" GOTO SCREEN a5345 - SOFTKEY (2) "SPEED" GOTO SCREEN s5345 - SOFTKEY (3) " JOG" GOTO SCREEN j5345 - SOFTKEY (4) "MODE" GOTO SCREEN m5345 - SOFTKEY (6) "EXIT" GOTO SCREEN r5345 - SOFTKEY WAIT *>SCREEN a5345 - PUT TEXT AT (4,2): "Enter accleration in INCHES/SEC^2" - PUT TEXT AT (4,7): "Press ENTER to accept a new value." - GET NUMBER accel AT (18,4) USING "##.##" DEFAULT accel - GOSUB LABEL acc5345 - GOTO SCREEN conf5345 *>SCREEN s5345 - PUT TEXT AT (8,2): "Enter speed in INCHES/SEC" - PUT TEXT AT (4,7): "Press ENTER to accept a new value." - GET NUMBER speed AT (18,4) USING "##.##" DEFAULT speed - GOSUB LABEL spee5345 - GOTO SCREEN conf5345 *>SCREEN j5345 - PUT TEXT AT (1,1): "Direct control of" - PUT TEXT AT (1,2): "PACIFIC SCIENTIFIC" - PUT LARGE TEXT AT (11,1): "MODEL 5345" - PUT TEXT AT (3,5): "POSITION:" - PUT TEXT AT (3,3): "JOGGING 5345" - PUT TEXT AT (29,5): "INCHES" - SOFTKEY (1) " OUT" GOTO SCREEN j5345a - SOFTKEY (2) " IN" GOTO SCREEN j5345a - SOFTKEY (6) "EXIT" GOTO SCREEN rx5345 - GOSUB LABEL jsu5345 - LABEL j5345a - GOSUB LABEL disp5345 - PUT LARGE NUMBER posit AT (8,3) USING "+#.###" - GOSUB LABEL jog5345 - SOFTKEY CHECK - GOTO LABEL j5345a - LABEL rx5345 - GOSUB LABEL sp5345 - GOTO SCREEN conf5345 *>SCREEN m5345 - PUT TEXT AT (3,2): "Select DISTANCE mode." - PUT TEXT AT (3,4): "INCR - Select INCREMENTAL motion mode" - PUT TEXT AT (3,5): "ABS - Select ABSOLUTE motion mode" - SOFTKEY (1) "INCR" GOTO SCREEN mi5345 - SOFTKEY (2) "ABS" GOTO SCREEN ma5345 - SOFTKEY WAIT *>SCREEN QUICK mi5345 - GOSUB LABEL mid5345 - GOTO SCREEN conf5345 *>SCREEN QUICK ma5345 - GOSUB LABEL mad5345 - GOTO SCREEN conf5345 *>SCREEN QUICK zer5345 - GOSUB LABEL zp5345 - GOTO SCREEN r5345 *>SCREEN d5345 - PUT TEXT AT (8,2): "Enter distance in INCHES:" - PUT TEXT AT (4,7): "Press ENTER to accept a new value." - GET NUMBER dist AT (18,4) USING "+#.###" DEFAULT dist - GOSUB LABEL dist5345 - GOTO SCREEN r5345 *>SCREEN QUICK move5345 - GOSUB LABEL mv5345 - GOTO SCREEN r5345 *>SCREEN QUICK stp5345 - GOSUB LABEL sp5345 - GOTO SCREEN r5345 '********************************************************** ' ' PAC SCI DEMO PROGRAM - INCLUDED CODE ' '********************************************************** ' '******** ' SETUP VARIABLES FOR DEMO PROGRAM USE '******** ' - LABEL setupvar numparts%=0 avgtime%=0 tottime%=0 distmode% = 0 - RETURN '********* ' MAKE A PART '********* - LABEL makepart ' ' set up for emergency stop ' on key(6) gosub partkill key (6), "STOP" key (6), on killed=0 ' ' store start time ' sttime%=time ' ' move to home position ' dist=0 gosub dist5240:gosub mvr5240:gosub wt5240 gosub dist5345:gosub mvr5345:gosub wt5345 ' ' move to start position ' dist=startpos*(-1):xdist=dist ' ' make holes ' for n=1 to holes ' ' make x move ' gosub dist5345:gosub mvr5345:gosub wt5345 if killed=1 then return ' ' perform drill ' dist = -.25 gosub dist5240:gosub mvr5240:gosub wt5240 if killed=1 then return dist = 0 gosub dist5240:gosub mvr5240:gosub wt5240 xdist = xdist-holesp:dist=xdist if killed=1 then return next ' ' return home ' dist=0 gosub dist5345:gosub mvr5345:gosub wt5345 ' ' housekeeping ' numparts%=numparts%+1 ' ' compute average time ' tottime%=tottime%+(time-sttime%) avgtime%=tottime%/numparts% - RETURN '********* ' STOP ALL MOTION '********* killed=1 key (6), stop - RETURN '********* ' GET PART NUMBER '********* ' - LABEL getpart X=0: Y=1: BX=0: BY=8 - LABEL makebox call BOX(48+BX,BY-1,BX,BY+7,0) if X>=4 then X=0 if Y>=6 then Y=1 if X<0 then X=3 if Y<1 then Y=5 BX=X*60: BY=Y*8 call BOX(48+BX,BY-1,BX,BY+7,1) - LABEL makebox1 A%=inkey() if A%=13 then goto getpnum if A%=19712 then X=X+1:goto makebox if A%=20480 then Y=Y+1:goto makebox if A%=19200 then X=X-1:goto makebox if A%=18432 then Y=Y-1:goto makebox goto makebox1 ' - LABEL getpnum restore partinfo part = Y+(X*5) for N=1 to part*3 step 3 read part$ read holes read startpos read holesp next N - RETURN ' - LABEL partinfo data 2000123A, 3, .25, .25 data 2000134A, 2, 1.00, .25 data 2000144A, 5, 1.25, .33 data 2000145A, 8, .33, .25 data 2000147A, 9, .20, .15 data 2000150C, 1, 1.95, .50 data 2000151A, 2, .40, .50 data 2000155B, 3, 1.21, .25 data 2000156A, 4, 1.00, .25 data 2000157A, 6, 2.22, .15 data 2000158D, 8, 1.11, .15 data 2000200A, 1, 1.33, .50 data 2000210A, 1, 1.44, .25 data 2000211B, 2, .33, .25 data 2000221B, 3, 1.00, .25 data 2000223B, 4, 1.95, .15 data 2000224A, 5, .45, .25 data 2000225A, 6, .95, .15 data 2000239C, 7, .84, .15 data 2000244A, 8, 1.22, .15 '********************************************************** ' ' 5240 INTERFACE DRIVERS ' '********************************************************** ' '********* ' CONVERT ENTRY INTO 5240 ACCELERATION '********* - LABEL acc5240 'accel$=str$(accel) accel$ = "M 1":return '********* ' CONVERT ENTRY INTO 5240 VELOCITY '********* - LABEL spee5240 speed$="V"+str$(speed*4000):return '********* ' CONVERT ENTRY INTO 5240 DISTANCE '********* - LABEL dist5240 if dist<0 then goto dst5240a dist$ = "+"+str$(dist*4000) - RETURN - LABEL dst5240a dist$ = str$(dist*4000) - RETURN '********* ' GET POSITION DATA FROM 5240 '********* - LABEL disp5240 print #1,"Q 1": line input #1, posit$ posit$=mid$(posit$,5) posit=val(posit$)/4000 posit$=str$(posit) - RETURN '********* ' INIT 5240 '********* - LABEL init5240 ZBLDECH1%=1 CONFIG #1,96,8,1,0,0,0,500 PRINT #1," " - DELAY 250 LINE INPUT #1,ZBLDTEXT$ IF ZBLDTEXT$ <> "" THEN GOTO flsh5240 GOTO init5240 - LABEL flsh5240 - DELAY 500 CONFIG #1,96,8,1,0,0,0,500 accel$ = "M 1" speed=1 speed$="V"+str$(speed*4000) dist=-1 dist$ = str$(dist*4000) distmode% = 0 - RETURN '********* ' JOG 5240 '********* - LABEL jog5240 call scankey(skey%) if skey%=15104 then goto jup5240 if skey%=15360 then goto jdn5240 print #1,"S" line input #1, echo$ - RETURN - LABEL jup5240 print #1,"R 750" line input #1, echo$ - RETURN - LABEL jdn5240 print #1,"R -750" line input #1, echo$ - RETURN '********* ' CONFIGURE DISTANCE MODE 5240 '********* - LABEL mode5240 if distmode%=1 then return dist$="@ "+dist$ - RETURN '******** ' INCREMENTAL DISTANCE MODE 5240 '******** - LABEL mid5240 distmode%=1 - RETURN '******** ' ABSOLUTE DISTANCE MODE 5240 '******** - LABEL mad5240 distmode%=0 - RETURN '********* ' MOVE 5240 (program mode) '********* - LABEL mvr5240 if distmode%=0 then dist$="@ "+dist$ print #1,"M 4" line input #1,echo$ print #1,"V 1750" line input #1,echo$ print #1,dist$ line input #1,echo$ - RETURN '********* ' WAIT FOR MOVE COMPLETE 5240 '********* - LABEL wt5240 gosub disp5240 if posit=dist then return if killed=1 then return - DELAY 50 goto wt5240 '********************************************************** ' ' 5345 INTERFACE DRIVERS ' '********************************************************** ' '********* ' STOP 5345 '********* - LABEL sp5345 print #2,"STOP" line input #2,echo$ line input #2,resp$ line input #2,ok$ - RETURN '********** ' ZERO POS.COMMAND IN 5345 '********** - LABEL zp5345 print #2,"POS.COMMAND=0" line input #2,echo$ line input #2,ok$ - RETURN '********* ' SELECT MODE AND GO IN 5345 '********* - LABEL mv5345 print #2,"ACCEL.RATE="+accel$ line input #2,echo$ line input #2,ok$ print #2,"RUN.SPEED="+speed$ line input #2,echo$ line input #2,ok$ if distmode%=1 then goto mv5345a print #2,"TARGET.POS="+dist$ line input #2,echo$ line input #2,ok$ print #2,"GO.ABS" line input #2,echo$ line input #2,ok$ - RETURN - LABEL mv5345a print #2,"INDEX.DIST="+dist$ line input #2,echo$ line input #2,ok$ print #2,"GO.INCR" line input #2,echo$ line input #2,ok$ - RETURN '********* ' SELECT MODE AND GO IN 5345 (program mode) '********* - LABEL mvr5345 print #2,"ACCEL.RATE=10000" line input #2,echo$ line input #2,ok$ print #2,"RUN.SPEED=1000" line input #2,echo$ line input #2,ok$ if distmode%=1 then goto mv5345a print #2,"TARGET.POS="+dist$ line input #2,echo$ line input #2,ok$ print #2,"GO.ABS" line input #2,echo$ line input #2,ok$ - RETURN - LABEL mv5345a print #2,"INDEX.DIST="+dist$ line input #2,echo$ line input #2,ok$ print #2,"GO.INCR" line input #2,echo$ line input #2,ok$ - RETURN '********* ' CONVERT ENTRY INTO 5345 ACCELERATION '********* - LABEL acc5345 accel$=str$(accel*10000):return '********* ' CONVERT ENTRY INTO 5345 VELOCITY '********* - LABEL spee5345 speed$=str$(speed*1000):return '********* ' CONVERT ENTRY INTO 5345 DISTANCE '********* - LABEL dist5345 dist$ = str$(dist*10000*5):return '********* ' GET POSITION DATA FROM 5345 '********* - LABEL disp5345 print #2,"PRINT POS.COMMAND" line input #2, echo$ line input #2, posit$ line input #2, ok$ posit=val(posit$)/50000 posit$=str$(posit) - RETURN '********* ' INIT 5345 '********* - LABEL init5345 ZBLDECH1%=1 CONFIG #2,96,8,1,0,0,1,500 PRINT #2,"REM" - DELAY 250 LINE INPUT #2,echo$ LINE INPUT #2,ok$ IF ok$ = "OK" THEN GOTO flsh5345 GOTO init5345 - LABEL flsh5345 - DELAY 500 CONFIG #2,96,8,1,0,0,1,500 accel = 1 accel$ = str$(accel*10000) speed=1 speed$=str$(speed*1000) dist=-1 dist$ = str$(dist*10000*5) distmode% = 0 - RETURN '********* ' JOG SET-UP 5345 '********* - LABEL jsu5345 print #2,"ACCEL.RATE="+accel$ line input #2,echo$ line input #2,ok$ print #2,"RUN.SPEED=100" line input #2,echo$ line input #2,ok$ - RETURN '********* ' JOG 5345 '********* - LABEL jog5345 call scankey(skey%) if skey%=15104 then goto jup5345 if skey%=15360 then goto jdn5345 gosub sp5345 - RETURN - LABEL jup5345 print #2,"DIR=1" goto djg5345 - LABEL jdn5345 print #2,"DIR=-1" - LABEL djg5345 line input #2,echo$ line input #2,ok$ print #2,"GO.VEL" line input #2,echo$ line input #2,ok$ - RETURN '******** ' INCREMENTAL DISTANCE MODE 5345 '******** - LABEL mid5345 distmode%=1 - RETURN '******** ' ABSOLUTE DISTANCE MODE 5345 '******** - LABEL mad5345 distmode%=0 - RETURN '********* ' WAIT FOR MOVE COMPLETE 5345 '********* - LABEL wt5345 gosub disp5345 if abs(posit-dist)<.001 then return if killed=1 then return - DELAY 50 goto wt5345 - END OF PSEUDOCODE