Example, Subroutines, Example: subroutines – Yaskawa LEGEND-MC User Manual

Page 305

Advertising
background image

295

LEGEND-MC User’s Manual

Example:

Subroutines

A subroutine is a group of instructions beginning with a label and ending with an END (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 16 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.

Example:

An example of a subroutine to draw a square 500 counts per side is given below. The square is drawn at
vector position 1000,1000.

#TEST

Begin Main Program "TEST"

II,,3

Enable interrupts on input 1 and input 2

MG "WAITING FOR INPUT 1, INPUT 2"

Output message

#LOOP

Label to be used for endless loop

JP #LOOP

Endless loop

EN

End of main program

#ININT

Input Interrupt Subroutine

IF (@IN[1]=0)

IF conditional statement based on input 1

IF (@IN[2]=0)

2

nd

IF executed if 1

st

IF conditional true

MG "INPUT 1 AND INPUT 2 ARE
ACTIVE"

Message executed if 2

nd

IF is true

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

#M

Begin Main Program

Advertising