Skip to main content

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

Exemple 27. Exemple
_cds_task_configuration_tab_stack_usage_example.png


Affichage de l'utilisation de la pile

  1. Double-cliquez sur Configuration des tâches objet.

    L'éditeur de configuration des tâches s'ouvre.

  2. Cliquez ConstruireGénérer du code commande.

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

Exemple 28. Exemple

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.

_cds_task_config_stack_usuage.png