 Gestion de programmes

La fenêtre du Gestionnaire de Programmes montre les programmes (également appelés modules ou unités de programmation) de l'application et regroupe dans ses menus les commandes disponibles pour mettre en place l'architecture du projet, lancer les éditeurs, les compilateurs et les outils de mise au point. Cette fenêtre est le noyau interactif de l'atelier ISaGRAF pendant le développement d'un projet. La fenêtre du Gestionnaire de Programmes est ouverte par la commande "Ouvrir" de la fenêtre du Gestionnaire de Projets.

Les composants d'un projet

Manipuler les programmes

Les outils de génération de code

Les autres outils ISaGRAF

Ajouter des commandes au menu Outils

Simuler et tester l'application


Les composants d'un projet

Les composants d'une application sont les programmes. Un programme est une entité logique qui décrit un sous-ensemble de la loi de commande. Des variables globales (telles que les variables d'E/S) peuvent être utilisées par tous les programmes de l'application. Les variables locales ne peuvent être utilisées que par un seul programme. Les programmes sont organisés dans un "arbre de hiérarchie", divisé en "sections" logiques. La fenêtre du gestionnaire de programmes montre les programmes et leurs liens. Les programmes principaux apparaissent sur la gauche de l'arbre de hiérarchie.

Programmes principaux

Fonctions et blocs fonctionnels

Sous-programmes

Programmes fils SFC et FC

Liens entre les programmes

Langages de programmation


Programmes principaux

Les programmes principaux apparaissent sur la gauche de l'arbre de hiérarchie. Les programmes principaux des trois premières sections sont toujours actifs, et sont exécutés dans l'ordre suivant pendant le cycle automate:

•	(Lecture des entrées)

•	Exécution des programmes principaux de la section DEBUT

•	Exécution des programmes principaux de la section SEQUENTIEL

•	Exécution des programmes principaux de la section FIN

•	(Mise à jour des sorties)

Les programmes des sections "Début" et "Fin" décrivent des opérations cycliques, indépendantes de l'évolution du procédé dans le temps. Les programmes de la section "Séquentiel" décrivent des traitements séquentiels, où l'évolution du procédé dans le temps apparaît explicitement pour séparer les groupes de traitements élémentaires. Les programmes principaux de la section "Début" sont exécutés systématiquement au début de chaque cycle. Les programmes principaux de la section "Fin" sont exécutés systématiquement à la fin de chaque cycle. Les programmes principaux de la section "Séquentiel" sont exécutés selon les règles d'évolution des langages SFC ou FC. Les programmes des sections cycliques ne peuvent pas être décrits en langage SFC ou FC. Tout programme de toute section peut avoir un ou plusieurs sous-programmes.


Fonctions et blocs fonctionnels

Les programmes de la section "Fonctions" peuvent être appelés par n'importe quel programme de n'importe quelle section dans le projet. Une fonction est un algorithme qui calcule une valeur de sortie en fonction de plusieurs valeurs d'entrée. Une fonction ne travaille que sur des données volatiles, écrasées d'un appel à l'autre. Ceci implique qu'une fonction ne doit jamais appeler un bloc fonctionnel. Un programme de la section "Fonctions" ne peut pas être écrit en SFC ni en FC.

Contrairement aux fonctions, les "Blocs fonctionnels" associent un algorithme et des données statiques cachées qui sont copiées (instanciées) à chaque utilisation du bloc. Les programmes de la section "Blocs fonctionnels" peuvent être appelés par n'importe quel programme de n'importe quelle section du projet. Ils ne peuvent pas être décrit en SFC ni en FC.


Sous-programmes

Un sous-programme peut être dédié à un programme père (SFC ou FC ou autre). Un sous-programme ne peut être lancé que par son programme père. Chaque programme de chaque section peut avoir un ou plusieurs sous-programmes. Un sous-programme ne peut pas être écrit en SFC ni en FC.


Programmes fils SFC ou FC

Un programme SFC fils est un traitement parallèle qui peut être lancé, tué, figé ou relancé par son programme père. Le programme père et le programme fils doivent tous deux être décrits avec le langage SFC. Quand un programme père lance un programme SFC fils, il place un jeton SFC dans chacune de ses étapes initiales. Quand un programme père tue un programme SFC fils, il enlève tous les jetons existant dans ses étapes.

Tout programme FC de la section séquentielle peut contrôler des sous-programmes FC. L'exécution d'un programme père FC est suspendue (le flux est bloqué) pendant toute l'exécution du sous-programme FC, c'est-à-dire jusqu'à ce que le flux dans le sous-programme rencontre le symbole END. Il ne peut en aucun cas y avoir d'exécution simultanée d'un programme FC et d'un de ses sous-programmes FC.


Liens entre les programmes

Les sous-programmes et les programmes fils sont reliés à leur programme père par une ligne dans l'arbre de hiérarchie. Un lien entre deux programmes SFC père et fils est terminé par une flèche. Il convient de se rappeler qu'un tel lien représente des opérations parallèles.


Langages de programmation

Chaque programme est décrit avec un seul langage. Toutefois, le FBD et le LD peuvent être mélés dans le même diagramme. Le langage, choisi lors de la création du programme, ne peut plus être changé par la suite. Les langages graphiques disponibles sont le SFC (Sequential Function Chart ou GRAFCET), le FC (Flow Chart ou diagramme de flux), le FBD (Function Block Diagram ou Logigramme) et le LD (Ladder Diagram ou Schéma à contacts). Les langages textuels disponibles sont le ST (Structured Text) et le IL (Instruction List). Les langages SFC et FC sont réservés aux programmes principaux et fils de la section séquentielle. Le langage de chaque programme est montré sous la forme d'un icone à côté du nom du programme dans la fenêtre du Gestionnaire de Programmes. Voici la liste des icones utilisés:

 SFC	Sequential Function Chart (ou GRAFCET)

 FC	Flow Chart (diagramme de flux)

 FBD	Functional Block Diagram (ou logigramme)

 LD	Ladder Diagram (schéma à contact entré avec l'éditeur Quick LD)

 ST	Structured Text (langage textuel structuré)

 IL	Instruction List (liste d'instructions)


Manipuler les programmes

Le menu "Fichier" groupe les commandes de création et de mise à jour des programmes, ainsi que les commandes de lancement des éditeurs de programmes.

Créer un nouveau programme

Entrer le commentaire des programmes

Editer le contenu d'un programme

Editer le fichier agenda

Le dictionnaire de variables

Paramètres d'une fonction, bloc ponctionnel ou sous-programme

Déplacer un programme

Copier un programme

Supprimer un programme

Les commandes suivantes sont accessibles depuis le menu "Outils":

Importer une fonction ou bloc fonctionnel de la librairie

Exporter une fonction ou bloc fonctionnel vers la librairie


Créer un nouveau programme

La commande "Nouveau" du menu "Fichiers" vous permet de créer des programmes principaux, des fils ou des sous-programmes, dans chacune des sections. La première information à entrer est le nom du programme à créer, en respectant les règles de nomenclature suivantes:

•	la longueur du nom ne peut pas excéder 8 caractères

•	le premier caractère doit être une lettre

•	les suivants doivent être des lettres, des chiffres ou le souligné ('_')

•	les majuscules et les minuscules ne sont pas différenciées

Il faut ensuite choisir un langage pour le programme:

SFC	Sequential Function Chart (GRAFCET)

FC	Flow Chart (diagramme de flux)

FBD	Functional Block Diagram (logigramme)

LD	Ladder Diagram (schéma à contact) édité avec Quick LD

ST	Structured Text (langage textuel structuré)

IL	Instruction List (liste d'instructions)

Vous devez finalement sélectionner un style d'exécution pour le programme:

Début:	programme principal - section "début"

Séquentiel:	programme principal - section "séquentiel"

Fin:	programme principal - section "fin"

Fonction:	programme de la section "fonctions"

Bloc fonctionnel:	programme de la section "blocs fonctionnels"

Fils de:	programme SFC fils ou sous-programme FC ou sous-programme

La sélection d'un des cinq premiers choix indique que le programme créé sera placé au niveau supérieur de la section Début, Fin, Séquentiel, Fonctions ou Blocs fonctionnels. La sélection du dernier choix permet la création d'un programme fils SFC ou d'un sous-programme FC ou d'un sous-programme. Un programme principal de la section séquentiel doit être décrit avec le langage SFC ou FC. Les langages SFC et FC ne peuvent pas être utilisés pour un programme d'une section cyclique (Début ou Fin).


Entrer le commentaire des programmes

ISaGRAF permet d'associer à chaque programme un texte de description. Ce commentaire est affiché à côté du nom du programme. Utilisez la commande "Fichier / Commentaire du programme" pour entrer ou modifier le texte du commentaire pour le programme sélectionné.


Editer le contenu d'un programme

Cette commande permet la modification du contenu d'un programme. L'outil ISaGRAF utilisé pour l'édition du programme dépend du langage choisi pour ce programme. L'édition est réalisée dans une fenêtre indépendante. Il est ainsi possible d'éditer plusieurs programmes en parallèle dans des fenêtres différentes. Vous pouvez également frapper directement la touche ENTREE pour éditer le programme sélectionné. Vous pouvez encore cliquer deux fois sur le nom du programme pour lancer son édition.


Editer le fichier agenda

Un fichier agenda est attaché à chaque programme. C'est un fichier de texte qui contient toutes les annotations concernant les modifications apportées au programme pendant son développement. Le fichier agenda peut être édité, librement modifié, ou imprimé à tout moment. Quand vous quittez l'édition du source d'un programme qui a été modifié, une fenêtre est automatiquement ouverte pour la saisie des annotations à stocker dans l'agenda. Ces annotations seront enregistrées avec la date et l'heure de leur saisie.


Le dictionnaire de variables

La commande "Fichier / Dictionnaire" lance l'édition du dictionnaire, où sont déclarées les variables du projet. Les variables peuvent être globales (connues par tous les programmes) ou locales à un programme. Le dictionnaire est également utilisé pour la déclaration de mots équivalents, noms qui remplacent une expression dans les sources des programmes.


Paramètres d'une fonction, bloc ponctionnel ou sous-programme

La commande "Fichier / Paramètres" permet de définir les paramètres d'appel et de retour du sous-programme, fonction ou bloc fonctionnel sélectionné. Cette commande est sans effet si un programme principal des sections "Début" ou "Fin" ou un programme SFC est sélectionné.

Un sous-programme, une fonction ou un bloc fonctionnel peuvent avoir jusqu'à 32 paramètres (entrées ou sorties). Une fonction ou un sous-programme a toujours un paramètre de retour et un seul, qui doit porter le nom de la fonction, conformément aux règles d'écriture du langage ST.

La liste dans la partie supérieure de la fenêtre montre les paramètres du sous-programme, selon l'ordre défini par le prototype d'appel du sous-programme : d'abord les paramètres d'appel, et enfin le paramètre de retour. La partie inférieure de la fenêtre montre la description détaillée du paramètre sélectionné dans la liste. Chacun des types de données d'ISaGRAF peut être utilisé pour un paramètre. Les paramètres de retour doivent être les derniers de la liste. Les règles suivantes doivent être respectées pour la nomenclature des paramètres :

•	la longueur du nom ne doit pas excéder 16 caractères

•	le premier caractère doit être une lettre

•	les suivants doivent être des lettres, des chiffres, ou le souligné

•	les majuscules et les minuscules ne sont pas différenciées

La commande "Insère" insère un emplacement libre pour un nouveau paramètre, avant le paramètre sélectionné. La commande "Supprime" efface le paramètre sélectionné. La commande "Arrange" trie les paramètres, de façon à ce que les paramètres de sortie soient placés en fin de liste.


Déplacer un programme

La commande "Fichier / Renommer/Déplacer" permet de changer le nom d'un programme, ou de le déplacer dans l'arbre de hiérarchie. Toutefois le langage choisi pour la description du programme ne peut pas être changé. Quand cette commande est lancée, la même boîte de dialogue que celle utilisée pour créer un programme est ouverte. Tous ses champs sont positionnés avec la valeur courante des attributs du programme sélectionné. Le nom du programme peut être modifié. Une autre section ou un nouveau programme père peut être choisi pour déplacer le programme dans la hiérarchie.

La commande "Fichier / Ordonner" permet de donner un ordre explicite entre les programmes de même niveau de hiérarchie ayant le même père. Si le programme sélectionné est un programe principal, cette fonction permet de trier les programmes principaux de la section sélectionnée. Si le programme sélectionné est à un niveau inférieur dans la hiérarchie, cette commande permet de trier les sous-programmes ou programmes fils SFC ayant le même programme père. Quand la boîte de dialogue "Ordonner" est ouverte, les boutons "Haut" et "Bas" permettent de déplacer le programme sélectionné dans la liste affichée.


Copier un programme

Pour copier un programme dans un autre, sélectionnez le programme source dans la fenêtre du Gestionnaire de Programmes et lancez la commande "Fichier / Copier". Quand cette commande est lancée, la même boîte de dialogue que celle utilisée pour créer un programme est ouverte. Tous ses champs sont positionnés avec la valeur courante des attributs du programme source sélectionné. Entrez le nom du programme de destination, et sélectionnez son emplacement dans les sections de l'arbre de hiérarchie. Si le programme de destination n'existe pas encore, il est créé à l'emplacement spécifié dans la hiérarchie. S'il existe déjà, son contenu est effacé avant la copie, et il est éventuellement déplacé dans la hiérarchie. Toutes les variables et définitions de mots équivalents locales au programme sont copiées avec lui. Le langage choisi pour le programme de destination doit obligatoirement être le même que celui du programme source.

La commande "Copier dans un autre projet" du menu "Fichiers" copie le programme sélectionné dans un autre projet, sous le même nom, et au sommet de la hiérarchie. Les programmes SFC fils et sous-programmes du programme sélectionné peuvent également être copiés avec lui. Les noms des programmes copiés ne doivent pas être déjà utilisés dans le projet de destination. Cette commande ne peut en aucun cas être utilisée pour écraser un programme existant. Toutes les déclarations et définitions de mots équivalents locales aux programmes manipulés sont copiées avec eux.


Supprimer un programme

Pour supprimer un programme, vous devez le sélectionner dans la fenêtre du Gestionnaire de Programmes, et utiliser la commande "Fichier / Supprimer". Un programme ayant des sous-programmes ou des programmes fils ne peut pas être supprimé. Il faut d'abord détruire ses fils. Toutes les variables et définitions de mots équivalents locales au programme sont supprimées avec lui.


Importer une fonction ou bloc fonctionnel de la librairie

La commande "Outils / Importer de la librairie" permet de copier une fonction ou un bloc fonctionnel de la librairie (écrit en langages IEC) dans un programme principal de la section "Fonctions" ou "Blocs fonctionnels" du projet. Les variables et définitions locales à la fonctions sont également importées. Si la fonction a déjà été compilée en librairie, son code objet est également importée dans l'environnement du projet. Quand une fonction a été importée de la librairie, elle peut ensuite être placée à un autre endroit dans l'arbre de hiérarchie du projet en utilisant la fonction "Fichier / Déplacer/Renommer". La fonction ou le bloc fonctionnel doit être renommé afin d'éviter les conflits de noms entre le projet et la librairie. N'oubliez pas de renommer également le paramètre de retour dans le cas d'une fonction.


Exporter une fonction ou bloc fonctionnel vers la librairie

La commande "Outils / Exporter vers la librairie" copie un programme de la section "Fonctions" ou "Blocs fonctionnels" dans la librairie des fonctions ou blocs écrits en langages IEC. Les variables et définitions locales à la fonctions sont également exportées. La fonction exportée devra être re-vérifiée (compilée) depuis le Gestionnaire de Librairie pour s'assurer qu'elle puisse être correctement utilisée dans le contexte d'une librairie. Les fonctions de la librairie ne peuvent pas utiliser de variables globales.


Les outils de génération de code

Les commandes du menu "Codage" lancent les outils de compilation et de génération de code, et permettent d'entrer les options et autres paramètres utilisés pendant la génération du code de l'application. Référez-vous à la section "Utiliser le générateur de code" pour plus d'information sur ces outils.

Générer le code de l'application

Vérifier le programme sélectionné

Simuler une modification

Les paramètres d'exécution de l'application

Les options de compilation

Définir des ressources


Générer le code de l'application

La commande "Générer l'application" lance la génération du code. Les options pour les cibles choisies doivent être correctement renseignées avant la génération du code. Avant de générer le code, tous les programmes sont vérifiés et les éventuelles erreurs de syntaxes sont détectées. ISaGRAF inclut un compilateur incrémental qui ne vérifie que les programmes mofifiés depuis leur dernière vérification.


Vérifier le programme sélectionné

La commande "Vérifier" lance la vérification de la syntaxe du programme sélectionné dans la fenêtre du Gestionnaire de Programmes. Quand un programme est vérifié, et qu'aucune erreur n'a été détectée, il n'est plus revérifié automatiquement par la génération de code, tant que son contenu, ou les objets dont il dépend (variables, définitions...) ne sont pas modifiés.


Simuler une modification

La commande "Simuler une modification" marque tous les programmes comme "modifiés" de façon à ce qu'ils soient tous re-vérifiés durant la prochaine génération de code.


Les paramètres d'exécution de l'application

Cette commande ouvre une boîte de dialogue où sont entrés les principaux paramètres d'exécution de l'application. Ceci inclut la programmation du temps de cycle, la gestion des erreurs d'exécution et le support matériel des variables non volatiles. Référez-vous à la section "Utiliser le générateur de code" pour plus d'information sur cette commande.


Les options de compilation

Cette commande permet de sélectionner les options pour la génération et l'optimisation du code de l'application. Référez-vous à la section "Utiliser le générateur de code" pour plus d'information sur cette commande.


L'historique des modifications

Cette commande ouvre une boîte de dialogue où est affiché l'historique des modifications apportées au projet. L'utilisation de cette boîte est détaillée dans la documentation du Gestionnaire de Projets d'ISaGRAF.


Définir des ressources

Une "ressource" est un ensemble de données définies par l'utilisateur (par exemple un fichier) qui doit être collé au code ISaGRAF et transféré avec lui. Référez-vous à la section "Utiliser le générateur de code" pour plus d'information sur cette commande.


Les autres outils ISaGRAF

Le menu "Outils" groupe les commandes de lancement des outils ISaGRAF pour le projet ouvert:

Câblage des variable d'E/S

Références croisées

Descripteur du projet

Génération du dossier

L'historique des modifications


Câblage des variable d'E/S

La commande "Câbler les E/S" lance l'éditeur de câblage des variables d'E/S. Cet outil est utilisé pour décrire la correspondance entre les variables de l'application et les capteurs et actionneurs.


Références croisées

La commande "Références croisées" permet de calculer, visualiser ou imprimer les références croisées de l'application. Les références croisées montrent les occurences de toutes les variables du dictionnaire dans tous les programmes du projet. Cette fonction est très utile pour la détection des effets de bord, et offre un point de vue global sur l'ensemble du dictionnaire de l'application.


Descripteur du projet

La commande "Descripteur du projet" lance l'édition du fichier de texte contenant le descripteur du projet. Ce document contient l'identification détailée du projet, ainsi que les remarques sur ses spécifications et son cycle de vie. Le descripteur de projet est affiché dans la fenêtre du Gestionnaire de Projets.


Génération du dossier

La commande "Générer le dossier" permet de construire et d'imprimer le dossier complet du projet. Ce document peut grouper tous les éléments (programmes, variables, paramètres...) du projet. Pour construire un document personnalisé (incomplet), il suffit d'établir sa table des matières.


Ajouter des commandes au menu Outils

ISaGRAF permet d'ajouter d'autres commandes au menu "Outils". Les commandes supplémentaires doivent être décrites dans le fichier "\ISAWIN\COM\ISA.MNU" (texte). Vous pouvez ajouter jusqu'à 10 commandes. Des commentaires peuvent être insérés sur toute ligne, précédés par le caractère ";". Chaque commande est décrite sur deux lignes de texte, selon la syntaxe suivante:

M=texte_du_menu

C=ligne_de_commande

Le texte du menu est celui qui apparaitra dans le menu "Outils". La ligne de commande décrit l'appel d'un programme exécutable MS-DOS ou Windows, et peut être complétée par des arguments. Dans la ligne de commande, vous pouvez utiliser la séquence "%A" pour remplacer le nom du projet ouvert, et "%P" pour le nom du programme sélectionné. L'exemple suivant lance l'édition du programme sélectionné avec "Notepad" (pour les programmes ST et IL uniquement):

M=Edit with Notepad

C=Notepad.exe \isawin\apl\%A\%P.lsf


Simuler et tester l'application

Les commandes du menu "Test" lancent les outils de mise au point d'ISaGRAF, pour simuler l'application ou la tester en mode connecté.

Simulation

Mise au point en ligne

Préparation de l'espace de travail

Paramétrage de la liaison

Paramétrage de la liaison série

Paramétrage de la liaison Ethernet


Simulation

La commande "Simuler" lance le debugger pour la simulation. Dans ce mode, une autre fenêtre est ouverte, qui simule le comportement de l'automate cible. Cette commande permet de commencer les tests de l'application, même quand la machine cible n'est pas encore disponible. La fenêtre du Gestionnaire de Programmes est fermée, afin qu'elle puisse être ouverte à nouveau en mode "test" lorsque la liaison entre le debugger et le simulateur est établie. Le simulateur ne peut pas être lancé si le code de l'application n'est pas généré. Le simulateur ne peut pas être lancé tant que des fenêtres filles (éditeurs, générateur de code, câblage des E/S...) sont ouvertes. Fermez chacune de ces fenêtres avant d'utiliser le simulateur.


Mise au point en ligne

La commande "Tester" ouvre la fenêtre principale du debugger, et ferme la fenêtre du Gestionnaire de Programmes, afin qu'elle puisse être ouverte à nouveau en mode "test" lorsque la liaison avec l'automate cible sera établie. Le debugger ne peut pas être lancé si le code de l'application n'est pas généré. Le debugger ne peut pas être lancé tant que des fenêtres filles (éditeurs, générateur de code, câblage des E/S...) sont ouvertes. Fermez chacune de ces fenêtres avant d'utiliser le debugger.


Paramétrage de la liaison

La commande "Configurer la liaison" permet de définir les paramètres de communication entre l'atelier de développement et l'automate ISaGRAF cible.

Le "Numéro d'esclave" identifie le système cible ISaGRAF, ou l'application cible dans le cas d'une implémentation multi-application sur la même machine. Le numéro d'esclave est compris entre 1 et 255. Référez-vous au manuel fourni par le constructeur du système cible pour plus d'informations sur l'implémentation d'ISaGRAF.

Le "Port de communication" identifie le média de communication entre l'atelier ISaGRAF et la cible. Il peut être soit le nom d'un port série, soit "Ethernet", pour une communicationTCP-IP basée, pour l'atelier, sur l'interface "Winsock" Version 1.1.

Le "Time out" est le temps laissé au système cible pour ses opérations de communication, entre la fin d'une question émise par le debugger et le début de la réponse par la cible. Si aucune réponse n'est rendue après ce temps, un défaut de communication est diagnostiqué. Ce temps est exprimé en secondes. Le "nombre d'essais" est le nombre d'essais automatiques effectués par le debugger pour un même échange avant de diagnostiquer un défaut de communication.


Paramétrage de la liaison série

Quand le port de communication sélectionné est un port série RS232 (COMM1..4), le bouton "Configure" permet d'accéder aux autres paramètres de la liaison série.

Le débit de transmission, la parité et le format peuvent être configurés. Quand l'option "matériel" est sélectionnée pour le "Contrôle de flux", l'atelier ISaGRAF gère les signaux CTS et DSR afin d'assurer un protocole hardware pendant les échanges


Paramétrage de la liaison Ethernet

Quand le port de communication sélectionné est "Ethernet", le bouton "Configure" permet d'accéder aux autres paramètres de la liaison TCP-IP. Les champs "Adresse Internet" et "Port Ethernet" sont réservés pour la communication TCP-IP avec l'interface Winsock version 1.1. Le fichier WINSOCK.DLL doit être correctement installé sur votre le disque. "1100" est le numéro de port utilisé par défaut par la cible ISaGRAF.


Préparer l'espace de travail pour la mise au point

La commande "Test / Espace de travail" permet de définir la liste des documents à ouvrir quand la mise au point ou la simulation est lancée. Il peut s'agir de programmes, de graphiques SpotLight, de listes de variables. Les graphiques et listes de chronogrammes des versions antérieures d'ISaGRAF peuvent également apparaître dans la liste des documents à ouvrir.

La boîte de dialogue montre, à gauche, la liste des documents présents dans l'application, et à droite, les documents retenus pour l'espace de travail initial. Utilisez les boutons ">>" et "<<" pour déplacer un document d'une liste vers l'autre. Chaque projet à sa propre liste de documents pour l'espace de travail en mise au point.