Débogage

Présentation

Pour évaluer les erreurs de programmation potentielles, vous pouvez utiliser la fonctionnalité de débogage.

À des fins de test, vous pouvez également exécuter une application en mode simulation sans aucun lien à un appareil cible. La simulation évite d'avoir à se connecter au matériel physique, mais présente des restrictions qui peuvent nécessiter de terminer le débogage en ligne.

Points d'arrêt pour forcer l'arrêt de l'exécution

Un point d'arrêt défini dans un programme d'application permet d'arrêter l'exécution du programme. Vous pouvez alors vérifier les valeurs de variable au point d'exécution actuel. La position actuelle peut être déterminée plus précisément à l'aide de la Pile d'appels.

La seule tâche qui est arrêtée est la tâche de débogage qui vient d'atteindre le point d'arrêt. Les autres tâches continuent d'être exécutées. Les positions possibles pour les points d'arrêt dépendent de l'éditeur de programme. Dans tous les cas, un point d'arrêt est inséré la fin d'un POU.

NOTE : Les entrées et sorties gérées par la tâche de débogage et arrêtées au niveau d'un point d'arrêt ne sont pas mises à jour. Ceci s'applique même si l'option Mettre à jour E/S en mode Stop est activée dans l'onglet Paramètres API [GENERAL] de l'éditeur d'appareil.

Pour une description des commandes relatives aux points d'arrêt, consultez le chapitre Commandes liées aux points d'arrêt. La boîte de dialogue Points d'arrêt vous permet d'ajouter, de supprimer et de modifier des points d'arrêt.

Points d'arrêt conditionnels

L'exécution du programme s'arrête au point d'arrêt :

  • si une expression booléenne spécifique est TRUE à cet instant précis ;

  • en fonction du numéro de cycle en cours d'exécution ;

  • en fonction de la tâche en cours d'exécution ;

  • lorsque la valeur d'une variable est modifiée (point d'arrêt de données).

Le fait de déclarer une tâche de débogage spécifique peut éviter que plusieurs tâches soient affectées par le contrôle d'erreur (consultez le paragraphe Points d'arrêt et procédures pas à pas dans les applications contenant plusieurs tâches).

Points d'exécution

En mode en ligne, la boîte de dialogue Points d'arrêt vous permet de modifier un point d'arrêt et un point d'arrêt de données pour en faire un point d'exécution. Le programme ne s'arrête pas à la position indiquée, mais le traitement du code est initialisé.

Symboles

Symbole

Description

Point d'arrêt activé.

Point d'arrêt désactivé.

Le point d'arrêt est défini dans une autre instance du bloc fonction qui est ouverte dans l'éditeur.

S'arrêter au point d'arrêt.

Point d'arrêt conditionnel activé.

Point d'arrêt conditionnel désactivé.

Point d'exécution activé.

Point d'exécution désactivé.

Point d'exécution conditionnel activé.

Point d'exécution conditionnel désactivé.

Position d'étape actuelle.

Indiquée par une flèche jaune avant la ligne correspondante et un ombrage jaune derrière l'opération concernée.

Point d'arrêt de données activé.

Point d'arrêt de données désactivé.

S'arrêter au point d'arrêt de données.

Point d'exécution de données activé.

Point d'exécution de données désactivé.

S'arrêter au point d'exécution de données.

Point d'exécution de données conditionnel activé.

Point d'arrêt de données conditionnel activé.

Procédures pas à pas dans le programme

La fonction pas à pas permet de contrôler l'exécution d'un programme d'application en mode en ligne, en vue du débogage. Avant d'utiliser des commandes pas à pas, vous devez arrêter le programme au niveau d'une étape (à l'aide d'un point d'arrêt, par exemple). Concrètement, vous passez d'une instruction à la suivante en accédant à une instruction (Pas à pas détaillé), en passant à l'instruction suivante (Pas à pas principal) ou en sortant d'une instruction (Pas à pas sortant). Pour une description des commandes pas à pas, consultez le chapitre Commandes relatives aux points d'arrêt.

EcoStruxure Machine Expert propose les fonctions pas à pas suivantes :

  • Commande Pas à pas détaillé : exécution d'une seule étape ; ceci vaut également pour les POU appelés dans une étape.

  • CommandeCommande (voir EcoStruxure Machine Expert - Commandes de menu - Aide en ligne)SoMMenu/index.htm : exécution d'une seule étape ; les POU sont exécutés complètement à l'intérieur d'une étape.

  • Commande Pas à pas sortant : retour au début de l'application si le programme d'application ne contient aucun appel.

  • Commande Exécuter jusqu’au curseur : exécution du programme jusqu'à une position temporaire configurable.

  • Commande Définir l'instruction suivante : définition de l'instruction suivante à exécuter.

  • Commande Afficher l'instruction suivante : accès à l'instruction à exécuter dans l'étape suivante.

  • Affichage Pile d'appels : cet affichage indique la position pas à pas atteinte avec le chemin complet de l'appel.

Les positions d'arrêt possibles lors de l'exécution pas à pas d'un programme d'application dépendent du type d'éditeur. La position actuelle est indiquée par une flèche jaune.

L'affichage Diagramme d'appel : indique l'emplacement du bloc fonction dans la structure d'appel d'un programme d'application avant même de compiler l'application.

Exemple d'opération Pas à pas détaillé

À partir du point d'arrêt, vous pouvez exécuter chacune des lignes de commandes à l'aide de la commande pas à pas.

Pas à pas détaillé - Exemple

Points d'arrêt de données

Les points d'arrêt de données permettent d'arrêter l'exécution du programme lorsque la valeur d'une variable change.

Cette fonction n'est pas disponible pour tous les contrôleurs pris en charge. Veuillez consulter le Guide de programmation spécifique à votre contrôleur.

Le nombre de points d'arrêt de données que vous pouvez définir dépend du contrôleur utilisé. Un message s'affiche si vous essayez de définir un point d'arrêt de données alors que la limite maximale est atteinte.

Les options suivantes sont disponibles pour les points d'arrêt de données (comme pour les points d'arrêt normaux) :

  • Possibilité d'associer la mise en pause à une condition supplémentaire (consultez la section Points d'arrêt conditionnels)

  • Possibilité de convertir un point d'arrêt de données en point d'exécution de données : exécution d'un code spécifique, sans arrêter le programme (consultez la section Points d'exécution).

Points d'arrêt et procédures pas à pas dans les applications contenant plusieurs tâches

Il est impossible de déboguer plusieurs tâches à la fois. Lorsque vous exécutez une tâche avec des points d'arrêt ou des procédures pas à pas, les points d'arrêt des autres tâches sont ignorés.

Si plusieurs tâches atteignent un point d'arrêt (utilisation du POU par plusieurs tâches), seule la tâche s'exécutant la première est mise en pause. Vous devez en tenir compte en cas de fonction pas à pas unique ou si vous continuez le débogage après une pause. Si une seule tâche doit être concernée (tâche de débogage), vous devez l'indiquer dans les propriétés des conditions des points d'arrêt (boîte de dialogue Points d'arrêt > Nouveau point d'arrêt, onglet Condition).

Contrôle de déroulement pour afficher les valeurs exactes en cours de traitement

Vous pouvez activer le contrôle de déroulement pour savoir quelles parties de l'application ont déjà été exécutées. Contrairement à la surveillance standard, qui affiche seulement la valeur de variable entre deux cycles, le contrôle de déroulement renvoie en temps réel la valeur de chaque étape de traitement. Consultez également la description Régulation de débit dans l'Aide en ligne Commandes de menu.

Valeurs des variables en cas d'arrêt de l'exécution

Chaque fois que l'exécution est arrêtée, EcoStruxure Machine Expert affiche les valeurs des variables du cycle actuel (surveillance). Pour savoir où vous en êtes, vous pouvez afficher la pile d'appels d'une variable. Consultez également la description Pile d'appels dans l'Aide en ligne Commandes de menu.