Publication 1747-RM001G-EN-P - November 2008
Program Flow Instructions 6-5
You must program each subroutine in its own program file by assigning a
unique file number (3 to 255)
Using SBR
The target subroutine is identified by the file number that you entered in the
JSR instruction. This instruction serves as a label or identifier for a program
file as a regular subroutine file.
This instruction has no control bits. It is always evaluated as true. The
instruction must be programmed as the first instruction of the first rung of a
subroutine. Use of this instruction is optional; however, we recommend using
it for clarity.
Using RET
This output instruction marks the end of subroutine execution or the end of
the subroutine file. It causes the controller to resume execution at the
instruction following the JSR instruction. If a sequence of nested subroutines
is involved, the instruction causes the processor to return program execution
to the previous subroutine.
The rung containing the RET instruction may be conditional if this rung
precedes the end of the subroutine. In this way, the controller omits the
balance of a subroutine only if its rung condition is true.
Without an RET instruction, the END instruction (always present in the
subroutine) automatically returns program execution to the instruction
following the JSR instruction in your calling ladder file.
IMPORTANT
Fixed and SLC 5/01 specific - The JSR instruction
cannot be programmed in nested output branches. A
compiler error will occur if a rung containing
multiple outputs with conditional logic and a JSR
instruction is encountered.
TIP
The RET instruction terminates execution of the DII
subroutine (SLC 5/03 and higher processors), STI
subroutine, I/O event-driven interrupt subroutine,
and the user fault routine (SLC 5/02 or higher
processor).