Skip to main content

Profilage par instrumentation de code

Important

Le code CEI ajouté implicitement pour une méthode de mesure Profiler, ainsi que les points d'arrêt pour les POU dans la liste de surveillance, entraînent un changement et ralentissent le programme évalué.

Lorsqu'un profilage ou une mesure de couverture de code est actif, une mise en ligne n'est généralement pas possible. De plus, certaines fonctionnalités en ligne ne sont pas disponibles, telles que le "contrôle de flux" et les "points d'arrêt". Il n'y a aucune restriction pour la liste de surveillance à cet égard.

L'activation ou la désactivation d'une méthode de mesure de Profiler ou la modification de paramètres dans l'éditeur de Profiler nécessitent chacune un téléchargement. Une modification en ligne n'est alors plus possible. Il n'y a aucune restriction pour la liste de surveillance à cet égard.

Astuce

L'enregistrement et le traitement des valeurs mesurées ont lieu sur le contrôleur et peuvent donc également être effectués sans connecter le système de développement au contrôleur (contrairement aux autres méthodes de mesure).

Avec cette méthode de profilage, CODESYS Profiler insère un code supplémentaire dans l'entrée et la sortie de chaque fonction du programme. Les temps d'exécution d'un cycle de tâche complet sont mesurés et stockés.

La méthode est utile pour détecter des valeurs aberrantes individuelles dans les exécutions de tâche. Pour ce faire, sélectionnez le Enregistrer le cycle maximum mode d'enregistrement.

Lorsque l'ensemble du projet est instrumenté, cela peut avoir un impact considérable sur les temps d'exécution des tâches et la consommation de mémoire. Par conséquent, dans la mesure du possible, ne sélectionnez qu'une partie des POU d'application pour l'instrumentation. Une approche recommandée consiste à sélectionner d'abord uniquement les POU qui sont appelées directement par la tâche. Déterminez les « points chauds » du temps d'exécution pour ces POU, puis, en fonction de ceux-ci, sélectionnez les POU appelées pour la mesure.

Important

  • Les POU qui ne sont pas sélectionnées pour la mesure ne sont pas affichées dans la liste de mesure, l'arborescence des appels ou les onglets de backtrace. Par conséquent, il est possible qu'un arbre d'appel "POU1 -> POU3" soit affiché, bien qu'il n'y ait pas d'appel direct de POU3 par POU1. C'est parce qu'il y a des appels de POU qui ne sont pas sélectionnés pour la mesure entre POU1 et POU3.

  • La sortie "temps propre" dans la mesure d'un POU peut également contenir les temps des POU appelés qui ne sont pas sélectionnés pour la mesure.

Activation et exécution du profilage au moyen de l'instrumentation

Exigence:

  • UNE CODESYS l'application de projet avec plusieurs POU est ouverte en mode hors ligne.

  • Une tâche est définie pour contrôler les appels de POU.

  • L'application est l'application active et peut être compilée sans erreur.

  • Une connexion au contrôleur standard est configurée dans les paramètres de communication et le contrôleur est en cours d'exécution.

  1. Pour activer et désactiver le profilage par programmation, vous définissez une variable booléenne dans l'application. (Ceci est facultatif pour l'exemple décrit ici. L'activation peut également être effectuée par une commande de menu.)

  2. Cliquez sur Ajouter un objet pour ajouter un Profileur sous l'application dans l'arborescence des appareils.

  3. Double-cliquez sur l'objet.

    L'éditeur d'objets s'ouvre. le _prf_icon_settings.png Réglages l'onglet est mis au point.

  4. Met le Méthode pour Instrumentation. Sélectionnez le Tâche avec les appels POU sur lesquels vous souhaitez effectuer des mesures de temps.

  5. En dessous de Enregistrement, sélectionnez la tâche de pilotage des POU à instrumenter.

    Pour État, clique le _cds_icon_three_dots.png et sélectionnez la variable booléenne de votre application que vous souhaitez utiliser pour activer et désactiver l'enregistrement de la valeur. Remarque : L'utilisation de ce type de variable est facultative. Si vous laissez le champ vide, chaque cycle est enregistré.

  6. En dessous de Paramètres d'instrumentation, met le Mode d'enregistrement pour Enregistrer le prochain cycle. Laissez le nécessaire Taille du tampon (le nombre maximum d'appels POU qui sont enregistrés par cycle de tâche) comme valeur par défaut 10000.

    En dessous de Apparence de l'instantané, sélectionnez le Format de l'heure pour afficher l'enregistrement.

  7. Dans Sélection d'UOP, sélectionnez les POU à instrumenter. Notez que vous pouvez également sélectionner "Instrument toute l'application", ce qui inclurait tous les POU du projet ainsi que les POU des bibliothèques intégrées.

  8. Cliquez sur En ligne → Se connecter pour télécharger l'application sur le contrôleur.

    L'affichage _prf_img_status.png s'affiche dans la barre d'état de CODESYS.

  9. Cliquez sur En ligne → Démarrer pour lancer l'application.

    Le projet s'exécute et vous voyez les valeurs des variables actuelles dans la vue de surveillance habituelle.

  10. Si vous avez configuré une variable booléenne comme condition pour démarrer le profilage, définissez maintenant cette variable sur TRUE.

    Informations de fond sur l'enregistrement : Parce que vous avez sélectionné le Enregistrer le prochain cycle Dans cet exemple, seul le premier cycle est enregistré lors du démarrage de l'application et du profilage. Aucun cycle supplémentaire n'est enregistré. Une mesure supplémentaire est effectuée uniquement lorsqu'un enregistrement est téléchargé depuis le contrôleur. Ce téléchargement se fait soit en ouvrant le En ligne l'onglet pour la première fois ou en cliquant sur l'onglet Actualiser l'instantané bouton. Pour plus d'informations sur l'alternative Enregistrer le cycle maximum option, voir la partie référence de l'aide : Onglet 'Paramètres'.

    Regardez maintenant les résultats de l'échantillonnage. Ouvrez l'éditeur de l'objet Profiler et son En ligne languette.

    le _prf_icon_online.png En ligne propose quatre sous-onglets qui peuvent être sélectionnés dans le menu de gauche. De plus, vous voyez une zone avec des boutons et des paramètres pour le profilage en cours d'exécution. Pour plus d'informations, consultez : Onglet "En ligne"

Procédure. Des informations détaillées sur un appel POU dans le Propriétés dialogue
  1. Sur le En ligne onglet, cliquez sur l'onglet Arbre d'appel Catégorie.

    Vous voyez la hiérarchie de tous les appels provenant de la tâche spécifiée dans le Réglages dialogue.

  2. Sélectionnez l'un des appels et cliquez sur Propriétés dans le menu contextuel.

    le Propriétés La boîte de dialogue de la POU appelée s'ouvre avec des informations détaillées, telles que Propre temps et Écart-type.