Galil DMC-1800 Home Security System User Manual


 
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