Notions de base sur le traitement du programme
8.2 Instructions à exécution asynchrone
La figure suivante montre le traitement parallèle de deux tâches de l'instruction WRREC. Les
deux instructions sont exécutées en même temps pendant une certaine durée.
Figure 8-2 Traitement parallèle de l'instruction à exécution asynchrone WRREC
REMARQUE
Dépendances entre instructions asynchrones
L'ordre d'appel dans le programme utilisateur peut différer de l'ordre d'exécution des instruc
tions asynchrones. Cela peut entraîner des problèmes en cas de dépendances entre instruc
tions asynchrones.
Solution : Utilisez les sorties d'état des instructions asynchrones dans un graphe séquentiel
pour garantir une exécution chronologique correcte. Une instruction asynchrone ne doit dé
marrer que lorsque l'instruction asynchrone précédente s'est achevée et que cela a été acquit
té par le biais du paramètre DONE.
Exemple : Pour les fonctions de recette RecipeImport et RecipeExport, vous avez besoin d'un
fichier CSV pour les données de recette. Si vous utilisez le même fichier CSV pour l'importa
tion et l'exportation, les deux instructions asynchrones dépendent l'une de l'autre. Dans un
graphe séquentiel, incluez par opération logique l'état du paramètre DONE de l'instruction Re
cipeImport dans la transition à l'étape suivante où sera exécutée la fonction RecipeExport.
Cette opération logique garantira un traitement correct.
Affectation de l'appel à la tâche de l'instruction
Pour exécuter une instruction sur plusieurs appels, la CPU doit pouvoir affecter de manière
univoque un appel consécutif à une tâche déjà active de l'instruction.
Pour affecter l'appel à la tâche, la CPU se sert d'un des deux mécanismes suivants, en fonction
du type de l'instruction :
• Avec le bloc de données d'instance de l'instruction (pour le type "SBF")
• Avec les paramètres d'entrée de l'instruction identifiant la tâche. Ces paramètres d'entrée
doivent être identiques à chaque appel pendant le traitement de l'instruction asynchrone.
Exemple : une tâche de l'instruction "Create_DB" est identifiée par les paramètres d'entrée
LOW_LIMIT, UP_LIMIT, COUNT, ATTRIB et SRCBLK.
Le tableau suivant montre les paramètres d'entrée identifiant les différentes instructions.
Instruction
142
DPSYC_FR
D_ACT_DP
DPNRM_DG
Tâche identifiée par
LADDR, GROUP, MODE
LADDR
LADDR
Système de périphérie décentralisée
Manuel système, 04/2022, A5E03576850-AL