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 (Section SR ) de la tâche MAST .

  • Les blocs fonction L9_LAB et L9_RET peuvent être placés uniquement dans un réseau LL984 de sous-programme sur le nœud Sections SR.

  • 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.

NOTE : Le message ne s'affiche que pour les blocs fonction 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.