Calcul de l'utilisation de la pile
L'utilisation de la pile par POU est affichée dans le Configuration des tâches objet sur le Utilisation de la pile onglet.
L'utilisation de la pile est calculée statiquement par CODESYS à l'aide de l'arbre d'appels statique.
Les éléments suivants sont inclus dans le calcul :
Le calcul commence par le POU implicite pour la saisie de la tâche.
Pour chaque appel de programme IEC (par ex.
PLC_PRG
), l'utilisation de la pile de chaque POU IEC appelée est calculée de manière récursive. La plus grande utilisation possible de la pile d'un POU est ajoutée à l'utilisation de sa propre pile locale afin de déterminer l'utilisation maximale de la pile du POU.Pour les appels dynamiques, l'utilisation de la pile est calculée comme suit : L'utilisation de la pile de toutes les implémentations possibles est déterminée et la plus grande utilisation de la pile est supposée. Cela signifie que toutes les implémentations possibles sont prises en compte pour les méthodes d'interface et toutes les réécritures possibles pour les méthodes de blocs fonctionnels.
La valeur spécifiée par le périphérique cible est prise en compte pour les appels externes. Si le périphérique n'a pas spécifié de valeur, 0 est supposé.
En cas de récursivité, le calcul est annulé. La valeur de l'attribut de type pragma estimated-stack-usage est appliqué au code appelé de manière récursive. Si aucune valeur n'est spécifiée, 0 est supposé.
L'utilisation de la pile n'est donc qu'une estimation. Il est peut-être trop élevé car le chemin d'appel le plus bas supposé n'est jamais utilisé lors de l'exécution. Cependant, il peut également être trop faible car les récursions ou les appels externes sont estimés de manière défavorable

Affichage de l'utilisation de la pile
Double-cliquez sur Configuration des tâches objet.
L'éditeur de configuration des tâches s'ouvre.
Cliquez Construire → Générer du code commande.
Cliquez sur Utilisation de la pile onglet.
Les informations de l'onglet sont mises à jour.
En dessous Tâche/pile d'appels maximale, les POU appelés en séquence apparaissent tels qu'ils sont supposés dans la pile d'appels maximale. La taille de pile calculée pour le POU est affichée dans Taille de la pile colonne.
Si la taille de la pile est affichée en rouge, il se peut qu'il y ait un débordement de pile dans le POU correspondant. Vous pouvez reconnaître le POU où vous devez apporter des modifications. Il s'agit du premier POU marqué en rouge dans la pile d'appels.
