Galil DMC-1700 Manual De Usuario

Descargar
Página de 253
150 • Chapter 7 Application Programming DMC-1700/1800 
SUBROUTINE DESCRIPTION 
#LIMSWI 
Limit switch on any axis goes low 
#ININT 
Input specified by II goes low 
#POSERR 
Position error exceeds limit specified by ER 
#MCTIME 
Motion Complete timeout occurred.  Timeout period set by TW command 
#CMDERR 
Bad command given 
#AUTO 
Automatically executes on power up 
#AUTOERR 
Automatically executes when a checksum is encountered during #AUTO 
start-up. Check error condition with _RS. 
          bit 0 for variable checksum error 
          bit 1 for parameter checksum error 
          bit 2 for program checksum error 
          bit 3 for master reset error (there should be no program ) 
#AMPERR 
Error reported from Galil AMP-19xxx  
 
For example, the #POSERR subroutine will automatically be executed when any axis exceeds its position error 
limit.  The commands in the #POSERR subroutine could decode which axis is in error and take the appropriate 
action.  In another example, the #ININT label could be used to designate an input interrupt subroutine.  When the 
specified input occurs, the program will be executed automatically. 
NOTE:  An application program must be running for automatic monitoring to function. 
Example - Limit Switch: 
This program prints a message upon the occurrence of a limit switch.  Note, for the #LIMSWI routine to function, 
the DMC-1700/1800 must be executing an applications program from memory.  This can be a very simple program 
that does nothing but loop on a statement, such as #LOOP;JP #LOOP;EN.  Motion commands, such as JG 5000 can 
still be sent from the PC even while the “dummy” applications program is being executed. 
:ED Edit 
Mode 
000 #LOOP 
Dummy Program 
001 JP #LOOP;EN 
Jump to Loop 
002 #LIMSWI 
Limit Switch Label 
003 MG “LIMIT OCCURRED” 
Print Message 
004 RE 
Return to main program 
<control> Q 
Quit Edit Mode 
:XQ #LOOP 
Execute Dummy Program 
:JG 5000 
Jog 
:BGX Begin 
Motion 
 
Now, when a forward limit switch occurs on the X axis, the #LIMSWI subroutine will be executed. 
Notes regarding the #LIMSWI Routine: 
1)   The RE command is used to return from the #LIMSWI subroutine. 
2)   The #LIMSWI subroutine will be re-executed if the limit switch remains active. 
The #LIMSWI routine is only executed when the motor is being commanded to move. 
Example - Position Error 
:ED Edit 
Mode 
000 #LOOP 
Dummy Program