EasyManuals Logo

Galil DMC-2X00 User Manual

Default Icon
267 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #146 background imageLoading...
Page #146 background image
ELSE ELSE command for 2
nd
IF statement
MG "ONLY INPUT 1 IS ACTIVE Message executed if 2
nd
IF is false
ENDIF End of 2
nd
conditional statement
ELSE ELSE command for 1
st
IF statement
MG"ONLY INPUT 2 IS ACTIVE" Message executed if 1
st
IF statement
ENDIF End of 1
st
conditional statement
#WAIT Label to be used for a loop
JP#WAIT,(@IN[1]=0) | (@IN[2]=0) Loop until Input 1& 2 are not active
RI0
End Input Interrupt Routine without restoring
trippoints
Subroutines
A subroutine is a group of instructions beginning with a label and ending with an End command (EN).
Subroutines are called from the main program with the jump subroutine instruction JS, followed by a
label or line number, and conditional statement. Up to 8 subroutines can be nested. After the
subroutine is executed, the program sequencer returns to the program location where the subroutine
was called unless the subroutine stack is manipulated as described in the following section.
An example of a subroutine to draw a square of 500 counts per side is given below. The square is
drawn at vector position 1000, 1000.
Stack Manipulation
It is possible to manipulate the subroutine stack by using the ZS command. Every time a JS
instruction, interrupt or automatic routine (such as #POSERR or #LIMSWI) is executed, the subroutine
stack is incremented by 1. Normally the stack is restored with an EN instruction. Occasionally it is
desirable not to return back to the program line where the subroutine or interrupt was called. The ZS1
command clears 1 level of the stack. This allows the program sequencer to continue to the next line.
The ZS0 command resets the stack to its initial value. For example, if a limit occurs and the #LIMSWI
routine is executed, it is often desirable to restart the program sequence instead of returning to the
location where the limit occurred. To do this, give a ZS command at the end of the #LIMSWI routine.
Auto-Start Routine
The DMC-2x00 has a special label for automatic program execution. A program which has been saved
into the controller’s non-volatile memory can be automatically executed upon power up or reset by
Instruction Interpretation
#M Begin Main Program
CB1 Clear Output Bit 1 (pick up pen)
VP 1000,1000;LE;BGS Define vector position; move pen
AMS Wait for after motion trip point
SB1 Set Output Bit 1 (put down pen)
JS #SQUARE;CB1 Jump to SQUARE subroutine
EN End Main Program
# SQUARE SQUARE subroutine
v1=500;JS #L Define length of side
v1=-v1;JS #L Switch direction
EN End subroutine
#L;PR v1,v1;BGA Define A,B; Begin A
AMA;BGB;AMB After motion on A, Begin B
EN End subroutine
136 Chapter 7 Application Programming DMC-2X00

Table of Contents

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Galil DMC-2X00 and is the answer not in the manual?

Galil DMC-2X00 Specifications

General IconGeneral
CategoryController
Communication InterfaceEthernet
Encoder Inputup to 12 MHz
Analog Input12-bit resolution
Operating Temperature0 to +50 °C
Storage Temperature-20°C to 70°C
Humidity5% to 95% non-condensing
Dimensions38mm

Related product manuals