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.
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.
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 vous permet d'ajouter, de supprimer et de modifier des points d'arrêt.
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).
En mode en ligne, la boîte de dialogue 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é.
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é. |
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 : exécution d'une seule étape ; ceci vaut également pour les POU appelés dans une étape.
SoMMenu/index.htm : exécution d'une seule étape ; les POU sont exécutés complètement à l'intérieur d'une étape.
Commande (voir EcoStruxure Machine Expert - Commandes de menu - Aide en ligne)Commande : retour au début de l'application si le programme d'application ne contient aucun appel.
Commande : exécution du programme jusqu'à une position temporaire configurable.
Commande : définition de l'instruction suivante à exécuter.
Commande : accès à l'instruction à exécuter dans l'étape suivante.
Affichage : 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 : indique l'emplacement du bloc fonction dans la structure d'appel d'un programme d'application avant même de compiler l'application.
À 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 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).
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
, onglet ).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.
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.