- GOTO SCREEN begin *>SCREEN begin - HOT KEY (10) "" INTERRUPT: GOSUB LABEL helpsys - GET NUMBER BACKGROUND STYLE SETUP: 2 - POWER RESUME ON - GOTO SCREEN startup *>SCREEN startup - PUT TEXT AT (1,5): "This program is specifically designed to" - PUT TEXT AT (6,6): "control the Industrial Drives" - PUT TEXT AT (11,7): "Goldline Positioner." - PUT LARGE TEXT AT (2,1): "INDUSTRIAL DRIVES" - PUT LARGE TEXT AT (2,2): "BDS5 DEMO PROGRAM" - DELAY 2000 - GOTO SCREEN testbds - TITLE:::::::::: "INITIALIZE BDS5" :::::::::::: *>SCREEN testbds - PUT TEXT AT (6,1): "SETTING UP DEFAULT VALUES FOR " - PUT TEXT AT (8,2): "THE GOLDLINE POSITIONER." - PUT LARGE TEXT AT (2,3): "PLEASE STAND BY..." pitch=5 onerev=4096 dis&=onerev dir%=1 - COMMENT "DISTANCE IN NUMBER OF STEPS" dscale=1 dis&=16384 dlbl$="STEPS" - COMMENT "VELOCITY IN STEPS/SEC" vscale=68.27 vd&=1000 vlbl$="STEPS/SEC" - COMMENT "ACCELERATION IN STEPS/S^2" ascale=68.27 ad&=40960 albl$="STEPS/SEC^2" - COM: INIT COM 1 ECHO 0 BAUD 96 HANDSHAKE 0 TIMEOUT 100 STRIP 1 - DELAY 750 - COM: PUT COM 1 TEXT "PROMPT OFF" - DELAY 25 - COM: PUT COM 1 TEXT "PLIM OFF" - DELAY 25 - COM: PUT COM 1 TEXT "VDEFAULT = 1000" - DELAY 25 - COM: PUT COM 1 TEXT "AMAX 32750" - DELAY 25 - COM: PUT COM 1 TEXT "ACC 15000" - DELAY 25 - COM: PUT COM 1 TEXT "EN" - DELAY 25 - COM: PUT COM 1 TEXT "ZERO ON" - DELAY 25 - COM: PUT COM 1 TEXT "ZERO OFF" - DELAY 1000 - GOTO SCREEN main - TITLE:::::::::: ":::::::::::::" :::::::::::: - TITLE:::::::::: "MAIN RUN LOOP" :::::::::::: - TITLE:::::::::: ":::::::::::::" :::::::::::: *>SCREEN main - PUT TEXT AT (1,4): "A-V-D CHANGE ACCEL,VEL, AND DISTANCE" - PUT TEXT AT (1,5): "UNITS CHANGE UNITS" - PUT TEXT AT (1,6): "RUN PERFORM MOVES, VIEW STATUS" - PUT LARGE TEXT AT (2,1): "SELECT A FUNCTION:" - SOFTKEY (1) "A-V-D" GOTO SCREEN avdset - SOFTKEY (3) "UNITS" GOTO SCREEN units - SOFTKEY (5) " RUN" GOTO SCREEN runscr - SOFTKEY (6) "EXIT" GOTO SCREEN exit - SOFTKEY WAIT - TITLE:::::::::: "SET ACCELERATION, VELOCITY AND DISTANCE" :::::::::::: *>SCREEN QUICK avdset - CLEAR SCREEN - PUT TEXT AT (1,3): "ACCEL CHANGE ACCELERATION" - PUT TEXT AT (1,4): "VEL CHANGE VELOCITY" - PUT TEXT AT (1,5): "DIST CHANGE DISTANCE" - PUT TEXT AT (1,6): "PITCH CHANGE SCREW PITCH" - PUT TEXT AT (1,7): "DEFLT RESTORE SYSTEM DEFAULTS" - PUT LARGE TEXT AT (1,1): "MOTION PARAMETERS: " - SOFTKEY (1) "ACCEL" GOTO SCREEN accelset - SOFTKEY (2) " VEL" GOTO SCREEN velset - SOFTKEY (3) "DIST" GOTO SCREEN distset - SOFTKEY (4) "PITCH" GOTO SCREEN pitchset - SOFTKEY (5) "DEFLT" GOTO SCREEN defltscr - SOFTKEY (6) "MAIN" GOTO SCREEN main - SOFTKEY WAIT - TITLE:::::::::: "SET UP ACCELERATION" :::::::::::: *>SCREEN accelset - PUT TEXT AT (1,2): "ACCELERATION IN " - PUT TEXT AT (17,2): albl$ - PUT TEXT AT (1,4): "ENTER ACCELERATION :" - PUT TEXT AT (1,7): "ENTER TO ACCEPT OR ENTER A NEW VALUE" ad& = ad& / ascale - GET NUMBER ad& AT (30,4) USING "#######" DEFAULT ad& ad& = ad& * ascale - COM: PUT COM 1 MIXED TEXT "ACC " NUMBER ad& - DELAY 750 - GOTO SCREEN avdset - TITLE:::::::::: "SET UP VELOCITY" :::::::::::: *>SCREEN velset - PUT TEXT AT (1,2): "VELOCITY IN " - PUT TEXT AT (13,2): vlbl$ - PUT TEXT AT (1,4): "ENTER VELOCITY :" - PUT TEXT AT (1,7): "ENTER TO ACCEPT OR ENTER A NEW VALUE" vd& = vd& / vscale - GET NUMBER vd& AT (22,4) USING "#########" DEFAULT vd& vd& = vd& * vscale - DELAY 750 - GOTO SCREEN avdset - TITLE:::::::::: "SET UP DISTANCE" :::::::::::: *>SCREEN distset - PUT TEXT AT (1,2): "DISTANCE IN" - PUT TEXT AT (1,4): "ENTER DISTANCE:" - PUT TEXT AT (1,7): "ENTER TO ACCEPT OR ENTER A NEW VALUE" - PUT TEXT AT (13,2): dlbl$ dis& = dis& / dscale - GET NUMBER dis& AT (18,4) USING "###########" DEFAULT dis& dis& = dis& * dscale - DELAY 750 - GOTO SCREEN avdset - TITLE:::::::::: "SET UP SCREW PITCH" :::::::::::: *>SCREEN pitchset - PUT TEXT AT (1,1): "Enter a screw pitch which will provide" - PUT TEXT AT (1,2): "translation between motor rotation and" - PUT TEXT AT (1,3): "linear travel." - PUT TEXT AT (1,5): "ENTER SCREW PITCH:" - PUT TEXT AT (1,7): "ENTER TO ACCEPT OR ENTER A NEW VALUE" - GET NUMBER pitch AT (20,5) USING "##.###" DEFAULT pitch - GOTO SCREEN units *>SCREEN units - PUT TEXT AT (2,4): "LINEAR MEASURE ASSUMES A PITCH" - PUT TEXT AT (2,5): "LEAD SCREW ON A LINEAR TRANSLATION" - PUT TEXT AT (2,6): "DEVICE." - PUT LARGE TEXT AT (1,1): "SELECT MOTION UNITS-" - PUT NUMBER pitch AT (27,4) USING "##.###" - SOFTKEY (1) "STEPS" GOTO SCREEN steps - SOFTKEY (2) "MILS" GOTO SCREEN mils - SOFTKEY (3) "INCH" GOTO SCREEN inch - SOFTKEY (4) " MM" GOTO SCREEN mms - SOFTKEY (5) " UM" GOTO SCREEN ums - SOFTKEY (6) "EXIT" GOTO SCREEN main - SOFTKEY WAIT - TITLE:::::::::: "SCALE UNITS IN STEPS" :::::::::::: *>SCREEN steps - PUT LARGE TEXT AT (1,1): "UNITS ARE NOW SCALED" - PUT LARGE TEXT AT (9,2): "IN" - PUT HUGE TEXT AT (3,2): "STEPS" dscale = 1 dlbl$ = "STEPS" vscale = 68.27 vlbl$ = "STEPS/SEC" ascale = 68.27 albl$ = "STEPS/SEC^2" - DELAY 1000 - GOTO SCREEN main - TITLE:::::::::: "SCALE UNITS IN MILS" :::::::::::: *>SCREEN mils - PUT LARGE TEXT AT (1,1): "UNITS ARE NOW SCALED" - PUT LARGE TEXT AT (9,2): "IN" - PUT HUGE TEXT AT (4,2): "MILS" dscale = onerev*pitch/1000 dlbl$ = "MILS" vscale = pitch vlbl$ = "MILS/SEC" ascale = pitch albl$ = "MILS/SEC^2" - DELAY 1000 - GOTO SCREEN main - TITLE:::::::::: "SCALE UNITS IN INCHES" :::::::::::: *>SCREEN inch - PUT LARGE TEXT AT (1,1): "UNITS ARE NOW SCALED" - PUT LARGE TEXT AT (10,2): "IN" - PUT HUGE TEXT AT (3,2): "INCHES" dscale = onerev*pitch dlbl$ = "INCHES" vscale = pitch vlbl$ = "INCHES/SEC" ascale = pitch albl$ = "INCHES/SEC^2" - DELAY 1000 - GOTO SCREEN main - TITLE:::::::::: "SCALE UNITS IN MILLIMETERS" :::::::::::: *>SCREEN mms - PUT LARGE TEXT AT (1,1): "UNITS ARE NOW SCALED" - PUT LARGE TEXT AT (10,2): "IN" - PUT HUGE TEXT AT (1,2): "MILLIMETER" dscale = onerev*pitch/25.4 dlbl$ = "MM" vscale = pitch*25.4 vlbl$ = "MM/SEC" ascale = pitch*25.4 albl$ = "MM/SEC^2" - DELAY 1000 - GOTO SCREEN main - TITLE:::::::::: "SCALE UNITS IN MICRONS" :::::::::::: *>SCREEN ums - PUT LARGE TEXT AT (1,1): "UNITS ARE NOW SCALED" - PUT LARGE TEXT AT (9,2): "IN" - PUT HUGE TEXT AT (2,2): "MICRONS" dscale = onerev*pitch/25400 dlbl$ = "MICRONS" vscale = pitch*25400 vlbl$ = "MICRONS/SEC" ascale = pitch*25400 albl$ = "MICRONS/SEC^2" - DELAY 1000 - GOTO SCREEN main - TITLE:::::::::: "RESTORE SYSTEM DEFAULTS" :::::::::::: *>SCREEN defltscr - PUT LARGE TEXT AT (2,1): "RESTORING DEFAULTS" - PUT TEXT AT (2,4): "Velocity : 1000" - PUT TEXT AT (2,5): "Acceceleration : 15000" - PUT TEXT AT (2,6): "Forward Direction: CW" - PUT TEXT AT (29,4): "STEPS/SEC" - PUT TEXT AT (29,5): "STEPS/SEC^2" - COM: PUT COM 1 TEXT "VDEFAULT = 1000" - DELAY 25 - COM: PUT COM 1 TEXT "ACC 15000" - DELAY 25 - COM: PUT COM 1 TEXT "DIR 1" - DELAY 1500 dir%=1 dscale=1 dlbl$="STEPS" vscale=68.27 vd&=1000 vlbl$="STEPS/MIN" ascale=1.14 ad&=15000 albl$="STEPS/SEC^2" - GOTO SCREEN avdset *>SCREEN pitchset - PUT TEXT AT (1,1): "Enter a screw pitch which will provide" - PUT TEXT AT (1,2): "translation between motor rotation and" - PUT TEXT AT (1,3): "linear travel." - PUT TEXT AT (1,5): "ENTER SCREW PITCH:" - PUT TEXT AT (1,7): "ENTER TO ACCEPT OR ENTER A NEW VALUE" - GET NUMBER pitch AT (20,5) USING "##.###" DEFAULT pitch - GOTO SCREEN units - TITLE:::::::::: "STATUS AND MOVE SYSTEM" :::::::::::: *>SCREEN runscr - PUT LARGE TEXT AT (1,1): "RUN BDS5 POSITIONER" - PUT TEXT AT (1,3): "ROTAT -- MOVE AT A CONSTANT VELOCITY" - PUT TEXT AT (1,4): "STOP -- STOP THE SERVO SPINNING" - PUT TEXT AT (1,5): "MOVE -- METERED MOVEMENT OF THE BDS5" - PUT TEXT AT (1,6): "EDIT -- EDIT CURRENT SETTINGS" - PUT TEXT AT (1,7): "EXIT -- EXIT TO MAIN MENU" - SOFTKEY (1) " JOG" GOTO SCREEN rotate - SOFTKEY (2) "STOP" GOTO SCREEN stopscr - SOFTKEY (3) "MOVE" GOTO SCREEN metermov - SOFTKEY (4) "EDIT" GOTO SCREEN editscr - SOFTKEY (6) "EXIT" GOTO SCREEN main - SOFTKEY WAIT - TITLE:::::::::: "START MOTION" :::::::::::: *>SCREEN QUICK rotate - CLEAR SCREEN - DELAY 50 - COM: PUT COM 1 MIXED TEXT "J " NUMBER vd& - PUT LARGE TEXT AT (1,1): " MOTION HAS BEGUN " - PUT TEXT AT (1,4): "BDS5 moving at " vd& = vd& * vscale - PUT NUMBER vd& AT (17,4) USING "##########" vd& = vd& / vscale - PUT TEXT AT (28,4): vlbl$ - DELAY 750 - GOTO SCREEN runscr - TITLE:::::::::: "STOP MOTION" :::::::::::: *>SCREEN QUICK stopscr - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - PUT LARGE TEXT AT (1,2): " STOPPING MOTION " - COM: PUT COM 1 TEXT "J 0" - DELAY 500 - GOTO SCREEN runscr *>SCREEN metermov - PUT LARGE TEXT AT (5,1): "MOVEMENT FOR" - PUT LARGE TEXT AT (1,2): "THE BDS5 POSITIONER" - PUT TEXT AT (1,5): "MOVE DIST :" - PUT TEXT AT (1,6): "VELOCITY :" dis& = dis& * dscale - PUT NUMBER dis& AT (17,5) USING "##########" dis& = dis& / dscale vd& = vd& * vscale - PUT NUMBER vd& AT (18,6) USING "#########" vd& = vd& / vscale - PUT TEXT AT (28,5): dlbl$ - PUT TEXT AT (28,6): vlbl$ - LABEL doneedit - SOFTKEY (1) " INC" GOTO SCREEN movescr - SOFTKEY (2) " ABS" GOTO SCREEN movpos - SOFTKEY (4) "EDIT" GOTO SCREEN meteredt - SOFTKEY (6) "EXIT" GOTO SCREEN runscr - SOFTKEY WAIT - LABEL meteredt dis& = dis& * dscale - GET NUMBER dis& AT (17,5) USING "##########" DEFAULT dis& dis& = dis& / dscale vd& = vd& * vscale - GET NUMBER vd& AT (18,6) USING "#########" DEFAULT vd& vd& = vd& / vscale - GOTO LABEL doneedit - TITLE:::::::::: "EDIT MOVE DATA" :::::::::::: *>SCREEN QUICK editscr - PUT LARGE TEXT AT (1,1): " EDIT-PRESS ENTER " - CLEAR SCREEN - PUT TEXT AT (1,4): "MOVE DIST:" - PUT TEXT AT (2,5): "VELOCITY:" - PUT TEXT AT (5,6): "ACCEL:" - PUT TEXT AT (1,7): "DIRECTION:" dis& = dis& * dscale - PUT NUMBER dis& AT (14,4) USING "########" dis& = dis& / dscale - PUT NUMBER vd& AT (14,5) USING "########" - PUT NUMBER ad& AT (14,6) USING "########" - PUT NUMBER dir% AT (21,7) USING "#" - PUT TEXT AT (23,4): dlbl$ - PUT TEXT AT (23,5): vlbl$ - PUT TEXT AT (23,6): albl$ - PUT TEXT AT (23,7): "(0=CCW, 1=CW)" dis& = dis& * dscale - GET NUMBER dis& AT (14,4) USING "########" DEFAULT dis& dis& = dis& / dscale vd& = vd& * vscale - GET NUMBER vd& AT (14,5) USING "########" DEFAULT vd& vd& = vd& / vscale ad& = ad& * ascale - GET NUMBER ad& AT (14,6) USING "########" DEFAULT ad& ad& = ad& / ascale - GET NUMBER dir% AT (21,7) USING "#" DEFAULT dir% - COM: PUT COM 1 MIXED TEXT "DIR " NUMBER dir% - GOTO SCREEN runscr *>SCREEN movedist - PUT TEXT AT (1,3): "MOVE -- MOVE DISTANCE JUST ENTERED" - PUT TEXT AT (1,5): "POSIT -- MOVE TO POSITION JUST ENTERED" - SOFTKEY WAIT *>SCREEN QUICK movescr - COM: PUT COM 1 MIXED TEXT "VDEFAULT = " NUMBER vd& - DELAY 25 - COM: PUT COM 1 MIXED TEXT "MI " NUMBER dis& - DELAY 25 - COM: PUT COM 1 TEXT "VDEFAULT = 1000" - DELAY 25 - DELAY 500 - GOTO SCREEN metermov *>SCREEN movpos - PUT TEXT AT (2,1): "THE BDS5 IS MOVED TO THE END POSITION" - PUT TEXT AT (11,2): "GIVEN BY THE USER" - PUT TEXT AT (1,4): "END POSITION SPECIFIED :" - PUT TEXT AT (1,5): "END POSITION OF BDS5 :" - PUT NUMBER endpos& AT (29,4) USING "####" - COM: PUT COM 1 MIXED TEXT "VDEFAULT = " NUMBER vd& - DELAY 25 - COM: PUT COM 1 MIXED TEXT "MA " NUMBER endpos& - DELAY 25 - COM: PUT COM 1 TEXT "VDEFAULT = 1000" - DELAY 3500 - GOSUB LABEL position - SOFTKEY (6) "MAIN" GOTO SCREEN main - SOFTKEY WAIT - LABEL position - COM: PUT COM 1 TEXT "P PRD" NUMERIC RESPONSE stopped& - PUT NUMBER stopped& AT (29,5) USING "####" - DELAY 1500 - RETURN - LABEL helpsys - HELP: CLEAR HELP SCREEN - HELP: PUT HELP TEXT AT 1 : "This program demonstrates the use of" - HELP: PUT HELP TEXT AT 2 : "the MODEL 1000 and the INDUSTRIAL DRIVES" - HELP: PUT HELP TEXT AT 3 : "BDS5 POSITIONER. You should first" - HELP: PUT HELP TEXT AT 4 : "hook up the MODEL 1000 to the motor" - HELP: PUT HELP TEXT AT 5 : "drive by following the instructions in" - HELP: PUT HELP TEXT AT 6 : "Section 5.6.1 of the MODEL 1000 manual." - HELP: PUT HELP TEXT AT 7 : "COM 1 on the MODEL 1000 is connected to" - HELP: PUT HELP TEXT AT 8 : "----- PRESS ANY KEY FOR MORE HELP -----" - HELP: DISPLAY HELP TEXT AND WAIT FOR KEY - HELP: CLEAR HELP SCREEN - HELP: PUT HELP TEXT AT 1 : "the RS232 port on the positioner. A" - HELP: PUT HELP TEXT AT 2 : "cable is available from EASON" - HELP: PUT HELP TEXT AT 3 : "TECHNOLOGY. Please call us if you need" - HELP: PUT HELP TEXT AT 4 : "further assistance." - HELP: PUT HELP TEXT AT 5 : " (707)-433-2854" - HELP: PUT HELP TEXT AT 6 : " (707)-433-3706 (FAX)" - HELP: PUT HELP TEXT AT 8 : "--PRESS ANY KEY TO RESUME THE PROGRAM--" - HELP: DISPLAY HELP TEXT AND WAIT FOR KEY - HOT KEY (10) RESUME - RETURN - TITLE:::::::::: "RETURN TO BASIC" :::::::::::: *>SCREEN exit - PUT LARGE TEXT AT (1,1): "THANK YOU FOR USING" - PUT LARGE TEXT AT (8,2): "EASON" - PUT LARGE TEXT AT (6,3): "TECHNOLOGY" pos 40,7 - DELAY 2500 - COM: PUT COM 1 TEXT "DIS" - DELAY 5000 - CLEAR GRAPHICS SCREEN - CLEAR SCREEN END - END OF PSEUDOCODE