Pour évaluer les erreurs de programmation potentielles, vous pouvez utiliser la fonctionnalité de débogage.
Il est également possible d'exécuter une application en mode simulation à des fins de test, sans avoir besoin de l'associer à un équipement cible réel. 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. Il est possible de déterminer avec précision la position actuelle grâce à 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 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 donne un aperçu de tous les points d'arrêt et permet d'en ajouter, d'en supprimer ou d'en modifier.
L'exécution du programme s'arrête au point d'arrêt :
osi une expression booléenne spécifique est TRUE à cet instant précis ;
oen fonction du numéro de cycle en cours d'exécution ;
oen fonction de la tâche en cours d'exécution ;
olorsque 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).
En mode en ligne, la boîte de dialogue Points d'arrêt vous permet de remplacer un point d'arrêt et un point d'arrêt de données par un point d'exécution. Le programme ne s'arrête pas à la position indiquée, mais le traitement du code est initialisé.
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 liées aux points d'arrêt.
EcoStruxure Machine Expert propose les fonctions pas à pas suivantes :
oCommande Pas à pas détaillé : une seule étape est exécutée. S'applique également aux POU appelés dans une étape.
oCommande Pas à pas principal : une seule étape est exécutée. Les POU d'une étape sont entièrement exécutés.
oCommande Pas à pas sortant : lorsque le programme de l'application ne contient pas d'appels, l'exécution reprend depuis le début.
oCommande Exécuter jusqu'au curseur : le programme est exécuté jusqu'à une position définie provisoirement.
oCommande Définir l'instruction suivante : définition de l'instruction suivante à exécuter.
oCommande Afficher l'instruction suivante : accès à l'instruction à exécuter dans l'étape suivante.
oAffichage Pile d'appels : indique la position de l'étape actuellement atteinte, avec son chemin d'appel complet.
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 Arborescence des appels indique la position du bloc fonction dans la structure d'appel d'un programme avant que l'application soit compilée.
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
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 pouvant être définis dépend du nombre de registres disponibles dans le contrôleur. 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) :
oPossibilité d'associer la mise en pause à une condition supplémentaire (consultez la section Points d'arrêt conditionnels)
oPossibilité 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 un seul type de tâche doit être concerné (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. Reportez-vous également à la rubrique Contrôle de déroulement de l'aide en ligne des 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. Reportez-vous également à la rubrique Pile d'appels de l'aide en ligne des commandes de menu.