Galil DMC-13X8 ユーザーズマニュアル

ページ / 210
Chapter 7 Application Programming  
  122  
USER MANUAL 
Automatic Subroutines for Monitoring Conditions 
Often it is desirable to monitor certain conditions continuously without tying up the host or DMC-
13X8 program sequences.  The controller can monitor several important conditions in the background.  
These conditions include checking for the occurrence of a limit switch, a defined input, position error, 
or a command error.  Automatic monitoring is enabled by inserting a special, predefined label in the 
applications program.  The pre-defined labels are: 
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 
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-13X8 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