Galil DMC-3425 user manual Example - Command Error w/Multitasking, Operand, Function, Instruction

Models: DMC-3425

1 210
Download 210 pages 53.34 Kb
Page 134
Image 134
FUNCTION

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 0

#B

Begin thread 1

KP -1

Set KP to value of N, an invalid value

TY

Issue invalid command

EN

End of thread 1

#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)

126 • Chapter 7 Application Programming

DMC-3425

Page 134
Image 134
Galil DMC-3425 user manual Example - Command Error w/Multitasking, Operand, Function, Instruction, Interpretation