 Mise au point

L'atelier ISaGRAF contient un debugger graphique et symbolique. La commande "Tester" du Gestionnaire de Programmes lance le debugger pour contrôler l'application téléchargée dans l'automate cible. Dans ce mode, le debugger dialogue avec le système cible via une liaison série ou Ethernet. La commande "Simuler" du Gestionnaire de Programmes lance simultanément le debugger et une fenêtre de simulation de l'automate. Ceci permet de commencer les tests de l'application quand la machine cible n'est pas encore disponible. La fenêtre du debugger regroupe les commandes permettant de contrôler l'application dans sa totalité.

La fenêtre du debugger

Contrôle de l'application

Options

Commandes de forçage

Modification en ligne

Echanges DDE

Quand le debugger a établi le dialogue avec l'application testée, il ouvre automatiquement la fenêtre du Gestionnaire de Programmes, en mode "mise au point". Les commandes de cette fenêtre peuvent alors être utilisées pour ouvrir les autres fenêtres d'ISaGRAF (éditeurs textuels ou graphiques, dictionnaire, listes de variables, câblage des E/S...) Toutes les fenêtres ouvertes pendant le test sont ouvertes en mode "mise au point". Les commandes d'édition ne sont plus disponibles. Tous les composants affichés (étapes, contacts, variables...) sont montrés avec leur état ou valeur courant. Il suffit de cliquer deux fois sur un objet pour changer son état ou sa valeur.

Quand le debugger est utilisé en mode simulation, aucun dialogue n'est plus effectué avec l'automate cible ISaGRAF. Le debugger communique alors avec la fenêtre du simulateur. Puisque le système cible n'existe pas dans ce mode, les commandes de "téléchargement", "arrêt" ou "activation" ne sont plus valides dans les menus du debugger.


La fenêtre du debugger

La fenêtre du debugger regroupe toutes les informations concernant l'état de l'automate et de l'application. Elle dialogue avec les autres fenêtres d'ISaGRAF pour former un système interactif complet de test et de mise au point. Les erreurs détectées à l'exécution sont affichées dans la partie inférieure de la fenêtre du debugger. Utilisez les commandes du menu "Options" pour cacher, montrer ou effacer la liste des erreurs d'exécution.

Le tableau de bord du debugger (zone en dessous du menu) indique l'état précis de l'application testée, et des informations concernant le temps de cycle. Voici la liste des messages décrivant l'état de l'application :

Connexion:	Le debugger est en train d'établir la communication avec l'automate cible.

Déconnecté:	Le debugger ne peut pas dialoguer avec la cible. Vérifiez le câble de connexion et la valeur des paramètres de communication.

Pas d'application:	La connexion est ok, mais aucune application ISaGRAF n'est installée dans l'automate. Vous devez transférer l'application.

Application active:	La connexion est ok et une application active existe dans l'automate. Le debugger installe maintenant le dialogue avec cette application.

MARCHE:	L'application est dans le mode "Temps Réel" (marche normale).

ARRET:	L'application est arrêtée dans le mode "Cycle à Cycle".

Point d'arrêt:	L'application est en mode "Cycle à Cycle", car un point d'arrêt a été rencontré.

Erreur fatale:	L'application est interrompue car une erreur grave est survenue.

Voici les informations concernant le temps de cycle :

Autorisé:	C'est le temps programmé pour le cycle.

Courant:	C'est la dernière valeur exacte mesurée.

Maximum:	C'est la durée utilisée par le cycle le plus long depuis le lancement de l'application.

Dépassements:	C'est le nombre de cycles ayant provoqué un dépassement du temps programmé.

Tous les temps sont donnés en milli-secondes. Les composantes du temps de cycle ne sont pas affichées quand le debugger est utilisé en mode simulation.


Contrôle de l'application

Les menus "Fichier" et "Contrôle" groupent les commandes pour l'installation de l'application dans la cible ISaGRAF et le contrôle de l'application en temps réel.

Note:	Certaines de ces commandes ne sont naturellement pas disponible quand le debugger est utilisé pour la simulation, puisque l'installation testée est automatiquement installée par l'atelier ISaGRAF.

Arrêter l'application

Lancer l'application

Télécharger l'application

Afficher le numéro de version

Modifier l'application en ligne

Mode temps réel

Mode cycle à cycle

Exécuter un cycle

Temps de cycle

Retirer tous les points d'arrêt

Déverrouiller les variables d'E/S


Arrêter l'application

La commande "Arrête l'application" du menu "Fichier" stoppe l'exécution de l'application active dans l'automate cible ISaGRAF.


Lancer l'application

La commande "Active l'application" lance l'exécution de l'application installée dans l'automate cible. Quand une application est téléchargée, elle est automatiquement lancée, et la commande "Activer" n'est pas nécessaire. La commande "Activer" est typiquement utilisée après une commande "Arrêter".

Note: l'application présente dans l'automate cible doit être arrêtée (inactive) avant le téléchargement d'une nouvelle application.


Télécharger l'application

Les commandes "Transférer" du menu "Fichier" permettent de télécharger le code de l'application dans l'automate cible. Selectionnez le type code à télécharger, en accord avec les options spécifiées pour l'application et le type de processeur implanté dans votre automate.


Afficher le numéro de version

La commande "Lecture du numéro de version" du menu "Fichiers" est utilisée pour afficher l'identification complète de l'application sur l'atelier et de l'application cible. L'application sur l'atelier est celle actuellement ouverte dans l'atelier ISaGRAF. L'application cible est celle actuellement exécutée dans l'automate cible ISaGRAF. Les informations suivantes sont affichées:

VERSION:	C'est le numéro de version du code de l'application. Ce numéro a été calculé par le générateur de code.

DATE:	C'est la date et l'heure de la session de génération de code qui a produit cette application.

CRC:	C'est un checksum calculé à partir du contenu de la table des symboles de l'application. Ce numéro a été calculé par le générateur de code. Sa valeur dépend du contenu du dictionnaire de variables de l'application.

Note: Cette commande est également disponible pendant la simulation. Pendant la mise au point en réel, cette commande est sans effet si l'automate cible est déconnecté.


Modifier l'application en ligne

La commande "Mise à jour" du menu "Fichiers" permet de réaliser une modification "en ligne" de l'application en cours d'exécution dans l'automate. Cette fonction est décrite en détaille dans les sections suivantes de ce chapître. Cette commande n'est pas disponible quand le debugger est utilisé en mode simulation.


Mode temps réel

La commande "Contrôle / Temps réel" n'est disponible que lorsque l'application est active dans l'automate. Elle force l'application en mode normal "Temps Réel": les cycles d'exécution sont cadencés en fonction du temps de cycle programmé.


Mode cycle à cycle

La commande "Contrôle / Cycle à cycle" n'est disponible que lorsque l'application est active dans l'automate. Elle force l'application en mode normal "Cycle à cycle". Dans ce mode, les cycles sont exécutés un par un, à chaque commande "Exécuter un cycle" émise depuis le menu du debugger.


Exécuter un cycle

Quand la cible est en mode Cycle à Cycle, la commande "Contrôle / Exécuter un cycle" lance l'exécution d'un seul cycle automate.


Temps de cycle

La commande "Changer le temps de cycle" du menu "Contrôle" permet de modifier la valeur programmée pour le temps de cycle. C'est la valeur intitulée "Autorisé" dans le tableau de bord du debugger. Il est préférable de positionner le mode "Cycle à cycle" avant de changer le temps de cycle. Le temps de cycle est saisi comme un nombre entier de milli-secondes.


Retirer tous les points d'arrêt

La commande "Effacer les points d'arrêt" du menu "Contrôle" détruit tous les points d'arrêt installés (rencontrés ou encore actifs) dans toute l'application. Les points d'arrêt installés ne sont pas automatiquement détruits quand vous fermez la fenêtre du debugger.


Déverrouiller les variables d'E/S

La commande "Déverrouiller" du menu "Contrôle" déverrouille toutes les variables d'entrée ou de sortie de l'application qui ont été verrouillées. Quand une entrée / sortie est verrouillée, aucune opération n'est plus effectuée sur le dispositif d'E/S correspondant. Les variables correspondant aux E/S verrouillées peuvent être forcées par le debugger. Les E/S verrouillées ne sont pas automatiquement déverrouillées quand vous fermez la fenêtre de debugger.


Options

Le menu "Options" regroupe les différentes options permettant de contrôler les affichages dans la fenêtre du debugger.

Paramètres de communication

Options d'affichage


Paramètres de communication

Les paramètres pour la communication peuvent être réglés quand le debugger est ouvert. Seuls les paramètres temporels (time-outs) peuvent être réglés ici. Les autres paramètres (débit, parité...) doivent être réglés depuis la fenêtre du Gestionnaire de Programmes quand la fenêtre du debugger est fermée.

Le " time-out de communication" est le temps laissé au système cible pour commencer à répondre à une requête du debugger. La "période de rafraîchissement" est la période des requêtes de "lecture" émises par le debugger pour rafraîchir le contenu des fenêtres ouvertes.

Tous les temps sont affichés et saisis en milli-secondes. Les paramètres de la communication ne peuvent pas être réglés quand le debugger est utilisé avec le simulateur.


Options d'affichage

L'option "afficher le temps de cycle" permet de valider ou d'inhiber l'affichage rafraîchi des composantes du temps de cycle dans le tableau de bord de l'automate. Inhiber l'affichage du temps de cycle réduit la charge de communication et d'affichage du debugger.

Quand l'option "afficher les erreurs" est choisie, les erreurs détectées à l'exécution sont affichées au fil de l'eau dans la partie inférieure de la fenêtre du debugger. Quand cette option est inhibée, la partie inférieure de la fenêtre est cachée. Inhiber l'affichage des erreurs réduit la charge de communication et d'affichage du debugger.

La commande "Options / Réduire la fenêtre" réduit la fenêtre du debugger et la montre comme un petit tableau de bord toujours visible situé au sommet et à droite de l'écran. Seuls l'état de l'application et les boutons graphiques pour les commandes les plus courantes sont visibles dans ce mode.


Commandes de forçage

Le debugger d'ISaGRAF propose de nombreuses commandes pour changer la valeur ou l'état des composants de l'application. La désignation de l'élément à modifier se fait toujours en cliquant deux fois sur son nom ou son symbole dans les fenêtres de l'atelier ISaGRAF, quand la fenêtre du debugger est ouverte.

Variables

Objets SFC


Variables

Pour modifier la valeur d'une variable, cliquez deux fois sur son nom dans une des fenêtres suivantes:

•	Dictionnaire

•	listes de variables

•	programmes LD ou FBD

•	câblage des E/S

Les commandes suivantes sont proposées dans une boîte de dialogue :

•	Forçage de la variable à une nouvelle valeur

•	Verrouillage de la variable (pour E/S seulement)

•	Déverrouillage de la variable (pour E/S verrouillées seulement)

•	Lancement ou Arrêt d'une variable temporisation

Les libellés utilisés pour représenter les valeurs FALSE et TRUE sont ceux définis à la déclaration de la variable dans le dictionnaire. La valeur analogique spécifiée pour une commande de forçage d'une variable analogique doit être entrée en format réel ou entier, en accord avec la déclaration de la variable. La chaine spécifiée lors d'une commande de forçage d'une variable message ne doit pas excéder la longueur maximum spécifiée lors de la déclaration de la variable.


Objets SFC

Pour réaliser une opération de contrôle d'un programme SFC pendant la mise au point d'une application, utilisez les commandes du menu "Fichiers" dans la fenêtre du gestionnaire de programmes. Les commandes concernent toujours le programme sélectionné dans la fenêtre. Les commandes suivantes sont disponibles:

Lancer:	Active le programme en plaçant un jeton dans chacune de ses étapes initiales.

Tuer:	Tue le programme en détruisant tous les jetons existant dans ses étapes.

Figer:	suspend l'exécution du programme.

Relancer:	Relance un programme figé (suspendu).

Pour les programmes SFC fils, ces commandes correspondent aux énoncés "GSTART", "GKILL", "GFREEZE" et "GRST" du langage.

Pour contrôler une étape SFC pendant la mise au point d'une application, cliquez deux fois sur son symbole dans la fenêtre d'édition SFC. Les commandes suivantes sont proposées dans une boîte de dialogue :

•	Poser un point d'arrêt sur l'activation de l'étape

•	Poser un point d'arrêt sur la désactivation de l'étape

•	Enlever le point d'arrêt posé sur l'étape

Note:	Les points d'arrêt en activation et désactivation ne peuvent pas coexister sur la même étape.

Pour contrôler une transition SFC pendant la mise au point d'une application, cliquez deux fois sur son symbole dans la fenêtre d'édition SFC. Les commandes suivantes sont proposées dans une boîte de dialogue:

•	Poser un point d'arrêt sur le franchissement de la transition

•	Enlever le point d'arrêt posé sur la transition

•	Franchir manuellement la transition (déplacement ou création de jetons)

Lors d'un franchissement conditionnel, un jeton est créé dans chacune des étapes suivant la transition. Les jetons existant dans les étapes amont sont enlevés. Lors d'un franchissement inconditionnel, un jeton est créé dans chacune des étapes suivant la transition. Les jetons existant dans les étapes amont ne sont pas déplacés ni détruits. Ces commandes ne tiennent pas compte de la valeur de la réceptivité de la transition.


Modification en ligne

La fonction de "Modification en ligne" permet à l'utilisateur de modifier une application pendant qu'elle est exécutée dans l'automate cible. Ceci est parfois nécessaire pour certaines applications ne pouvant absolument pas être arrêtées, par exemple dans le cas des procédés chimiques. Bien sûr, cette fonction doit être utilisée avec beaucoup de précautions car il est impossible pour ISaGRAF de détecter tout type de conflit ou de non sens dans les modifications apportées à l'application.

Séquences de code

Variables

Entrées / Sorties

Opérations en ligne

Mémoire

Limitations

Opérations


Séquences de code

ISaGRAF offrant naturellement de nombreuses possibilités de contrôle des variables, programmes et Entrées/Sorties depuis le debugger, la fonction de "Modification en ligne" décrite ici ne concerne que la modification des séquences de code. Une séquence de code est un ensemble complet d'instructions ST, IL, LD ou FBD exécutées en ligne. Pour un programme de "début de cycle" ou de "fin de cycle", une séquence de code est le contenu complet du programme. Pour un programme SFC, une séquence de code est la programmation du niveau 2 d'une étape ou d'une transition. La "Modification en ligne" consiste à remplacer une ou plusieurs séquences de code, sans arrêter le cadencement des cycles d'exécution. Comme le contrôle des activités d'étapes SFC est très critique, il n'est pas autorisé de modifier la structure des programmes SFC, d'ajouter, supprimer ou de renuméroter des étapes ou transitions d'un programme SFC.


Variables

La base de données des variables est un point très sensible de l'application. Cette base de données étant accédée en temps réel par d'autres processus (sur des automates multitâches) et la modification des variables étant possible depuis le debugger, il n'est pas autorisé d'ajouter, renommer ou supprimer des variables. Bien sûr, il est possible de modifier l'utilisation de ces variables dans l'application. Il est également possible de réserver des variables internes ou d'E/S "inutilisées" pour assurer la faisabilité des modifications futures.

Il y a différents styles de variables dans la base de données dynamique d'ISaGRAF sur la cible. Les limitations énoncées ci-avant agissent sur tous ces styles de variables:

- Variables déclarées

Ce sont les variables déclarées dans le dictionnaire de l'application. Elles ne peuvent pas être changées ni renommées dans le cas d'une modification en ligne. Il est recommandé de déclarer quelques variables de plus et de les initialiser dans les programmes. Ces variables pourront servir dans le futur à implémenter de nouvelles fonctionalités acceptées lors d'une modification en ligne.

- Instances de blocs fonctionnels

A chaque instance de bloc fonctionnel en "C" ou en langage IEC correspond un paquet de données rangé dans la base de données dynamique de la cible ISaGRAF. Quand des instances de blocs fonctionnels sont ajoutées ou supprimées, la modification en ligne n'est plus possible. Il est donc préférable, dans des applications nécessitant la modification en ligne, de travailler en ST ou en IL avec des instances de blocs fonctionnels déclarées dans le dictionnaire, plutôt que d'ajouter des blocs dans des diagrammes Quick LD ou FBD (qui correspondent à des instances créées automatiquement). Aussi, tout changement dans la définition des blocs fonctionnels de la librairie ISaGRAF engendrera une modification en ligne refusée.

- Etapes SFC

A chaque étape SFC correspond une structure de données (validité, temps d'activation...) stockée dans la base de données deynamique de la cible. L'ajout ou la suppression d'étapes dans les schémas SFC engendrera une modification en ligne refusée.

- Variables cachées allouées par les compilateurs

Les compilateurs d'ISaGRAF créent des variables temporaires "cachées" afin de résoudre les expressions complexes énoncées dans les langages. Dans certains cas, le changement d'une expression peut engendrer une modification du nombre de variables temporaires requises, et conduire à une modification en ligne impossible. Pour éviter cette situation, vous pouvez ajouter les entrées suivantes dans le fichier de paramètres ISA.INI, pour forcer l'allocation d'un minimum de variables temporaires pour chaque type de donnée et chaque programme du projet. Voici un exemple de paramétrage:

[DEBUG]

MNTVboo=8	; pour les booléens

MNTVana=4	; pour les entiers et les réels

MNTVtmr=4	; pour les temporisations

MNTVmsg=2	; pour les messages

Quand ce paramétrage est présent dans le fichier ISA.INI, le compilateur produit une erreur si le nombre de variables temporaires à allouer excède le nombre minimum explicité dans les paramètres MNTV.


Entrées / Sorties

Le système d'E/S d'ISaGRAF étant très ouvert, la plupart des modifications devront être prévues par le concepteur OEM, prenant en compte les fonctionnalités spécifiques du matériel. ISaGRAF ne permet pas d'ajouter, connecter ou enlever une carte d'E/S, ni ne modifier la description d'une carte, lors d'une modification en ligne. Les opérations telles que la modification des paramètres d'une carte, le verrouillage des voies d'E/S, peuvent également être assurées de façon standard par la mise en oeuvre de la fonction "OPERATE".


Opérations en ligne

La modification d'une application en cours d'exécution sur la cible consiste en une série d'opérations élémentaires:

•	modification du code source de l'application sur l'atelier

•	génération du nouveau code de l'application

•	téléchargement du nouveau code généré avec la commande "mise à jour"

•	passage d'une application à l'autre, en 1 ou 2 cycles d'exécution, avec la commande "Effectuer la mise à jour".

Cette procédure garantit que l'application exécutée sur l'automate est toujours complète et cohérente, et permet à l'utilisateur de contrôler chacune des opérations de façon fiable et sécuritive. Elle permet également de réitérer la modification plusieurs fois si nécessaire. A l'exception des conséquences possibles sur le procédé, la "Modification en ligne" est presque aussi sécuritive que l'enchaînement des commandes "arrêter, activer ou télécharger". Les seules différences sont que les états courants des données ne sont pas perdus, et que le temps de passage d'une application à l'autre est très court (généralement une durée de 1 ou 2 cycles). Pendant le passage d'une application à l'autre, aucune variable n'est modifiée, et toutes les variables internes d'entrée ou de sortie gardent la même valeur avant et après la modification de l'application. Pendant le passage d'une application à l'autre, aucune action n'est exécutée, et les activités d'étapes SFC n'évoluent pas.


Mémoire

Pour permettre la fonction de "Modification en ligne", l'automate cible doit disposer d'un espace mémoire disponible suffisant pour le stockage de la version modifiée de l'application. Les deux versions du code de l'application sont en effet stockés ensemble dans l'automate pendant l'opération de mise à jour.


Limitations

Comme décrit ci-avant, seules les modifications des séquences de code sont autorisées par la "Modification en ligne". La définition des variables, les paramètres de l'application et le câblage des E/S ne peuvent pas être modifiés. Lors du transfert de la nouvelle version de l'application, ISaGRAF effectue une comparaison entre le code transféré et celui en cours d'exécution, afin de détecter toute modification incohérente. Si le passage d'une application à l'autre est dangereux, une erreur de téléchargement est émise. Actuellement, un des contrôles effectués par ISaGRAF est de comparer les checksums des tables de variables, de façon à détecter toute différence dans la définition des variables, des programmes, ou des éléments graphiques du langage SFC. Si une étape est active lors de la modification, ses actions non mémorisées (type N) sont perdues. Les actions d'activation (type P) décrites dans le nouveau code sont exécutées. Les actions exécutées lors de la désactivation de l'étape sont celles décrites dans le nouveau code de l'application. Si une transition est valide lors de la modification, son équation de réceptivité est mise à jour. Si un changement dans une structure du graphe SFC n'a pu être détecté par ISaGRAF (insertion, suppression ou déplacement d'éléments), La fonction de "Modification en ligne" peut avoir des effets imprévisibles. Le code de la nouvelle application téléchargée n'est pas sauvegardé dans l'automate. La sauvegarde reste l'image de l'application initialement installée par une commande de téléchargement classique.


Opérations

Les opérations suivantes doivent être respectées pendant la mise à jour du code d'une application en cours d'exécution dans l'automate:

•	Avant toute modification de l'application, il est vivement recommandé de copier le projet ISaGRAF sous un autre nom. La modification peut indifféremment être effectuée depuis l'une ou l'autre des copies.

•	Avant d'éditer les programmes, l'utilisateur doit valider l'option "mettre à jour l'agenda" des outils d'édition, pour faciliter la maintenance de l'application.

•	Quand les programmes ont été modifiés (sans changement des graphes SFC ni de la hiérarchie des programmes), le code de la nouvelle application doit être généré.

•	Depuis le debugger, dans le projet initial, l'utilisateur doit réaliser la connexion avec l'automate et exécuter toutes les opérations nécessaires pour faciliter et sécuriser la mise à jour de l'application.

•	Depuis le debugger, dans le nouveau projet, l'utilisateur doit réaliser la connexion avec l'automate. Si le nom de l'application est changé, les données de l'application ne sont pas rafraîchies par le debugger. L'utilisateur doit alors lancer la commande "Mise à jour" du menu "Fichiers" de la fenêtre du debugger.

•	Le transfert de la nouvelle application commence, après la sélection du mode "différé". Le transfert peut légèrement ralentir le cycle de l'automate.

•	Quand le transfert est terminé, l'utilisateur doit lancer la commande "Effectuer la mise à jour" pour effectuer le passage d'une application à l'autre au moment adéquat. Le passage d'une application à l'autre peut durer 1 ou 2 cycles automate.

•	Quand le passage a été correctement effectué, les programmes de la nouvelle application sont affichés dans l'écran du debugger. Si ce n'est pas le cas, cela signifie que la passage à la nouvelle application a été refusé et que l'ancienne version est encore active.


Echanges DDE

Le debugger d'ISaGRAF inclut un serveur DDE (Dynamic Data Exchange). Des boucles de notifications (advise loop) peuvent être installées entre le debugger d'ISaGRAF et d'autres applications, pour afficher dynamiquement la valeur de variables ISaGRAF dans ces applications.

Seules les requêtes de type "advise" et "poke" sont supportées par le serveur DDE du debugger ISaGRAF. Vous ne pouvez utiliser les requêtes "request" que sur les variables déjà affectées à une boucle de notification ("advise"). Les autres services DDE tels que "execute" ne sont pas disponibles. Lorsqu'une boucle de notification est établie, la variable est automatiquement rafraîchie dans l'application cliente, à chaque fois que sa valeur évolue. Les variables de tous types peuvent ainsi être espionnées. Voici les éléments d'identification à fournir pour établir une conversation :

Nom de service:	"ISaGRAF"

Topic Nom de document:	Nom de l'application ISaGRAF

Nom d'item:	Nom de la variable

Si la variable est locale à un programme, son nom doit être suivi par le nom de son programme père, écrit entre parenthèses, selon la syntaxe suivante :

nom_variable(nom_programme)

Le serveur DDE du debugger ISaGRAF est dédié aux variables de l'application actuellement contrôlée par le debugger. Au plus 256 variables peuvent être espionnées par le serveur DDE d' ISaGRAF. Le serveur DDE d'ISaGRAF peut être utilisé aussi bien quand le debugger est utilisé en mode "connecté" que pendant la simulation. La période de rafraîchissement des informations est celle établie pour la communication entre le debugger et le système cible ISaGRAF ou le simulateur.