DECLARE SUB rs232init () DECLARE SUB rs232setpar (openpar$) DECLARE SUB sxgetencpos (dlines&) DECLARE SUB sxgetmotpos (d!) DECLARE SUB sxgohome () DECLARE SUB sxmoveabs (d!) DECLARE SUB sxmoverel (d!) DECLARE SUB sxsetaddr (rs232addr$) DECLARE SUB moveinit () DECLARE SUB movesetparth (logfile$, tdrivers232addr$, tdrivendegperrev!, treadndegperline!, tccwsoftlimit!, tcwsoftlimit!, tlimitdecel!, taccel!, tdecel!, tvel!) DECLARE SUB movesetparz (logfile$, zdrivers232addr$, zdrivenmeterperrev!, zreadnmeterperline!, zccwsoftlimit!, zcwsoftlimit!, zlimitdecel!, zaccel!, zdecel!, zvel!) DECLARE SUB movethuser () DECLARE SUB movezuser () '**************************************************************************** 'TESTSX 'Test the Compumotor SX indexer/drive ' 'Zachary Wolf '12/16/97 '**************************************************************************** 'Get required parameters REM $INCLUDE: 'param.inc' 'Prepare the screen CLS 'Open a log file filenum% = FREEFILE logfileP$ = "logfile.dat" OPEN logfileP$ FOR OUTPUT AS #filenum% CLOSE filenum% CALL rs232setpar(sxrs232openparP$) CALL rs232init zccwsoftlimit! = -4! zcwsoftlimit! = 4! tccwsoftlimit! = -360! tcwsoftlimit! = 360! CALL movesetparz(logfileP$, zdrivers232addrP$, zdrivenmeterperrevP!, zreadnmeterperlineP!, zccwsoftlimit!, zcwsoftlimit!, zlimitdecelP!, zaccelP!, zdecelP!, zvelP!) CALL movesetparth(logfileP$, tdrivers232addrP$, tdrivendegperrevP!, treadndegperlineP!, tccwsoftlimit!, tcwsoftlimit!, tlimitdecelP!, taccelP!, tdecelP!, tvelP!) CALL moveinit 'STOP begin: PRINT INPUT "Which stage do you wish to move (Z, P, E to end): ", msg$ IF msg$ = "Z" OR msg$ = "z" THEN CALL movezuser ELSEIF msg$ = "P" OR msg$ = "p" THEN CALL movethuser ELSEIF msg$ = "E" OR msg$ = "e" THEN GOTO done: ELSE PRINT "Unknown command." END IF GOTO begin: done: STOP CALL sxsetaddr(zdrivers232addrP$) 'mot: PRINT INPUT "Move the motor. Press ENTER when ready.", a$ CALL sxgetmotpos(d!) PRINT "Dmot = "; d!; " rev" 'GOTO mot 'enc: PRINT INPUT "Move the encoder. Press ENTER when ready.", a$ CALL sxgetencpos(d&) PRINT "Denc = "; d&; " lines" 'GOTO enc 'CALL sxgetinputs(inputs$) 'STOP CALL sxmoveabs(5!) CALL sxgetmotpos(d!) STOP CALL sxgohome STOP CALL sxmoverel(-5!) CALL sxgetmotpos(d!) STOP