378
Subroutine Instructions
Section 5-27
SBS(91) may also be placed into a subroutine to shift program execution from
one subroutine to another, i.e., subroutines may be nested. When the second
subroutine has been completed (i.e., RET(93) has been reached), program
execution returns to the original subroutine which is then completed before
returning to the main program. Nesting is possible to up to sixteen levels. A
subroutine cannot call itself (e.g., SBS(91) 000 cannot be programmed within
the subroutine defined with SBN(92) 000). The following diagram illustrates
two levels of nesting.
The following diagram illustrates program execution flow for various execution
conditions for two SBS(91).
Flags
ER:
A subroutine does not exist for the specified subroutine number.
A subroutine has called itself.
An active subroutine has been called.
!Caution
SBS(91) will not be executed and the subroutine will not be called when ER is
ON.
SBN(92) 010
SBN(92) 011
SBN(92) 012
SBS(91) 011
RET(93)
SBS(91) 010
SBS(91) 012
RET(93)
RET(93)
SBS(91)
000
SBS(91)
001
SBN(92)
000
RET(93)
SBN(92)
001
RET(93)
END(01)
Main
program
Subroutines
A
B
C
D
E
A
A
A
A
B
B
B
B
C
C
C
C
D
D
E
E
OFF execution conditions for
subroutines 000 and 001
ON execution condition for
subroutine 000 only
ON execution condition for
subroutine 001 only
ON execution conditions for
subroutines 000 and 001
Содержание SYSMAC CQM1H Series
Страница 3: ...iv...
Страница 5: ...vi...
Страница 9: ......
Страница 11: ......
Страница 15: ...xvi...
Страница 87: ...62 Calculating with Signed Binary Data Section 1 7...
Страница 169: ...144 Serial Communications Board Section 2 6...
Страница 537: ......
Страница 565: ......
Страница 569: ......
Страница 573: ......
Страница 577: ......