Where the “,1” at the end of the command line indicates a restart; therefore, the existing program stack will not be removed when the above format executes.

The following example shows an error correction routine which uses the operands.

Example - Command Error w/Multitasking

Instruction

Interpretation

#A

Begin thread 0 (continuous loop)

JP#A

 

EN

End of thread 0

#B

Begin thread 1

n=-1

Create new variable

KP n

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 out of range (KP -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)

XQ _ED3,_ED1,1

Skip invalid command

ENDIF

 

EN

End of command error routine

Example - Communication Interrupt

A DMC-2x10 is used to move the A axis back and forth from 0 to 10000. This motion can be paused, resumed and stopped via input from an auxiliary port terminal.

InstructionInterpretation

#BEGIN

Label for beginning of program

CC 9600,0,0,0

Setup communication configuration for auxiliary serial

 

port

CI 2

Setup communication interrupt for auxiliary serial port

MG {P2}"Type 0 to stop motion"

Message out of auxiliary port

MG {P2}"Type 1 to pause motion"

Message out of auxiliary port

MG {P2}"Type 2 to resume motion"

Message out of auxiliary port

rate=2000

Variable to remember speed

SPA=rate

Set speed of A axis motion

#LOOP

Label for Loop

PAA=10000

Move to absolute position 10000

BGA

Begin Motion on A axis

AMA

Wait for motion to be complete

PAA=0

Move to absolute position 0

BGA

Begin Motion on A axis

AMA

Wait for motion to be complete

JP #LOOP

Continually loop to make back and forth motion

DMC-2X00

Chapter 7 Application Programming y 95

Page 150
Image 150
Galil DMC-2X00 user manual Example Command Error w/Multitasking, Example Communication Interrupt, PAA=0