18: I
NSTRUCCIONES DE RAMIFICACIÓN DEL PROGRAMA
LRET (Retorno de etiqueta)
Esta instrucción se inserta al final de una subrutina llamada por la instrucción LCAL. Una vez
LRET
finalizada la subrutina, continúa la ejecución normal del programa volviendo a la instrucción que
sigue a la instrucción LCAL.
La instrucción LRET se debe insertar al final de la subrutina comenzando por una instrucción LABEL.
Si se programa en otra posición, aparecerá un error de ejecución en el programa del usuario,
activando el relé interno especial M8004 y el LED DE ERROR en el módulo de la CPU.
Módulos de CPU aplicables
FC5A-C10R2/C
X
Operandos válidos
Operando
—
Estructura correcta para llamar a una subrutina
Cuando se ejecuta una instrucción LCAL, es posible que las instrucciones restantes del programa en el mismo escalón no
se ejecuten tras la devolución, si la subrutina cambia las condiciones de entrada. Después de la instrucción LRET de una
subrutina, la ejecución del programa comienza por la instrucción que sigue a la instrucción LCAL, en función de la
condición de entrada actual.
Si las instrucciones que siguen a una instrucción LCAL se deben ejecutar después de llamar a la subrutina, asegúrese de
que ésta no cambia las condiciones de entrada desfavorablemente. Además, incluya las instrucciones siguientes en un
nueva línea de escalera, separada de la instrucción LCAL.
Correcto
MOV(W)
I0
LCAL
I0
MOV(W)
Separar la línea de escalera para cada instrucción LCAL.
18-4
FC5A-C16R2/C
X
Función
—
S1 –
D1 –
D0
D1
S1
0
S1 –
D1 –
D20
D21
M
ANUAL DEL USUARIO DE
FC5A-C24R2/C
FC5A-D16RK1/RS1
X
I
— — — — — — —
Incorrecto
REP
S
M0
REP
El estado de I0 puede cambiarlo la subrutina al devolverse.
M
S
ICRO
MART
X
Q
M
R
T
C
D Constante
MOV(W)
S1 –
D0
I0
LCAL
S1
0
MOV(W)
S1 –
D20
FC5A
FC5A-D32K3/S3
X
Repetir
—
—
D1 –
REP
D1
S
M0
D1 –
REP
D21