Galil DMC-3425 Manual De Usuario

Descargar
Página de 210
126 • Chapter 7 Application Programming 
 
DMC-3425 
EN 
End main program 
#CMDERR Command 
error 
utility 
JP#DONE,_ED<>2 
Check if error on line 2 
JP#DONE,_TC<>6 
Check if out of range 
MG "SPEED TOO HIGH" 
Send message 
MG "TRY AGAIN" 
Send message 
ZS1 Adjust 
stack 
JP #BEGIN 
Return to main program 
#DONE 
End program if other error 
ZS0 Zero 
stack 
EN End 
program 
 
OPERAND FUNCTION 
_ED1 
Returns the number of the thread that generated an error 
_ED2 
Retry failed command (operand contains the location of the failed command) 
_ED3 
Skip failed command (operand contains the location of the command after the 
failed command) 
 
The operands are used with the XQ command in the following format: 
  
XQ _ED2 (or _ED3),_ED1,1  
Where the “,1” at the end of the command line indicates a restart; therefore, the existing program stack 
will not e removed when the above format executes. 
The following example shows an error correction routine that uses the operands. 
Example - Command Error  w/Multitasking 
The following program illustrates a common program problem.  In this case, a variable is used as a 
command argument and the variable is inadvertently set to an illegal value.  This simple command 
error subroutine recognizes the type of error, modifies the variable and continues the program at the 
point of the error.  If the program has an invalid command error, skip the command and continue to 
execute the program.  To demonstrate the program, while the simple loop #A is executing on thread 0 
(XQ#A,0), begin execution of the second task, XQ#B,1 
Instruction Interpretation 
#A 
 
 
Begin thread 0 (continuous loop) 
JP#A  
EN 
   
End 
of 
thread 
#B 
   
Begin 
thread 
KP -1   
 
 
Set KP to value of N, an invalid value 
TY 
   
Issue 
invalid 
command 
EN 
   
End 
of 
thread 
#CMDERR 
 
 
Begin command error subroutine 
IF(_TC=6) 
 
 
If error is “Number Out of Range” (-1). 
N=1 
 
 
 
Set N to a valid number 
XQ _ED2,_ED1,1  
Retry KP N command 
ENDIF  
IF( _TC=1) 
 
 
If error is “Invalid Command” (TY)