Introduction
Trois blocs fonction permettent de gérer l'appel des sous-programmes :
L9_JSR
L9_LAB
L9_RET
Pour plus d'informations, consultez la section Description des blocs fonction.
Il est possible d'établir jusqu'à 1 023 sous-programmes.
Control Expert ne prend pas en charge la gestion des interruptions avec des sous-programmes LL984.
Restrictions
Les restrictions ci-après s'appliquent à la fonction d'appel des sous-programmes :
Un seul segment LL984 peut être créé sur un nœud de sous-programme (
) de la tâche .Les blocs fonction
L9_LAB
etL9_RET
peuvent être placés uniquement dans un réseau LL984 de sous-programme sur le nœud .Un bloc fonction
L9_LAB
ne peut être placé que sur la ligne 1, colonne 1 d'un réseau LL984 de sous-programme.
Structure des sous-programmes
Un sous-programme est identifié par un numéro (1.. 1023).
Les sous-programmes sont appelés par le bloc fonction L9_JSR
sur un réseau LL984 (réseau normal ou de
sous-programme).
Deux autres blocs fonction, disponibles uniquement
sur des réseaux de sous-programme, marquent le point de départ
(bloc fonction L9_LAB
) et le point final (bloc fonction L9_RET
) d'un sous-programme.
Un sous-programme peut s'étendre sur plusieurs réseaux.
Le bloc fonction L9_RET
est facultatif. Il est possible d'omettre ce point
final explicite d'un sous-programme,
si le dernier réseau de sous-programme est le dernier réseau du segment de sous-programme, ou
si un réseau de sous-programme (
L9_LAB
) doit être entré.
Le bloc fonction L9_RET
ou les formulaires
implicites reviennent du réseau de sous-programme actif vers
le bloc fonction L9_JSR
d'appel avec l'état
OK.
Imbrication
Un sous-programme peut appeler d'autres sous-programmes ou s'appeler lui-même de manière récursive jusqu'à 100 fois.
Si le niveau
d'imbrication maximal est atteint, un retour implicite est effectué
et la sortie ERR
du bloc fonction L9_JSR
est définie.
Un message indiquant un problème de
niveau d'imbrication se répercute aux (99) blocs fonction L9_JSR
en cascade.
Les autres blocs fonction L9_JSR
en cascade, qui sont exécutés après
un problème de niveau d'implication, ne parviennent pas à
appeler le sous-programme et la sortie ERR
est définie
jusqu'à ce que la pile de niveau d'imbrication soit corrigée.
L9_JSR
, ce qui contribue au problème. Un traitement
dédié du problème est possible pour chaque niveau d'appel.
Les blocs fonction L9_JSR
suivants d'un segment ne
sont pas influencés par ce problème.Voir aussi
la description du bloc fonction L9_JSR
.