;MAKE SURE THIS PROGRAM CONTAINS NO TABS ;OTHERWISE IT WILL NOT PROGRAM THE SX DRIVE CORRECTLY ;THIS_PROGRAM_WAS_WRITTEN_FOR_A_COMPUMOTOR_TRAINING_SEMINAR ;IT_INVOLVES_A_SX-DRIVE/INDEXER_CONTROLLING_A_204000_SERIES ;DAEDAL_ROLLER_BEARING_LINEAR_POSITIONER(RODLESS_ACTUATOR) ;TO_RUN_THIS_PROGRAM_IN_AN_X-LANGUAGE_PRODUCT ;DOWNLOAD_THE_PROGRAM_AND_CYCLE_POWER ;THE_PROGRAM_INFINITELY_LOOPS_BETWEEN_USER_SELECTED_OPTIONS ;THESE_OPTIONS_INLCUDE: ;JOGGING_IN_HIGH/LOW_SPEED(WITH_SOFTWARE_LIMITS) ;A_LOOPING_SEQUENCE_WITH_USER_SELECTED_VALUES ;SPEED___DISTANCE___NUMBER_OF_LOOPS ;AN_ABOUT_SCREEN_TELLING_BASIC_INFO ;UPON_CYCLING_POWER__SEQ100_DECLARES_VARIABLES_AND_MOVES ;THE_MOTOR_2_REVS_TO_CHECK_PROPER_OPERATION ;THE_SEQ100_ENDS_BY_GOTO(ING)_SEQ8 ;SEQ8_IS_AN_INFINITE_LOOP_JUMPING_BETWEEN_OTHER_SEQUENCES ;TO_CARRY_OUT_THE_USER'S_SELECTED_OPTIONS ;SOFT_LIMITS_ARE_INSTALLED_W/OUT_A_HOME_SEQUENCE_ ;HOME_BEFORE_POWER_UP_BY_PLACING_LINEAR_TABLE ;TO_ONE_SIDE_AND_BACKING_OFF ;THIS_IS_THE_ZERO_POINT ;FOR_SOFT_LIMITS_PROGRAM_IS_IN_ABSOLUTE_POSITIONING_MODE ;RANGE_OF_STEPS=>0_TO_250000 ;TO_CHANGE_THE_DISTANCE_TRAVELED__CHECK_SEQ100_SEQ9(JOG_SEQ) ;SEQ14_SEQ15 ;GOOD_LUCK! DWRITE"$B" DWRITE"$DS" DEL DEMO DEF DEMO ;MAIN_SEQUENCE ;SETUP GOSUB PRSNT GOSUB WAITF GOSUB SEEMOTN GOSUB WAIRT GOTO MAIN END DEF ONE ;EASON_DISPLAY(SCREEN_1) DCLEAR0 ;CLEAR_SCREEN DWRITE"$DS" ;EASON_DISPLAY_COMMAND DWRITE"$CT0" ;CURSOR_OFF T4 ;READ_4_SECONDS END DEF ABOUT DWRITE"$ED" ;REVERSE_VIDEO_ON DWRITE"$CP1,14" DWRITE"PROGRAMMED BY:" DWRITE"$TL2,2,EASON TECHNOLOGY" DWRITE"$CT0" ;CURSOR_OFF END DEF WAITF ;PRESS_F3_CONT_SEQUENCE DWRITE"$DW" ;DISABLE_LINE_WRAP DWRITE"$CP8,11" DWRITE"$DA7" ;REVERSE_VIDEO_ON DWRITE"PRESS F3 TO CONTINUE" DWRITE"$CT0" ;CURSOR_OFF REPEAT VAR1=DREADF UNTIL(VAR1=3) END DEF PRSNT ;PRESENTATION(SCREEN3) DWRITE"$ED" DWRITE"$CP1,6" DWRITE"PRESENTED TO YOU OCT 9,1995" DWRITE"$TL2,1,The_Eason_Technology" DWRITE"$TL3,3,Sales_seminar!" DWRITE"$CT0" ;CURSOR_OFF END DEF SEEMOTN ;LET'S_SEE_MOTION(SCREEN4) DWRITE"$DA0" DWRITE"$ED" ;CLEAR_EASON_SCREEN DWRITE"$TL2,6,LET'S SEE" ;LARGE_TXT DWRITE"$DA5" ;BLINKING_TXT DWRITE"$TL3,7,MOTION!!" ;LARGE_TXT DWRITE"$CT0" ;CURSOR_OFF DWRITE"$DA0" ;NORMAL_ATTRIBUTES END DEF MAIN ;MAIN_MENU_DISPLAY DWRITE"$DA0" ;NORMAL_ATTRIBUTES DWRITE"$ED" ;CLEAR_EASON_SCREEN DWRITE"$CP1,6" DWRITE"EASON TECHNOLOGY" DWRITE"$DB20,50,220,12" DWRITE"$TL2,4,PLEASE SELECT" ;LARGE_TEXT DWRITE"$TL3,4,FUNTION KEY." ;LARGE_TEXT DWRITE"$DA7" ;REVERSE_DISPLAY_TEXT DWRITE"$CP8,4" ;CURSOR_POSITION DWRITE"JOG" ;TEXT DWRITE"1"$CP8,10" ;CURSOR_POSITION DWRITE"LOOP" ;TEXT DWRITE"$CP8,15" ;CURSOR_POSITION DWRITE"$CP8,33" ;CURSOR_POSITION DWRITE"ABOUT?" ;TEXT DWRITE"$CT0" ;CURSOR_OFF DWRITE"$DA0" ;NORMAL_ATTRIBUTES VAR2=0 ;DEFINE_FUNC_VARIABLE REPEAT VAR2=DREADF ;WAIT_FOR_FUNC_KEY_INPUT UNTIL(VAR2=6_OR_VAR2=1_OR_VAR2=2) IF(VAR2=1) ;1GOTO9 ;GOTO_JOG_SEQUENCE NIF IF(VAR2=2) ;1GOTO10 ;GOTO_LOOP_SEQUENCE NIF IF(VAR2=3) ;GOTO ABOUT ;GOTO_SECRET?_SEQUENCE NIF IF(VAR2=6) GOTO ABOUT ;START_ABOUT_SEQUENCE NIF GOTO MAIN END ;1XE9 1XD9 ;JOG_SEQUENCE ; A75 ;ACCELERATION ; VAR3=0 VAR4=0 ;INITIALIZE_VARIABLES ; D112500 ;MOVE_TO_CENTER ; V30 ; 1G ; MPP ;ENABLE_POSITION_PROFILE ; V0 ; L ; 1"$ED ;ERASE_DISPLAY ; 1DTXT$TH1,1,JOG_MOTOR! ;HUGE_TEXT ; 1"$DA7 ;REVERSE_VIDEO ; 1"$CP7,4 ;POSITION_CURSOR ; 1DTXTCW_ ;TEXT ; 1"$CP8,4 ;POSITION_CURSOR ; 1DTXTLOW ;TEXT ; 1"$CP7,10 ;POSITION_CURSOR ; 1DTXTCW__ ;TEXT ; 1"$CP8,10 ;POSITION_CURSOR ; 1DTXTHIGH ;TEXT ; 1"$CP7,16 ;POSITION_CURSOR ; 1DTXTCCW ;TEXT ; 1"$CP8,16 ;POSITION_CURSOR ; 1DTXTLOW ;TEXT ; 1"$CP7,21 ;POSITION_CURSOR ; 1DTXTCCW_ ;TEXT ; 1"$CP8,21 ;POSITION_CURSOR ; 1DTXTHIGH ;TEXT ; 1"$CP7,33 ;POSITION_CURSOR ; 1DTXTSTOP__ ;TEXT ; 1"$CP8,33 ;POSITION_CURSOR ; 1DTXTMOTION ;TEXT ; 1"$CT0 ;CURSOR_OFF ; 1"$DA0 ;NORMAL_ATTRIBUTES ;VAR3=FUN ;MPA ;IF(VAR3=1) V0 T.05 D250000 V(VAR21) G VAR4=POS NIF ;IF(VAR3=2) V0 T.05 D250000 V(VAR20) G VAR4=POS NIF ;IF(VAR3=3) V0 T.05 D0 V(VAR21) G NIF ;IF(VAR3=4) V0 T.05 D0 V(VAR20) G NIF ;IF(VAR3=5) ; V0 ;SAFETY_STOP_OF_MOTION ; 1"$ED ;ERASE_DISPLAY ; 1DTXT$TL2,7,INVALID ;LARGE_TEXT ; 1DTXT$TL3,6,SELECTION! ;LARGE_TEXT ; 1GOSUB5 ;GOSUB_CONT_SEQ_&_RETURN ; 1"$DA0 ;NORMAL_ATTIBUTES ; 1GOTO9 ; NIF ;IF(VAR3=6) SSL0 STOP MN NG GOTO8 1"$DA0 NIF ;N ;MN ;NG ;1XT ;1XE10 1XD10 ;LOOP_SEQUENCE ; ;HOME_MOTOR ; MN ;MODE_NORMAL ; 1D0 1V4 1G ;HOME_CARRIAGE ; ;LOOPING_SCREEN_DISPLAY ; 1"$DA0 ;NORMAL_ATTRIBUTES ; 1"$ED ;ERASE_DISPALY ; 1"$CT0 ;CURSOR_OFF ; 1DTXT$TL1,4,MOTION_PROFILE ;LARGE_TEXT ; 1"$CP5,3 1DTXTSELECT_FUNCTION_KEY_F1_THROUGH ; 1"$CP6,3 1DTXTF3_TO_CHANGE_PARAMETERS ;TEXT ; 1"$DA7 ;REVERSE_VIDEO ; 1"$CP8,3 1DTXTLOOPS? ;TEXT ; 1"$CP8,10 1DTXTSPEED ;TEXT ; 1"$CP8,16 1DTXTDIST? ;TEXT ; 1"$CP8,29 1DTXTGO ;TEXT ; 1"$CP8,35 1DTXTEXIT ;TEXT ; 1"$DA0 ;NORMAL_ATTRIBUTES ; ; ;SELECT_FUNCTION ; VAR5=0 ; REPEAT ; VAR5=FUN ; UNTIL(VAR5=1_OR_VAR5=2_OR_VAR5=3_OR_VAR5=5_OR_VAR5=6) ; ; ;IF_THEN_STATEMENTS ; IF(VAR5=1) GOTO12 NIF ;GOTO_LOOPS_SEQ ; IF(VAR5=2) GOTO13 NIF ;GOTO_SPEED_SEQ ; IF(VAR5=3) GOTO14 NIF ;GOTO_DIST_SEQ ; IF(VAR5=5) GOTO15 NIF ;GOTO_GO_SEQUENCE ; IF(VAR5=6) GOTO8 NIF ;RETURN_TO_MAIN_MENU ; ;1XT ; ; ;1XE11 1XD11 ;SECRET_SEQUENCE ; ;1XT ; ;1XE12 1XD12 ;LOOP_SEQUENCE ; ; 1"$ED ;ERASE_DISPLAY ; ;1"$DA7 ;REVERSE_VIDEO ; 1DTXT$TL1,2,ENTER_NUMBER_(1-4) ; 1DTXT$TL2,4,OF_TIMES_TO ; 1DTXT$TL3,1,RUN_MOTION_PROFILE. ; 1"$CP7,7 ; 1DTXTCURRENT_NUMBER_OF_LOOPS: 1DVO9,2,0,0 ;DISPLAY_CURRENT_LOOPS ; 1"$CP8,13 1DTXTENTER_LOOPS: ; REPEAT ;REPEAT_TO_OBTAIN_VAR9 ; VAR9=NUM ; IF(VAR9=1_OR_VAR9=2_OR_VAR9=3_OR_VAR9=4) ; 1"$DA0 GOTO10 NIF ; 1"$CP8,25 1DTXT_________ 1"$CP8,25 ;CLEAR_WRONG_INPUT ; UNTIL(VAR9=1_OR_VAR9=2_OR_VAR9=3_OR_VAR9=4) ; 1"$DA0 ;NORMAL_ATTRIBUTES ; 1GOTO10 ;1XT ; ;1XE13 1XD13 ;SPEED_VALUE ; ; 1"$ED ;ERASE_DISPLAY ; 1"$DA0 ; 1"$DB20,50,220,12 ;DRAW_BOX ; 1"$CP3,12 ; 1DTXTPLEASE_ENTER_SPEED ; 1"$CP4,7 ; 1DTXTRANGING_FROM_3RPS_TO_10RPS. ; 1"$CP5,12 1DTXTCURRENT_SPEED= 1"$CP5,26 ; 1DVO6,2,1,0 ;DISPLAY_VARIABLE ; 1"$CP6,13 1DTXTENTER_SPEED: ; 1"$CP6,26 ; L ; VAR6=NUM ; IF(VAR6>2.9_AND_VAR6<11) ; 1"$DA0 GOTO10 NIF ; 1"$CP6,26 1DTXT__________ 1"$CP6,26 ; N ;1XT ; ;1XE14 1XD14 ; ; 1"$ED ;ERASE_DISPLAY ; 1"$DA0 ;NORMAL_ATTRIBUTES ; 1DTXT$TL1,3,F1=1/3_TRAVEL ;TEXT ; 1DTXT$TL2,3,F2=2/3_TRAVEL ; 1DTXT$TL3,3,F3=FULL_TRAVEL ; 1"$DA7 ;REVERSE_VIDEO ; 1"$CP8,4 1DTXT1/3 ; 1"$CP8,10 1DTXT2/3 ; 1"$CP8,16 1DTXTFULL ; 1"$DA0 ;NORMAL_ATTRIBUTES ; REPEAT ; VAR15=FUN ; UNTIL(VAR15=1_OR_VAR15=2_OR_VAR15=3) ; IF(VAR15=1) VAR8=80000 NIF ; IF(VAR15=2) VAR8=160000 NIF ; IF(VAR15=3) VAR8=250000 NIF ; 1"$DA0 ; 1GOTO10 ;1XT ; ; ;1XE15 1XD15 ;RUN_LOOP_SEQUENCE ; L(VAR9) ;START_LOOP_VAR9_TIMES ; V(VAR6) ;LOOP_VELOCITY ; D(VAR8) ;LOOP_DISTANCE ; A(VAR7) ;LOOP_ACC ; 1G ; VAR10=VAR8*0.5 ;RETURN_1/2_WAY ; D(VAR10) ; 1G ; T1 ; D0 1G ;RETURN_HOME ; N ; 1GOTO10 ;1XT ; ;1XE100 1XD100 ;START_UP_SEQUENCE ; ; 1"$ED ;CLEAR_EASON_SCREEN ; 1"$DA0 ;NORMAL_EASON_ATTRIBUTES ; 1"$CT0 ;CURSOR_OFF ; 1"$BF1 ;BACKLIGHT_OFF ; VAR1=0 ;DEFINE_VARIABLES ; VAR2=0 VAR3=0 VAR4=0 VAR5=0 ; VAR6=3 VAR7=45 VAR8=250000 VAR9=2 ; VAR10=0 ; VAR21=.8 ;SLOW_JOG_VELOCITY ; VAR20=3.5 ;FAST_JOG_VELOCITY ; LD3 ;DISABLE_LIMITS ; SSH1 ;SAVE_BUFFER_ON_STOP ; MPA ;ABSOLUTE_POSITION ; PZ ;ZERO(HOME)_CARRIAGE ; MN ;MODE_NORMAL ; 1D50000 ;SET_UP_TEST_MOTION ; 1V20 ; 1A50 ; 1G ; 1V10 ; 1D0 ; 1G ; 1GOTO8 ;GOTO_SEQUENCE8 ;1XT