Automogen
Automogen
ENERAT
G
GEN
NEXT
OM
AUT
8
AUTOMGEN www.irai.com
ENVIRONNEMENT ........................................................................................................................................... 13
INSTALLATION ................................................................................................................................................. 15
Configuration requise ................................................................................................................................ 15
Installation en réseau................................................................................................................................. 15
NOUVELLES FONCTIONNALITES D’AUTOMGEN8 ........................................................................................... 16
Choix du mode « Débutant / Expert »........................................................................................................ 16
Intégration renforcée de la norme Grafcet 60848 ..................................................................................... 16
Unicité des fichiers .................................................................................................................................... 16
Moteur physique intégré à IRIS3D ............................................................................................................ 16
Gestion d’objets 3D évolués dans IRIS3D ................................................................................................. 16
Liens évolués entre les objets IRIS3D et AUTOMGEN ............................................................................. 16
Objets IRIS3D texturés .............................................................................................................................. 17
Drag and drop depuis IRIS3D vers les folios AUTOMGEN...................................................................... 17
Objet AUTOMSIM définissable par l’utilisateur ....................................................................................... 17
Drag and drop depuis AUTOMSIM vers les folios AUTOMGEN ............................................................. 17
Améliorations de l’environnement ............................................................................................................. 17
L’ENVIRONNEMENT.......................................................................................................................................... 18
Démarrage ................................................................................................................................................. 18
Vues générales ........................................................................................................................................... 19
Choix des cibles en mode expert ................................................................................................................ 21
Choix des cibles en mode débutant ............................................................................................................ 21
Palettes en mode expert ............................................................................................................................. 22
Palettes en mode débutant ......................................................................................................................... 22
Montrer ou cacher la fenêtre du projet ou les fenêtres de messages ......................................................... 23
Afficher l’espace de travail en mode plein écran....................................................................................... 23
Raccourcis claviers.................................................................................................................................... 23
Résumé Environnement.............................................................................................................................. 24
LICENCES ......................................................................................................................................................... 25
Enregistrer une licence .............................................................................................................................. 25
Envoyer un code utilisateur à IRAI............................................................................................................ 26
Envoyer un fichier par email (la meilleur solution) ............................................................................................... 27
Copier le code utilisateur dans le message d’un email........................................................................................... 27
Par fax (déconseillé) .............................................................................................................................................. 27
Par téléphone (fortement déconseillé).................................................................................................................... 28
Entrer le code de validation / débridage.................................................................................................... 28
Débridage par un fichier reçu par email................................................................................................................. 28
Débridage par un code reçu dans le texte dans un email........................................................................................ 28
Débridage par un code reçu par fax ou au téléphone ............................................................................................. 28
Modifier une licence .................................................................................................................................. 28
Déplacer une licence d’un ordinateur à un autre ...................................................................................... 28
Licences réseau.......................................................................................................................................... 29
Ajouter une licence réseau ..................................................................................................................................... 31
Modifier une licence .............................................................................................................................................. 31
Connexion des postes clients ................................................................................................................................. 31
Résumé Licences ........................................................................................................................................ 31
Complément d’information sur l’installation d’AUTOMGEN en réseau .................................................. 32
Généralités ............................................................................................................................................................. 32
Installation d’AUTOMGEN8 sur un serveur de fichiers ........................................................................................ 32
Installation d’une ou plusieurs licences AUTOMGEN8 sur un gestionnaire de licences réseau ............................ 32
Installation du serveur de licences réseau sous la forme d’un service.................................................................... 35
Désinstallation ........................................................................................................................................... 35
Erreurs....................................................................................................................................................... 35
LE PROJET ........................................................................................................................................................ 36
Fichiers générés avec AUTOMGEN7......................................................................................................... 36
Importer une application d’une ancienne version d’AUTOMGEN (version 6 ou antérieure)................... 36
Importer un projet créé avec un autre atelier logiciel ............................................................................... 36
Générer un fichier exécutable distribuable gratuitement .......................................................................... 36
Modifier les propriétés du projet ............................................................................................................... 37
Modifier les options de sécurité ............................................................................................................................. 37
Options avancées ................................................................................................................................................... 37
Interface utilisateur ................................................................................................................................................ 37
Modèle ................................................................................................................................................................... 37
GO automatique..................................................................................................................................................... 38
Résumé Projet ............................................................................................................................................ 38
LE NAVIGATEUR ............................................................................................................................................... 39
Folios ......................................................................................................................................................... 40
Ajouter un nouveau folio ....................................................................................................................................... 40
Importer des folios d’anciennes versions d’AUTOMGEN, importer des folios CADEPA.................................... 41
Modifier l’ordre de compilation des folios ............................................................................................................ 41
Supprimer un folio de la liste................................................................................................................................. 42
Exporter un folio vers un fichier « .GR7 »............................................................................................................. 42
Copier, Couper, Coller un folio ............................................................................................................................. 42
Renommer un folio ................................................................................................................................................ 42
Modifier les propriétés d’un folio. ......................................................................................................................... 42
Symboles .................................................................................................................................................... 43
Créer une table de symboles .................................................................................................................................. 43
Importer une table de symboles ............................................................................................................................. 44
Configuration............................................................................................................................................. 44
Post-processeurs .................................................................................................................................................... 44
Options du compilateur.......................................................................................................................................... 44
Documentation........................................................................................................................................... 44
Fichiers générés......................................................................................................................................... 45
Générer la liste des instructions en code pivot ....................................................................................................... 45
Générer la liste des références croisées.................................................................................................................. 45
Post-processeurs .................................................................................................................................................... 45
Mise au point ............................................................................................................................................. 45
Voir et modifier une variable ou une table de variables......................................................................................... 45
Objets IRIS................................................................................................................................................. 47
Ajouter un objet IRIS 2D....................................................................................................................................... 47
Supprimer un objet IRIS 2D .................................................................................................................................. 48
Montrer ou cacher un objet IRIS 2D...................................................................................................................... 48
Copier, couper, coller un objet IRIS 2D................................................................................................................. 49
Ajouter un nouvel objet IRIS 2D sur un pupitre .................................................................................................... 49
Modifier les propriétés d’un objet IRIS 2D ........................................................................................................... 49
Définir un modèle d’objet accessible dans l’assistant ............................................................................................ 50
Importer un objet IRIS 2D d’une version précédente d’AUTOMGEN.................................................................. 50
Créer un pupitre IRIS 3D....................................................................................................................................... 51
Ressources ................................................................................................................................................. 51
Ajouter un fichier dans les ressources.................................................................................................................... 51
Supprimer un fichier contenu dans les ressources.................................................................................................. 51
Renommer un fichier contenu dans les ressources................................................................................................. 51
Modifier un fichier contenu dans les ressources .................................................................................................... 51
Ajouter et convertir des fichiers 3D STUDIO dans les ressources......................................................................... 51
Modules externes ....................................................................................................................................... 51
Résumé navigateur..................................................................................................................................... 52
DESSINER DES PROGRAMMES ........................................................................................................................... 53
Dessiner avec l’assistant............................................................................................................................ 53
Dessiner avec le menu contextuel .............................................................................................................. 54
Dessiner avec la palette ............................................................................................................................. 54
Enrichir et personnaliser la palette......................................................................................................................... 54
Dessiner avec les touches du clavier ......................................................................................................... 54
Bloc d’effacement.................................................................................................................................................. 54
Blocs de liaison...................................................................................................................................................... 54
Blocs Grafcet ......................................................................................................................................................... 55
Blocs Logigrammes ............................................................................................................................................... 57
Blocs Ladder.......................................................................................................................................................... 57
Blocs Action .......................................................................................................................................................... 58
Blocs Test .............................................................................................................................................................. 59
Blocs Organigramme ............................................................................................................................................. 59
Blocs Bloc fonctionnel........................................................................................................................................... 59
Autres blocs ........................................................................................................................................................... 60
Documenter les éléments de programme ................................................................................................... 60
Ajouter des symboles.................................................................................................................................. 61
Résumé dessin des programmes................................................................................................................. 62
EXECUTER UNE APPLICATION ........................................................................................................................... 63
Exécuter facilement une application ...................................................................................................................... 63
Mettre fin à l’exécution.......................................................................................................................................... 63
Uniquement compiler ............................................................................................................................................ 63
Stopper la compilation ........................................................................................................................................... 63
Se connecter à un automate ou installer l’exécuteur PC ........................................................................................ 63
Se déconnecter d’un automate ou désinstaller l’exécuteur PC............................................................................... 63
Mettre la cible en mode RUN ................................................................................................................................ 63
Mettre la cible en mode STOP............................................................................................................................... 63
Initialiser la cible ................................................................................................................................................... 63
Faire un cycle programme sur la cible (généralement non supporté sur les automates)......................................... 64
Activer la visualisation dynamique........................................................................................................................ 64
Résumé Exécuter une application .............................................................................................................. 64
LE COMPILATEUR ............................................................................................................................................. 65
Modifier les options du compilateur .......................................................................................................... 65
Visualiser les messages de compilation ..................................................................................................... 65
Localiser une erreur .................................................................................................................................. 65
Résumé Compilateur.................................................................................................................................. 66
EXECUTION DES PROGRAMMES SUR PC............................................................................................................ 67
Configurer le nombre de variables ............................................................................................................ 67
Variables système de l’exécuteur PC......................................................................................................... 68
Modifier la période d’exécution................................................................................................................. 69
Piloter des entrées / sorties........................................................................................................................ 69
Résumé Exécution sur PC .......................................................................................................................... 70
REFERENCES IRIS 2D ...................................................................................................................................... 71
Modifier la visibilité des objets.................................................................................................................. 71
Modifier les caractéristiques d’un objet .................................................................................................... 72
Effacer un objet...................................................................................................................................................... 72
Dimensionner un objet........................................................................................................................................... 72
Déplacer un objet ................................................................................................................................................... 72
Passer un objet en mode « Utilisateur » ................................................................................................................. 72
Passer un objet en mode « Configuration »............................................................................................................ 72
Modifier les caractéristiques d’un objet ................................................................................................................. 72
Verrouillez l’accès à la configuration de tous les objets ........................................................................... 73
Objets de base, objets prédéfinis................................................................................................................ 73
Liste des objets de base.............................................................................................................................. 73
L’objet « Pupitre » ................................................................................................................................................. 73
L’objet « Bouton et voyant » ................................................................................................................................. 73
L’objet « Objet ».................................................................................................................................................... 73
L’objet « Valeur digitale »..................................................................................................................................... 73
L’objet « Ecran, clavier, liste de messages » ......................................................................................................... 74
L’objet « Son » ...................................................................................................................................................... 74
L’objet « Archivage de données » ......................................................................................................................... 74
L’objet « Programme » .......................................................................................................................................... 74
L’objet « Boîte de dialogue »................................................................................................................................. 74
L’objet « Valeur analogique » ............................................................................................................................... 74
Prise en main ............................................................................................................................................. 74
Etape 1 ................................................................................................................................................................... 74
Etape 2 ................................................................................................................................................................... 75
Etape 3 ................................................................................................................................................................... 75
Etape 4 ................................................................................................................................................................... 75
Etape 5 ................................................................................................................................................................... 75
Etape 6 ................................................................................................................................................................... 76
Etape 7 ................................................................................................................................................................... 77
Réaliser une application de supervision autonome.................................................................................... 78
Syntaxe pour l’accès à l’état des variables................................................................................................ 78
Etat booléen ........................................................................................................................................................... 78
Etat numérique....................................................................................................................................................... 79
Modification d’état ................................................................................................................................................ 79
Ordres spéciaux ..................................................................................................................................................... 79
Echanges entre objets............................................................................................................................................. 80
Détail de l’objet « Pupitre » ...................................................................................................................... 80
Onglet « Aspect » .................................................................................................................................................. 80
Onglet « Bitmap ».................................................................................................................................................. 81
Onglet « Liens »..................................................................................................................................................... 82
Onglet « Options »................................................................................................................................................. 82
Onglet « Enfants » ................................................................................................................................................. 82
Onglet « Externe » ................................................................................................................................................. 82
Détail de l’objet « Bouton Voyant »........................................................................................................... 83
Onglet « Aspect » .................................................................................................................................................. 83
Onglet « Liens »..................................................................................................................................................... 83
Onglet « Options »................................................................................................................................................. 84
Détail de l’objet « Valeur digitale » .......................................................................................................... 86
Onglet « Aspect » .................................................................................................................................................. 86
Onglet « Textes »................................................................................................................................................... 87
Onglet « Liens »..................................................................................................................................................... 87
Détail de l’objet « Valeur analogique »..................................................................................................... 87
Onglet « Aspect » .................................................................................................................................................. 87
Onglet « Liens »..................................................................................................................................................... 88
Onglet « Bornes » .................................................................................................................................................. 88
Onglet « Graduations » .......................................................................................................................................... 89
Détail de l’objet « Ecran, clavier, liste de messages » .............................................................................. 90
Liens avec l’application ......................................................................................................................................... 90
Les classes de messages......................................................................................................................................... 91
Onglet « Aspect » .................................................................................................................................................. 91
Onglet « Liens »..................................................................................................................................................... 92
Onglet « Liste » ..................................................................................................................................................... 92
Onglet « Options »................................................................................................................................................. 93
Onglet « Messages » .............................................................................................................................................. 94
Détail de l’objet « Archivage de données » ............................................................................................... 94
Onglet « Aspect » .................................................................................................................................................. 94
Onglet « Données »................................................................................................................................................ 95
Onglet « Options »................................................................................................................................................. 96
Onglet « Tables »................................................................................................................................................... 97
Onglet « Courbe ».................................................................................................................................................. 98
Onglet « Graduations » .......................................................................................................................................... 99
Onglet « Grille » .................................................................................................................................................. 100
Détail de l’objet « Objet »........................................................................................................................ 101
Onglet « Aspect » ................................................................................................................................................ 101
Onglet « Liens »................................................................................................................................................... 102
Onglet « Formes »................................................................................................................................................ 103
Onglet « Bitmap »................................................................................................................................................ 103
Onglet « Wmf » ................................................................................................................................................... 103
Onglet « Couleurs » ............................................................................................................................................. 104
Onglet « Jauge » .................................................................................................................................................. 105
Onglet « Capteur »............................................................................................................................................... 105
Onglet « Options »............................................................................................................................................... 106
Techniques avancées............................................................................................................................................ 106
Détail de l’objet « Son » .......................................................................................................................... 107
Onglet « Aspect » ................................................................................................................................................ 107
Onglet « Sons ».................................................................................................................................................... 107
Détail de l’objet « Boîte de dialogue » .................................................................................................... 107
Onglet « Aspect » ................................................................................................................................................ 107
Onglet « Liens »................................................................................................................................................... 108
Onglet « Messages » ............................................................................................................................................ 109
Détail de l’objet « Programme » ............................................................................................................. 109
Répartition du temps d’exécution ........................................................................................................................ 109
Affichage ............................................................................................................................................................. 110
Syntaxe ................................................................................................................................................................ 110
Déclaration des variables ..................................................................................................................................... 110
Ecriture du programme ........................................................................................................................................ 111
Constantes............................................................................................................................................................ 111
Affectation ........................................................................................................................................................... 111
Calculs ................................................................................................................................................................. 111
Tests..................................................................................................................................................................... 112
Boucles ................................................................................................................................................................ 112
Adresse d’une variable ou d’un tableau de variables ........................................................................................... 113
Liste des fonctions ............................................................................................................................................... 113
Messages d’erreurs .............................................................................................................................................. 119
Onglet « Aspect » ................................................................................................................................................ 120
Onglet « Programme » ......................................................................................................................................... 121
EXEMPLES IRIS 2D ........................................................................................................................................ 122
Exemple d’objet composé......................................................................................................................... 122
Exemple d’utilisation de l’objet « Ecran, clavier, liste à messages » comme liste à messages ............... 125
Exemple d’utilisation de l’objet ECRANCLA comme terminal................................................................ 126
Exemple d’application composée de plusieurs pages .............................................................................. 127
Exemple d’utilisation de l’objet OBJET .................................................................................................. 127
Exemples d’utilisation de l’objet ARCHIVE ............................................................................................ 132
Exemple d’utilisation de l’objet PROG.................................................................................................... 132
Exemples d’application de supervision 1................................................................................................. 133
Exemple d’application de supervision 2 .................................................................................................. 133
Exemple de simulation d’une partie opérative 1...................................................................................... 134
Exemple de simulation d’une partie opérative 2...................................................................................... 135
REFERENCES IRIS 3D .................................................................................................................................... 136
Tutorial .................................................................................................................................................... 137
Créer un pupitre IRIS 3D......................................................................................................................... 137
Ajouter des fichiers 3D au projet............................................................................................................. 137
Configurer les objets................................................................................................................................ 138
Ajouter des objets dans le monde 3D....................................................................................................... 140
Enlever un fichier 3D des ressources....................................................................................................... 140
Enlever un objet du monde 3D................................................................................................................. 140
Importer un objet « évolué » .................................................................................................................... 140
Exporter un objet « Evolué » ................................................................................................................... 143
Exemple de création d’une simulation 3D à base d’objets évolués ......................................................... 144
Appliquer un comportement à un objet.................................................................................................... 155
Nom des variables AUTOMGEN ........................................................................................................................ 156
Ajouter une translation......................................................................................................................................... 157
Ajouter une rotation ............................................................................................................................................. 160
Ajouter un changement de couleur ou de texture................................................................................................. 161
Ajouter un lien ..................................................................................................................................................... 162
Ajouter un autre comportement ........................................................................................................................... 163
Moteur physique....................................................................................................................................... 164
Exemple IRIS 3D...................................................................................................................................... 166
Résumé IRIS 3D .................................................................................................................................................. 167
LANGAGES ....................................................................................................................................................... 169
ELEMENTS COMMUNS..................................................................................................................................... 171
Les variables ............................................................................................................................................ 171
Les variables booléennes ..................................................................................................................................... 171
Les variables numériques..................................................................................................................................... 172
Les temporisations ............................................................................................................................................... 172
Les actions ............................................................................................................................................... 174
Affectation d’une variable booléenne .................................................................................................................. 174
Affectation complémentée d’une variable booléenne .......................................................................................... 175
Mise à un d’une variable booléenne..................................................................................................................... 176
Mise à zéro d’une variable booléenne.................................................................................................................. 177
Inversion d’une variable booléenne ..................................................................................................................... 178
Mise à zéro d’un compteur, d’un mot ou d’un long ............................................................................................. 178
Incrémentation d’un compteur, d’un mot ou d’un long........................................................................................ 179
Décrémentation d’un compteur, d’un mot ou d’un long ...................................................................................... 180
Placer une constante dans un compteur, un mot ou un long................................................................................. 180
Temporisations .................................................................................................................................................... 181
Interférences entre les actions .............................................................................................................................. 181
Actions de la norme CEI 1131-3.......................................................................................................................... 182
Actions multiples ................................................................................................................................................. 183
Code littéral ......................................................................................................................................................... 183
Les tests.................................................................................................................................................... 184
Forme générale .................................................................................................................................................... 184
Modificateur de test ............................................................................................................................................. 185
Temporisations .................................................................................................................................................... 185
Priorité des opérateurs booléens .......................................................................................................................... 186
Test toujours vrai ................................................................................................................................................. 186
Test sur variable numérique................................................................................................................................. 186
Transitions sur plusieurs lignes............................................................................................................................ 188
Utilisation de symboles ............................................................................................................................ 188
Syntaxe des symboles .......................................................................................................................................... 188
Symboles automatiques ....................................................................................................................................... 188
Syntaxe des symboles automatiques .................................................................................................................... 188
Comment le compilateur gère-t-il les symboles automatiques ? .......................................................................... 189
Plage d’attribution des variables .......................................................................................................................... 189
Symboles à adresse fixe ....................................................................................................................................... 189
A propos des exemples ............................................................................................................................. 190
Grafcet ..................................................................................................................................................... 192
Etapes Grafcets .................................................................................................................................................... 192
Grafcet simple...................................................................................................................................................... 193
Divergence et convergence en « Et »................................................................................................................... 196
Divergence et convergence en « Ou ».................................................................................................................. 198
Etapes puits et sources, transitions puits et sources ............................................................................................. 201
Actions multiples ................................................................................................................................................. 201
Actions conditionnées, actions évènementielles .................................................................................................. 202
Actions sur activation ou sur désactivation d’étape ............................................................................................. 202
Actions sur franchissement de transition ............................................................................................................. 203
Synchronisation ................................................................................................................................................... 203
Forçages de Grafcet ............................................................................................................................................. 205
Forçages de Grafcet (norme 60848)..................................................................................................................... 212
Macro-étapes........................................................................................................................................................ 213
Etapes encapsulantes............................................................................................................................................ 216
Liens Grafcet Ladder, Grafcet Logigrammes....................................................................................................... 219
Compteurs............................................................................................................................................................ 221
Gemma ..................................................................................................................................................... 221
Création d’un Gemma.......................................................................................................................................... 223
Contenu des rectangles du Gemma ...................................................................................................................... 223
Obtenir un Grafcet correspondant au Gemma...................................................................................................... 223
Annuler les espaces vides dans le Grafcet ........................................................................................................... 224
Imprimer le Gemma............................................................................................................................................. 224
Exporter le Gemma.............................................................................................................................................. 224
Exemple de Gemma............................................................................................................................................. 224
Ladder...................................................................................................................................................... 227
Exemple de Ladder .............................................................................................................................................. 227
Logigramme ............................................................................................................................................. 229
Dessin des logigrammes ...................................................................................................................................... 230
Exemples de logigramme..................................................................................................................................... 231
Langages littéraux ................................................................................................................................... 233
Comment utiliser le langage littéral ? .................................................................................................................. 233
Définition d’une boîte de code............................................................................................................................. 235
Le langage littéral bas niveau............................................................................................................................... 235
Macro-instruction................................................................................................................................................. 293
Librairie ............................................................................................................................................................... 294
Macro-instructions prédéfinies ............................................................................................................................ 294
Description des macro-instructions prédéfinies ................................................................................................... 294
Exemple en langage littéral bas niveau ................................................................................................................ 296
Langage littéral étendu ............................................................................................................................ 299
Ecriture d’équations booléennes .......................................................................................................................... 300
Ecriture d’équations numériques ......................................................................................................................... 301
Structure de type IF ... THEN ... ELSE ............................................................................................................... 303
Structure de type WHILE ... ENDWHILE........................................................................................................... 303
Exemple de programme en langage littéral étendu .............................................................................................. 304
Langage littéral ST .................................................................................................................................. 305
Généralités ........................................................................................................................................................... 305
Equations booléennes .......................................................................................................................................... 306
Equations numériques.......................................................................................................................................... 307
Structures de programmation ............................................................................................................................... 308
Exemple de programme en langage littéral étendu .............................................................................................. 309
Organigramme......................................................................................................................................... 310
Dessin d’un organigramme .................................................................................................................................. 310
Contenu des rectangles ........................................................................................................................................ 311
Illustration ............................................................................................................................................... 312
Blocs fonctionnels .................................................................................................................................... 314
Création d’un bloc fonctionnel ............................................................................................................................ 314
Dessin du bloc et création du fichier « .ZON ».................................................................................................... 315
Création du fichier « .LIB » ................................................................................................................................. 317
Exemple simple de bloc fonctionnel .................................................................................................................... 317
Illustration............................................................................................................................................................ 318
Complément de syntaxe....................................................................................................................................... 321
Blocs fonctionnels évolués ....................................................................................................................... 322
Syntaxe ................................................................................................................................................................ 322
Différencier anciens et nouveaux blocs fonctionnels........................................................................................... 322
Exemple ............................................................................................................................................................... 323
Blocs fonctionnels prédéfinis ................................................................................................................... 325
Blocs de conversion ............................................................................................................................................. 325
Blocs de temporisation......................................................................................................................................... 325
Blocs de manipulations de chaîne de caractères .................................................................................................. 326
Blocs de manipulation de table de mots............................................................................................................... 326
Techniques avancées................................................................................................................................ 326
Code généré par le compilateur ........................................................................................................................... 326
Optimisation du code généré................................................................................................................................ 327
EXEMPLES ...................................................................................................................................................... 329
A propos des exemples ............................................................................................................................. 329
Grafcet simple...................................................................................................................................................... 329
Grafcet avec divergence en OU ........................................................................................................................... 330
Grafcet avec divergence en ET ............................................................................................................................ 331
Grafcet et synchronisation ................................................................................................................................... 332
Forçage d’étapes .................................................................................................................................................. 333
Etapes puits et sources ......................................................................................................................................... 334
Etapes puits et sources ......................................................................................................................................... 335
Forçage de Grafcets ............................................................................................................................................. 336
Mémorisation de Grafcets.................................................................................................................................... 337
Grafcet et macro-étapes ....................................................................................................................................... 338
Eléments de la norme 60848................................................................................................................................ 339
Folios chaînés ...................................................................................................................................................... 341
Logigramme......................................................................................................................................................... 343
Grafcet et Logigramme ........................................................................................................................................ 344
Boîte de langage littéral ....................................................................................................................................... 345
Organigramme ..................................................................................................................................................... 346
Organigramme ..................................................................................................................................................... 347
Bloc fonctionnel................................................................................................................................................... 348
Bloc fonctionnel................................................................................................................................................... 349
Bloc fonctionnel évolué ....................................................................................................................................... 350
Ladder.................................................................................................................................................................. 351
Exemple développé sur une maquette de train..................................................................................................... 352
Distribution.............................................................................................................................................. 359
Docteur R. au royaume de la domotique ................................................................................................. 359
Premier exemple : « qui de l’interrupteur ou de l’ampoule était le premier … ».................................... 360
Solution 1 : le langage naturel de l’électricien : le ladder .................................................................................... 361
Solution 2 : le langage séquentiel de l’automaticien : le Grafcet ......................................................................... 361
A vous de jouer … .................................................................................................................................... 363
Deuxième exemple : « temporisations, minuteries et autres amusements temporels… »......................... 364
Solution 1 : la simplicité ...................................................................................................................................... 365
Solution 2 : amélioration...................................................................................................................................... 366
Troisième exemple : « variation sur le thème du va et vient… » ............................................................. 367
Quatrième exemple : « Et le bouton poussoir devint intelligent … »....................................................... 371
Les solutions … ........................................................................................................................................ 374
« qui de l’interrupteur ou de l’ampoule était le premier … »............................................................................... 374
« temporisations, minuteries et autres amusements temporels… »...................................................................... 374
« variation sur le thème du va et vient …»............................................................................................... 376
AUTOMSIM....................................................................................................................................................... 379
INTRODUCTION ............................................................................................................................................... 381
INSTALLATION ............................................................................................................................................... 382
PRISE EN MAIN ............................................................................................................................................... 382
MODE « DEBUTANT » D’AUTOMGEN.......................................................................................................... 386
UTILISATION D’AUTOMSIM ........................................................................................................................ 387
Organisation des applications ................................................................................................................. 387
Ouvrir une application existante.............................................................................................................. 387
Créer un folio AUTOMSIM...................................................................................................................... 387
Ajouter un objet sur un folio AUTOMSIM............................................................................................... 388
Utiliser la palette ..................................................................................................................................... 390
Sélectionner un ou plusieurs objets.......................................................................................................... 391
Déplacer un ou plusieurs objets............................................................................................................... 392
Effacer un ou plusieurs objets.................................................................................................................. 392
Modifier l’orientation d’un ou plusieurs objets ....................................................................................... 392
Copier/couper un ou plusieurs objets vers le presse-papier.................................................................... 392
Coller un ou plusieurs objets depuis le presse-papier ............................................................................. 393
Modifier les propriétés d’un objet ........................................................................................................... 393
Exporter un ou plusieurs objets ............................................................................................................... 393
FONCTIONNALITES AVANCEES ....................................................................................................................... 395
Interactions entre les objets ..................................................................................................................... 395
Créer des capteurs associés à un vérin.................................................................................................... 395
Interactions entre les objets AUTOMSIM et le programme d’automatisme ............................................ 397
Interactions entre les objets AUTOMSIM et le simulateur de partie opérative IRIS 3D ......................... 398
Interactions entre les objets AUTOMSIM et les objets de supervision IRIS2D ....................................... 399
Comment réaliser le lien entre un bouton poussoir ou un interrupteur d’IRIS2D et un bouton poussoir ou un
interrupteur d’AUTOMSIM ? .............................................................................................................................. 399
Comment réaliser un lien entre un objet d’AUTOMSIM et un voyant d’IRIS 2D ?............................................ 400
Drag and drop depuis un objet AUTOMSIM vers un folio AUTOMGEN................................................ 401
Objets définissables par l’utilisateur ....................................................................................................... 402
Dessins................................................................................................................................................................. 404
Liste des primitives de dessin .............................................................................................................................. 405
Programme........................................................................................................................................................... 409
Connexions .......................................................................................................................................................... 412
Exemple ............................................................................................................................................................... 412
POST-PROCESSEURS ..................................................................................................................................... 415
GENERALITES ................................................................................................................................................. 417
CONFIGURATION ............................................................................................................................................ 418
Les fichiers de configuration.................................................................................................................... 418
Système................................................................................................................................................................ 418
Correspondances de variables.............................................................................................................................. 418
Code constructeur démarrage............................................................................................................................... 418
Code constructeur fin........................................................................................................................................... 418
Configuration par défaut ......................................................................................................................... 419
Modifier les déclarations par défaut..................................................................................................................... 419
Utiliser les déclarations par défaut....................................................................................................................... 419
Visualiser et modifier les éléments de configuration ............................................................................... 419
Système .................................................................................................................................................... 419
Configuration matérielle ...................................................................................................................................... 420
Configuration logicielle ....................................................................................................................................... 420
Options de génération de code ............................................................................................................................. 420
Déclarations de variables ..................................................................................................................................... 420
Autres éléments ................................................................................................................................................... 420
Voir l’élément « Système » sous forme de textes ................................................................................................ 421
Afficher les éléments système.............................................................................................................................. 421
Correspondances de variables................................................................................................................. 422
L’affectation unitaire ........................................................................................................................................... 422
L’affectation linéaire............................................................................................................................................ 422
L’affectation automatique.................................................................................................................................... 423
Types de variables AUTOMGEN........................................................................................................................ 424
Afficher les éléments de correspondances de variables ....................................................................................... 426
Modifier un élément de correspondance de variables .......................................................................................... 428
Ajouter un élément de correspondance de variables ............................................................................................ 428
Supprimer un élément de correspondances de variables ...................................................................................... 431
Associer un bit d’AUTOMGEN à un bit système d’une cible ............................................................................. 431
Associer une table de mots d’AUTOMGEN à une table de mots fixes de la cible .............................................. 432
Associer des mots d’AUTOMGEN à des entrées ou des sorties analogiques d’une cible ................................... 433
Associer une table de bits d’AUTOMGEN à une table de bits d’une cible ......................................................... 433
Voir les correspondances de variables sous forme de textes................................................................................ 434
Code constructeur démarrage, code constructeur de fin ......................................................................... 434
Référence à une variable AUTOMGEN .............................................................................................................. 434
Référence à un symbole de l’application AUTOMGEN...................................................................................... 435
Définition et référence à un label ......................................................................................................................... 435
Insérer du code constructeur dans une application ................................................................................. 435
Choix des options de connexion............................................................................................................... 435
Choix d’un mode de connexion................................................................................................................ 436
Paramétrage du module de communication............................................................................................. 436
POST-PROCESSEUR PL7.................................................................................................................................. 437
Module de communication ....................................................................................................................... 437
Mode de génération d’un fichier exécutable............................................................................................ 438
Mode de génération directe du fichier binaire...................................................................................................... 438
Mode de génération d’un fichier « .FEF » ........................................................................................................... 441
Utilisation de tâches d’interruptions ....................................................................................................... 443
Exemples spécifiques ............................................................................................................................... 444
Entrées / sorties analogiques ................................................................................................................................ 444
Compteur rapide TSX 37-10................................................................................................................................ 444
Compteur rapide TSX 37-10 utilisé en décomptage ............................................................................................ 444
Compteur rapide TSX 37-22................................................................................................................................ 444
ASI....................................................................................................................................................................... 445
MAGELIS ........................................................................................................................................................... 445
POST-PROCESSEUR PL72................................................................................................................................ 446
Choix du type de l’automate .................................................................................................................... 446
Eléments syntaxiques spécifiques............................................................................................................. 446
Appel des blocs fonction PL72 ............................................................................................................................ 446
Utilisation de la tâche rapide................................................................................................................................ 448
Module de communication ....................................................................................................................... 448
Exemples spécifiques ............................................................................................................................... 449
Entrées / sorties analogiques ................................................................................................................................ 449
Compteur rapide .................................................................................................................................................. 450
Blocs texte et xbt ................................................................................................................................................. 450
Blocs texte et UNITELWAY............................................................................................................................... 453
Module d’extension TOR .................................................................................................................................... 455
Conversion........................................................................................................................................................... 455
Horodateur ........................................................................................................................................................... 456
POST-PROCESSEUR S7200 .............................................................................................................................. 457
Choix du type de CPU.............................................................................................................................. 457
U
Installation
Si vous installez à partir du CD-ROM d’AUTOMGEN, placez celui-ci
dans votre lecteur de CD-ROM.
Configuration requise
Ordinateur compatible PC équipé :
- du système d'exploitation WINDOWS 98 SE ou WINDOWS ME ou
WINDOWS 2000 ou WINDOWS XP ou WINDOWS 2003 ou WINDOWS
VISTA,
- 256 Mo de mémoire (suivant les systèmes d'exploitation, la mémoire
requise par le système d'exploitation lui-même peut être supérieure),
- carte graphique avec au minimum une résolution de 1024 x 768 en
65536 couleurs.
Installation en réseau
AUTOMGEN peut être installé en réseau.
Pour lancer AUTOMGEN, sur les PCs clients, créez un raccourci vers
l’exécutable « autom8.exe » du répertoire d’installation d’AUTOMGEN
sur le PC serveur.
Améliorations de l’environnement
Enfin, de nombreuses améliorations de l’environnement, telles que la
loupe sur la palette de dessin, les palettes simplifiées du mode
"débutants" ou la personnalisation des menus rendent AUTOMGEN
encore plus convivial.
L’environnement
Démarrage
Au lancement d’AUTOMGEN, le choix d’un mode pour l’environnement
est proposé. Les modes « Débutants » permettent de commencer à
utiliser AUTOMGEN dans une configuration « dépouillée » avec peu
d’options dans les menus et des palettes simplifiées. Ce mode convient
particulièrement aux personnes utilisant AUTOMGEN pour la première
fois. Le mode expert propose l’ensemble des fonctionnalités. Vous
pourrez créer vos propres modes (voir « modèles de projets »).
Vues générales
Barres
d’outils
Espace de
travail
Navigateur
Onglets
Fenêtre des
messages
Barres
d’outils
Palettes
simplifiées Espace de
travail
Raccourcis claviers
Les raccourcis claviers sont inscrits dans les menus. Des raccourcis
« masqués » sont également utilisables :
Résumé Environnement
Licences
Une licence définit les droits d’utilisation d’AUTOMGEN. Les éléments
suivants sont déterminés par une licence :
- le nombre d’entrées / sorties tout ou rien utilisables,
- les post-processeurs utilisables,
- le nombre d’utilisateurs (licence réseau uniquement).
Etat de la licence.
Licences réseau
L’exécutable « akey8.exe » est le gestionnaire de licence réseau. Cet
exécutable doit être lancé sur un des ordinateurs du réseau. Le réseau
doit permettre l’utilisation du protocole TCP IP. Au lancement, le
gestionnaire de licences réseau est masqué et seul une icône
apparaît dans la barre des tâches de WINDOWS. Pour visualiser la
fenêtre du gestionnaire de licence réseau, double cliquez sur l’icône
dans la barre des tâches.
Résumé Licences
Généralités
L’argument est :
Par exemple :
/NETLICENSE=MONSERVEUR,5001
Désinstallation
Lancez la commande « akey8nt –u » pour installer le service serveur de
clé NT.
Erreurs
Après avoir désinstallé le service AKEY8NT.EXE, utilisez AKEY8.EXE
pour déterminer la cause d’éventuels dysfonctionnements.
Le projet
La notion de projet est très forte dans AUTOMGEN. Un projet regroupe
l’ensemble des éléments composant une application. Le navigateur (voir
page 39) affiche sous forme arborescente tous les éléments d’un projet
(folios, symboles, configuration, objets IRIS, etc …).
Options avancées
« Sauver l’aspect de l’environnement avec le projet » : si coché, alors la
position des fenêtres ainsi que l’aspect des barres d’outils sont
sauvegardés dans le fichier « .AGN ». A l’ouverture du projet, ces
éléments seront restitués.
Interface utilisateur
« Interdire la configuration des objets IRIS » : si coché, la configuration
des objets IRIS ne peut être modifiée par l’utilisateur.
Modèle
« Ce projet est un modèle de document » : si coché, à son ouverture,
toutes les options et documents qu’il contient servent de modèle à la
création d’un nouveau projet. Cette fonctionnalité permet de créer des
configurations standards pouvant être chargées au lancement
Définir un mode
Pour définir un mode utilisable au lancement d’AUTOMGEN (à la façon
des modes « Expert » et « Débutant »), enregistrez un modèle de projet
dans le sous-répertoire « models » du répertoire d’installation
d’AUTOMGEN. Une image peut être associée à un modèle, pour ceci,
créez un fichier au format « jpg » portant le même nom que le fichier
« .agn ». Ce fichier doit avoir les dimensions suivantes : 120 pixels de
large par 90 pixels de haut.
GO automatique
«Go automatique au lancement du projet » : si coché, l’exécution de
l’application est automatique à l’ouverture du projet.
Résumé Projet
Le navigateur
Elément central de la gestion des
applications, le navigateur permet un accès
rapide aux différents éléments d’une
application : folios, symboles, configuration,
impressions, objets IRIS, etc …
L’arborescence du navigateur.
Folios
Un folio est une page sur laquelle est dessinée un programme ou une
partie de programme.
- folio normal,
- folio normal (exclu de la compilation),
- folio contenant une expansion de macro-étape,
- folio contenant une encapsulation,
- folio contenant un programme de bloc-fonctionnel,
- folio contenant une tâche,
- folio contenant une tâche (exclu de la compilation).
Des icônes barrées d’une croix indiquent un folio fermé (non visible dans
l’espace de travail). Double cliquer sur une icône de ce type ouvre
(montre) le folio associé.
Renommer un folio
Voir ci-après « Modifier les propriétés ».
Symboles
La liste des symboles donne la correspondance entre des noms
« symboliques » et des noms de variables. Un projet ne peut contenir
qu’une seule table de symboles.
Configuration
Post-processeurs
Sous cette rubrique se trouvent tous les éléments de configuration des
post-processeurs (voir le manuel de référence des post-processeurs
pour plus d’informations).
Options du compilateur
Double cliquez sur cet élément pour modifier le réglage des options du
compilateur.
Documentation
Permet d’accéder à la fonction d’impression de dossier (double clic sur
l’élément « Impression »). Vous pouvez imprimer un dossier complet
composé d’une page de garde, de la table de références croisées, de la
liste des symboles et des folios. La fonction d’aperçu avant impression
permet de visualiser l’ensemble de ces éléments.
Fichiers générés
Post-processeurs
Les autres éléments concernent les fichiers générés par les post-
processeurs : listes d’instructions en langage automate.
Mise au point
Regroupe des outils permettant la visualisation et la modification de l’état
des variables.
Variable Fermer
Choisir une
suivante autre variable
Variable
précédente Modifier l’état Ouvrir le menu
Une fenêtre de monitoring. de la variable
Modifiez l’état
des variables en
cliquant dans
cette zone
Redimensionnez la
fenêtre en la saisissant
Cliquez sur ces par un des bords pour
boutons pour modifier voir plus ou moins de
la taille des variables
informations affichées
dans la table
Objets IRIS
Les objets IRIS 2D permettent de créer des pupitres, des applications de
supervision et des applications de simulation de parties opératives 2D).
IRIS 3D permet de créer des applications de simulation de parties
opératives 3D. Chaque objet IRIS 2D apparaît dans l’arborescence du
projet (voir les chapitres Références IRIS 2D et Références IRIS 3D pour
plus de détails).
Pour coller un objet IRIS, cliquez avec le bouton droit de la souris sur
l’élément « IRIS » dans le navigateur et choisissez « Coller ».
Ressources
Cet élément du projet permet d’ajouter tout type de fichier au projet. Les
fichiers ainsi ajoutés feront partie intégrante du projet et seront
sauvegardés avec les autres éléments. Pour faire référence au pseudo
répertoire où se trouvent les ressources, le mot clé « <RESDIR> » peut
être utilisé dans le nom des répertoires spécifiés dans AUTOMGEN. Les
objets IRIS peuvent par exemple faire référence à des bitmaps se
trouvant dans les ressources.
Modules externes
Ces éléments sont réservés à des modules exécutables développés par
des tiers et interfacés avec AUTOMGEN.
Résumé navigateur
L’assistant.
Bloc d’effacement
Aspect Touche associée Nom générique Commentaires Langages
Blocs de liaison
Aspect Touche Nom générique Commentaires Langages
associée
Blocs Grafcet
Aspect Touche Nom générique Commentaires Langages
associée
Blocs Logigrammes
Aspect Touche Nom générique Commentaires Langages
associée
Blocs Ladder
Aspect Touche associée Nom générique Commentaires Langages
Blocs Action
Aspect Touche Nom générique Commentaires Langages
associée
.
[#] Action sur activation Définit le type Grafcet
d’action
Blocs Test
Aspect Touche Nom générique Commentaires Langages
associée
Blocs Organigramme
Aspect Touche Nom générique Commentaires Langages
associée
[;] Bord gauche d’un bloc Ajoute une entrée au Bloc fonctionnel
fonctionnel bloc fonctionnel
[>] Bord droit d’un bloc Ajoute une sortie au Bloc fonctionnel
fonctionnel bloc fonctionnel
Autres blocs
Aspect Touche Nom générique Commentaires Langages
associée
Uniquement compiler
Cliquez sur .
Stopper la compilation
Cliquez sur .
Initialiser la cible
Cliquez sur .
Le compilateur
Le compilateur traduit les folios en un ensemble d’équations de langage
pivot (visualisables en double cliquant sur l’élément « Code généré /
langage pivot » dans le navigateur).
Résumé Compilateur
Vous pouvez :
- tester vos applications,
- piloter une partie opérative virtuelle réalisée avec IRIS 2D ou 3D,
- piloter des cartes d’entrées / sorties connectées au PC.
Bits Utilisation
0 actif au premier cycle, activation des étapes Grafcet initiales
1à4 réservés aux drivers d’E/S
5à7 réservés aux erreurs pour les drivers d’E/S
8 erreur sur débordement de chien de garde si égal à 1
9 et erreur : défaillance générale de l’exécuteur
10
11 mode de marche : 1=RUN, 0=STOP
12 arrêt d’urgence : passe à 1 en cas d’erreur ou peut être forcé à 1 pour bloquer le
programme
13 à réservés aux drivers
29
30 bit associé au timer 1
31 bit associé au timer 2
32 bit associé au timer 3
33 bit associé au timer 4
34 bit associé au timer 5
35 bit de reprise secteur (passe à 1 sur reprise secteur, la r.a.z. est à la charge du
programmeur)
36 la mise à 1 de ce bit provoque une lecture de l’horloge temps réel et un transfert
dans les mots Système 4, 5, 6, 7, 8, 51 et 52
37 la mise à 1 de ce bit provoque l’écriture des mots Système 4, 5, 6, 7, 8, 51 et 52
dans l’horloge temps réel
38 à réservés
55
56 division par zéro
57 à réservés pour les versions futures
67
68 à réservés pour la pile des traitements booléens
99
Mots Utilisation
0 réservé pour la partie haute du résultat de la multiplication ou pour le reste de la
division
1à3 timers en millisecondes
4 timer en 1/10 seconde
5 timer en secondes
6 timer en minutes
7 timer en heures
8 timer en jours
Références IRIS 2D
Les objets IRIS 2D vous permettent de créer des applications de
supervision et de simulation de parties opératives en 2D.
Un objet IRIS 2D
Effacer un objet
Méthode 1 : cliquez sur le bouton qui se trouve sur la surface de
l’objet.
Méthode 2 : cliquez avec le bouton droit de la souris sur l’objet dans le
navigateur et choisissez « Supprimer » dans le menu.
Dimensionner un objet
En saisissant l’objet par un de ses bords, vous pouvez l’étirer ou le
rétrécir (on peut modifier précisément la taille d’un objet en accédant à
ses propriétés, voir plus loin).
Déplacer un objet
Saisissez l’objet en cliquant avec le bouton gauche de la souris sur la
mini barre se trouvant en haut de sa surface.
L’objet « Pupitre »
L’objet pupitre est le seul qui peut contenir d’autres objets sur sa surface.
Vous l’utiliserez pour créer pupitres de commandes et surfaces
d’animation pour parties opératives virtuelles. Cet objet possède un
bouton poussoir qui permet de gérer les objets sur sa surface : ajout,
déplacement, suppression, etc …
L’objet « Objet »
C’est un élément polymorphique que vous utiliserez principalement pour
simuler des parties opératives.
L’objet « Son »
Vous l’utiliserez pour produire des sorties sonores sur changement de
l’état des variables de l’application d’automatisme.
L’objet « Programme »
Vous l’utiliserez pour effectuer des traitements qui s’exécuteront
indépendamment de l’application d’automatisme.
Prise en main
Ce chapitre va vous permettre de créer très rapidement votre première
application IRIS 2D. Nous allons créer un pupitre, y déposer un bouton
poussoir et lier l’objet aux variables de l’application d’automatisme.
Etape 1
Créons une application minimale avec AUTOMGEN voir chapitre
Dessiner des programmes.
Il s’agit d’un Grafcet comportant une étape tel que montré ci-après.
Etape 2
Lancez l’exécution de l’application AUTOMGEN (cliquez sur le bouton
« Go » dans la barre d’outils).
Etape 3
Cliquez avec le bouton droit de la souris dans le navigateur sur l’élément
« IRIS » puis choisissez « Ajoutez un objet IRIS 2D » dans le menu.
Dans la catégorie « Objets de base », double cliquez sur « Pupitre ».
A ce stade l’objet doit apparaître à l’écran sous cette forme :
Etape 4
Pour ajouter un bouton poussoir sur le pupitre vous devez maintenant
cliquer sur l’icône du pupitre (accès au menu) et sélectionner l’option
« Ajouter un objet ». Dans la catégorie « Objets de base », double
cliquez sur « Bouton voyant ».
L’objet doit alors apparaître sur le pupitre :
Etape 5
Nous allons associer le bouton poussoir à une sortie de l’application
d’automatisme, %Q4 par exemple. Cliquez sur l’icône du bouton
Etape 6
Nous allons associer un voyant à l’objet « Bouton Voyant », ce voyant
sera associé à une entrée de l’application d’automatisme (I2 par
exemple). Cliquez à nouveau sur l’icône du bouton poussoir. Dans
l’onglet « Aspect » cliquez sur le bouton radio « Bouton poussoir et
voyant ». Cliquez sur l’onglet « Liens » et entrez « %i2 » sous la rubrique
« Etat du voyant ». Cliquez sur le bouton poussoir « OK » en bas de la
Etape 7
Nous allons dupliquer l’objet « Bouton Voyant » présent sur le pupitre
pour obtenir un deuxième bouton poussoir dont nous modifierons les
propriétés. Cliquez sur le bouton poussoir avec le bouton gauche de la
souris en maintenant la touche [SHIFT] enfoncée. Des carrés noirs
apparaissent autour de l’objet sélectionné. Cliquez sur l’icône du
pupitre et choisissez l’option « Copier ». Cliquez sur l’icône du
pupitre et choisissez l’option « Coller ». Il y a maintenant deux objets
« Bouton Voyant » superposés. Saisissez celui du dessus (c’est le seul
accessible) par sa barre supérieure et déplacez le en dehors de l’autre
bouton poussoir. L’objet ainsi dupliqué possède les mêmes propriétés
que le premier. Vous pouvez maintenant paramétrer le deuxième objet
pour qu’il soit par exemple lié à la sortie 5 et l’entrée 3.
Vous pouvez également personnaliser l’aspect des boutons poussoirs en
utilisant l’onglet aspect pour les deux objets. Vous pouvez aussi modifier
la taille des objets en les saisissant par un de leurs bords.
Les trois objets présents à l’écran (le pupitre et les deux boutons
poussoirs) sont en mode « Configuration », c’est à dire qu’ils laissent
apparaître une mini barre en haut de leur surface, des icônes et une
bordure permettant de les dimensionner. Les objets ont un autre mode
nommé « Exploitation » dans lequel ils ont un aspect définitif : plus de
barre en haut, plus d’icône et plus de bordure pour les dimensionner.
Pour basculer un objet d’un mode à l’autre, il suffit de cliquer dessus
avec le bouton droit de la souris.
A ce stade vous devez avoir créé un objet qui ressemble à ceci :
Remarques :
- l’option « Go automatique » du projet vous permet d’obtenir une
application qui se connecte automatiquement à la cible au
démarrage.
- la commande « Générer un exécutable » du menu « Fichier » vous
permet d’obtenir une application de supervision auto compactée et
libre de droit sous la forme d’un seul fichier exécutable.
Etat booléen
Cette syntaxe est à utiliser dans les rubriques « états » des objets.
Pour tester l’égalité d’une variable numérique avec une constate, utilisez
le nom de la variable numérique, suivi de « = », « < », « > » et d’une
constante, par exemple : « %MW200=4 », « vitesse>2 ».
Etat numérique
Cette syntaxe est à utiliser dans les rubriques « états » des objets.
Modification d’état
Cette syntaxe est à utiliser dans les rubriques « ordre » des objets.
Ordres spéciaux
Les mots clés suivants peuvent être utilisés dans les rubriques ordres
des objets :
Onglet « Aspect »
Fenêtre
Permet de définir l’aspect de la fenêtre composant le pupitre : présence
d’une bordure, d’une barre de titre (dans ce cas un titre peut être
précisé), présence des icônes de fermeture et de réduction. La case à
Fond du pupitre
Détermine l’aspect du fond du pupitre : coloré (voir ci-après), transparent
(accessible seulement si le pupitre est l’enfant d’un autre pupitre), bitmap
(le fond est défini par un fichier « .BMP » créé avec PAINTBRUSH par
exemple).
Couleurs
Permet de choisir la couleur pour le fond du pupitre (si un fond coloré est
sélectionné - voir plus haut), le fond et les caractères de la zone
d’affichage des messages d’aide (si cette zone est validée - voir plus
haut).
Taille de l’objet
Détermine les dimensions de l’objet en nombre de points. La
modification de ces valeurs permet de régler très précisément la taille de
l’objet.
Textes
Le texte d’aide et le texte bulle.
Onglet « Bitmap »
Bitmap
Si le fond du pupitre contient un bitmap (voir onglet « Aspect ») la zone
d’édition doit contenir un nom d’accès complet vers un fichier « .BMP »
(les formats 16 couleurs, 256 couleurs et 24 bits sont supportés).
Les boutons poussoirs « PARCOURIR » et « EDITER » permettent
respectivement de rechercher un fichier « .BMP » et d’éditer un fichier
avec le logiciel PAINTBRUSH de WINDOWS.
Onglet « Liens »
Onglet « Options »
Grille
Permet de définir une grille (invisible) pour le positionnement des objets.
Seule la commande « Déplacer » du menu intégré au pupitre utilise la
grille. Les valeurs pour la grille sont exprimées en nombre de pixels. Les
valeurs 0 et 1 annulent l’effet de la grille. Cette fonction doit être utilisée
pour aligner parfaitement les objets.
Onglet « Enfants »
Enfants
Cette rubrique contient la liste des objets enfants du pupitre. Le bouton
poussoir « Propriétés » permet d’ouvrir directement la boîte de dialogue
des propriétés de l’enfant sélectionné dans la liste. Le bouton poussoir
« Détruire » élimine l’objet sélectionné. Les zones d’édition « Positions »
permettent de régler la position des objets.
Onglet « Externe »
Nom de l’exécutable
Nom d’un fichier exécutable fonctionnant dans le pupitre.
Paramètres
Paramètres fournis sur la ligne de commande à l’exécutable.
Onglet « Aspect »
Type de l’objet
Permet de choisir la nature de l’objet : bouton poussoir, voyant ou
bouton poussoir intégrant un voyant.
Couleurs
Permet de choisir les couleurs de l’objet. Si l’objet est un bouton
poussoir, le réglage « Fond éteint » représente la couleur du bouton
poussoir. Si l’objet est un voyant ou un bouton poussoir intégrant un
voyant le réglage « Fond allumé » détermine la couleur du fond lorsque
le voyant est allumé et « Fond éteint » la couleur lorsque le voyant est
éteint. Seule la couleur des caractères est réglable si l’aspect de l’objet
est déterminé par un bitmap.
Taille de l’objet
Détermine les dimensions de l’objet en nombre de points. La
modification de ces valeurs permet de régler très précisément la taille de
l’objet. Ceci est nécessaire si l’aspect de l’objet est déterminé par un
bitmap.
Fonte de caractères
Permet de choisir la fonte et la taille des caractères. Le fichier de fonte
utilisé devra être présent sur le PC où s’exécute le programme.
Texte
Permet de spécifier le texte affiché sur l’objet, sa position, son orientation
ainsi qu’un texte d’aide qui apparaît lorsque le bouton est pressé et un
texte bulle qui apparaît lorsque le curseur est placé sur l’objet.
Onglet « Liens »
Etat du voyant
Détermine l’état du voyant. Cette rubrique doit contenir le nom d’une
variable qui pilotera le voyant : 0 = voyant éteint, 1 = voyant allumé.
Par exemple :
b31, o4, _voyant init_, m200=50, m400<8, m500&16
Identificateur
Permet de référencer l’objet par rapport aux autres objets.
Condition de désactivation
Permet de désactiver le voyant. Si cette rubrique contient le nom d’une
variable, alors cette variable désactive l’objet si elle est vraie.
Onglet « Options »
Clavier
Permet d’associer une touche au bouton poussoir. Si cette touche ou
cette combinaison de touche est présente au clavier alors le bouton
poussoir sera enfoncé.
Bitmap
Permet de spécifier un fichier bitmap qui contiendra le dessin de l’objet.
Exemple :
Sons
En choisissant des fichiers .WAV, l’objet peut produire des sons si l’objet
est enfoncé, relâché, ou si le curseur passe sur l’objet.
Onglet « Aspect »
Format
Permet de définir le type d’affichage :
• Toujours montrer le signe : affiche le signe ‘+’ pour les valeurs
signées positives,
• Valeur signée : définit le mode signé ou non signé pour les entiers
16 ou 32 bits (base 10 uniquement),
• Afficher tous les digits : affiche des 0 au début de la valeur si
nécessaire.
Base
• Détermine la base d’affichage pour les entiers 16 et 32 bits.
Couleurs
Permet de choisir les couleurs du fond de l’objet (s’il n’est pas
transparent) et des caractères.
Fonte de caractères
Permet de choisir la fonte et la taille des caractères. Le fichier de fonte
utilisé devra être présent sur le PC où s’exécute le programme.
Nombre de digits
Définit la longueur de la partie entière et décimale.
Fond
Permet de choisir entre un fond coloré ou transparent (si l’objet est posé
sur un pupitre seulement).
Taille de l’objet
Détermine les dimensions de l’objet en nombre de points. La
modification de ces valeurs permet de régler très précisément la taille de
l’objet.
Onglet « Textes »
Texte Bulle
Texte affiché dans une bulle lorsque l’utilisateur déplace le curseur sur
l’objet.
Onglet « Liens »
Variable ou symbole
Désigne la variable à afficher. Pour accéder au compteur ou à la
consigne d’une temporisation il faut utiliser la syntaxe suivante :
• pour le compteur : COUNT(temporisation), exemple : COUNT(t3),
• pour la consigne : PRED(temporisation), exemple : PRED(t7),
Onglet « Aspect »
Objets
Permet de définir le type d’affichage.
Orientation
Détermine l’orientation : horizontale ou verticale.
Couleurs
Permet de choisir les couleurs du fond de l’objet (s’il n’est pas
transparent) et de l’objet.
Fond
Permet de choisir entre un fond coloré ou transparent (si l’objet est posé
sur un pupitre seulement).
Taille de l’objet
Détermine les dimensions de l’objet en nombre de points. La
modification de ces valeurs permet de régler très précisément la taille de
l’objet.
Textes
Le texte bulle.
Onglet « Liens »
Variable ou symbole
Désigne la variable liée à l’objet (un mot ou un compteur).
Onglet « Bornes »
Minimum, maximum
Valeurs minimales et maximales.
Onglet « Graduations »
Police de caractère
Définit les caractères utilisés pour les graduations.
Couleurs
Détermine la couleur des caractères et des graduations. Les couleurs
sont ici aussi exprimées par leurs trois composantes : le rouge, le vert et
le bleu.
Pour envoyer des données au type d’objet (avec ou sans clavier) il faut
placer les données à partir du deuxième mot de la table de réception
puis la longueur des données dans le premier mot de la table (la
longueur maximale est 255). Chaque mot contient une donnée.
Lorsque l’objet a relu les données disponibles dans une table il remet le
premier mot à 0 pour signaler que l’opération a été effectuée.
Pour les objets « avec clavier » le principe est le même : le premier mot
de la table d’émission contient le nombre de caractères entrés au clavier,
les mots suivants contiennent les caractères (un par mot). L’application
doit remettre à 0 le premier mot lorsqu’elle a utilisé les données.
Description des 10 mots utilisés pour les échanges avec le type « Boîte
à messages » :
Les mots qui suivent déterminent la date et l’heure qui peuvent être
affichées pour chaque message. Une valeur égale à ffff hexa demande à
l’objet d’utiliser la date et l’heure courante de l’ordinateur (cela ne
concerne pas les millisecondes).
Mot 2 : jour
Mot 3 : mois
Mot 4 : année
Mot 5 : heures
Mot 6 : minutes
Mot 7 : secondes
Mot 8 : millisecondes
Mot 9 : réservé (mettre 0)
Onglet « Aspect »
Type de l’objet
Permet de définir un des types d’objet. Voir le chapitre Liens avec
l’application.
Couleurs
Permet de choisir les couleurs du fond de l’objet et des caractères.
Fonte
Permet de choisir la fonte de caractères utilisée pour afficher les textes.
Taille de l’objet
Détermine les dimensions de l’objet en nombre de points. La
modification de ces valeurs permet de régler très précisément la taille de
l’objet.
Textes
Le texte bulle.
Onglet « Liens »
Réception, émission
Définissent les premières variables de la table de réception et
d’émission. Ces zones peuvent contenir un nom de variable ou un
symbole.
Onglet « Liste »
Ces rubriques ne concernent que les objets de type « Boîte à
messages ».
Icônes
Cette case à cocher détermine s’il faut afficher une icône avant les
messages.
Classes
Cette case à cocher détermine s’il faut afficher le numéro de la classe du
message.
Messages
Cette case à cocher détermine s’il faut afficher un message.
Numéros
Cette case à cocher détermine s’il faut afficher le numéro d’apparition
des messages.
Classes de messages
Cette zone d’édition permet de définir de nouvelles classes de
messages. Chaque ligne définit une classe. Sur chaque ligne on doit
trouver dans l’ordre et séparés par des virgules : la couleur du fond,
(trois composantes rouge, vert et bleu) la couleur des caractères (trois
composantes rouge, vert et bleu), le nom de la classe, le nom d’un
fichier bitmap pour l’icône associé à la classe.
Par exemple :
255,0,0,0,0,0,ALARME,alarme.bmp
Signifie :
Onglet « Options »
Onglet « Messages »
Messages prédéfinis
Cette boîte d’édition permet de documenter les messages prédéfinis (un
par ligne).
Onglet « Aspect »
Objets
Permet de définir le type d'affichage.
L'objet peut être représenté sous la forme d'une table (figure 1.1) ou
sous la forme de tracés de courbes (figure 1.2).
Couleurs
Permet de choisir la couleur de la police de caractère lorsque l'objet est
sous la forme d'une table ainsi que la couleur de marquage des valeurs
sur les courbes.
Taille de l'objet
Détermine les dimensions de l'objet en nombre de points. La
modification de ces valeurs permet de régler très précisément la taille de
l'objet.
Texte
Le texte bulle associé à l'objet.
Onglet « Données »
Lecture périodique
L'acquisition des variables se fera à intervalle fixe dés l'exécution de
l'objet ARCHIVE.
Lecture déclenchée
Une acquisition des variables sera effectuée dés que le « Mot de
contrôle » en aura donné l'ordre .
Période
Permet de fixer le temps qui sépare deux acquisitions. Le temps est au
format Jour(s) /Heure(s) /Minute(s) /Seconde(s) /Milliseconde(s) :
J pour les jours
H pour les heures
M pour les minutes
S pour les secondes
MS pour les millisecondes
Ex : 2J
Ex : 2H10M15S
Contrôle
Permet de définir une variable (un mot) qui contrôlera l'objet ARCHIVE.
Dés la valeur prise en compte, son contenu est forcé à 0 par l’objet
ARCHIVE.
Valeur Action
0 Rien
1 Déclenchement d’une acquisition (Lecture déclenchée)
Onglet « Options »
Affichage
Date d'acquisition: Permet d'afficher la date d'acquisition d'un
enregistrement.
Heure d'acquisition: Permet d'afficher l'heure d'acquisition d'un
enregistrement.
Heures, minutes, secondes, millisecondes: Permet de configurer
l'affichage de l'heure d'acquisition.
L'affichage du temps se fait en aval de l'affichage des acquisitions pour
l'objet TABLE (figure 3.1) ou sous la grille lorsqu'elle est définie pour
l'objet COURBE (figure 3.2)
Onglet « Tables »
Police de caractères
Permet de sélectionner une police de caractères pour l'affichage du nom
des colonnes, du temps et la valeur des acquisitions.
format * Affichage
pas de format spécifié Signé, décimal, visible
h Hexadécimal
d Décimal
ns Non signé
s Signé
nv Non visible
v Visible
(figure 4.1)
Onglet « Courbe »
Visualiser
Permet de définir le temps de visualisation. Celui-ci est communiqué a
l'objet ARCHIVE suivant le format Jour(s) / Heure(s) / Minute(s) /
Seconde(s) / Milliseconde(s) :
J pour les jours
H pour les heures
M pour les minutes
S pour les secondes
MS pour mes millisecondes
Ex : Visualiser 2H30M10S
Ex : Visualiser 100MS
Affichage du temps
Permet d'afficher la date et l'heure d'acquisition d'une ou plusieurs
variables sous la grille si elle est active. On peut définir la couleur et la
police de caractères de l'affichage du temps.
(figure 5.1)
Onglet « Graduations »
Police de caractère
Définit les caractères utilisés pour les graduations.
Couleurs
Détermine la couleur des caractères et des graduations. Les couleurs
sont ici aussi exprimées par leur trois composantes : le rouge, le vert et
le bleu.
(figure 6.1)
Onglet « Grille »
Afficher la grille
Valide ou invalide l'affichage de la grille.
Couleur
Permet de définir une couleur pour la grille.
La couleur est au format Rouge, Vert, Bleu
Ex : 255,0,0 Tracé rouge
Onglet « Aspect »
Type
Permet de définir un des types d’aspect de l’objet :
• « bitmap n aspects » : l’aspect de l’objet est donné par un fichier
bitmap qui peut contenir plusieurs aspects voir le chapitre Onglet
« Bitmap ».
• « bitmap n couleurs » : l’aspect de l’objet est donné par un fichier
bitmap, la couleur est contrôlée par une variable de l’application
d’automatisme qui remplace les pixels blancs du bitmap. Les autres
pixels du bitmap doivent être noirs. La variable de l’application
d’automatisme donne un numéro de couleur, les couleurs sont définies
dans l’onglet « Couleurs ».
• « bitmap jauge » : l’objet est une jauge dont la forme est définie par un
bitmap. Ce sont les pixels blancs du bitmap qui définissent la forme.
Les autres pixels doivent être noirs. Le minimum, le maximum et
l’orientation sont réglés dans l’onglet « Jauge ».
• « formes n couleurs » : un rectangle, un rectangle aux bords arrondis
ou une ellipse. La couleur est gérée de la même façon que pour le
type « bitmap n couleurs ».
• « formes jauges » : l’objet est une jauge rectangulaire. Le principe est
le même que pour le type « bitmap jauge ».
Couleurs
Permet de choisir la couleur des caractères du texte affiché sur l’objet.
Fonte de caractères
Détermine la fonte utilisée pour afficher un texte sur l’objet.
Taille de l’objet
Détermine les dimensions de l’objet en nombre de points. La
modification de ces valeurs permet de régler très précisément la taille de
l’objet.
Textes
Le texte d’aide et le texte bulle.
Onglet « Liens »
Onglet « Formes »
Formes
Pour le type « Forme n couleurs » cette rubrique permet de sélectionner
un rectangle, un rectangle avec des coins arrondis ou une ellipse.
Onglet « Bitmap »
Nom du fichier
Pour les types « Bitmap n aspects, bitmap n couleurs et bitmap jauge »
cette zone d’édition doit contenir un nom d’accès complet vers un fichier
« .BMP ». Ces fichiers peuvent être créés avec PAINTBRUSH ou tout
autre éditeur graphique capable de créer des fichiers « .BMP ».
Les boutons poussoir « Parcourir » et « Editer » permettent
respectivement de rechercher un fichier « .BMP » et d’éditer (lancement
de PAINTBRUSH) le fichier « .BMP » dont le nom se trouve dans la
zone d’édition.
Nombre d’aspects
Cette zone d’édition doit contenir le nombre d’aspects (d’images)
contenus dans un fichier « .BMP ». Cette option est utilisée pour le type
« Bitmap n aspects ». Les différents aspects d’un objet doivent être
dessinés les uns au dessous des autres. L’aspect le plus haut est le
numéro 0.
Onglet « Wmf »
Nom du fichier
Pour les types « Métafichiers » cette zone d’édition doit contenir un nom
d’accès complet vers un fichier « .WMF » ou « .EMF ».
Onglet « Couleurs »
Couleurs
Cette rubrique est utilisée pour les types « bitmap n couleurs » et
« forme n couleurs ». Chaque ligne contient la définition pour une
couleur. La syntaxe utilisée pour chaque ligne est :
proportion de rouge (entre 0 et 255), proportion de vert (entre 0 et 255)
et proportion de bleu (entre 0 et 255). La première ligne désigne la
couleur numéro 0, la deuxième la numéro 1,
etc ...
Cette rubrique est aussi utilisée pour les types « bitmap jauge » et
« forme jauge ». La première ligne (couleur 0) et la deuxième (couleur 1)
déterminent les deux couleurs de la jauge (partie active et inactive).
Onglet « Jauge »
Jauge
Cette rubrique est utilisée pour les types « bitmap jauge » et « forme
jauge ». Les zones « Valeur minimum » et « Valeur maximum »
définissent les bornes pour la variable de pilotage de la jauge.
Orientation de la jauge
Détermine une des quatre directions possibles pour la jauge.
Onglet « Capteur »
L’objet OBJET peut être utilisé comme capteur. Le capteur est associé à
une variable booléenne dont le résultat est vrai si le capteur est en
contact avec une ou plusieurs couleurs prédéfinies (voir plus bas) ou
faux autrement.
Position de la détection
Permet de déterminer le côté de l’objet qui doit détecter. La détection est
réalisée sur les deux bords du côté choisi.
Couleurs détectées
Un capteur est capable de détecter jusqu’à trois couleurs différentes. Si
une de ces trois couleurs se trouve aux points de test alors la variable
booléenne associée au capteur (voir chapitre Onglet « Liens ») est
positionnée à 1, autrement elle est positionnée à 0.
Les trois zones d’édition peuvent contenir une définition de couleur sous
la forme de trois valeurs comprises entre 0 et 255 et qui correspondent
respectivement aux pourcentages de rouge, de vert et de bleu. Les
pourcentages de ces trois couleurs doivent correspondre avec
exactitude aux couleurs des objets à détecter pour que le capteur
fonctionne.
Onglet « Options »
Touche
Définit une touche qui permet de simuler un clic sur l’objet.
Pour préciser le code de la touche, différentes syntaxes sont utilisables :
• un simple caractère : par exemple A, Z, 2,
• le caractère $ suivi du code de la touche en hexadécimal,
• le nom d’une touche de fonction, par exemple F5.
Pour les combinaisons de touches il faut ajouter au début « CTRL+ » ou
« SHIFT+ »
Par exemple : « CTRL+F4 » ou « SHIFT+Z ».
Techniques avancées
Onglet « Aspect »
Taille de l’objet
Détermine les dimensions de l’objet en nombre de points. La
modification de ces valeurs permet de régler très précisément la taille de
l’objet.
Onglet « Sons »
Variables associées
La variable booléenne associée à chaque son.
Onglet « Aspect »
Type de boîte
Permet de choisir les différents contrôles présents dans la boîte de
dialogue : un seul bouton OK, deux boutons OK et CANCEL, ou enfin
deux boutons OUI et NON.
Icônes
Permet de choisir l’icône qui apparaîtra dans la boîte de dialogue. Il y a
quatre icônes différentes, mais bien sur, on peut décider d’en afficher
aucune. Il convient de noter aussi qu’à chaque icône est associé un son
système particulier. Pour plus de renseignements à ce sujet, se reporter
à la rubrique sur l’option BEEP.
Taille de l’objet
Détermine les dimensions de l’objet en nombre de points. La
modification de ces valeurs permet de régler très précisément la taille de
l’objet.
Beep
Permet de spécifier si l’apparition de la boîte de dialogue doit être
accompagnée d’un avertissement sonore.
Titre
Permet de spécifier le titre de la boîte de dialogue.
Type de message
Il y a ici deux possibilités. Un message prédéfini est un message présent
dans les variables utilisateurs de l’application d’automatisme. L’autre
possibilité est de spécifier une liste de messages, et dans ce cas, le
message affiché sera fonction de l’état de la variable surveillée.
Onglet « Liens »
Nom de la variable
Spécifie le nom de la variable à surveiller. On peut entrer indifféremment
des variables booléennes ou numériques.
Par exemple :
m200, i0
Identificateur
Permet de référencer l’objet par rapport aux autres objets.
Onglet « Messages »
Liste de messages
Entrer dans cette zone les différents messages prédéfinis.
Affichage
La surface de l’objet peut être utilisée pour afficher des informations. La
fonction « PRINT » permet d’afficher des informations.
Syntaxe
Le caractère « ; » (point virgule) est utilisé comme séparateur. Des
commentaires peuvent être écrits entre les chaînes « (* » et « *) ». Il n’y
a pas de différence entre les majuscules et les minuscules pour les mots
clés et les noms de fonctions, en revanche, pour les noms de variables
la différenciation est faite.
Par exemple :
BEGINVAR;
INT compteur; (* un entier 16 bits signé *)
STRING chaine; (* une chaîne *)
ULONG table[100];
(* un tableau de 100 entiers 32 bits non signés *)
ENDVAR;
Ecriture du programme
Le programme doit être écrit entre les mots clés « BEGIN; » et « END; ».
Exemple :
BEGIN;
print "Bonjour !";
END;
Constantes
entier 16 bits : un nombre décimal compris entre -32768 et 32767 ou
"$" suivi d’un nombre hexadécimal compris entre 0 et FFFF. Exemple :
12, -4, $abcd
entier 32 bits : un nombre décimal compris entre -2147483648 et
214743647 suivi de "L" ou "$" suivi d’un nombre hexadécimal compris
entre 0 et FFFFFFFF suivi de "L". Exemple : 10000L, -200000L,
$12345678L
chaîne de caractères : un caractère guillemet suivi des caractères de
la chaîne suivi d’un caractère guillemet. Des caractères de contrôles
peuvent être insérés dans une chaîne. « \ n » remplace un caractère
LF (code ASCII 10), « \r » un caractère CR (code ASCII 13). Exemple :
"Abcdef", "" (chaîne nulle), "Suite\r\n"
- flottant : un nombre décimal suivi du caractère "R", le caractère "."
sert de délimiteur entre la partie entière et la partie décimale.
Exemple : 3.14r, -100.4r
Affectation
La chaîne « := » marque une affectation.
Exemple :
compteur:=4;
var:="ABCDEF";
Calculs
Les opérateurs de calculs sont évalués de la gauche vers la droite. Des
parenthèses peuvent être utilisées pour spécifier une priorité de calcul.
Exemples :
resultat:=var1*(var2+var3);
resultat:=resultat<<2;
Tests
Syntaxe :
IF <condition> THEN ... ENDIF;
ou
IF <condition> THEN ... ELSE ... ENDIF;
Exemple :
IF (count<100) AND (count>10)
THEN
count:=count+1;
ELSE
count:=0;
ENDIF;
Boucles
Syntaxe :
WHILE <condition> DO ... ENDWHILE;
Exemple :
count:=0;
WHILE count<1000
DO
table[count]:=table[count+1];
count:=count+1;
ENDWHILE;
PRINT
Fonction d’affichage. Les données à afficher sont écrites à la suite et
séparées par des virgules. Exemple :
print "Le résultat est :",vint/12,"\n";
NOT
Complément. Cette fonction peut être utilisée avec le test if pour
complémenter un résultat.
Exemple :
if not(1<2) then ...
ABS
Valeur absolue.
Exemple :
print abs(0-4); (* affiche 4 *)
VAL
Retourne la valeur d’une chaîne de caractères exprimée sous la forme
d’un nombre décimal.
Exemple :
vlong=val("-123456"); (* vlong contiendra -123456 *)
HVAL
Retourne la valeur d’une chaîne de caractères exprimée sous la forme
d’un nombre hexadécimal.
Exemple :
vuint=hval("abcd"); (* vuint contiendra abcd hexa *)
ASC
Retourne le code ASCII du premier caractère d’une chaîne.
Exemple :
vuint :=asc("ABCD"); (* vuint contiendra 65 : code ascii de ‘A’ *)
CHR
Retourne une chaîne composée de 1 caractère dont le code ASCII est
passé en paramètre.
Exemple :
vstring:=chr(65); (*vstring contiendra la chaîne "A" *)
STRING
Retourne une chaîne composée de n caractères. Le premier argument
est le nombre de caractères, le deuxième le caractère.
Exemple :
vstring:=string(100," ");
(* vstring contiendra une chaîne composée de 100 espaces *)
STR
Convertit une valeur numérique entière en une chaîne de caractères
représentant cette valeur en décimal.
Exemple :
vstring:=str(100); (* vstring contiendra la chaîne "100" *)
HEX
Convertit une valeur numérique entière en une chaîne de caractères
représentant cette valeur en hexadécimal.
Exemple :
vstring:=hex(100); (* vstring contiendra la chaîne "64" *)
LEFT
Retourne la partie gauche d’une chaîne de caractères. Le premier
argument est la chaîne de caractères, le deuxième le nombre de
caractères à extraire.
Exemple :
vstring:=left("abcdef",2); (* vstring contiendra "ab" *)
RIGHT
Retourne la partie droite d’une chaîne de caractères. Le premier
argument est la chaîne de caractères, le deuxième le nombre de
caractères à extraire.
Exemple :
vstring:=right("abcdef",2); (* vstring contiendra "ef" *)
MID
Retourne une partie d’une chaîne de caractères. Le premier argument
est la chaîne de caractères, le deuxième la position où doit commencer
l’extraction, le troisième le nombre de caractères à extraire.
Exemple :
vstring:=mid("abcdef",1,2); (* vstring contiendra "bc" *)
LEN
Retourne la longueur d’une chaîne de caractères.
Exemple :
vuint:=len("123"); (* vuint contiendra 3 *)
COS
Retourne le cosinus d’une valeur réelle exprimée en radian.
Exemple :
vfloat:=cos(3.14r); (* vfloat contiendra le cosinus de 3.14 *)
SIN
Retourne le sinus d’une valeur réelle exprimée en radian.
Exemple :
vfloat:=sin(3.14r); (* vfloat contiendra le sinus de 3.14 *)
TAN
Retourne la tangente d’une valeur réelle exprimée en radian.
Exemple :
vfloat:=tan(3.14r); (* vfloat contiendra la tangente de 3.14 *)
ATN
Retourne l’arc tangente d’une valeur réelle.
Exemple :
vfloat:=atn(0.5r); (* vfloat contiendra l’arc tangente de 0.5 *)
EXP
Retourne l’exponentielle d’une valeur réelle.
Exemple :
vfloat:=exp(1r); (* vfloat contiendra l’exponentielle de 1 *)
LOG
Retourne le logarithme d’une valeur réelle.
Exemple :
vfloat:=log(1r); (* vfloat contiendra le logarithme de 1 *)
LOG10
Retourne le logarithme base 10 d’une valeur réelle.
Exemple :
vfloat:=log10(1r);
(* vfloat contiendra le logarithme base 10 de 1 *)
SQRT
Retourne la racine carrée d’une valeur réelle.
Exemple :
vfloat:=sqrt(2); (* vloat contiendra la racine carrée de 2 *)
DATE
Retourne une chaîne de caractères représentant la date.
Exemple :
print "La date est :",date(),"\n";
TIME
Retourne une chaîne de caractères représentant l’heure.
Exemple :
print "L’heure est :",time(),"\n";
RND
Retourne un nombre aléatoire.
Exemple :
print rnd();
OPEN
Ouvre un fichier. Le premier argument est le nom du fichier, le deuxième
le mode d’accès qui peut être : « r+b » ouverture en lecture / écriture,
« w+b » ouverture en écriture (si le fichier existe il est détruit). La
fonction retourne un long qui identifiera le fichier. Si l’ouverture échoue,
la valeur retournée est 0.
Exemple :
vulong:=open("nouveau","w+b");
CLOSE
Ferme un fichier. L’argument est l’identificateur de fichier retourné par la
fonction OPEN.
Exemple :
close(vulong);
WRITE
Ecrit des données dans un fichier. Le premier argument est
l’identificateur de fichier retourné par la fonction OPEN. Le deuxième
argument est l’adresse d’une variable, le troisième le nombre d’octets à
écrire. La fonction retourne le nombre d’octets effectivement écrits.
Exemple :
vuint:=write(vulong,&buff,5);
READ
Lit des données dans un fichier. Le premier argument est l’identificateur
de fichier retourné par la fonction OPEN. Le deuxième argument est
l’adresse d’une variable, le troisième le nombre d’octets à lire. La
fonction retourne le nombre d’octets effectivement lus.
Exemple :
vuint:=read(vulong,&buff,5);
SEEK
Déplace un pointeur de fichier. Le premier argument est l’identificateur
de fichier retourné par la fonction OPEN, le deuxième la position.
Exemple :
seek(vulong,0l);
GOTO
Effectue un saut au label passé en argument. L’argument est une chaîne
de caractères.
Exemple :
goto "fin"
...
fin:;
CALL
Effectue un saut à un sous-programme. L’argument est une chaîne de
caractères contenant le label du sous-programme.
Exemple :
BEGIN;
(* programme principal *)
call "sp"
END;
BEGIN;
(* sous programme *)
sp:
print "Dans le sous-programme\n";
return;
END;
RETURN
Marque la fin d’un sous-programme.
READVAR
Lit une ou plusieurs variables de l’application d’automatisme. Le premier
argument est le nom de la variable d’automatisme (nom de variable ou
de symbole). Le deuxième argument est l’adresse d’une variable ou d’un
tableau de variables 32 bits (longs ou flottants). Le troisième argument
est le nombre de variables à lire. Si la fonction est exécutée sans erreur,
la valeur retournée est 0.
Exemple :
readvar("i0",&buff,16); (* lecture de 16 entrées à partir de i0 *)
WRITEVAR
Ecrit une ou plusieurs variables de l’application d’automatisme. Le
premier argument est le nom de la variable d’automatisme (nom de
variable ou de symbole). Le deuxième argument est l’adresse d’une
variable ou d’un tableau de variables 32 bits (longs ou flottants). Le
troisième argument est le nombre de variables à écrire. Si la fonction est
exécutée sans erreur, la valeur retournée est 0.
Exemple :
writevar("o0",&buff,16);
(* écriture de 16 sorties à partir de o0 *)
CMD
Exécute une commande. L’argument est une chaîne qui spécifie la
commande à exécuter. Cette fonction permet d’utiliser les commandes
prédéfinies d’IRIS. Pour plus de détails consultez le chapitre Ordres
spéciaux. La valeur retournée est 0 si la commande a été exécutée sans
erreur.
Exemple :
cmd("run");
YIELD
Passe la main. Cette fonction permet de ne pas monopoliser l’exécution
lorsque l’objet est exécuté en mode prioritaire.
Exemple :
WHILE 1
DO
...
yield();
ENDWHILE;
DLL
Appelle une DLL. Le premier argument est le nom du fichier DLL. Le
deuxième est le nom de la fonction. Le troisième est un pointeur sur une
variable 32 bits qui recevra le code de retour de la fonction. Les autres
arguments sont passés à la fonction.
Exemple :
dll "user","messagebeep",&vulong,-1;
Messages d’erreurs
« séparateur ‘;’ manquant » il manque un point virgule
« variable définie plusieurs fois » une variable est définie plusieurs fois
Onglet « Aspect »
Couleurs
Permet de choisir la couleur du fond et des caractères de l’objet.
Taille de l’objet
Détermine les dimensions de l’objet en nombre de points. La
modification de ces valeurs permet de régler très précisément la taille de
l’objet.
Texte
Permet de spécifier un texte bulle qui apparaît lorsque le curseur est
placé sur l’objet.
Onglet « Programme »
Programme
Cette zone d’édition contient le programme.
Exécuter
Si cette case est cochée, alors le programme est exécuté.
Exécution prioritaire
Si cette case est cochée, alors le programme s’exécute plus rapidement.
Exécution au démarrage
Si cette case est cochée, alors le programme s’exécute à l'ouverture de
l’objet. Cette option permet de sauvegarder un objet avec l’option
« Exécuter » non cochée tout en demandant une exécution de l’objet au
chargement.
Exemples IRIS 2D
Le nom des fichiers d’exemple fait référence au sous répertoire
« Exemples » du répertoire où a été installé AUTOMGEN.
Pour que l’aspect du clavier soit satisfaisant nous allons définir une grille
pour aligner les touches. Dans la fenêtre des propriétés du pupitre et
l’onglet « Options » écrivez la valeur « 10 » sous les deux rubriques
« Grilles ». Ainsi la fonction déplacer du menu du pupitre utilisera une
grille de 10 pixels. Nous allons également fixer les dimensions de la
première touche. Nous pourrions directement modifier les dimensions de
la touche en la saisissant par un de ses bords, cependant pour plus de
précision nous allons modifier directement les dimensions sous la
rubrique « Taille de l’objet en pixel » de l’onglet « Aspect » de la fenêtre
des propriétés de l’objet « Bouton Voyant ».
Vous pouvez créer une touche de validation (plus large pour remplir la
surface du clavier).
« Exemples\IRIS2D\clavier.agn »
Solution :
« Exemples\IRIS2D\écran clavier.agn »
Variante :
Solution :
Solution :
« Exemples\IRIS2D\terminal 1.agn »
Variante :
Les messages affichés sont stockés dans l’objet et non plus dans
l’application d’automatisme.
Solution :
« Exemples\IRIS2D\terminal 2.agn »
« Exemples\IRIS2D\menu.agn »
Solution :
Le corps du vérin est un objet OBJET qui reste statique, seul son aspect
est configuré :
« Exemples\Simulation PO\2D\tutorial1.agn »
Variante :
Une position intermédiaire doit être ajoutée sur le vérin. Pour cela nous
allons utiliser deux objets supplémentaires : une pièce fixée sur la tige du
vérin qui actionnera un capteur et un capteur.
« Exemples\Simulation PO\2D\tutorial2.agn »
Deuxième variante :
Un vérin vertical fixé sur la tige du vérin horizontal est ajouté. Ce vérin
est actionné par une seule sortie (O2=1 pour sortir le vérin, O2=0 pour le
rentrer). Deux fins de course sont associés i3 et i4.
Le résultat est le suivant :
« Exemples\Simulation PO\2D\tutorial3.agn »
Solution :
« Exemples\IRIS2D\archivage »
« Exemples\IRIS2D\supervision 1 »
Des objets "Objet" seront utilisés pour représentés les vannes. Un fichier
bitmap est créé pour représenter les vannes : état ouvert (couleur verte)
et état fermée (couleur rouge) :
Cet exemple illustre une utilisation plus évoluée d’un objet OBJET.
L’application affiche l’état d’une vanne qui peut être :
• vanne ouverte (ouverture commandée et capteur vanne ouverte
vrai) : couleur verte,
• vanne fermée (fermeture commandée et capteur vanne fermée
vrai) : couleur rouge,
« Exemples\IRIS2D\supervision 2.agn »
« Exemples\Simulation PO\2D\ascenseur.agn »
Références IRIS 3D
IRIS 3D vous permet de créer des applications de simulation de parties
opératives 3D. Le moteur physique TOKAMAK est intégré à IRIS3D pour
permettre une simulation physique réaliste : pesanteur, interactions entre
objets.
Le format natif des fichiers traités par IRIS 3D est celui des fichiers « .x »
défini par DIRECTX 8 de Microsoft.
Tutorial
Un fichier WORD contenant un tutorial consacré à la création de parties
opératives 3D se trouve dans les sous répertoires « exemples\simulation
PO\3d\tutorial 2 » du répertoire d’installation d’AUTOMGEN.
Le pupitre IRIS 3D
La liste des objets apparaît dans la liste. Les objets liés à un objet
apparaissent comme sous éléments si la case à cocher « Affichage
arborescent » est cochée.
Après avoir entré un nom pour le fichier, une boîte de dialogue permet
d’assigner un nom à chaque variable utilisée dans les comportements et
de définir si ce paramètre sera modifiable ou non lors de la relecture.
L’accès aux bits B est limité à une table de bits linéaire, une directive #B
doit être utilisée pour réserver des bits (voir le manuel de référence
langage).
Nom
La première zone permet d’entrer un nom générique pour la translation.
Ce nom apparaîtra dans la liste de la fenêtre de configuration d’IRIS 3D,
il sert uniquement de commentaire et peut être laissé vierge.
Axe
Détermine dans quelle dimension va s’appliquer la translation.
Type
A
Le contenu de la variable numérique détermine la position de
l’objet. Si c’est un mot la position sera fixée à la valeur divisée
par 100, si c’est un long à la valeur divisée par 10000, si c’est
un flottant à la valeur contenue dans le flottant. Mini et maxi
déterminent les bornes pour ces valeurs.
B
Le contenu de la variable détermine la position entre les valeurs
min et max. 0 = position mini, 10000=position maxi.
C
Le contenu de la variable donne une vitesse de déplacement
comprise entre -10000 et 10000.
D
Le contenu de la variable donne une position à atteindre en
pourcentage de la course entre mini et maxi : 0=position mini,
100=position maxi. L’accélération et la décélération sont
calculées automatiquement. Le paramètre « pourcentage du
mouvement utilisé … » détermine la longueur de la phase
d’accélération et de décélération.
Amplitude et origine
Les zones « Mini » et « Maxi » déterminent l’amplitude et l’origine de la
translation.
Vitesse
Le temps pour la course détermine la vitesse pour aller du point mini au
point maxi (elle est identique à la vitesse de retour).
Détection
Permet de définir des capteurs pour la translation. Les capteurs mini et
maxi gèrent les fins de courses, les 4 autres capteurs possibles peuvent
être utilisés pour créer des positions intermédiaires.
Le centre de rotation de l’objet doit être réglé pour chaque objet dans la
fenêtre de configuration d’IRIS 3D.
Changement de couleur
Le pilotage d’une couleur par une variable doit faire référence à une
variable booléenne.
Textures multiples
Il est possible d’associer plusieurs textures qui seront appliquées
automatiquement. Pour ceci, associez plusieurs comportements de type
« Modification de couleur » à un même objet et documentez la zone
« Délai pour le mode multi texture » avec le temps au bout duquel la
texture suivante sera automatiquement appliquée. L’objet prédéfini
« Tapis roulant » exploite cette technique.
Ajouter un lien
Un lien force l’objet auquel s’applique ce comportement à suivre les
déplacements d’un autre objet.
Autres comportements
Moteur physique
Pour chaque objet on peut définir un type de gestion utilisé par le moteur
physique :
« Objet non pris en compte » : l’objet n’est pas géré par le moteur
physique : pas soumis à la pesanteur, pas d’interaction avec les autres
objets.
Exemple IRIS 3D
« Exemples\Simulation PO\3D\Scharder.agn »
Résumé IRIS 3D
Eléments communs
Ce chapitre détaille les éléments communs à tous les langages
utilisables dans AUTOMGEN. AUTOMGEN utilise les éléments des
normes CEI1131-3 et 60848. Des éléments de syntaxe assurent
également une compatibilité avec les anciennes versions
d’AUTOMGEN. Enfin, des extensions à la norme nommées Grafcet++
donnent accès à des fonctions évoluées et sont une exclusivité
proposée dans AUTOMGEN.
Les variables
Les types de variables suivants existent :
Ö le type booléen : la variable peut prendre la valeur vrai (1) ou faux (0).
Ö le type numérique : la variable peut prendre une valeur numérique, différents
sous types existent : variables 16 bits, 32 bits et virgule flottante.
Les temporisations
La temporisation est un type composé qui regroupe deux variables
booléennes (état de lancement, état de fin) et deux variables
numériques sur 32 bits (la consigne et le compteur).
1
état de lancement
1
état de fin
0
consigne
valeur de comptage
Les actions
Les actions sont utilisées dans :
Action
Action
Table de vérité :
Commande Etat de la variable
(résultat)
0 0
1 1
Exemple :
Syntaxe CEI1131-3 :
10 %Q0
Exemple :
Syntaxe CEI1131-3 :
10 %Q5 50 %Q5
.
Etat de X10 Etat de Etat de
X50 O5
0 0 0
1 0 1
0 1 1
1 1 1
Table de vérité :
Commande Etat de la variable
(résultat)
0 1
1 0
Exemple :
20 N %M100
Exemple :
Syntaxe CEI1131-3 :
100 N %Q20 110 N %Q20
Table de vérité :
Commande Etat de la variable
(résultat)
0 inchangé
1 1
Exemple :
Syntaxe CEI1131-3 :
500 S %Q2
.
ou
500 %Q2:=1
.
Si l’étape 5000 est active alors O2 prend la valeur 1, sinon O2 garde
son état.
Table de vérité :
Commande Etat de la variable
(résultat)
0 inchangé
1 0
Exemple :
Syntaxe CEI1131-3 :
6000 R %Q3
.
ou
6000 %Q3:=0
.
Si l’étape 6000 est active alors O3 prend la valeur 0, sinon O3 garde
son état.
Table de vérité :
Commande Etat de la variable
(résultat)
0 inchangé
1 inversé
Exemple :
Syntaxe CEI1131-3 :
7000 I %Q4
.
Si l’étape 7000 est active alors l’état de O4 est inversé, sinon O4
garde son état.
Table de vérité :
Commande Valeur du compteur du
mot ou du long (résultat)
0 Inchangé
1 0
Exemple :
Syntaxe CEI1131-3 :
100 R %C25
.
Si l’étape 100 est active alors le compteur 25 est remis à zéro, sinon
C25 garde sa valeur.
Table de vérité :
Commande Valeur du compteur, du
mot ou du long (résultat)
0 Inchangé
1 valeur actuelle +1
Exemple :
Syntaxe CEI1131-3 :
100 +%C25
.
Si l’étape 100 est active alors le compteur 25 est incrémenté, sinon
C25 garde sa valeur. L’incrémentation est réalisée à chaque cycle tant
que l’étape est active. Pour réaliser l’incrémentation une seule fois sur
activation de l’étape (ce qui est généralement le cas le plus fréquent),
le modificateur d’action P1 peut être utilisé. Par exemple :
100 P1+%C25
Table de vérité :
Commande Valeur du compteur, du
mot ou du long (résultat)
0 inchangé
1 valeur actuelle -1
Exemple :
Syntaxe CEI1131-3 :
100 -C25
.
Si l’étape 100 est active alors le compteur 25 est decrémenté, sinon
C25 garde sa valeur. La décrémentation est réalisée à chaque cycle
tant que l’étape est active. Pour réaliser la décrémentation une seule
fois sur activation de l’étape (ce qui est généralement le cas le plus
fréquent), le modificateur d’action P1 peut être utilisé. Par exemple :
100 P1-%C25
Exemple :
100 {%C25:=10;}
Temporisations
Les temporisations sont considérées comme des variables
booléennes et sont utilisables avec les actions « Affectation »,
« Affectation complémentée », « Mise à un », « Mise à zéro », et
« Inversion ». La consigne de la temporisation peut être écrite à la
suite de l’action. La syntaxe est :
« temporisation(durée) »
La durée est par défaut exprimée en dixièmes de seconde. Le
caractère « S » placé à la fin de la durée indique qu’elle est exprimée
en secondes.
Exemples :
Syntaxe CEI1131-3 :
10 %T3(T#20) 20 S %T50(T#6s)
.
L’étape 10 lance une temporisation de 2 secondes qui restera active
tant que l’étape le sera. L’étape 20 arme une temporisation de 6
secondes qui restera active même si l’étape 20 est désactivée.
Une même temporisation peut être utilisée à plusieurs endroits avec
une même consigne et à des instants différents. La consigne de la
temporisation doit dans ce cas être indiquée une seule fois.
Non mémorisé N1
Non mémorisé N0
complémenté
Mise à zéro R
Mise à 1 S
Temporisé DTn/durée
Impulsion P1
sur front
montant
Impulsion P0
sur front
descendant
Mémorisé SDTn/duré
et temporisé e
Temporisé DSTn/duré
et mémorisé e
Mémorisé et SLTn/duré
limité dans e
le temps
Actions multiples
Au sein d’un même rectangle d’action ou d’une bobine, plusieurs
actions peuvent être écrites en les séparant par le caractère « , »
(virgule).
Exemple :
Syntaxe CEI1131-3 :
50 %Q0,N %Q1,S %Q2,R %Q3,R %C0,+ %C1,- %C2
.
Plusieurs rectangles d’action (Grafcet et logigramme) ou bobines
(ladder) peuvent être juxtaposés. Reportez-vous aux chapitres
correspondant à ces langages pour plus de détails.
Code littéral
Du code littéral peut être inséré dans un rectangle d’action ou une
bobine.
La syntaxe est :
« { code littéral } »
Plusieurs lignes de langage littéral peuvent être écrites entre les
accolades. Le séparateur est ici aussi le caractère « , » (virgule).
Exemple :
Syntaxe CEI1131-3 :
10 {%MW200:=%MW200+10;}
.
Pour plus de détails, consultez les chapitres « Langage littéral bas
niveau », « Langage littéral étendu » et « Langage littéral ST ».
Les tests
Test
Forme générale
Un test est une équation booléenne composée de une ou de n
variables séparées par des opérateurs « + » (ou) ou « . » (et).
Exemple de test :
i0 (test l’entrée 0)
i0+i2 (test l’entrée 0 « ou » l’entrée 2)
i10.i11 (test l’entrée 10 « et » l’entrée 11)
Modificateur de test
Par défaut, si seul le nom d’une variable est spécifié, le test est « si
égal à un» (si vrai). Des modificateurs permettent de tester l’état
complémenté, le front montant et le front descendant :
Ö le caractère « / » placé devant une variable teste l’état complémenté,
Ö le caractère « u » ou le caractère « Ï* » placé devant une variable teste le
front montant,
Exemples :
Ï i0
/i1
/(i2+i3)
Ð(i2+(i4./i5))
Temporisations
Quatre syntaxes sont disponibles pour les temporisations.
Dans la première, on active la temporisation dans l’action et on
mentionne simplement la variable temporisation dans un test pour
vérifier l’état de fin :
Syntaxe CEI1131-3 :
20 %T10(T#5S)
%t10
.
Pour les autres, tout est écrit dans le test. La forme générale est :
« temporisation / variable de lancement / durée »
ou
« durée / variable de lancement / temporisation »
ou
« durée / variable de lancement »
*
Pour obtenir ce caractère pendant l’édition d’un test pressez sur la touche [Ï].
**
Pour obtenir ce caractère pendant l’édition d’un test pressez sur la touche [Ð].
Syntaxe CEI1131-3 :
20
%t10/%x20/T#5s
.
Exemple utilisant la syntaxe normalisée :
Syntaxe CEI1131-3 :
10
T#1h30m/%i0
ou
[(« variable numérique » « type de test » « constante ou variable
numérique » ]
Exemples :
m200=100
%mw1000=16#abcd
c10>20.c10<100
f200=f201
[m200=m203]
%md100=%md102
f200=3.14r
l200=$12345678L
m200<<-100
m200>>1000
[%mw500<=12]
/(m200=4)
Ð(m200=100)
/(l200=100000+l200=-100000)
Utilisation de symboles
Les symboles permettent d’associer un texte à une variable.
Les symboles peuvent être utilisés avec tous les langages.
Un symbole doit être associé à une et une seule variable.
Ö le nom du symbole,
Ö un caractère « _ » optionnel (souligné) qui marque la fin du symbole.
Les caractères « _ » encadrant les noms de symboles sont optionnels.
Il doivent être utilisés si le symbole commence par un chiffre ou un
opérateur (+,-, etc…).
Symboles automatiques
Il est parfois fastidieux de devoir définir l’attribution entre chaque
symbole et une variable, notamment si l’attribution précise d’un
numéro de variable importe peu. Les symboles automatiques sont une
solution à ce problème, ils permettent de laisser le soin au compilateur
de générer automatiquement l’attribution d’un symbole à un numéro
de variable. Le type de variable à utiliser est, quant à lui, fourni dans le
nom du symbole.
Par exemple :
ouvrir vanne%%q3
10 ouvrir vanne%%q3
S5D
S6I
voie 1 T5D
T6I S6D S5I
T6D T5I
5
S2A S4A
T2A T4A
voie 6 voie 5
voie 2 voie 4
S2B
voie 7 voie 8 S4B
T2B T4B
S3I S3D
T3I T3D 3
2
Nous avons utilisé des cartes d’E/S sur PC pour piloter cette maquette. Les
symboles définis par le constructeur de la maquette ont été conservés.
Grafcet
AUTOMGEN supporte les éléments suivants :
Ö divergences et convergences en « Et » et en « Ou »,
Ö étapes puits et sources,
Ö transitions puits et sources,
Ö synchronisation,
Ö forçages de Grafcets,
Ö mémorisation de Grafcets,
Ö figeage,
Ö macro-étapes,
Ö étapes encapsulantes.
Etapes Grafcets
Les différentes formes d’étapes sont :
.étape normale
.étape initiale
.macro-étape
.étape encapsulante
1234
Par exemple : .
%Q0
%i0
%Q1
T#5s/%i0
Grafcet simple
L’écriture de Grafcet en ligne se résume à la juxtaposition d’étapes et
de transitions.
Illustrons un Grafcet en ligne avec l’exemple suivant :
0 AV1
t1d
1 AV1 , DV1
t1i
exemples\grafcet\simple1.agn
Solution 2 :
0 S AV1 ,R DV1
Aller
t1d
1 S AV1 ,S DV1
Retour
t1i
exemples\grafcet\simple2.agn
Solution 1 :
0 AV1
Aller
t1d
10 T0(10S)
t0
20 AV1 , DV1
Retour
t1i
30 T1(4S)
t1
exemples\grafcet\simple3.agn
Solution 2 :
0 AV1
Aller
t1d
10
10s/x10
20 AV1 , DV1
Retour
t1i
30
4s/x30
exemples\grafcet\simple4.agn
Divergence et convergence en « Et »
Les divergences en « Et » peuvent avoir n branches. L’important est
de respecter l’utilisation des blocs de fonction :
Obligatoirement Obligatoirement
un bloc [K] et un bloc [M] et
pas un bloc [L] pas un bloc [L]
Obligatoirement
Obligatoirement un bloc [Q] et
un bloc [O] et pas un bloc [P]
pas un bloc [P]
Solution 1 :
40
=1
0 AV1 50 AV3
t1d t3i
10 60
=1
t1i t3d
30 80
=1
exemples\grafcet\divergence et 1.agn
Solution 2 :
t1d t3i
0 AV1 10 AV3
t1d . t3i
t1i t3d
t1i . t3d
exemples\grafcet\divergence et 2.agn
Ces deux solutions sont équivalentes au niveau du fonctionnement. La
deuxième est une version plus compacte qui utilise des actions
conditionnées.
Divergence et convergence en « Ou »
Les divergences en « Ou » peuvent avoir n branches. L’important est
de respecter l’utilisation des blocs de fonction :
ou
ou
Solution :
0 AV1
Ç t1d Ç t1i
1 S DV1 2 R DV1
=1 =1
exemples\grafcet\divergence ou.agn
Ç t1d Ç t1i
exemples\grafcet\action conditionnée.agn
Ç t1d Ç t1i
10 R AV1 30 R AV1
t0/x10/10s t1/x30/4s
=1 =1
Actions multiples
Nous avons déjà utilisé dans ce chapitre des actions multiples et des
actions conditionnées. Détaillons ici ces deux principes.
autre possibilité :
l’élément ou .ou ..
20 + %C5
.
Incrémenter le compteur 5 une fois à l’activation de l’étape 20.
%i0
%Q0:=1
20
.
%Q0 sera activée au franchissement de la transition entre les étapes
10 et 20.
Synchronisation
Reprenons un exemple déjà traité pour illustrer la synchronisation de
Grafcets.
Solution 1 :
t1d t3i
20 110
x110 x20
t1i t3d
40 130
x130 x40
exemples\grafcet\synchro1.agn
Solution 2 :
10 SX100,SX140
=1
20
x110.x150
30 SX120,SX160
=1
40
x130.x170
100 AV1 120 AV1 , DV1 140 AV3 160 AV3 , DV3
exemples\grafcet\synchro2.agn
Forçages de Grafcet
Le compilateur regroupe les étapes en fonction des liens qui sont
établis entre elles. Pour désigner un Grafcet, il suffit de faire référence
à une des étapes composant ce Grafcet.
Par exemple:
ou
« G/<nom de folio> :<N° de bit> {liste d’étapes actives} »
Cette commande mémorise l’état défini par la liste d’étapes actives
appliquées aux Grafcets spécifiés à partir du bit indiqué. Il est
nécessaire ici aussi de réserver un nombre suffisant de bits. Si une
situation vide doit être mémorisée alors aucune étape ne doit
apparaître entre les deux accolades.
Le numéro des étapes peut être précédé de « X ». On peut ainsi
associer un symbole au nom d’une étape. Le numéro du bit peut être
précédé de « U » ou de « B ». On peut ainsi associer un symbole au
premier bit de la zone de stockage d’état.
Exemples:
« G0:100 »
mémorise l’état actuel du Grafcet 0 à partir de U100.
« G0:U200 »
mémorise l’état vide du Grafcet 0 à partir de U200.
« G10:150{1,2} »
mémorise l’état du Grafcet 10, dans lequel seules les étapes 1 et 2
sont actives, à partir de U150.
« G/PRODUCTION :_SAUVE ETAT PRODUCTION_ »
mémorise l’état des Grafcets se trouvant sur le folio
« PRODUCTION » dans la variable _SAUVE ETAT PRODUCTION_.
ou
« F/<Nom de folio> »
Fige un ou des Grafcets : interdit toute évolution de ceux-ci.
Exemple :
« F100 »
fige le Grafcet 100
« F/production »
fige les Grafcets contenus dans le folio « production »
Illustrons les forçages par un exemple.
Solution 1 :
#B104 réserve 4 bits pour la mémorisation de l'état des Grafcets
locomotive 1 locomotive 2
10 AV1 30 AV3
t1d t3i
t1i t3d
1000
arret urgence
1010 G10:100,G30:102
=1
1020 F10:{},F30:{}
arret urgence
1030 F10:100,F30:102
=1
exemples\grafcet\forçage1.agn
« _arret urgence_ » a été associé à un bit (U1000). Son état peut donc
être modifié à partir de l’environnement en cliquant dessus lorsque la
visualisation dynamique est activée.
Solution 2 :
#B104 réserve 4 bits pour la mémorisation de l'état des Grafcets
locomotive 1 locomotive 2
10 AV1 30 AV3
t1d t3i
t1i t3d
#G:10,30
1000
arret urgence
1010 G10:100
=1
1020 F10:{}
arret urgence
1030 F10:100
=1
exemples\grafcet\forçage2.agn
.
Ici 10 représente le Grafcet à forcer : Grafcet contenant l’étape 10.
Autre exemple :
Gfolio à forcer{100,200,300}
.
Force l’ensemble des Grafcets se trouvant sur le folio nommé « folio à
forcer » dans l’état tel que les étapes 100, 200 et 300 sont à l’état vrai
et les autres étapes à 0.
Macro-étapes
AUTOMGEN implémente les macro-étapes.
Donnons quelques rappels à ce sujet :
Une macro-étape ME est l’unique représentation d’un ensemble
unique d’étapes et de transitions nommé « expansion de ME ».
Une macro-étape obéit aux règles suivantes :
Ö l’expansion de ME comporte une étape particulière dite étape d’entrée et une
étape particulière dite étape de sortie.
Remarques :
Ö les étapes et les bits Utilisateur utilisés dans une expansion de macro-étape
sont locaux, c’est à dire qu’ils n’ont aucun rapport avec les étapes et les bits
d’autres Grafcets. Tous les autres types de variables n’ont pas cette
caractéristique : ils sont communs à tous les niveaux.
Ö si une zone de bits doit être utilisée de façon globale alors il faut la déclarer
avec la directive de compilation « #B ».
Solution :
macro-étape aller voie 1
E1
10 S AV1 ,R DV1
t1d
20 R AV1
t0/x20/10s
S1
E2
10 S AV1 ,S DV1
t1i
20 R AV1
t1/x20/4s
S2
=1
M1
=1
M2
=1
exemples\grafcet\macro-étape.agn
Etapes encapsulantes
Introduites dans la norme 60848, les étapes encapsulantes sont une
évolution des notions proposées dans les macro étapes.
Remarques :
Ö les étapes et les bits Utilisateur utilisés dans une encapsulation sont locaux,
c’est à dire qu’ils n’ont aucun rapport avec les étapes et les bits d’autres
niveaux de Grafcets. Tous les autres types de variables n’ont pas cette
caractéristique : ils sont communs à tous les niveaux. Vous pouvez par
exemple utiliser des bits de mots comme variables globales.
Exemple :
i0
i1
i2
.programme principal
0 o0
i10
10 o1
i11
20 o2
i12
exemples\grafcet\encapsulation 2.agn
0 +c0
i20
1 +c1
%i0
%i1
0 %i2 %Q0
%i0
10 %i3 %Q1
%i1
exemples\grafcet\grafcet++2.agn
clignotant 05seconde
dcy
exemples\grafcet\grafcet++.agn
Compteurs
Illustrons l’utilisation des compteurs par un exemple.
Cahier des charges :
Une locomotive doit effectuer 10 allers et retours sur la voie 1,
s’immobiliser pendant quinze secondes et recommencer.
Solution :
0 RC0
=1
1 AV1
t1d
2 AV1 , DV1
t1i
3 +C0
c0<10 c0=10
15s/x4
exemples\grafcet\compteur.agn
Gemma
AUTOMGEN implémente la description de Grafcet de gestion des
modes de marche sous forme de Gemma. Le principe retenu est un
mode d’édition transparent au mode Grafcet. Il est possible de passer
du mode d’édition Grafcet au mode d’édition Gemma. La traduction
d’un Gemma en Grafcet de gestion des modes de marche est donc
automatique et immédiate.
P.C. HORS
ENERGIE
remise en route arrêt mise en ou hors serv ice essais et v érif ications
f onctionnement normal
PZ A6 <Mise P.O. dans état initial> A1 <Arrêt dans état initial> F4 <Marches de v érif ication
_t1i _
_AV1_,_DV1_ _VOYANT INIT_ dans le désordre>
ramÞne la locomotiv e Ó ArrÛt dans Útat initial
gauche
_depart cycle_
PRODUCTION
F5 <Marches de v érif ication
dans l'ordre>
A5 <Préparation pour remise en A2 <Arrêt A3 <Arrêt
route après déf aillance> demandé en demandé
f in de dans état
rien pour l'instant cy cle> déterminé>
_FIN_
ArrÛt du
Graf cet de F1 <Production normale>
production _DEPART_
Lancement du Graf cet de productio
_fi n de cycl e_
/_arret urgence_
PRODUCTION PRODUCTION
P.C. HORS
ENERGIE
0 VOYANT INIT
gemma1.gr7
Ç depart cycle
exemple de la notice d'AUTOMGEN
05/03/1994
1 DEPART
=1
ramène la locomotive à gauche
7 AV1 , DV1
t1i
Imprimer le Gemma
Quand l’édition est en mode Gemma c’est la commande « Imprimer »
qui permet d’imprimer le Gemma.
Exporter le Gemma
La commande « Copier au format EMF » du menu « Edition » permet
d’exporter un Gemma au format vectoriel.
Exemple de Gemma
Illustrons l’utilisation du Gemma.
Cahier des charges :
Imaginons un pupitre composé des boutons poussoirs suivants :
« départ cycle », « fin de cycle » et « arrêt d’urgence » et d’un voyant
« INIT ».
Le programme principal consistera à faire effectuer des allers et
retours à une locomotive sur la voie 1.
Solution :
P.C. HORS
ENERGIE
remise en route arrêt mise en ou hors serv ice essais et v érif ications
f onctionnement normal
PZ A6 <Mise P.O. dans état initial> A1 <Arrêt dans état initial> F4 <Marches de v érif ication
_t1i _
_AV1_,_DV1_ _VOYANT INIT_ dans le désordre>
ramÞne la locomotiv e Ó ArrÛt dans Útat initial
gauche
_depart cycle_
PRODUCTION
F5 <Marches de v érif ication
dans l'ordre>
A5 <Préparation pour remise en A2 <Arrêt A3 <Arrêt
route après déf aillance> demandé en demandé
f in de dans état
rien pour l'instant cy cle> déterminé>
_FIN_
ArrÛt du
Graf cet de F1 <Production normale>
production _DEPART_
Lancement du Graf cet de productio
_fin de cycl e_
/_arret urgence_
PRODUCTION PRODUCTION
P.C. HORS
ENERGIE
arret urgence
22 F5:(5)
exemples\gemma\gemma.agn
Ladder
Le langage Ladder, également appelé « schéma à contact », permet
de décrire graphiquement des équations booléennes. Pour réaliser
une fonction logique « Et », il faut écrire des contacts en série. Pour
écrire une fonction « Ou », il faut écrire des contacts en parallèle.
Fonction « Et »
Fonction « Ou »
Le contenu des contacts doit respecter la syntaxe définie pour les
tests et détaillée dans le chapitre « Eléments communs » de ce
manuel.
Le contenu des bobines doit respecter la syntaxe définie pour les
actions, elle aussi détaillée dans le chapitre « Eléments communs » de
ce manuel.
Exemple de Ladder
Commençons par l’exemple le plus simple.
Cahier des charges :
Aller et retour d’une locomotive sur la voie 1.
Solution 1 :
AV1
Ç t1i R DV1
Ç t1d S DV1
exemples\ladder\ladder1.agn
Solution 2 :
AV1
t1d
exemples\ladder\ladder2.agn
Solution :
t1d T0(10S)
S DV1
t1i T1(4S)
R DV1
t0
t1
exemples\ladder\ladder3.agn
Solution :
b0 RC0
t0
S DV1
t1i R DV1
c0<10 AV1
t0
c0=10 T0(15S)
exemples\ladder\ladder4.agn
Logigramme
AUTOMGEN implémente le langage logigramme de la façon suivante :
Ö utilisation d’un bloc spécial nommé « bloc d’affectation », ce bloc sépare la
Zone « test »
Bloc
d’affectation
pour délimiter la
zone test de la
zone action
Zone « action »
Actions multiples
Plusieurs rectangles d’action peuvent être associés à un logigramme
après le bloc d’affectation.
ou
Exemples de logigramme
Commençons par l’exemple le plus simple.
Cahier des charges :
Aller et retour d’une locomotive sur la voie 1.
Solution 1 :
=1 AV1
Ç t1d S DV1
Ç t1i R DV1
exemples\logigramme\logigramme1.agn
Solution 2 :
=1 AV1
t1d DV1
dv1 &
t1i O
exemples\logigramme\logigramme2.agn
Solution :
t1d T0(10S)
S DV1
t1i T1(4S)
R DV1
t0 AV1
t1
O &
exemples\logigramme\logigramme3.agn
Solution :
b0 RC0
t0
dv1 O S DV1
t1i R DV1
c0<10 AV1
t0
c0=10 T0(15S)
exemples\logigramme\logigramme4.agn
Langages littéraux
Ce chapitre décrit l’utilisation les trois formes de langages littéraux
disponibles dans AUTOMGEN :
Ö le langage littéral bas niveau,
Ö le langage littéral étendu,
Ö le langage littéral ST de la norme CEI 1131-3.
Comment utiliser le langage littéral ?
Le langage littéral peut être utilisé sous la forme suivante :
Ö fichier de code associé à une action (Grafcet, Ladder, logigramme),
Ö boîte de code associée à une action (Grafcet, logigramme),
Ö code littéral dans un rectangle d’action ou une bobine (Grafcet, Ladder,
Logigramme),
Exemples :
Le code ainsi utilisé est scruté tant que l’action est vraie.
Il est possible d’utiliser conjointement des rectangles d’action et des
boîtes de code.
Exemple :
Exemples :
Les variables
Les variables utilisables sont les mêmes que celles définies dans le
chapitre « Eléments communs ».
Les accumulateurs
Certaines instructions utilisent la notion d’accumulateur. Les
accumulateurs sont des registres internes au système qui exécute le
programme final et permettent d’accueillir temporairement des valeurs.
Il existe trois accumulateurs : un accumulateur entier 16 bits noté AAA,
un accumulateur entier 32 bits noté AAL et un accumulateur flottant
noté AAF.
Les drapeaux
Les drapeaux sont des variables booléennes positionnées en fonction
du résultat des opérations numériques.
Il y a quatre drapeaux permettant de tester le résultat d’un calcul. Ces
quatre indicateurs sont :
Ö indicateur de retenue C : il indique si une opération a engendré une retenue (1)
ou n’a pas engendré de retenue (0),
Modes d’adressage
Le langage littéral bas niveau possède 5 modes d’adressage. Un
mode d’adressage est une caractéristique associée à chacune des
instructions du langage littéral.
Les modes d’adressage utilisables sont :
Les tests
Les tests pouvant être associés aux instructions sont composés d’un
mnémonique, d’un type de test et d’une variable.
Les mnémoniques de tests permettent de définir des tests
combinatoires sur plusieurs variables (et, ou). Si un test est composé
d’une seule variable, un opérateur AND doit quand même lui être
associé.
Il existe seulement trois mnémoniques de test :
AND et
ORR ou
EOR fin de ou
Voici quelques exemples d’équivalences entre des équations
booléennes et le langage littéral bas niveau :
o0=i1 : and i1
o0=i1.i2 : and i1 and i2
o0=i1+i2 : orr i1 eor i2
o0=i1+i2+i3+i4 : orr i1 orr i2 orr i3 eor i4
o0=(i1+i2).(i3+i4) : orr i1 eor i2 orr i3 eor i4
o0=i1.(i2+i3+i4) : and i1 orr i2 orr i3 eor i4
o0=(i1.i2)+(i3.i4) ; impossible à traduire directement,
; il faut utiliser des
; variables intermédiaires :
Ö # front montant
Ö * front descendant
Ö @ état immédiat
Remarques :
Ö les variables booléennes sont rafraîchies après chaque cycle d’exécution. En
d’autres termes, si une variable binaire est positionnée à un état au cours d’un
cycle, alors son nouvel état sera réellement reconnu au cycle suivant. Le
modificateur de test @ permet d’obtenir l’état réel d’une variable booléenne
sans attendre le cycle suivant.
Ö les modificateurs de tests ne sont pas utilisables avec les tests numériques.
Exemples:
set o100
equ o0 and @o100 ; test vrai dès le premier cycle
equ o1 and o100 ; test vrai au deuxième cycle
Syntaxe :
« {variable} {=, !, <, >, << , >>} {constante ou variable} »
= signifie égal,
! signifie différent,
< signifie inférieur non signé,
> signifie supérieur non signé,
<< signifie inférieur signé,
>> signifie supérieur signé,
Les constantes sont écrites par défaut en décimal. Les suffixes « $ »
et « % » permettent de les écrire en hexadécimal ou en binaire. Les
guillemets permettent de les écrire en ASCII.
Les constantes 32 bits doivent être suivies du caractère « L ».
Les constantes réelles doivent être suivies du caractère « R ».
Exemples :
and c0>100 and m225=10
orr m200=m201 eor m202=m203 and f100=f101 and f200<f203
orr m200<<-100 eor m200>>200
and f200=3.14r
and l200=$12345678L
and m200=%1111111100000000
Commentaires
Les commentaires doivent débuter par le caractère « ; » (point
virgule), tous les caractères venant à la suite sont ignorés.
Base de numérotation
Les valeurs (repères de variables ou constantes) peuvent être écrites
en décimal, hexadécimal, binaire ou en ASCII.
La syntaxe suivante doit être appliquée pour les constantes 16 bits :
Ö décimal : éventuellement le caractère « - » puis 1 à 5 digits « 0123456789 »,
Ö hexadécimal : le préfixe « $ » ou « 16# » suivi de 1 à 4 digits
« 0123456789ABCDEF »,
Prédispositions
Une prédisposition permet de fixer la valeur d’une variable au
démarrage de l’application.
Les variables T ou %T, M ou %MW, L ou %MD et F ou %F peuvent
être prédisposées.
Exemples :
$t25=100
place les valeurs 100,200,300,400 dans les mots 200, 201, 202, 203
$m200="ABCDEF"
Exemple :
$m200=" Arrêt de la vanne N°10 "
Par exemple :
#$m200=1,2,3,4,5
#$...=6,7,8,9
Adressage indirect
L’adressage indirect permet d’effectuer une opération sur une variable
pointée par un index.
Ce sont les variables M (les mots) qui servent d’index.
Syntaxe :
« variable ( index ) »
lda 10 ; charge 10 dans l’accumulateur
sta m200 ; le place dans le mot 200
set o(200) ; mise à un de la sortie pointée par le mot 200 (o10)
Exemple :
lda ?_vanne_ ; place dans l’accumulateur le numéro de la variable
; associée au symbole « _vanne_ »
Exemple :
$m200=?_vanne1_,?_vanne2_,?_vanne3_
Sauts et labels
Les sauts doivent faire référence à un label. La syntaxe d’un label est :
« :nom du label: »
Exemple :
jmp :suite:
...
:suite:
SET mise à un
RES mise à zéro
INV inversion
EQU équivalence
NEQ non-équivalence
Fonctions de chargement et de stockage sur entiers et flottants
LDA chargement
STA stockage
Fonctions arithmétiques sur entiers et flottants
ADA addition
SBA soustraction
MLA multiplication
DVA division
CPA comparaison
Fonctions arithmétiques sur flottants
INC incrémentation
DEC décrémentation
Fonctions de conversion
SIN sinus
COS cosinus
TAN tangente
ASI arc sinus
ACO arc cosinus
ATA arc tangente
Fonctions de branchement
JMP saut
JSR saut à un sous-programme
RET retour de sous-programme
Fonctions de test
ABS
Nom : ABS - abs accumulator
Fonction : calcule la valeur absolue de l’accumulateur flottant
Variables : aucune
Adressage : accumulateur
Voir aussi : SQR
Exemple :
lda f200
abs aaf
sta f201
; laisse dans f201 la valeur absolue de f200
ACO
Nom : ACO – arc cosinus accumulator
Fonction : calcule la valeur de l’arc cosinus de l’accumulateur flottant
Variables : aucune
Adressage : accumulateur
Voir aussi : COS, SIN, TAN, ASI, ATA
Exemple :
lda f200
aco aaf
sta f201
; laisse dans f201 la valeur de l’arc cosinus de f200
ADA
Nom : ADA - adds accumulator
Fonction : ajoute une valeur à l’accumulateur
Variables : M ou %MW, L ou %MD, F ou %MF
Adressage : absolu, indirect, immédiat
Voir aussi : SBA
Exemple :
ada 200
; ajoute 200 à l’accumulateur 16 bits
ada f124
; ajoute le contenu de f124 à l’accumulateur flottant
ada l200
; ajoute le contenu de l200 à l’accumulateur 32 bits
ada 200L
; ajoute 200 à l’accumulateur 32 bits
ada 3.14R
; ajoute 3.14 à l’accumulateur flottant
AIN
Nom : AIN - accumulator input
Fonction : lecture d’un port d’entrée (8 bits) et stockage dans
la partie basse de l’accumulateur 16 bits ;
lecture d’un port d’entrée 16 bits et stockage dans
l’accumulateur 16 bits (dans ce cas l’adresse du port doit être
écrite sous la forme d’une constante 32 bits)
utilisable seulement avec l’exécuteur PC
Variables : M ou %MW
Adressage : indirect, immédiat
Voir aussi : AOU
Exemple :
ain $3f8
; lecture du port $3f8 (8 bits)
ain $3f8l
; lecture du port $3f8 (16 bits)
ANA
Nom : ANA - and accumulator
Fonction : effectue un ET logique entre l’accumulateur 16 bits
et un mot ou une constante ou l’accumulateur 32 bits et
un long ou une constante
Variables : M ou %MW, L ou %MD
Adressage : absolu, indirect, immédiat
Voir aussi : ORA, XRA
Exemple :
ana %1111111100000000
; masque les 8 bits de poids faible de
; l’accumulateur 16 bits
ana $ffff0000L
; masque les 16 bits de poids faibles de l’accumulateur 32
bits
AOU
Nom : AOU - accumulator output
Fonction : transfère la partie basse (8 bits) du contenu de
l’accumulateur 16 bits sur un port de sortie ;
transfère les 16 bits de l’accumulateur 16 bits
sur un port de sortie (sans ce cas l’adresse du port doit être
écrite sous la forme d’une constante 32 bits)
utilisable seulement avec l’exécuteur PC
Variables : M ou %MW
Adressage : indirect, immédiat
Voir aussi : AIN
Exemple :
lda "A"
aou $3f8
; place le caractère « A » sur le port de sortie $3f8
lda $3f8
sta m200
lda "z"
aou m(200)
; place le caractère « z » sur le port de sortie $3f8
lda $1234
aou $300l
; place la valeur 16 bits 1234 sur le port de sortie $300
A SI
Nom : ASI – arc sinus accumulator
Fonction : calcule la valeur de l’arc sinus de l’accumulateur flottant
Variables : aucune
Adressage : accumulateur
Voir aussi : COS, SIN, TAN, ACO, ATA
Exemple :
lda f200
asi aaf
sta f201
; laisse dans f201 la valeur de l’arc sinus de f200
ATA
Nom : ATA – arc tangente accumulator
Fonction : calcule la valeur de l’arc tangente de l’accumulateur flottant
Variables : aucune
Adressage : accumulateur
Voir aussi : COS, SIN, TAN, ACO, ASI
Exemple :
lda f200
ata aaf
sta f201
; laisse dans f201 la valeur de l’arc tangente de f200
ATB
Nom : ATB - accumulator to bit
Fonction : transfère les 16 bits de l’accumulateur 16 bits
vers 16 variables booléennes successives ; le
bit de poids faible correspond à la première
variable booléenne
Variables : I ou %I, O ou %Q, B ou %M, T ou %T, U *
Adressage : absolu
Voir aussi : BTA
Exemple :
lda m200
atb o0
; recopie les 16 bits de m200 dans les variables
; o0 à o15
*
Attention : pour pouvoir utiliser les bits U avec cette fonction il faut réaliser une table linéaire de
bits avec la directive de compilation #B.
ATM
Nom : ATM - accumulator to memory
Fonction : transfère l’accumulateur 16 bits à une adresse
mémoire ; le mot ou la constante spécifié
défini l’offset de l’adresse mémoire à
atteindre, le mot m0 doit être chargé avec la
valeur du segment de l’adresse mémoire à
atteindre ; utilisable seulement avec l’exécuteur PC
Variables : M ou %MW
Adressage : indirect, immédiat
Voir aussi : MTA
Exemple :
lda $b800
sta m0
lda 64258
atm $10
; place la valeur 64258 à l’adresse $b800:$0010
BTA
Nom : BTA - bit to accumulator
Fonction : transfère 16 variables booléennes successives
vers les 16 bits de l’accumulateur 16 bits ;
le bit de poids faible correspond à la première
variable booléenne
Variables : I ou %I, O ou %Q, B ou %M, T ou %T, U *
Adressage : absolu
Voir aussi : ATB
Exemple :
bta i0
sta m200
; recopie les 16 entrées i0 à i15 dans le mot m200
*
Attention : pour pouvoir utiliser les bits U avec cette fonction il faut réaliser une table linéaire de
bits avec la directive de compilation #B.
COS
Nom : COS – cosinus accumulator
Fonction : calcule la valeur du cosinus de l’accumulateur flottant
Variables : aucune
Adressage : accumulateur
Voir aussi : SIN, TAN, ACO, ASI, ATA
Exemple :
lda f200
cos aaf
sta f201
; laisse dans f201 la valeur du cosinus de f200
CPA
Nom : CPA - compares accumulator
Fonction : compare une valeur à l’accumulateur 16 bits ou 32 bits
ou flottant ; effectue la même opération que SBA
mais sans modifier le contenu de l’accumulateur
Variables : M ou %MW, L ou %MD, F ou %MF
Adressage : absolu, indirect, immédiat
Voir aussi : SBA
Exemple :
lda m200
cpa 4
rfz o0
; met o0 à 1 si m200 est égal à 4, autrement o0
; est mis à 0
lda f200
cpa f201
rfz o1
; met o1 à 1 si f200 est égal à f201, autrement o1
; est mis à 0
D EC
Nom : DEC – decrement
Fonction : décrémente un mot, un compteur, un long, l’accumulateur 16
bits ou 32 bits
Variables : M ou %MW, C ou %C, L ou %MD
Adressage : absolu, indirect, accumulateur
Voir aussi : INC
Exemple :
dec m200
; décrémente m200
dec aal
; décrémente l’accumulateur 32 bits
dec m200
dec m201 and m200=-1
; décrémente une valeur 32 bits composée de
; m200 (poids faibles)
; et m201 (poids forts)
DVA
Nom : DVA - divides accumulator
Fonction : division de l’accumulateur 16 bits par un mot ou
une constante ; division de l’accumulateur flottant
par un flottant ou une constante ; division de l’accumulateur
32 bits par un long ou une constante, pour l’accumulateur 16
bits le reste est placé dans le mot m0 ; en cas de division par
0
le bit système 56 passe à 1
Variables : M ou %MW, L ou %MD, F ou %MF
Adressage : absolu, indirect, immédiat
Voir aussi : MLA
Exemple :
lda m200
dva 10
sta m201
; m201 est égal à m200 divisé par 10, m0 contient le
; reste de la division
lda l200
dva $10000L
sta l201
EQU
Nom : EQU - equal
Fonction : force une variable à 1 si le test est vrai,
dans le cas contraire la variable est forcée
à0
Variables : I ou %I, O ou %Q, B ou %M, T ou %T, X ou %X, U
Adressage : absolu, indirect (sauf sur les variables X)
Voir aussi : NEQ, SET, RES, INV
Exemple :
equ o0 and i10
; force la sortie o0 au même état que l’entrée i10
lda 10
sta m200
equ o(200) and i0
; force o10 au même état que l’entrée i0
$t0=100
equ t0 and i0
equ o0 and t0
; force o0 à l’état de i0 avec un retard à l’activation
; de 10 secondes
FTI
Nom : FTI - float to integer
Fonction : transfère l’accumulateur flottant vers l’accumulateur
16 bits
Variables : aucune
Adressage : accumulateur
Voir aussi : ITF
Exemple :
lda f200
fti aaa
sta m1000
; laisse la partie entière de f200 dans m1000
INC
Nom : INC - increment
Fonction : incrémente un mot, un compteur, un long, l’accumulateur 16
bits ou 32 bits
Variables : M ou %MW, C ou %C, L ou %MD
Adressage : absolu, indirect, accumulateur
Voir aussi : DEC
Exemple :
inc m200
; ajoute 1 à m200
inc m200
inc m201 and m201=0
; incrémente une valeur sur 32 bits, m200
; représente les
; poids faibles, et m201 les poids forts
inc l200
; incrémente le long l200
INV
Nom : INV - inverse
Fonction : inverse l’état d’une variable booléenne, ou inverse
tous les bits d’un mot, d’un long ou de l’accumulateur 16 bits
ou 32 bits
Variables : I ou %I, O ou %Q, B ou %M, T ou %T, X ou %X, U,
M ou %MW, L ou %MD
Adressage : absolu, indirect, accumulateur
Voir aussi : EQU, NEQ, SET, RES
Exemple :
inv o0
; inverse l’état de la sortie 0
inv aaa
; inverse tous les bits de l’accumulateur 16 bits
I TF
Nom : ITF - integer to float
Fonction : transfère l’accumulateur 16 bits vers l’accumulateur flottant
Variables : aucune
Adressage : accumulateur
Voir aussi : FTI
Exemple :
lda 1000
itf aaa
sta f200
; laisse la constante 1000 dans f200
ITL
Nom : ITL - integer to long
Fonction : transfère l’accumulateur 16 bits vers l’accumulateur 32 bits
Variables : aucune
Adressage : accumulateur
Voir aussi : LTI
Exemple :
lda 1000
itl aaa
sta f200
; laisse la constante 1000 dans l200
JMP
Nom : JMP - jump
Fonction : saut à un label
Variables : label
Adressage : label
Voir aussi : JSR
Exemple :
jmp :fin de programme:
; branchement inconditionnel au label :fin
; de programme:
JSR
Nom : JSR - jump sub routine
Fonction : effectue un branchement à un sous-programme
Variables : label
Adressage : label
Voir aussi : RET
Exemple :
lda m200
jsr :carre:
sta m201
jmp :fin:
:carre:
sta m53
mla m53
sta m53
ret m53
:fin:
LDA
Nom : LDA - load accumulator
Fonction : charge dans l’accumulateur 16 bits une constante, un mot
ou un compteur ; charge dans l’accumulateur 32 bits un long
ou une constante, charge dans l’accumulateur flottant un
flottant ou une constante, charge un compteur de
temporisation dans l’accumulateur 16 bits
Variables : M ou %MW, C ou %C, L ou %MD, F ou %MF, T ou %T
Adressage : absolu, indirect, immédiat
Voir aussi : STA
Exemple :
lda 200
; charge la constante 200 dans l’accumulateur 16 bits
lda 0.01R
; charge la constante réelle 0.01 dans l’accumulateur flottant
lda t10
; charge le compteur de la temporisation 10 dans
; l’accumulateur
LTI
Nom : LTI - long to integer
Fonction : transfère l’accumulateur 32 bits vers l’accumulateur
16 bits
Variables : aucune
Adressage : accumulateur
Voir aussi : ITL
Exemple :
lda l200
lti aaa
sta m1000
; laisse les 16 bits de poids faibles de l200 dans m1000
MLA
Nom : MLA - multiples accumulator
Fonction : multiplication de l’accumulateur 16 bits par un mot ou
une constante ; multiplication de l’accumulateur 32 bits par
un long ou une constante, multiplication de l’accumulateur
flottant par un flottant ou une constante ; pour l’accumulateur
16 bits, les 16 bits de poids forts du résultat de la
multiplication sont transférés dans m0
Variables : M ou %MW, L ou %MD, F ou %MF
Adressage : absolu, indirect, immédiat
Voir aussi : DVA
Exemple :
lda m200
mla 10
sta m201
; multiplie m200 par 10, m201 est chargé avec les
; 16 bits de poids faibles, et m0 avec les 16 bits de
; poids forts
MTA
Nom : MTA - memory to accumulator
Fonction : transfère le contenu d’une adresse mémoire dans
l’accumulateur 16 bits ; le mot ou la constante spécifié
défini l’offset de l’adresse mémoire à atteindre, le mot m0
doit être chargé avec la valeur du segment de l’adresse
mémoire à atteindre ; utilisable seulement avec l’exécuteur
PC
Variables : M ou %MW
Adressage : indirect, immédiat
Voir aussi : ATM
Exemple :
lda $b800
sta m0
mta $10
; place la valeur contenue à l’adresse $b800:$0010
; dans l’accumulateur 16 bits
NEQ
Nom : NEQ - not equal
Fonction : force une variable à 0 si le test est vrai,
dans le cas contraire la variable est forcée
à1
Variables : I ou %I, O ou %Q, B ou %M, T ou %T, X ou %X, U
Adressage : absolu, indirect (sauf sur les variables X)
Voir aussi : EQU, SET, RES, INV
Exemple :
neq o0 and i00
; force la sortie o0 à l’état complémenté de l’entrée
; i10
lda 10
sta m200
neq o(200) and i0
; force o10 à l’état complémenté de l’entrée i0
$t0=100
neq t0 and i0
neq o0 and t0
; force o0 à l’état de i0 avec un retard à la
; désactivation de 10 secondes
ORA
Nom : ORA - or accumulator
Fonction : effectue un OU logique entre l’accumulateur 16 bits
et un mot ou une constante, ou entre l’accumulateur 32 bits et
un long ou une constante
Variables : M ou %M, L ou %MD
Adressage : absolu, indirect, immédiat
Voir aussi : ANA, XRA
Exemple :
ora %1111111100000000
; force les 8 bits de poids forts de
; l’accumulateur 16 bits à 1
ora $ffff0000L
; force les 16 bits de poids forts de l’accumulateur 32 bits
;à1
RES
Nom : RES - reset
Fonction : force une variable booléenne, un mot,
un compteur, un long, l’accumulateur 16 bits
ou l’accumulateur 32 bits à 0
Variables : I ou %I, O ou %Q, B ou %M, T ou %T, X ou %X, U,
M ou %MW, C ou %C, L ou %MD
Adressage : absolu, indirect (sauf sur les variables X), accumulateur
Voir aussi : NEQ, SET, EQU, INV
Exemple :
res o0
; force la sortie o0 à 0
lda 10
sta m200
res o(200) and i0
; force o10 à 0 si l’entrée i0 est à 1
res c0
; force le compteur 0 à 0
RET
Nom : RET - return
Fonction : marque le retour d’un sous-programme et
place dans l’accumulateur 16 bits un mot ou
une constante ; ou place dans l’accumulateur 32 bits un long
ou une constante, ou place dans l’accumulateur
flottant un flottant ou une constante
Variables : M ou %MW, L ou %MD, F ou %MF
Adressage : absolu, indirect, immédiat
Voir aussi : JSR
Exemple :
ret 0
; retour de sous-programme en plaçant 0 dans
; l’accumulateur 16 bits
ret f200
; retour de sous-programme en plaçant le contenu
; de f200 dans l’accumulateur flottant
RFC
Nom : RFC - read flag : carry
Fonction : transfère le contenu de l’indicateur de retenue dans
une variable booléenne
Variables : I ou %I, O ou %Q, B ou %M, T ou %T, X ou %X, U
Adressage : absolu
Voir aussi : RFZ, RFS, RFO
Exemple :
rfc o0
; transfère l’indicateur de retenue dans o0
lda m200
ada m300
sta m400
rfc b99
lda m201
ada m301
sta m401
inc m401 and b99
; effectue une addition sur 32 bits
; (m400,401)=(m200,201)+(m300,301)
; m200, m300 et m400 sont les poids faibles
; m201, m301 et m401 sont les poids forts
RFO
Nom : RFO - read flag : overflow
Fonction : transfère le contenu de l’indicateur de débordement
dans une variable booléenne
Variables : I ou %I, O ou %Q, B ou %M, T ou %T, X ou %X, U
Adressage : absolu
Voir aussi : RFZ, RFS, RFC
Exemple :
rfo o0
; transfère l’indicateur de débordement dans o0
RFS
Nom : RFS - read flag : signe
Fonction : transfère le contenu de l’indicateur de signe dans une
variable booléenne
Variables : I ou %I, O ou %Q, B ou %M, T ou %T, X ou %X, U
Adressage : absolu
Voir aussi : RFZ, RFC, RFO
Exemple :
rfs o0
; transfère l’indicateur de signe dans o0
RFZ
Nom : RFZ - read flag : zero
Fonction : transfère le contenu de l’indicateur de résultat nul
dans une variable booléenne
Variables : I ou %I, O ou %Q, B ou %M, T ou %T, X ou %X, U
Adressage : absolu
Voir aussi : RFC, RFS, RFO
Exemple :
rfz o0
; transfère l’indicateur de résultat nul dans o0
lda m200
cpa m201
rfz o0
; positionne o0 à 1 si m200 est égal à m201
; ou à 0 dans le cas contraire
RIN
Nom : RIN - read input
Fonction : effectue une lecture des entrées physiques. Cette fonction est
uniquement implémentée sur cibles Z et varie suivant la
cible. Consultez la documentation relative à chaque
éxécuteur pour plus de détails.
Variables : aucune
Adressage : immédiat
Voir aussi : WOU
R LA
Nom : RLA - rotate left accumulator
Fonction : effectue une rotation à gauche des bits de
l’accumulateur 16 bits ou 32 bits ; le bit évacué à gauche
entre à droite ; l’argument de cette fonction est une
constante qui précise le nombre de décalages à effectuer, la
taille de l’argument (16 ou 32 bits) détermine quel est
l’accumulateur qui doit subir la rotation
Variables : aucune
Adressage : immédiat
Voir aussi : RRA
Exemple :
ana $f000
; isole le digit de poids fort de l’accumulateur 16 bits
rla 4
; et le ramène à droite
rla 8L
; effectue 8 rotations à gauche des bits de l’accumulateur
; 32 bits
RRA
Nom : RRA - rotate right accumulator
Fonction : effectue une rotation à droite des bits de
l’accumulateur 16 bits ou 32 bits ; le bit évacué à droite entre
à gauche ; l’argument de cette fonction est une constante qui
précise le nombre de décalages à effectuer, la taille de
l’argument (16 ou 32 bits) détermine si c’est l’accumulateur
16 ou 32 bits qui doit subir la rotation
Variables : aucune
Adressage : immédiat
Voir aussi : RLA
Exemple :
ana $f000
; isole le digit de poids fort de l’accumulateur 16 bits
rra 12
; et le ramène à droite
rra 1L
; effectue une rotation des bits de l’accumulateur 32 bits
; d’une position vers la droite
SBA
Nom : SBA - substacts accumulator
Fonction : enlève le contenu d’un mot ou une constante à
l’accumulateur 16 bits ; enlève le contenu d’un long ou d’une
constante à l’accumulateur 32 bits, enlève le contenu d’un
flottant ou d’une constante à l’accumulateur flottant
Variables : M ou %MW, L ou %MD, F ou %MF
Adressage : absolu, indirect, immédiat
Voir aussi : ADA
Exemple :
sba 200
; enlève 200 à l’accumulateur 16 bits
sba f(421)
; enlève le contenu du flottant dont le numéro est
; contenu dans le mot 421 à l’accumulateur flottant
SET
Nom : SET - set
Fonction : force une variable booléenne à 1; force tous les bits d’un mot,
d’un compteur, d’un long, de l’accumulateur 16 bits ou de
l’accumulateur 32 bits à 1
Variables : I ou %I, O ou %Q, B ou %M, T ou %T, X ou %X, U,
M ou %MW, C ou %C, L ou %MD
Adressage : absolu, indirect (sauf sur les variables X), accumulateur
Voir aussi : NEQ, RES, EQU, INV
Exemple :
set o0
; force la sortie o0 à 1
lda 10
sta m200
set o(200) and i0
; force o10 à 1 si l’entrée i0 est à 1
set m200
; force m200 à la valeur -1
set aal
; force tous les bits de l’accumulateur 32 bits à 1
SI N
Nom : SIN – sinus accumulator
Fonction : calcule la valeur du sinus de l’accumulateur flottant
Variables : aucune
Adressage : accumulateur
Voir aussi : COS, TAN, ACO, ASI, ATA
Exemple :
lda f200
sin aaf
sta f201
; laisse dans f201 la valeur du sinus de f200
SQR
Nom : SQR - square root
Fonction : calcule la racine carrée de l’accumulateur flottant
Variables : aucune
Adressage : accumulateur
Voir aussi : ABS
Exemple :
lda 9
itf aaa
sqr aaf
fti aaa
sta m200
; laisse la valeur 3 dans m200
STA
Nom : STA - store accumulator
Fonction : stocke l’accumulateur 16 bits dans un compteur ou un mot;
stocke l’accumulateur 32 bits dans un long, stocke
l’accumulateur flottant dans un flottant, stocke
l’accumulateur 16 bits dans une consigne de temporisation
Variables : M ou %MW, C ou %C, L ou %MD, F ou %MF, T ou %T
Adressage : absolu, indirect
Voir aussi : LDA
Exemple :
sta m200
; transfère le contenu de l’accumulateur 16 bits
; dans le mot 200
sta f200
; transfère le contenu de l’accumulateur flottant
; dans le flottant 200
sta l200
; transfère l’accumulateur 32 bits dans le long l200
TAN
Nom : TAN – tangent accumulator
Fonction : calcule la valeur de la tengente de l’accumulateur flottant
Variables : aucune
Adressage : accumulateur
Voir aussi : COS, SIN, ACO, ASI, ATA
Exemple :
lda f200
tan aaf
sta f201
; laisse dans f201 la valeur de la tengente de f200
TSA
Nom : TSA - test accumulator
Fonction : effectue un ET logique entre l’accumulateur 16 bits et un mot
ou une constante ; effectue un ET logique entre
l’accumulateur 32 bits et un long ou une constante, opère de
façon similaire à l’instruction ANA, mais sans modifier le
contenu de l’accumulateur
Variables : M ou %MW, L ou %MD
Adressage : absolu, indirect, immédiat
Voir aussi : ANA
Exemple :
tsa %10
rfz b99
jmp :suite: and b99
; branchement au label :suite: si le bit 1
; de l’accumulateur 16 bits est à 0
WOU
Nom : WOU - write output
Fonction : effectue une écriture des sorties physiques. Cette fonction est
uniquement implémentée sur cibles Z (et varie suivant la
cible). Consultez la documentation relative à chaque
exécuteur pour plus de détails.
Variables : aucune
Adressage : immédiat
Voir aussi : RIN
XRA
Nom : XRA - xor accumulator
Fonction : effectue un OU EXCLUSIF entre l’accumulateur 16 bits et
un mot ou une constante, effectue un OU EXCLUSIF entre
l’accumulateur 32 bits et un long ou une constante
Variables : M ou %MW, L ou %MD
Adressage : absolu, indirect, immédiat
Voir aussi : ORA, ANA,
Exemple :
xra %1111111100000000
; inverse les 8 bits de poids fort de l’accumulateur 16 bits
xra 1L
; inverse le bit de poids faible de l’accumulateur 32 bits
Macro-instruction
Les macro-instructions sont des nouvelles instructions du langage
littéral derrière lesquelles se cache un ensemble d’instructions de
base.
Syntaxe d’appel d’une macro-instruction :
« %<nom de la macro-instruction * > {paramètres ...} »
Syntaxe de déclaration d’une macro-instruction :
#MACRO
<programme>
#ENDM
Exemple :
Réalisons la macro-instruction « carre » qui élève le premier
paramètre de la macro-instruction au carré et range le résultat dans le
deuxième paramètre.
Appel de la macro-instruction :
lda 3
sta m200
%carre m200 m201
; m201 contiendra 9 ici
Fichier « CARRE.M » :
#MACRO
lda {?0}
mla {?0}
sta {?1}
#ENDM
*
Le nom de la macro-instruction peut être un chemin d’accès complet vers le fichier « .M », il peut
contenir une désignation de lecteur et de répertoire.
Librairie
La notion de librairie permet la définition de ressources qui seront
compilées une seule fois dans une application, quel que soit le nombre
d’appels à ces ressources.
Macro-instructions prédéfinies
Des macro-instructions de conversion se trouvent dans le sous
répertoire « LIB » du répertoire où a été installé AUTOMGEN.
Les équivalents en blocs fonctionnels sont également présents.
Conversions
%ASCTOBIN <deux premiers digits> <deux derniers digits> <résultat en binaire>
Copie une table de mots source vers une table de mots destination. La
longueur est donnée en nombre de mots.
%COMP <premier mot table 1> <premier mot table 2> <nombre de mots> <résultat>
Compare deux tables de mots. Le résultat est une variable binaire qui
prend la valeur 1 si tous les éléments de la table 1 sont identiques à la
table 2.
%FILL <premier mot table> <valeur> <nombre de mots>
Exemple:
Conversion de m200 (binaire) vers m202, m203 en 4 digits (ASCII
bcd)
%bintobcd m200 m201
%bintoasc m201 m202 m203
Solution :
0 set _av1_
Solution :
0 $t0=100,40
Autre exemple :
Cahier des charges :
Faire clignoter tous les feux de la maquette.
Solution :
0 ; table contenant l'adresse de tous les feux
$_table_=123,?_s1d_,?_s1i_,?_s2a_,?_s2b_
$...=?_s3d_,?_s3i_,?_s4a_,?_s4b_
$...=?_s5i_,?_s5d_,?_s6d_,?_s6i_
$...=?_s7i_,?_s7d_,?_s8d_,?_s8i_
$...=-1
:boucle:
; la valeur -1 marque la fin de la table
jmp :fin: and m(_index_)=-1
; inverser la sortie
lda m(_index_)
sta _index2_
inv o(_index2_)
inc _index_
jmp :boucle:
:fin:
Un problème se pose, les feux clignotent très vite et l’on ne voit pas
grand chose. Modifions notre exemple.
Cahier des charges :
Il faut maintenant inverser un par un l’état des feux tous les dixièmes
de seconde.
Solution :
10 ; t a bl e co n te na n t l' a dr es se de t o us l e s fe ux
$ _t a bl e_ =1 2 3, ?_ s 1d _, ? _s 1i _, ? _s 2a _ ,? _s 2 b_
$ .. . =? _s 3d _ ,? _s 3 i_ ,? _ s4 a_ ,? _ s4 b_
$ .. . =? _s 5i _ ,? _s 5 d_ ,? _ s6 d_ ,? _ s6 i_
$ .. . =? _s 7i _ ,? _s 7 d_ ,? _ s8 d_ ,? _ s8 i_
$ .. . =- 1
$ _i n de x_ =? _ ta bl e _
: bo u cl e:
; la valeur -1 marque la fin de la table
j mp :f in d e t ab l e: a n d m( _i n de x_ ) =- 1
; i n ve rs er la s o rt ie
l da m( _i nd e x_ )
s ta _i nd ex 2 _
i nv o( _i nd e x2 _)
i nc _i nd ex _
j mp :f in :
: fi n d e ta b le :
l da ?_ ta bl e _
s ta _i nd ex _
: fi n :
=1
20
t0 /x 2 0/ 1
Le type d’affectation doit être précisé s’il est autre que « Affectation ».
Il peut être :
Ö « (/) » : affectation complémentée,
Ö « (0) » : mise à zéro,
Ö « (1) » : mise à un.
*
Ce caractère est généralement associé à la combinaison de touches [ALT] + [6] sur les claviers.
Exemples :
IF(i0)
THEN
inc m200 ; incrémenter le mot 200 si i0
ENDIF
IF(i1+i2)
THEN
m200=[m200+10] ; ajouter 10 au mot 200 si i1 ou i2
ENDIF
ELSE
res m200 ; sinon effacer m200
ENDIF
Exemples :
m200=[0]
WHILE(m200<10)
set o(200)
inc m200 ; incrémenter le mot 200
ENDWHILE
Solution :
0 _a v 1 _= ( 1 )
_d v 1 _= ( 1 ) (_ t 1 d _)
_d v 1 _= ( 0 ) (_ t 1 i _)
Solution :
0 _av1_=(1)
_dv1_=(1)(_t1d_)
_dv1_=(0)(_t1i_)
Ç dv1 $_longueur_=300 ; en mm
$_mille_=1000;
$_dixdansh_=36000;
$_dix_=10;
_temps mis_=[m32-_temps aller_]
IF(_temps mis_<0)
THEN
_temps mis_=[_temps mis_+100]
ENDIF
Le mot 32 est utilisé pour lire le temps Système. La valeur est ensuite
transférée dans des flottants pour pouvoir effectuer les calculs sans
perte de précision.
Langage littéral ST
Le langage littéral ST est le langage littéral structuré défini par la
norme CEI1131-3. Ce langage permet d’écrire des équations
booléennes et numériques ainsi que des structures de programmation.
Généralités
Le langage littéral ST s’utilise aux mêmes endroits que le langage
littéral bas niveau et le langage littéral étendu.
Exemple :
o0:=1; m200:=m200+1;
Equations booléennes
Exemples :
o0:=1;
o1:=FALSE;
Exemple :
o0:=i0+i1.i2+i3;
Exemple :
o0:=(i0+i1).(i2+i3);
Exemple :
o0:=m200>5.m200<100;
Equations numériques
Exemples :
m200:=1234;
m201:=16#aa55;
m202:=2#100000011101;
Exemples :
m200:=1000*m201;
m200:=m202-m204*m203; (* équivalent à m200:=m202-(m204*m203) *)
Exemple :
m200:=(m202-m204)*m203;
Exemples :
t0:=1000 ;
%t5:=%mw200 ;
Exemples :
m200:=t4;
%mw200:=%t8;
Structures de programmation
et
IF condition THEN action ELSE action ENDIF;
Exemple :
if i0
then o0:=TRUE;
else
o0:=FALSE;
if i1 then m200:=4; endif;
endif ;
Exemple :
while m200<1000
do
m200:=m200+1;
endwhile;
Exemple :
repeat
m200:=m200+1;
until m200=500
endrepeat;
ou
FOR variable:=valeur de départ TO valeur de fin BY pas DO action ENDFOR;
Exemple :
for m200:=0 to 100 by 2
do
m201:=m202*m201;
endfor;
Sortie de boucle
Le mot clé « EXIT » permet de sortir d’une boucle.
Exemple :
while i0
m200:=m200+1;
if m200>1000 then exit; endif;
endwhile;
Solution :
0 _ a v 1 _ : =T R U E ;
i f _ t 1 d_ t h e n _ dv 1 _ : = T R UE ; e n d i f ;
i f _ t 1 i_ t h e n _ dv 1 _ : = F A LS E ; e n d i f;
exemples\lit\littéral ST 1.agn
Organigramme
AUTOMGEN implémente une programmation de type
« organigramme ».
Pour utiliser ce type de programmation il faut utiliser les langages
littéraux Veuillez consulter les chapitres précédents pour apprendre à
utiliser ces langages.
L’intérêt de la programmation sous forme d’organigramme est la
représentation graphique d’un traitement algorithmique.
Contrairement au langage Grafcet, la programmation sous forme
d’organigramme génère un code qui sera exécuté une fois par cycle
de scrutation. Cela signifie que l’on ne peut rester en attente dans un
rectangle d’organigramme, il faut obligatoirement que l’exécution sorte
de l’organigramme pour pouvoir continuer à exécuter la suite du
programme.
C’est un point très important à ne pas oublier lorsqu’on choisit ce
langage.
Seuls des rectangles peuvent être dessinés. C’est le contenu des
rectangles et les liaisons qui en partent qui déterminent si le rectangle
est une action ou un test.
Un rectangle d’action :
Illustration
Notre premier exemple désormais classique, consistera à faire
effectuer des allers et retours à une locomotive sur la voie 1 de la
maquette.
Solution :
se t _ av 1_
if (_ t 1d _)
se t _ dv 1_ i f( _t 1 i_ )
r es _ d v1 _
exemples\organigramme\organigramme 1.agn
Deuxième exemple
Cahier des charges :
Faire clignoter tous les feux de la maquette. Les feux changeront
d’état toutes les secondes.
Solution :
$t0=10
t0=( t0)
_index%m_=[?_s1d_]
inc _index%m_
_calcul%m_=[?_s8i_+1]
IF(_index%m_=_calcul%m_)
exemples\organigramme\organigramme 2.agn
Blocs fonctionnels
AUTOMGEN implémente la notion de blocs fonctionnels.
Cette méthode de programmation modulaire permet d’associer à un
élément graphique un ensemble d’instructions écrites en langage
littéral.
Les blocs fonctionnels sont définissables par le programmeur. Leur
nombre n’est pas limité. Il est ainsi possible de constituer des
ensembles de blocs fonctionnels permettant une conception modulaire
et standardisée des applications.
Les blocs fonctionnels s’utilisent à l’intérieur de schémas de types
logigramme ou ladder, ils possèdent de une à n entrées booléennes et
de une à n sorties booléennes. Si le bloc doit traiter des variables
autres que booléennes, alors celles-ci seront mentionnées dans le
dessin du bloc fonctionnel. L’intérieur du bloc peut recevoir des
paramètres : constantes ou variables.
Entrées Sorties
booléennes du Paramètres du booléennes du
bloc (maximum bloc (maximum bloc (maximum
16) 16) 16)
Dessin manuel
Pour dessiner un bloc fonctionnel il faut effectuer les opérations
suivantes :
Ö utiliser l’assistant (conseillé)
Ou :
Ö dessiner une boîte de code (utilisez la commande « Plus …/Boîte de code » du
menu contextuel) :
Ö poser un bloc (touche [9]) sur le coin supérieur droit de la boîte de code :
Ö effacer la ligne qui reste en haut du bloc (la touche [A] permet de poser des
blocs blancs) :
Ö cliquer avec le bouton gauche de la souris sur le coin supérieur gauche du bloc
fonctionnel, entrer alors le nom du bloc fonctionnel qui ne doit pas dépasser 8
caractères (les fichiers « .ZON » et « .LIB » devront porter ce nom), presser
ensuite [ENTER].
ou
Illustration
Reprenons un exemple désormais classique.
Cahier des charges :
Aller et retour d’une locomotive sur la voie 1 de la maquette.
Solution :
A LL E R R E T
t1d c a pt e u r d r o it a l i m en t a t i o n AV 1
t1i c a pt e u r g a u ch e d ir e c t i o n DV 1
B F a l l e r / r e to u r
exemples\bf\bloc-fonctionnel 1.agn
{O1}=(1)({I0})
{O1}=(0)({I1})
Solution :
A LL E R R E T
t1d c a pt e u r d r o it a l i m en t a t i o n AV 1
t1i c a pt e u r g a u ch e d ir e c t i o n DV 1
B F a l l e r / r e to u r
A LL E R R E T
t3d c a pt e u r d r o it a l i m en t a t i o n AV 3
t3i c a pt e u r g a u ch e d ir e c t i o n N DV3
B F a l l e r / r e to u r
exemples\bf\bloc-fonctionnel 2.agn
Solution :
Complément de syntaxe
Une syntaxe complémentaire permet d’effectuer un calcul sur les
numéros de variables référencées dans le fichier « .LIB ».
La syntaxe « ~+n » ajoutée à la suite d’une référence à une variable
ou un paramètre, ajoute n.
La syntaxe « ~-n » ajoutée à la suite d’une référence à une variable ou
un paramètre, soustrait n.
La syntaxe « ~*n » ajoutée à la suite d’une référence à une variable ou
un paramètre, multiplie par n.
On peut écrire plusieurs de ces commandes à la suite, elles sont
évaluées de la gauche vers la droite.
Ce mécanisme est utile lorsqu’un paramètre du bloc fonctionnel doit
permettre de faire référence à une table de variables.
Exemples :
{?0}~+1
fait référence au troisième paramètre multiplié par 100 plus 200, par
exemple si le troisième paramètre est 1 cette syntaxe fait référence à
M 1*100 + 200 donc M300.
Syntaxe
Pour référencer une variable externe d’un bloc fonctionnel il faut
utiliser un mnémonique incluant le texte suivant : {In} pour référencer
l’entrée booléenne n, {On} pour référencer la sortie booléenne n, {?n}
pour référencer le paramètre n. Le mnémonique doit commencer par
une lettre.
Exemple
10
20 OUVRIR{O0} 30 FE R M E R { O 1 }
ouvert{i2} f er m e { i 3 }
40
VE R I N B . G R7
u100 C DE O O O0
u101 C DE F F O1
i1 O
i0 F
D ur é e
{ 10 s }
T em p o r i s a ti o n
{ T0 }
V ER I N B I S TA B L E
exemples\bf\bloc-fonctionnel 3.agn
Blocs de conversion
ASCTOBIN : conversion ASCII vers binaire
BCDTOBIN : conversion BCD vers binaire
BCD2BIN2 : (idem mais compatible avec les APIS n’intégrant pas la
notion de sous-programmes)
BINTOASC : conversion binaire vers ASCII
BINTOBCD : conversion binaire vers BCD
BIN2BCD2 : (idem mais compatible avec les APIS n’intégrant pas la
notion de sous-programmes)
GRAYTOB : conversion code gray vers binaire
GRAYTOB2 : (idem mais compatible avec les APIS n’intégrant pas la
notion de sous-programmes)
16BINTOM : transfert de 16 variables booléennes dans un mot
MTO16 BIN : transfert d’un mot vers 16 variables booléennes
Blocs de temporisation
TEMPO : temporisation à la montée
PULSOR : sortie à créneau
PULSE : impulsion temporisée
Techniques avancées
0 AV1
t1d
1 AV1 , DV1
t1i
*
Cet utilitaire doit être exécuté à partir de la ligne de commande DOS.
Exemple :
Si un folio contient les deux directives :
#C(m200=4)
#R
Alors tout ce qu’il contient ne sera exécuté que si le mot 200 contient
4.
Exemples
Grafcet simple
Ce premier exemple est un Grafcet simple en ligne :
100
i0
110 T0(100)
t0
120 O0,O1,O2
i0
exemples\grafcet\sample1.agn
Ö la transition entre l’étape 100 et l’étape 110 est constituée du test sur
l’entrée 0,
100 O0
i0 i1 i2 i3
11 0 O1 120 O2 13 0 O3 1 40 O4
i4 i5 i6 i7
11 1 O5 13 1 O6
i8 i9
11 2 O7
i10
exemples\grafcet\sample2.agn
100
i0
i1 i2
i2 i4
i7
exemples\grafcet\sample3.agn
Ö la transition entre l’étape 160 et 170 est laissée blanche, elle est donc
toujours vraie, la syntaxe « =1 » aurait pu aussi être utilisée.
Grafcet et synchronisation
0 100
i0 Çx 1 i10 i14
1 110 O0 O4
Èx 1 1 0 i1 i11
O1
i12
O2
i13
O3
exemples\grafcet\sample4.agn
Cet exemple illustre une des possibilités offertes par AUTOMGEN pour
synchroniser plusieurs Grafcets. La transition entre l’étape 100 et 110
« Ïx1 » signifie « attendre un front montant sur l’étape 1 ». La transition
« Ðx110 » signifie « attendre un front descendant sur l’étape 110 ».
L’exécution pas à pas de ce programme montre l’évolution exacte des
variables et de leur front à chaque cycle. Ceci permet de comprendre
exactement ce qu’il se passe lors de l’exécution. Notons également
l’utilisation d’actions multiples associées à l’étape 110, qui sont ici
conditionnées individuellement.
Forçage d’étapes
10 RC0
i0 100
20 SX100 Çi 4
110 +C0
30 i1
x120 120
exemples\grafcet\sample5.agn
Dans cet exemple, un ordre « S » (mise à un) a été utilisé pour forcer
une étape. AUTOMGEN autorise également le forçage d’un Grafcet
entier (voir exemples 8 et 9) Le mode d’exécution pas à pas permet,
pour cet exemple aussi, de comprendre de façon précise l’évolution du
programme dans le temps. Notons également :
Ö l’utilisation d’un Grafcet non rebouclé (100, 110, 120),
Ö l’utilisation de l’ordre « RC0 » (mise à zéro du compteur 0),
Ö l’utilisation de l’ordre « +C0 » (incrémenter le compteur 0), conditionné par le
front montant de l’entrée 4, pour exécuter l’incrémentation du compteur, il
faut donc que l’étape 110 soit active et qu’un front montant soit détecté sur
l’entrée 4.
Çi 0 .i 1
10 0 O0
Çi 0
11 0 O1
Çi 0
12 0 O2
Çi 0
13 0 O3
Çi 0
exemples\grafcet\sample6.agn
Nous avons déjà rencontré des formes similaires, dont la première étape
était activée par un autre Grafcet. Ici l’activation de l’étape 100 est
réalisée par la transition « Ïi0 . i1 » (front montant de l’entrée 0 et
l’entrée 1). Cet exemple représente un registre à décalage. « i1 » est
l’information à mémoriser dans le registre et « i0 » est l’horloge qui fait
progresser le décalage. L’exemple 7 est une variante qui utilise une
temporisation comme horloge.
Çt 0 . i 1
100 O0
Çt 0
110 O1
Çt 0
120 O2
Çt 0 t0
Çt 0
exemples\grafcet\sample7.agn
Forçage de Grafcets
2 F100:{100}
exemples\grafcet\sample8.agn
Mémorisation de Grafcets
# B 20 0
0 1 00 V O Y AN T I NI T
a r r e t u r g en c e Ç b p de p a r t d e cy c l e
1 G 1 0 0 :1 0 0 1 10 M O T EU R
bp f in d e c y c l e
2 F 1 0 0 :( )
a r r et u r ge n c e
3 F 1 0 0 :1 0 0
exemples\grafcet\sample9.agn
Grafcet et macro-étapes
0 O0
i0
i1
2 O1
i2
i3
10 SO10
i10
20 RO10
exemples\grafcet\sample11.agn
5 B : =1
%i0
Ç%i0
[%c0 = %c1]
0 1
%i4 %i3
b : =0 b : =1
0 G10{} 10
%i0 %i10
%i1 %i11
2 G10{20}
%i2
3 G10{*}
%i3
i0
x1/x10
i1
0 o0
i10
10 o1
i11
20 o2
i12
Folios chaînés
0 O0
i0
1 O1
i1
2 O2
i2
3 SUITE
continue
4 O3
suite
5 O4
i3
6 O5
i4
7 CONTINUE
exemples\grafcet\sample12.agn
Dans cet exemple, deux folios ont été utilisés pour écrire le programme.
Les symboles « _SUITE_ » et « _CONTINUE_ » ont été déclarés
comme bits (voir le fichier des symboles) et permettent de faire le lien
entre les deux Grafcets (c’est une autre technique de synchronisation
utilisable avec AUTOMGEN).
Logigramme
i0 O O0
i1
i2 & O
i3
i4
i5
i6 &
i7
i8
i9
i10
exemples\logigramme\sample14.agn
Grafcet et Logigramme
Ç bp depart de cycle
fin de cycle
bp manuel MOTEUR
étape 1 &
sécurité 1 O
sécutité 2 O
exemples\logigramme\exempl15.agn
Dans cet exemple un Grafcet et un Logigramme sont utilisés
conjointement. Le symbole « _étape 1_ » utilisé dans le logigramme est
associé à la variable « x1 ».
Ce type de programmation laisse apparaître clairement les conditions
d’activation d’une sortie.
0 SO0
1
m200=[0] ; m200 est utilisé comme index
IF(i(200))
THEN
set _flag une entrée est à un_
ENDIF
inc m200
ENDWHILE
2 RO0
exemples\lit\sample16.agn
Organigramme
IF(_bp validation_)
exemples\organigramme\sample18.agn
Organigramme
m200=[10]
o(200)=(1)
m 2 0 0 = [ m 2 0 0+ 1 ]
I F ( m 2 0 0 = 3 0)
; F i n d e la
; boucle
exemples\organigramme\sample19.agn
Bloc fonctionnel
i16 RO0
COMPTAGE
i0 R.A.Z.
i1 COMPTAGE
VAL. INIT
{100}
BORNE MAX
{110}
VARIABLE
{m200}
exemples\bf\sample20.agn
IF(#{I1})
THEN
{?2}=[{?2}+1]
ENDIF
IF({?2}={?1})
THEN
{O0}=(1)
{?2}=[{?0}]
ENDIF
ELSE
{O0}=(0)
ENDIF
Bloc fonctionnel
O U_ E X C L U O U_ E X C L U
i0
=1 =1
i1
O U_ E X C L U
i2
=1
i3
O U_ E X C L U O U_ E X C L U
i4 O0
=1 =1
i5
exemples\bf\sample21.agn
; Ou exclusif
neq {o0} orr /{i0} eor {i1} orr {i0} eor /{i1}
u101 CDE F F O1
i1 O
i0 F
Durée
{10s}
Temporisation
{T0}
VERIN BISTABLE
BF vérin bistable
10
ouvert{i2} ferme{i3}
40
Ladder
i0 i7 O0
i1 i8
i2 i9
i3 i10 O1
i4 i11 O2
i5 i12 O3
i6 i13 O4
exemples\laddersample22.agn
Distribution
Ce symbole évoquera dans ce qui suit une partie commande (un automate
programmable par exemple.
un bouton poussoir
et cela un interrupteur ?
Une étape
0
Une transition
i0
1 O0
Un rectangle
Une autre étape d’action
/i0
Le Grafcet est basé sur la notion d’état. Pour notre problème nous
pouvons dire qu’il y a deux états : l’état allumé et l’état éteint. Chaque
étape représente un état : ici l’étape 0 représente l'état éteint et l’étape
1 l’état allumé. Reste à déterminer la condition qui fait évoluer de l’état
éteint à l’état allumé : ici l’interrupteur fermé (noté i0) puis la condition
qui fait passer de l’état allumé à l’état éteint : ici l’interrupteur ouvert
(noté / i0). Les conditions sont écrites à droite de l’élément noté
transition. Le rectangle associé à l’étape 1 nommé rectangle d’action
contient le nom de la sortie O0 (sortie où est câblée notre ampoule).
A vous de jouer …
Solution 1 : la simplicité
Solution 2 : amélioration
Un problème posé par cette solution est que si l’on appuie sur un
bouton poussoir pendant que l’ampoule est allumée, alors on ne
réarme pas la temporisation. Ainsi Dr R. croyant avoir réarmé la
minuterie s’est retrouvé dans le noir la semaine dernière.
↑(i0+i1)
1 O0
t0/x1/120s ↑(i0+i1)
=1
i0 O & O0
i1
O &
bta i0
while (m201>0)
m204=[m202&m203]
if(m204>0)
then
inc m200
endif
dec m201
m202=[m202<1]
endwhile
o0=(m200#0)
1 IO0
=1
i0 M200#0
i1./i0 M200#1
i2./i0./i1 M200#2
i3./i0./i1./i2 M200#3
0 {M201=[M200]}
m200<>0
10
m200=0 t0/x10/1s.m200<>0
Relâché rapidement Toujours enfoncé au bout d'une seconde
40 RM210,RM211
Inverser l'état de l'ampoule associée RAZ compteur nombre d'appuis longs et nombre d'appuis courts
=1
50 {M201=[M200]}
m200=0.t2/x50/1s m200<>0
60
Suivant le nombre de pressions ...
m210=1.m211=0
IO1 =1 =1
m210=3.m211=0 90
IO2 m200=0
Attendre que le bp soit relâché
m210=4.m211=0
IO3
m210=1.m211=1
RO0,RO1,RO2,RO3
m210=2.m211=1
SO0,SO1,SO2,SO3
=1
Les solutions …
« qui de l’interrupteur ou de l’ampoule était le premier … »
↑i0 ↑i1
10 O0,O1 50 O0,O1
t0/x10/30s t2/x50/30s
30 O1 70 O0
t1/x30/30s t3/x70/30s
↑i0 ↑i1
10 O0,O1 50 O0,O1
20 30 O1 70 O0 60
=1 =1
40 80
=1 =1
0
x30 F0:{10}
x50
10 O0,O1 50 O0,O1
↑i1 x50 RT2
30 O1 70 O0 x30
m200<>m201 o0 o1 o2 o3
=1 o4 o5 o6 o7 o8
o9
RO0,RO1,RO2,RO3,RO4,RO5,RO6,RO7,RO8,RO9
Introduction
AUTOMSIM est un module de simulation pneumatique / électrique /
hydraulique.
Programmation
partie commande
Simulation
Simulation partie électrique &
opérative 2D & pneumatique &
3D hydraulique
Installation
Pour installer AUTOMSIM, installez AUTOMGEN8. Dans les options,
vérifiez que « AUTOMSIM » est validé.
Prise en main
Réalisons un simple exemple : un vérin + un distributeur.
Clic droit de la souris sur le folio AUTOMSIM (partie droite) puis choisir
« Ajouter un objet »
Utilisation d’AUTOMSIM
Utiliser la palette
Les objets sont exportés vers des fichiers portant l’extension .ASO.
Fonctionnalités avancées
Les fins de courses mini et maxi d’un vérin peuvent être configurés
dans les propriétés du vérin. Exemple :
Par exemple :
Le cercle gris associé aux objets capteur doit coïncider avec le point
gris se trouvant sur le piston ou la tige du vérin pour que le capteur
soit activé.
Exemple :
L’objet apparaît sous la forme d’un carré gris tant qu’il n’a pas été
paramétré :
Dessins
Primitive de tracé
Ces primitives réalisent un tracé.
MOVE
Paramètres :
- position horizontale,
- position verticale.
LINE
Paramètres :
- position horizontale,
- position verticale.
RECT
Trace un rectangle.
Paramètres :
- position horizontale coin supérieur gauche,
- position verticale coin supérieur gauche,
- position horizontale coin inférieur droit,
- position verticale coin inférieur droit.
ELLI
Paramètres :
- position horizontale coin supérieur gauche du rectangle
englobant l’ellipse,
- position verticale coin supérieur gauche du rectangle englobant
l’ellipse,
- position horizontale coin inférieur droit du rectangle englobant
l’ellipse,
- position verticale coin inférieur droit du rectangle englobant
l’ellipse.
RREC
Paramètres :
- position horizontale coin supérieur gauche,
- position verticale coin supérieur gauche,
- position horizontale coin inférieur droit,
- position verticale coin inférieur droit,
- rayon arrondi horizontal,
- rayon arrondi vertical.
TRIA
Trace un triangle.
Paramètres :
- position horizontale point 1,
- position verticale point 1,
- position horizontale point 2,
- position verticale point 2,
- position horizontale point 3,
- position verticale point 3.
CHOR
Paramètres :
- position horizontale coin supérieur gauche du rectangle
englobant l’ellipse,
- position verticale coin supérieur gauche du rectangle englobant
l’ellipse,
ARCE
Trace un arc d’ellipse (partie d’une ellipse coupée par une ligne
droite).
Paramètres :
- position horizontale coin supérieur gauche du rectangle
englobant l’ellipse,
- position verticale coin supérieur gauche du rectangle englobant
l’ellipse,
- position horizontale coin inférieur droit du rectangle englobant
l’ellipse,
- position verticale coin inférieur droit du rectangle englobant
l’ellipse,
- position horizontale du départ de la ligne,
- position verticale du départ de la ligne,
- position horizontale de la fin de la ligne,
- position verticale de la fin de la ligne.
TEXT
Trace un texte.
Paramètres :
- position horizontale,
- position verticale,
- texte.
Primitives d’attribut
Ces primitives modifient le tracé des primitives de tracé (la couleur des
lignes ou du remplissage par exemple).
BRUS
Paramètre :
- couleur.
PENC
Paramètre :
- couleur.
FONT
Autres primitives
JUMP
Paramètre :
- label.
JPIF
Paramètres :
- label,
- élément 1,
- type de comparaison,
- élément 2.
DISP
Affiche l’état d’une variable. Peut être utilisé pour la mise au point d’un
objet en affichant la valeur d’une variable associée à l’objet.
Paramètres :
- variable,
- position horizontale,
- position verticale.
Programme
MOVV
Paramètres :
- variable de destination,
- variable ou constante source.
ADDV
Paramètres :
- variable de destination,
- variable ou constante source 1,
- variable ou constante source 2.
SUBV
Paramètres :
- variable de destination,
- variable ou constante source 1,
- variable ou constante source 2.
MULV
Paramètres :
- variable de destination,
- variable ou constante source 1,
- variable ou constante source 2.
DIVV
Paramètres :
- variable de destination,
- variable ou constante source 1,
- variable ou constante source 2.
ORRV
Paramètres :
- variable de destination,
- variable ou constante source 1,
- variable ou constante source 2.
ANDV
Paramètres :
- variable de destination,
- variable ou constante source 1,
- variable ou constante source 2.
XORV
Paramètres :
- variable de destination,
- variable ou constante source 1,
- variable ou constante source 2.
JUMP
Paramètre :
- label.
JPIF
Paramètres :
- label,
- élément 1,
- type de comparaison,
- élément 2.
Connexions
Permet de créer les points de connexion de l’objet. En cliquant sur
« Insérer », la boîte de dialogue suivante s’ouvre :
Exemple
Le sous répertoire « Exemples\automsim » du répertoire d’installation
d’AUTOMGEN contient un exemple illustrant l’utilisation de l’objet
définissable par l’utilisateur : un contact :
Généralités
Les post-processeurs sont des modules logiciels permettant de traduire
les fichiers de code pivot générés par le compilateur AUTOMGEN en
fichiers exécutables sur une cible ainsi que d’assurer la connexion
dynamique à la cible.
Configuration
Nous vous invitons à apporter la plus grande attention aux explications
de ce chapitre.
Système
Contient la configuration matérielle de la cible, la configuration logicielle,
des options permettant de modifier la façon dont le post-processeur
génère le code ainsi que des déclarations de variables réservées (pour
l’usage interne du post-processeur). Généralement, vous serez amenés,
suivant la cible, à modifier la configuration matérielle contenue dans cet
élément (par exemple un type d’UC ou une configuration de type de
cartes d’entrées / sorties).
Correspondances de variables
La maîtrise de la correspondance des variables est un des éléments
essentiels à la maîtrise de l’utilisation des post-processeurs.
Système
Cet élément de configuration est très spécifique à chaque post-
processeur.
Configuration matérielle
Cette zone (optionnelle) doit être modifiée pour déterminer la
configuration matérielle d’une cible (type de CPU, cartes d’entrées /
sorties par exemple).
Configuration logicielle
Cette zone (optionnelle) doit être modifiée pour déterminer des
caractéristiques propres à la configuration de l’application (la valeur du
chien de garde par exemple).
Déclarations de variables
Ce sont des déclarations de variables utilisées en interne par le post-
processeur. Seuls des spécialistes peuvent avoir à modifier cet élément.
Autres éléments
D’autres éléments spécifiques à chaque post-processeur peuvent
exister.
Correspondances de variables
La maîtrise de la correspondance des variables est un des éléments
essentiel à la maîtrise de l’utilisation des post-processeurs.
Par exemple, si vous avez utilisé le mot 200 d’AUTOMGEN dans votre
application (il s’appelle M200 ou %MW200 dans AUTOMGEN) ce mot
doit avoir une existence dans la mémoire de la cible et donc être repéré
par un nom propre à cette cible.
- affectation unitaire,
- affectation linéaire,
- affectation automatique.
L’affectation unitaire
Elle permet d’associer une variable AUTOMGEN à une variable de la
cible. Elle est la plus simple des déclarations.
Elle doit être utilisée uniquement si une seule déclaration est nécessaire.
L’affectation linéaire
C’est une forme plus évoluée de l’affectation unitaire.
L’affectation automatique
C’est le type de déclaration le plus complexe et le plus puissant. Il
permet d’associer un ou plusieurs types de variables AUTOMGEN à une
plage de variables de la cible.
Remarques : ces deux états n’ont de validité que pour la tâche principale
de l’application. Seul l’état immédiat a un sens pour les tâches
asynchrones.
1- pour une entrée tout ou rien, si aucun test de front n’est utilisé, seul
l’état passé (« bi ») est utilisé (économie d’une variable
booléenne),
2- pour une sortie tout ou rien, si aucun test de front n’est utilisé seul
l’état immédiat (« o ») est utilisé.
Affectation unitaire
Affectation linéaire
Affectation automatique
Associer une table de bits d’AUTOMGEN à une table de bits d’une cible
Deux affectations linéaires sont nécessaires. Par exemple :
Cet exemple (les états immédiats et les états passés sont associés aux
mêmes variables de la cible) interdit l’utilisation de tests de front sur les
bits AUTOMGEN u100 à u109.
La syntaxe à utiliser dans ces sections est proche des langages de bas
niveau utilisables sur chaque cibles. L’observation du code généré en
passe 1 par chaque post-processeur vous permet de visualiser la
syntaxe à utiliser.
Ces deux directives doivent se trouver en début d’une ligne, aucun autre
caractère ne doit se trouver sur la même ligne.
Les lignes se trouvant entre ces deux directives définissent une zone
nommée « Section de langage constructeur ».
Post-processeur PL7
Ce post-processeur permet de programmer les automates MODICON
TELEMECANIQUE SCHNEIDER TSX 37, (TSX MICRO) et TSX 57 (TSX
PREMIUM).
Module de communication
Pour les automates TSX 37-05 et TSX 37-08 en version de base (avec
une seule carte d’entrées / sorties), des fichiers 3705.stx et 3708.stx sont
fournis en standard dans le répertoire d’installation d’AUTOMGEN.
Importation manuelle
Procédure :
Importation automatique
L’outil logiciel SCHNEIDER sera lancé automatiquement. Seul un
nombre restreint de versions des logiciels SCHNEIDER sont utilisables.
Le type et la version du logiciel SCHNEIDER doivent être réglé dans la
configuration logicielle.
Exemples spécifiques
Ces exemples se trouvent dans le répertoire « <répertoire d’installation
d’AUTOMGEN> /Exemples/Post-processeurs/PL7 ». Les fichiers portent
le même nom que le titre des chapitres qui suivent.
ASI
Exemple d’utilisation d’entrées / sorties ASI
MAGELIS
Exemple d’utilisation d’un terminal MAGELIS
Post-processeur PL72
Ce post-processeur permet la programmation des automates
TELEMECANIQUE SCHNEIDER TSX 17-20 (avec cartouche PL72),
TSX 27, TSX 47 et TSX 47-20.
Bloc temporisation
x.Tn=y
Equivalent PL72 :
Tn
x E D y
C
Bloc texte
a+b+c+d.TXTn=x:y
Equivalent PL72 :
a R TXT D x
b S E y
c O
d I
a+b+c+d.FC=x:y:z
Equivalent PL72 :
a R FC E x
b P D y
c V F z
d C
Equivalent PL72 :
a HO < x
= y
> z
Module de communication
Exemples spécifiques
Ces exemples se trouvent dans le répertoire « <répertoire d’installation
d’AUTOMGEN> / Exemples/ Post-processeurs / PL72 ». Les fichiers
portent le même nom que le titre des chapitres qui suivent.
Exemple :
Compteur rapide
Le but est de dialoguer avec un XBT connecté sur le port console d’un
automate TSX 17-20.
Le bloc texte TXT1 sera utilisé pour dialoguer sur le port console.
Conversion
Montre comment appeler les fonctions de conversion du langage PL72.
Horodateur
Exemple d’utilisation du bloc fonctionnel horodateur.
Post-processeur S7200
Ce post-processeur permet de programmer les automates SIEMENS
S7200 (toutes les CPU 2xx).
Module de communication
Exemple spécifique
Cet exemple se trouve dans le répertoire « <répertoire d’installation
d’AUTOMGEN> / Exemples / Post-processeurs / S7200 ». Le fichier
porte le même nom que le titre du chapitre qui suit.
Tâche d’interruption
Exemple d’appel d’une tâche d’interruption.
Post-processeur ABB
Ce post-processeur permet de programmer les automates ABB CS31 et
AC31.
Automate AC31
Automate CS31
Module de communication
Utilitaire
L’élément « Configuration / Post-processeur / ABB / Terminal emulator »
du navigateur permet d’accéder à un émulateur de terminal utilisable
pour dialoguer avec l’automate.
Exemples spécifiques
Ces exemples se trouvent dans le répertoire « <répertoire d’installation
d’AUTOMGEN> / Exemples / Post-processeurs / ABB ». Les fichiers
portent le même nom que les titres des chapitres qui suivent.
Interruptions
Exemple illustrant l’utilisation des tâches d’interruptions sur un automate
AC31.
Choisir standard pour les CPUs autres que 350, 351 ou VERSAMAX.
Module de communication
Utilitaire
L’élément « Configuration / Post-processeur / GE-FANUC / Hardware
configuration & diagnostic » du navigateur permet d’accéder à un
utilitaire de configuration et de diagnostique.
Post-processeur STEP5
Module de communication
Structure de l’application
Le langage STEP5 de SIEMENS est organisé en blocs de programmes
et de données. Les applications AUTOMGEN traduites par le post-
processeur STEP5 sont découpées en plusieurs blocs. Par défaut, le
post-processeur utilise les blocs suivants :
- OB1 bloc d’organisation : ce bloc appelle tous les blocs qui doivent
être traités de façon cyclique.
- OB20, OB21, OB22 : blocs exécutés au démarrage de l’automate. Ces
blocs arment un bit pour activer les étapes initiales de Grafcet.
Si un volume de code trop important est généré pour un bloc (code issu
d’un folio contenant un programme volumineux par exemple), alors le
post-processeur utilise automatiquement un nouveau bloc.
Par défaut, le post-processeur utilise selon ses besoins les blocs PB1 à
PB255 et FB1 à FB239.
Ces valeurs peuvent être modifiées (voir chapitre Choix des blocs de
programmes à utiliser).
AUTOMGEN8 461 ©opyright 1988-2007 IRAI
Post-processeurs
Code Bloc FB ou FX
constructeur de
démarrage
Prédispositions Bloc PB
Bloc OB1
Folios de n blocs FB ou
l’application FX
Code Bloc FB ou FX
constructeur de
fin
Par défaut le bloc DB 3 est utilisé pour les variables numériques. Cette
directive permet d’utiliser un autre bloc.
Le code généré par ce folio doit tenir compte du type du bloc et des
instructions utilisables dans ce type de bloc (jeu d’instructions limité dans
les blocs OB et PB).
Syntaxes spécifiques
Définition de blocs
La directive « $BLOC <type de bloc> <numéro>» permet de définir le
début d’un bloc de programme ou de données.
Le numéro du bloc est une valeur comprise entre 0 et 255. Les blocs
« FX » et « DX » ne peuvent être utilisés que sur les automates 135U et
155U. La directive « BE » marque la fin d’un bloc.
Exemple :
$BLOC DB1
...
$BE
$BLOC OB1
...
$BE
Exemple :
$BLOC DB 4
KH= 1234
KY=100,5
KC= ‘Ceci est un texte’
KM=11111111 00000000
KF=-200
$BE
Blocs FB et FX
Les blocs FB et FX du langage SIEMENS peuvent recevoir des
paramètres.
Appel
Ecriture
Post-processeur TSX 07
Ce post-processeur permet de programmer les automates MODICON
TELEMECANIQUE SCHNEIDER TSX 07.
Module de communication
Post-processeur PS3-PS4
Ce post-processeur permet de programmer les automates KLOCKNER-
MOELLER PS3 et PS4-100.
Module de communication
Post-processeur PS4
Ce post-processeur permet de programmer les automates MOELLER
PS4-200, PS4-300 et PS416. Le logiciel SUCOSOFT S40 V5 ou
supérieure de MOELLER doit être utilisé (la version de démonstration de
ce logiciel peut être utilisée).
Module de communication
- répondez « Oui » à :
- puis « OK » à :
Post-processeur RPX
Ce post-processeur permet de programmer les automates CROUZET
RPX.
Module de communication
Utilitaire
L’élément « Configuration / Post-processeur / RPX / Terminal
emulator » du navigateur permet d’accéder à un émulateur de terminal
utilisable pour configurer les coupleurs de communication de l’automate.
Post-processeur PL71
Ce post-processeur permet de programmer les automates SCHNEIDER
TSX 17-10 et TSX 17-20 (sans cartouche PL72).
Module de communication
Exemples spécifiques
Ces exemples se trouvent dans le répertoire « <répertoire d’installation
d’AUTOMGEN> / Exemples / Post-processeurs / PL71 ». Les fichiers
portent le même nom que le titre des chapitres qui suivent.
Comptage
Les incrémentations et décrémentations de compteurs en PL71 étant
limitées (sur front montant uniquement) par rapport aux possibilités
d’AUTOMGEN et des automates TSX il est nécessaire d’utiliser du code
en langage constructeur si l’on veut les utiliser (voir le contenu de
l’exemple)
Compteur rapide
Le but est de compter 200 impulsions sur le compteur rapide. La sortie
O5 sera activée par la tâche rapide en fin de comptage.
Post-processeur PB
Ce post-processeur permet de programmer les automates SCHNEIDER
APRIL PB.
Module de communication
Syntaxes spécifiques
La directive « $ORG=xxxx » permet de définir le début de l’adresse
d’assemblage, au départ l’adresse d’assemblage est fixée à 0C30,
Exemple :
$ORG=1C30
Par exemple :
apl #1234 ; place la constante 1234 (hexadécimal) dans l’accumulateur.
Post-processeur SMC
Ce post-processeur permet de programmer les automates SCHNEIDER
APRIL SMC.
Module de communication
Syntaxes spécifiques
La directive « $SEQ » marque le début d’une zone booléenne.
Post-processeur S7300
Ce post-processeur permet de programmer les automates SIEMENS
S7300.
Module de communication
Syntaxes spécifiques
Exemple :
$BLOC DB1
...
$ENDBLOC
$BLOC OB1
...
$ENDBLOC
ou
Exemple :
$BLOC FC1
$VAR-IN entree1 :BOOL :=FALSE ;
$VAR-IN entree2 :BOOL :=FALSE ;
$VAR-OUT sortie :BOOL ;
u_entree1_
u_entree2_
=_sortie_
$ENDBLOC
$BLOC OB1
CALL FC1(_entree1_ :=e0.0,_entree2_ :=e0.1,_sortie_ :=a0.0)
$ENDBLOC
2- Compilez l’application,
3- Dans AUTOMGEN, ouvrez l’élément « Code généré / Post-
processeur S7300 / Passe 2 », sélectionnez l’ensemble des lignes
puis la commande « Copier » dans le menu « Edition ».
AUTOMGEN8 483 ©opyright 1988-2007 IRAI
Post-processeurs
- OB1 bloc d’organisation : ce bloc appelle tous les blocs qui doivent
être traités de façon cyclique,
- OB100 : blocs exécutés au démarrage de l’automate. Ce bloc arme un
bit pour activer les étapes initiales de Grafcet.
Par défaut, le post-processeur utilise selon ses besoins les blocs FB1 à
FB255 et FC1 à FC239.
Fichier de Bloc FC
démarrage .SRT
Prédispositions Bloc FB
Bloc OB1
Folios de n blocs FC
l’application
Le code généré par ce folio doit tenir compte du type du bloc et des
instructions utilisables dans ce type de bloc (jeu d’instructions limité dans
les blocs OB et PB).
Exemples spécifiques
Ces exemples se trouvent dans le répertoire « <répertoire d’installation
d’AUTOMGEN> / Exemples / Post-processeurs / S7300 ». Les fichiers
portent le même nom que les titres des chapitres qui suivent.
Post-processeur OMRON
Ce post-processeur permet de programmer les automates OMRON série
C, CS et CV. La génération directe des fichiers binaires et le transfert
des applications dans l’automate sont supportés pour les automates
série C. Pour les automates séries CS et CV, le logiciel CX-
PROGRAMMER d’OMRON version 2.0 ou supérieur doit être utilisé.
Module de communication
Syntaxe spécifique
La syntaxe suivante permet de fixer la valeur d’un mot de données :
$DMn=valeur
« n » est le numéro du mot,
Exemple :
$DM10=50
$DM100=HA000
Exemple spécifique
Cet exemple se trouve dans le répertoire « <répertoire d’installation
d’AUTOMGEN> / Exemples / Post-processeurs / S7200 ». Le fichier
porte le même nom que le titre du chapitre qui suit.
Tâche d’interruption
Exemple d’appel d’une tâche d’interruption.
Post-processeur ALSPA
Ce post-processeur permet de programmer les automates CEGELEC
ALSPA C50 et C100.
Module de communication
Post-processeur ZELIO
Ce post-processeur permet de programmer les modules SECHNEIDER
ZELIO.
Module de communication
Post-processeur FESTO
Ce post-processeur permet de programmer les automates FPC 101,
FPC 103 et FEC FESTO.
Module de communication
Si vous utilisez l’atelier logiciel FST FESTO sous DOS, relisez le fichier
.AWL à partir de ce logiciel.
Vous pouvez ensuite vous connecter avec AUTOMGEN (après vous être
déconnecté avec le logiciel FESTO) en utilisant comme mode de
connexion « Seulement connecter ».
Post-processeur ALLEN-BRADLEY
Ce post-processeur permet de programmer les automates SLC de
ROCKWELL. Le logiciel RSLogix 500 V5 ou supérieure de ROCKWELL
est nécessaire.
Module de communication
Post-processeur MITSUBISHI
Ce post-processeur permet de programmer les automates MITSUBISHI
de la gamme FX. Le code généré par AUTOMGEN peut être directement
envoyé dans les automates MITSUBISHI de la gamme FX ou importer
dans les logiciels MITSUBISHI FX-WIN ou GX-DEVELOPPER.
Module de communication
Post-processeur TWIDO
Ce post-processeur permet de programmer les automates TWIDO de
SCHNEIDER.
Module de communication
Post-processeur ZELIO 2
Ce post-processeur permet de programmer les modules SECHNEIDER
ZELIO 2.
Initialisation de l’automate
Avant de pouvoir être utilisé avec AUTOMGEN, le firmware LD doit être
téléchargé dans l’automate ZELIO 2 avec le logiciel ZELIOSOFT de
SCHNEIDER.
Configuration de l’automate
La configuration de l’automate doit être réalisée avec le logiciel
ZELIOSOFT de SCHNEIDER et téléchargée dans l’automate avec ce
même logiciel avant de télécharger l’application avec AUTOMGEN.
Module de communication
Post-processeur PANASONIC
Ce post-processeur permet de programmer les automates PANASONIC.
Le logiciel FP WIN Pro 5 de PANASONIC doit être installé sur le PC
pour pouvoir compiler et transférer le programme généré par
AUTOMGEN vers les automates.
Le logiciel FP WIN PRO 5 doit être lancé avant de pouvoir lancer une
compilation ou une exécution pour un automate PANASONIC avec
AUTOMGEN.
Module de communication