▼
Scroll to page 2
of
250
Manuel de Référence PL7 Micro/Junior/Pro Description du logiciel PL7 35015366.01 07/2008 fre www.schneider-electric.com 2 Structure de la documentation Structure de la documentation Présentation Ce manuel se compose de trois tomes: z z z 35015366.01 07/2008 Tome 1: Description du logiciel PL7 z Généralités z Langage à contacts z Langage liste d’instructions z Langage littéral structuré z Langage Grafcet z Blocs fonction DFB z Modules Fonctionnels Tome 2: Description détaillée des instructions et des fonctions z Instructions de base z Instructions avancées z Objets bits et mots système Tome 3: Annexes z Différences entre PL7-2/3 et PL7-Micro/Junior z Aide-mémoire z Liste des mots réservés z Conformité au standard CEI 1131-3 z Serveur OLE Automation z Performances 3 Structure de la documentation 4 35015366.01 07/2008 Table des matières A propos de ce manuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Partie I Description du logiciel PL7 . . . . . . . . . . . . . . . . . . . . . . . 13 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Chapitre 1 Présentation du logiciel PL7 . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Présentation des logiciels PL7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Présentation des langages PL7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Structure logicielle PL7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modules fonctionnels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 2 Description des objets langages PL7 . . . . . . . . . . . . . . . . . . . . 25 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Définition des principaux objets booléen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Définition des principaux objets mots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adressage des objets bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adressage des objets de modules d’entrées/sorties du TSX 37. . . . . . . . . . . . . Adressage des objets de modules d’entrées/sorties en rack . . . . . . . . . . . . . . . Adressage des objets langage de modules déportés sur bus FIPIO . . . . . . . . . Adressage des objets langage liés au bus AS-i . . . . . . . . . . . . . . . . . . . . . . . . . Adressage des objets mots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Règle de recouvrements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objets de bloc fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objets PL7 de type tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objets indexés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objets Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Symbolisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objets présymbolisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 3 25 26 27 29 31 34 37 40 42 45 46 48 51 54 55 57 Mémoire utilisateur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Structure mémoire des automates Micro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Structure mémoire des automates Premium. . . . . . . . . . . . . . . . . . . . . . . . . . . . Description de la mémoire bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35015366.01 07/2008 15 16 17 21 23 59 60 62 64 5 Description de la mémoire mots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Caractéristiques de la mémoire des automates TSX 37 . . . . . . . . . . . . . . . . . . . 68 Caractéristiques de la mémoire des automates TSX/PCX 57 10/15/20/25/26/28 70 Caractéristiques de la mémoire des automates TSX/PCX 57 30/35/36 . . . . . . . 73 Caractéristiques de la mémoire des automates TSX 57 453/4823 . . . . . . . . . . . 75 Chapitre 4 Modes de marche. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Traitement sur coupure et reprise secteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Traitement sur reprise à chaud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Gestion du démarrage à froid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Chapitre 5 5.1 5.2 5.3 5.4 Structure logicielle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Description des tâches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Présentation de la tâche maître . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Description des sections et des sous-programmes . . . . . . . . . . . . . . . . . . . . . . . 90 Présentation de la tâche rapide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Présentation des traitements événementiels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Structure monotâche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Structure logicielle monotâche. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Exécution cyclique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Exécution périodique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Contrôle du temps de cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Structure multitâche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Structure logicielle multitâche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Séquencement des tâches dans une structure multitâche . . . . . . . . . . . . . . . . 108 Affectation des voies d’entrées/sorties aux tâches maître et rapide . . . . . . . . . 110 Echanges d'entrées/sorties dans les traitements événementiels . . . . . . . . . . . 112 Modules fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Structuration en modules fonctionnels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Partie II Description des langages PL7 . . . . . . . . . . . . . . . . . . . . 117 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Chapitre 6 Langage à contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Présentation générale du langage à contacts . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Structure d’un réseau de contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Etiquette d’un réseau de contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Commentaire d’un réseau de contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Eléments graphiques du langage à contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Règles de programmation d’un réseau de contacts . . . . . . . . . . . . . . . . . . . . . 127 6 35015366.01 07/2008 Règle de programmation des blocs fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Règles de programmation des blocs opération. . . . . . . . . . . . . . . . . . . . . . . . . 129 Exécution d’un réseau de contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Chapitre 7 Langage liste d’instructions . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Présentation générale du langage liste d’instructions . . . . . . . . . . . . . . . . . . . . Structure d’un programme liste d’instructions . . . . . . . . . . . . . . . . . . . . . . . . . . Etiquette d’une phrase en langage liste d’instructions . . . . . . . . . . . . . . . . . . . Commentaire d’une phrase en langage liste d’instructions. . . . . . . . . . . . . . . . Présentation des instructions en langage liste d’instructions . . . . . . . . . . . . . . Règle d’utilisation des parenthèses en langage liste d’instructions . . . . . . . . . Description des instructions MPS, MRD et MPP. . . . . . . . . . . . . . . . . . . . . . . . Principes de programmation des blocs fonction prédéfinis . . . . . . . . . . . . . . . . Règles d’exécution d’un programme liste d’instructions . . . . . . . . . . . . . . . . . . Chapitre 8 Langage litteral structuré. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Présentation du langage littéral structuré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Structure d’un programme en langage littéral structuré . . . . . . . . . . . . . . . . . . Etiquette d’une phrase en langage littéral structuré . . . . . . . . . . . . . . . . . . . . . Commentaire d’une phrase en langage littéral structuré. . . . . . . . . . . . . . . . . . Instructions sur objets bits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions arithmétiques et logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions sur tableaux et chaîne de caractères. . . . . . . . . . . . . . . . . . . . . . . Instructions de conversions numériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions sur programme et instructions spécifiques . . . . . . . . . . . . . . . . . . Structure de contrôle conditionnelle IF...THEN . . . . . . . . . . . . . . . . . . . . . . . . . Structure de contrôle conditionnelle WHILE...END_WHILE . . . . . . . . . . . . . . . Structure de contrôle conditionnelle REPEAT...END_REPEAT . . . . . . . . . . . . Structure de contrôle conditionnelle FOR...END_FOR . . . . . . . . . . . . . . . . . . . Instruction de sortie de boucle EXIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Règles d’exécution d’un programme littéral structuré . . . . . . . . . . . . . . . . . . . . Chapitre 9 9.1 9.2 35015366.01 07/2008 133 134 135 136 137 138 142 145 147 149 151 152 153 154 155 156 157 159 162 163 165 167 168 169 170 171 Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Présentation générale du Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Présentation du Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description des symboles graphiques du Grafcet. . . . . . . . . . . . . . . . . . . . . . . Description des objets spécifiques au Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . Possibilités du Grafcet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Règle de construction du Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Représentation du Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation des divergences et convergences OU . . . . . . . . . . . . . . . . . . . . . . . 175 176 176 177 178 180 182 184 184 185 186 7 9.3 9.4 9.5 Chapitre 10 Utilisation des divergences et convergences ET . . . . . . . . . . . . . . . . . . . . . . . . 187 Utilisation des renvois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Utilisation des liaisons orientées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 Commentaire Grafcet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Programmation des actions et des conditions . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Programmation des actions associées aux étapes . . . . . . . . . . . . . . . . . . . . . . 194 Programmation des actions à l’activation ou à la désactivation. . . . . . . . . . . . . 196 Programmation des actions continues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Programmation des réceptivités associées aux transitions . . . . . . . . . . . . . . . . 199 Programmation des réceptivités en langage à contacts . . . . . . . . . . . . . . . . . . 201 Programmation des réceptivités en langage liste d’instructions . . . . . . . . . . . . 202 Programmation des réceptivités en langage littéral structuré . . . . . . . . . . . . . . 203 Macro-étapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Présentation des macro-étapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Constitution d’une macro-étape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Caractéristiques des macro-étapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Section Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Structure d’une section Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Description du traitement préliminaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Prépositionnement du Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Initialisation du Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 Remise à zéro du Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Figeage du Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Remise à zéro des macro-étapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 Fonctionnement du traitement séquentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Description du traitement postérieur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Blocs fonction DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Présentation des blocs fonction DFB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 Comment mettre en oeuvre un bloc fonction DFB. . . . . . . . . . . . . . . . . . . . . . . 226 Definition des objets des blocs fonction type DFB. . . . . . . . . . . . . . . . . . . . . . . 228 Définition des paramètres DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Définition des variables DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 Règle de codage des Types DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Création des instances de DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 Règle d’utilisation des DFB dans un programme. . . . . . . . . . . . . . . . . . . . . . . . 237 Utilisation d’un DFB dans un programme en langage à contacts . . . . . . . . . . . 239 Utilisation d’un DFB dans un programme en langage liste d’instructions ou littéral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 Exécution d’une instance DFB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 Exemple de programmation de bloc fonction DFB . . . . . . . . . . . . . . . . . . . . . . 243 8 35015366.01 07/2008 Index 35015366.01 07/2008 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 9 10 35015366.01 07/2008 A propos de ce manuel Présentation Objectif du document Ce manuel décrit les langages de programmation des automates Micro, Premium et Atrium. Champ d'application La mise à jour de cette publication prend en compte les fonctionnalités de PL7 V4.5. Elle permet néammoins de mettre en oeuvre les versions antérieures de PL7. Avertissements liés au(x) produit(s) Commentaires utilisateur 35015366.01 07/2008 Envoyez vos commentaires à l'adresse e-mail techpub@schneider-electric.com 11 A propos de ce manuel 12 35015366.01 07/2008 Description du logiciel PL7 I Présentation Objet de cet intercalaire Cet intercalaire presente le logiciel PL7. Il décrit les notions élémentaires de base nécessaires à la programmation des automates Micro et Premium. Contenu de cette partie Cette partie contient les chapitres suivants : 35015366.01 07/2008 Chapitre Titre du chapitre Page 1 Présentation du logiciel PL7 15 2 Description des objets langages PL7 25 3 Mémoire utilisateur 59 4 Modes de marche 77 5 Structure logicielle 87 13 Description du logiciel PL7 14 35015366.01 07/2008 Présentation du logiciel PL7 1 Présentation Objet de ce chapitre Ce chapitre présente les principales caractéristiques du logiciel PL7. Contenu de ce chapitre Ce chapitre contient les sujets suivants: 35015366.01 07/2008 Sujet Page Présentation des logiciels PL7 16 Présentation des langages PL7 17 Structure logicielle PL7 21 Modules fonctionnels 23 15 Présentation du logiciel PL7 Présentation des logiciels PL7 Généralités La conception et la mise en oeuvre des applications pour automates Micro et Premium se réalisent à l’aide des logiciels PL7. Il est proposé 3 types de logiciels PL7: z z z Logiciels PL7 PL7 Micro PL7 Junior PL7 Pro Le tableau suivant montre les différences entre les 3 types de logiciels. Services PL7 Micro PL7 Junior PL7 Pro Programmation/Mise au point/ Exploitation M M/P/A M/P/A Blocs fonction utilisateur Création - - P/A Utilisation - P/A P/A Création - - M/P/A Utilisation - M/P/A M/P/A Modules fonctionnels - - P/A Bloc fonction DFB de diagnostic - - P/A Ecrans d’exploitation Légende: A = automates Atrium M = automates Micro P = automates Premium - = non disponible Conventions d’écriture Dans la suite du document: z z 16 la notation PL7 ou logiciel PL7 est utilisée pour désigner indifféremment les 3 types de logiciels PL7 Micro, PL7 Junior et PL7 Pro. la notation Premium est utilisée pour désigner indifféremment les processeurs TSX 57, PMX 57, et PCX 57. 35015366.01 07/2008 Présentation du logiciel PL7 Présentation des langages PL7 Généralités Le logiciel PL7 propose 4 langages de programmation: z z z z langage à contacts liste d'instructions littéral structuré Grafcet Le tableau suivant donne l’utilisation possible des langages en fonction des types d’automates. Langage Automates Micro Automates Premium Langage à contacts X X Liste d'instructions X X Littéral structuré X X Grafcet X (excepté les macro-étapes) X Légende: X = disponible - = non disponible Ces langages peuvent être mixés au sein d’une même application. Une section de programme peut être écrite en langage à contacts, une autre en littéral ... Ces langages mettent en oeuvre: z z z des blocs fonction pré-définis (Temporisations, Compteurs,...), des fonctions métiers (analogique, communication, comptage...), des fonctions spécifiques (gestion du temps, chaîne de caractères...). Les objets du langage sont symbolisables à l'aide de l'éditeur de variables ou en ligne dans les éditeurs de programme. Le logiciel PL7 est conforme à la norme IEC 1131-3 (voir (Voir Manuel de référence, Tomes 2 et 3) ). 35015366.01 07/2008 17 Présentation du logiciel PL7 Langage à contacts Le langage à contacts (LD) est un langage graphique. Il permet la transcription de schémas à relais, il est adapté au traitement combinatoire. Il offre les symboles graphiques de base: contacts, bobines, blocs. L'écriture de calculs numériques est possible à l'intérieur de blocs opérations. Exemple de réseau de contacts LD : MAST - CHART %L100 %I1.0 (* Attente de séchage*) %M12 %Q2.5 %I1.7 %TM4.Q %M17 %I1.10 %Q2.3 %M2 %I1.4 F2 18 F3 P F4 %M27 %TM0 IN TM Q MODE TON TB: 1 mn TMP: 9999 MODIF: Y %M25 %MW0.X OPERATE %MW15:=%MW18+500 SR2 C N F5 X F6 F7 F8 F9 F10 F11 S F12 R S.F1 S.F2 OPER S.F3 COHP H S.F4 COHP V S.F5 S.F6 FB S.F7 F (...) S.F8 35015366.01 07/2008 Présentation du logiciel PL7 Langage liste d’instructions Le langage liste d'instructions (IL) est un langage "machine" booléen qui permet l'écriture de traitements logiques et numériques. Exemple de programme en langage liste d’instructions IL : MAST - SR1 ! %L0 : ! %L5 : ! %L10: Langage littéral structuré LD ANDN OR ( AND ) AND ST %I1.0 %M12 %TM4.Q %M17 LD ANDN ANDN IN LD AND AND [ %MW15 := %I1.10 %Q2.3 %M27 %TM0 %TM0.Q %M25 %MW0:X5 %MW18+500] LD AND SR2 %I1.2 %I1.4 %I1.7 %Q2.5 Le langage littéral structuré (ST) est un langage de type "informatique" permettant l'écriture structurée de traitements logiques et numériques. Exemple de programme en langage littéral structuré ! ST : MAST - SR10 ( * Recherche du premier élément non nul dans un tableau de 32 mots Détermination de sa valeur (%MW10 ) , de son rang (%MW11) Cette recherche s’effectue si %M0 est à 1 %M1est mis à 1 si un élément non nul existe, sinon il est mis à 0 * ) IF %M0 THEN FOR %MW 99 := 0 TO 31 DO IF %MW100 [%MW99]< > 0 THEN %MW 10 : =%MW100 [%MW99]; %MW 11 : =%MW 99; %M1 : = TRUE; EXIT; ( *Sortie de la boucle FOR*) ELSE %M1 : = FALSE; END_IF; END_FOR; ELSE %M1 : = FALSE; END_ IF; 35015366.01 07/2008 19 Présentation du logiciel PL7 Langage Grafcet Le langage Grafcet permet de représenter graphiquement et de façon structurée le fonctionnement d'un automatisme séquentiel. Exemple de programme en langage Grafcet. GRAFCET : MAST - CHART 10 0 1 11 3 2 12 4 6 5 7 13 14 15 8 F2 20 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 35015366.01 07/2008 Présentation du logiciel PL7 Structure logicielle PL7 Généralités Le logiciel PL7 propose deux types de structure: z z 35015366.01 07/2008 Monotâche: c’est la structure simplifiée proposée par défaut, où une seule tâche maître composée d’un programme, constitué de plusieurs sections et de sousprogrammes, est exécutée. Multitâche: cette structure, mieux adaptée pour des applications temps réel perfomantes, se compose d’une tâche maître, d’une tâche rapide et de traitements événementiels prioritaires. 21 Présentation du logiciel PL7 Principe Les tâches maître et rapide d'un programme PL7 se composent de plusieurs parties appelées sections et de sous-programmes. Chacune de ces sections peut être programmée dans le langage approprié au traitement à réaliser. L’illustration suivante montre un exemple de découpage d’un programme PL7. Tâche maître MAST Sas (LD) Section en langage à contacts Four_1 Sas (LD) CHART Section en Grafcet Sas (LD) Sas (LD) Section en langage à contacts Nettoyage (ST) Section en littéral Sous-programmes traitements événementiels Tâche rapide FAST Alarm_sas (ST) Section en littéral Surv_Sec (LD) Section en langage à contacts EVT0 Alarm_Four (ST) Section en littéral Sous-programmes SR0 SR0 Ce découpage en sections permet de créer un programme structuré et de générer ou incorporer aisément des modules de programme. Les sous-programmes peuvent être appelés depuis n'importe quelle section de la tâche à laquelle ils appartiennent ou depuis d'autres sous-programmes de la même tâche. 22 35015366.01 07/2008 Présentation du logiciel PL7 Modules fonctionnels Généralités Le logiciel PL7 Pro permet de structurer une application pour automate Premium en modules fonctionnels. Un module fonctionnel est un regroupement d'éléments de programme destinés à réaliser une fonction d’automatisme. Indépendamment de la structure multitâches des automates, vous pouvez définir une structure arborescente multiniveaux de l’application d’automatisme. A chaque niveau, vous pouvez rattacher des sections de programme écrites en langage à contacts, littéral, liste d’instructions ou Grafcet, ainsi que des tables d’animation et des écrans d’exploitation. Vue fonctionnelle La vue fonctionnelle en modules permet d’avoir une découpe par fonctions cohérentes vis-à-vis du procédé à commander. La vue structurelle donne une vue de l’ordre d’exécution des sections de programme par l’automate. L’illustration suivante montre les 2 vues possibles d’une application. Navigateur Application Vue Structurelle MACHINE_DOSAGE Configuration Programme Tâche Mast Tâche Fast Evènements Types DFB Variables Tables d’animation Dossier Ecrans d’exploitation 35015366.01 07/2008 Vue Fonctionnelle MACHINE_DOSAGE Md_march Programme Table d’animation Procédé Programme Table d’animation Remplir Programme Table d’animation Doser Programme Table d’animation Mixer Programme Table d’animation Vider Programme Table d’animation 23 Présentation du logiciel PL7 Services associés à la vue fonctionnelle Les services d’exploitation sont disponibles dans l’une ou l’autre vue. En particulier, par une seule commande, il est possible de forcer l’exécution ou non d’un module fonctionnel. Dans ce cas, toutes les sections rattachées au module fonctionnel sont automatiquement forcées. Export/import de modules fonctionnels 24 Vous pouvez exporter tout ou partie de la structure arborescente en modules fonctionnels. Dans ce cas, l’ensemble des sections de programme des différents niveaux de modules est exporté. 35015366.01 07/2008 Description des objets langages PL7 2 Présentation Objet de ce chapitre Ce chapitre décrit tous les objets des langages PL7. Ces objets sont utilisés en tant qu’opérandes dans les instructions. Contenu de ce chapitre Ce chapitre contient les sujets suivants : 35015366.01 07/2008 Sujet Page Définition des principaux objets booléen 26 Définition des principaux objets mots 27 Adressage des objets bits 29 Adressage des objets de modules d’entrées/sorties du TSX 37 31 Adressage des objets de modules d’entrées/sorties en rack 34 Adressage des objets langage de modules déportés sur bus FIPIO 37 Adressage des objets langage liés au bus AS-i 40 Adressage des objets mots 42 Règle de recouvrements 45 Objets de bloc fonction 46 Objets PL7 de type tableau 48 Objets indexés 51 Objets Grafcet 54 Symbolisation 55 Objets présymbolisés 57 25 Objets langages PL7 Définition des principaux objets booléen Description Le tableau suivant décrit les principaux objets booléens. Bits Description Exemples Accès en écriture Valeurs immédiates 0 ou 1 (False ou True) 0 _ Entrées/sorties Ces bits sont les "images logiques" des états électriques des entrées/ %I23.5 sorties. %Q51.2 Ils sont rangés dans la mémoire de données et sont mis à jour à chaque scrutation de la tâche dans laquelle ils sont configurés. Non Oui Note : Les bits d’entrées/sorties non utilisés ne peuvent pas être employés comme bits internes. Internes Les bits internes permettent de mémoriser des états intermédiaires durant l’exécution du programme. %M200 Oui Système Les bits système %S0 à %S127 surveillent le bon fonctionnement de l’automate ainsi que le déroulement du programme application. %S10 Selon i Blocs fonction Les bits de blocs fonction correspondent aux sorties des blocs fonction standard ou instance de DFB. Ces sorties peuvent être soit câblées directement, soit exploitées en tant qu'objet. %TM8.Q Non Extraits de mots Le logiciel PL7 donne la possibilité d'extraire l'un des 16 bits d'un objet mot. %MW10:X5 Selon type de mots Etapes et macro-étapes Grafcet Les bits d’état permettent de connaître l’état d’une étape, d’une macro- %X21 étape ou encore d’une étape de macro-étape. %X5.9 26 Oui Oui 35015366.01 07/2008 Objets langages PL7 Définition des principaux objets mots Description Le tableau suivant décrit les principaux objets mots. Mots Description Exemples Accès en écriture Valeurs immédiates Ce sont des valeurs algébriques de format homogène avec celui des mots simple et double longueur (16 ou 32 bits), qui permettent d'affecter des valeurs à ces mots. 2542 _ Entrées/ sorties Ce sont les "images logiques" des valeurs électriques des entrées/sorties (exemple : entrées/sorties analogiques). Ils sont rangés dans la mémoire de données et sont mis à jour à chaque scrutation de la tâche dans laquelle ils sont configurés. %IW23.5 %QW51.1 non oui Internes Ils sont destinés à stocker des valeurs en cours du programme. Ils sont rangés à l’intérieur de l’espace Données dans une même zone mémoire. %MW10 %MD45 oui oui Constants Ils mémorisent les constantes ou les messages alphanumériques. Leur %KW30 contenu ne peut être écrit ou modifié que par le terminal. Ils sont stockés au même endroit que le programme , Ils peuvent donc avoir comme support de la mémoire FLASH EPROM. Système Ces mots assurent plusieurs fonctions : z certains renseignent sur l’état du système (temps de fonctionnement système et application, ...). z d’autres permettent d’agir sur l’application (modes de marche, ...). %SW5 selon i Blocs fonction Ces mots correspondent aux paramètres ou valeurs courantes des blocs fonction standard ou instance de DFB. %TM2.P oui Communs Ils sont destinés à être échangés automatiquement sur toutes les stations connectées au réseau de communication. %NW2.3 oui Grafcet Les mots Grafcet permettent de connaître les temps d’activité des étapes. %X5.T 35015366.01 07/2008 oui (uniqueme nt par terminal) oui 27 Objets langages PL7 Format des valeurs Les valeurs des mots peuvent être codées dans les formats suivants : Type Taille Exemple de valeur Borne inférieure Borne supérieure Entier base 10 Simple longueur 1506 -32768 +32767 Double longueur 578963 -2 147 483 648 2 147 483 647 Entier base 2 Simple longueur 2#1000111011111011011 2#10...0 2#01...1 Double longueur 2#10001110111110110111111 111011111011111 2#10...0 2#01...1 Simple longueur 16#AB20 16#0000 16#FFFF Double longueur 16#5AC10 16#000000000 16#FFFFFFFF -1.32E12 -3.402824E+38 (1) 1.175494E-38 (1) -1.175494E-38 (1) 3.402824E+38 (1) Entier base 16 Flottant Légende (1) 28 bornes exclues 35015366.01 07/2008 Objets langages PL7 Adressage des objets bits Présentation Syntaxe L’adressage des bits internes, système et étapes suit les règles suivantes : % M, S ou X Symbole Type d’objet i Numéro Le tableau ci-dessous décrit les différents éléments constituant l’adressage. Famille Elément Valeurs Description Symbole % - - Type d’objet M - Bits internes destinés à mémoriser les états intermédiaires en cours du programme. Ils sont rangés à l’intérieur de l’espace données dans une même zone mémoire. S - Bits système (Voir Manuel de référence, Tome 2), ces bits assurent plusieurs fonctions : z certains renseignent sur l’état du système par lecture des bits %Si (débordement du chien de garde, ...). z d’autres permettent d’agir sur l’application (initialisation Grafcet, ...). X - Bits d’étape, les bits étapes (voir Objets Grafcet, p. 54) donnent l’état d’activité des étapes. i - La valeur maximum du numéro dépend du nombre d’objets configuré. Numéro Exemples : z z z 35015366.01 07/2008 %M25 = bit interne numéro 25 %S20 = bit système numéro 20 %X6 = bit étape numéro 6 29 Objets langages PL7 Bits extrait de mots Le logiciel PL7 permet d'extraire l'un des 16 bits des mots simple longueur. Le repère du mot est alors complété par le rang du bit extrait suivant la syntaxe ciaprès: MOT :X Adresse du mot j Position j= 0 à 15 rang du bit dans le mot. Exemples : z z %MW10:X4 = bit numéro 4 du mot interne %MW10 %QW5.1:X10 = bit numéro 10 du mot de sortie %QW5.1 Note : L'extraction de bits de mots peut aussi s'effectuer sur mots indexés. 30 35015366.01 07/2008 Objets langages PL7 Adressage des objets de modules d’entrées/sorties du TSX 37 Présentation L’adressage des principaux objets bit et mot de modules d’entrées/sorties est de type géographique. C’est à dire qu’il dépend : z z z Illustration du numéro (adresse) du rack, de la position physique du module dans le bac, du numéro de la voie du module. L’adressage est défini de la manière suivante : % I,Q,M,K Symbole Type d’objet 35015366.01 07/2008 X, W, D, F Format X Position • i N° voie • r Rang 31 Objets langages PL7 Syntaxe Le tableau ci-dessous décrit les différents éléments constituant l’adressage. Famille Elément Valeurs Description Symbole % - - Type d’objet I Q - Image de l’entrée physique du module, Image de la sortie physique du module, Ces informations sont échangées de manière implicite à chaque cycle de la tâche à laquelle elles sont attachées. M - Variable interne Ces informations de lecture ou d’écriture sont échangées à la demande de l’application. K - Constante interne Ces informations de configuration sont disponibles en lecture seulement. X - Booléen Pour les objets de type booléen, le X peut être omis. W 16 bits Simple longueur. D 32 bits Double longueur. F 32 bits Flottant. Le format flottant utilisé est celui de la norme IEEE Std 754-1985 (équivalent IEC 559). Position module x 0à8 0 à 10 TSX 37-10 TSX 37-21/22 Note : un module au format standard (occupant 2 positions) est adressé comme 2 modules au 1/2 format superposés, (voir les explications ciaprès). N° voie i 0 à 31 ou Numéro de voie du module. MOD MOD : voie réservée à la gestion du module et des paramètres communs à toutes les voies. Rang r 0 à 127 ou ERR Format (taille) Exemples Position du bit dans le mot. ERR : indique un défaut module ou voie. Le tableau ci-dessous présente quelques exemples d’adressage d’objets. Objet Description %I1.5 Voie d’entrée numéro 5 du module d’entrées/sorties situé à la position 1. %MW2.0.3 Mot d’état de rang 3 de la voie 0 du module d’entrées/sorties situé à la position 2. %I5.MOD.ERR Information de défaut du module d’entrées/sorties situé à la position 5. 32 35015366.01 07/2008 Objets langages PL7 Cas des modules au format standard Ils sont adressés comme 2 modules au 1/2 format superposés. Par exemple, un module de 64 E/S occupant les positions 5 et 6, est vu comme 2 modules 1/2 format : z z un 1/2 module de 32 entrées situé à la position 5, un 1/2 module de 32 entrées situé à la position 6, Le tableau ci-après décrit le codage Position/Numéro de voie en fonction du module. Module Numéro de voie Adressage : Position/Numéro de voie (x=position) Exemples 1/2 format Format standard 4S 8E 12E 0à3 0à7 0 à 11 x.0 à x.3 x.0 à x.7 x.0 à x.11 32E 32S 64E/S 0 à 15 (E) 0 à 15 (E) 0 à 15 (S) 0 à 31 (E) 0 à 11 (S) 0 à 15 (E) 0 à 15 (S) 0 à 31 (S) x.0 à x.15 x.0 à x.15 x.0 à x.15 x.0 à x.31 (x+1).0 à (x+1).11 (x+1).0 à (x+1).15 (x+1).0 à (x+1).15 (x+1).0 à (x+1).31 Le tableau ci-dessous présente deux exemples d’adressage d’objets d’un module standard 28E/S occupant les positions 3 et 4. Objet Description %I3.6 Voie d’entrée numéro 6 du module. %Q4.2 Voie de sortie numéro 2 du module 35015366.01 07/2008 28E/S 33 Objets langages PL7 Adressage des objets de modules d’entrées/sorties en rack Présentation L’adressage des principaux objets bit et mot de modules d’entrées/sorties est de type géographique. C’est à dire qu’il dépend : z z z Illustration du numéro (adresse) du rack, de la position physique du module dans le rack, du numéro de la voie du module. L’adressage est défini de la manière suivante : % I, Q, M, K Symbole Type d’objet 34 X, W, D, F Format X Rack Y Position • i N° voie • r Rang 35015366.01 07/2008 Objets langages PL7 Syntaxe Le tableau ci-dessous décrit les différents éléments constituant l’adressage. Famille Elément Valeurs Description Symbole % - - Type d’objet I Q - Image de l’entrée physique du module, Image de la sortie physique du module, Ces informations sont échangées de manière automatique à chaque cycle de la tâche à laquelle elles sont attachées. M - Variable interne Ces informations de lecture ou d’écriture sont échangées à la demande de l’application. K - Constante interne Ces informations de configuration sont disponibles en lecture seulement. X - Booléen Pour les objets de type booléen, cet élément peut être omis. W 16 bits Simple longueur. D 32 bits Double longueur. F 32 bits Flottant. Le format flottant utilisé est celui de la norme IEEE Std 754-1985 (équivalent IEC 559). Adresse rack x 0 ou 1 0à7 TSX 5710/102/103/153, PMX 57102, PCX 571012). Autres processeurs. Position module y 00 à 14 (1) Numéro de position dans le rack. Lorsque le numéro de rack (x) est différent de 0, la position (y) est codée sur 2 digits : 00 à 14 ; par contre si le numéro de rack (x) = 0, on élimine les zéros non significatifs (élimination par la gauche) de "y" ("x" n'apparaît pas et "y" est sur 1 digit pour les valeurs inférieures à 9). N° voie i 0 à 127 ou MOD MOD : voie réservée à la gestion du module et des paramètres communs à toutes les voies. Rang r 0 à 127 ou ERR Position du bit dans le mot. ERR : indique un défaut module ou voie. Format (taille) (1) : le nombre d’emplacements maximum nécessite l’utilisation de 2 racks à la même adresse. 35015366.01 07/2008 35 Objets langages PL7 Exemples Le tableau ci-dessous présente quelques exemples d’adressage d’objets. Objet Description %MW2.0.3 Mot d’état de rang 3 de la voie 0 du module d’entrées TOR situé à la position 2 du rack 0. %MW103.0.3 Mot d’état de rang 3 de la voie 0 du module de sorties TOR situé à la position 3 du rack 1. %I102.MOD.ERR Information de défaut du module d’entrées analogiques situé à la position 2 du rack 1. %I204.3.ERR Information de défaut de la voie 3 du module de sorties analogiques situé à la position 4 du rack 2. Illustration 0 P S Y 2 6 0 0 0 T S X 5 7 2 0 3 0 1 P S Y 2 6 0 0 2 P S Y 2 6 0 0 o o p s o o C o m 1 2 1 3 4 3 4 D S Y 0 8 R 5 2 A E Y 8 0 0 0 36 L 2 D S Y 0 8 R 5 3 4 A S Y 8 0 0 35015366.01 07/2008 Objets langages PL7 Adressage des objets langage de modules déportés sur bus FIPIO Présentation L’adressage des principaux objets bit et mot des modules déportés sur bus FIPIO est de type géographique. C’est à dire qu’il dépend : z z z Illustration du point de connexion, du type de module (base ou extension), du numéro de la voie. L’adressage est défini de la manière suivante : % I, Q, M, K X, W, D, F \ Symbole Type d’objet Format 35015366.01 07/2008 p.2.c \ m N°de Adresse module module/voie et point de connexion • i N° voie • r Rang 37 Objets langages PL7 Syntaxe Le tableau ci-dessous décrit les différents éléments constituant l’adressage. Famille Elément Valeurs Signification Symbole % - - Type d’objet I Q - Image de l’entrée physique du module, Image de la sortie physique du module, Ces informations sont échangées de manière automatique à chaque cycle de la tâche à laquelle elles sont attachées. M - Variable interne Ces informations de lecture ou d’écriture sont échangées à la demande de l’application. K - Constante interne Ces informations de configuration sont disponibles en lecture seulement. X - Booléen Pour les objets de type booléen, le X peut être omis. W 16 bits Simple longueur. D 32 bits Double longueur. F 32 bits Flottant. Le format flottant utilisé est celui de la norme IEEE Std 754-1985 (équivalent IEC 559). Adresse module/ voie et point de connexion p 0 ou 1 Numéro de position du processeur dans le rack. 2 - Numéro de voie de la liaison FIPIO intégrée dans le processeur. c 1 à 127 Numéro de point de connexion. Position module m 0 ou 1 0 : module de base, N° voie i 0 à 127 ou MOD MOD : voie réservée à la gestion du module et des paramètres communs à toutes les voies. Rang r 0 à 255 ou ERR ERR : indique un défaut module ou voie. Format (taille) 38 1 : module d’extension. 35015366.01 07/2008 Objets langages PL7 Exemples Le tableau ci-dessous présente quelques exemples d’adressage d’objets. Objet Signification %MW\0.2.1\0.5.2 Mot d’état de rang 2 du bit image de l’entrée 5 du module de base d’entrées déportées situé au point de connexion 1 du bus FIPIO. %I\0.2.1\0.7 Bit image de l’entrée 7 du module de base d’entrées déportées situé au point de connexion 1 du bus FIPIO. %Q\0.2.1\1.2 Bit image de la sortie 2 du module d’extension de sorties déportées situé au point de connexion 1 du bus FIPIO. %I\0.2.2\0.MOD.ERR Information de défaut du module Momentum situé au point de connexion 2 du bus FIPIO. %Q\1.2.3\0.0.ERR 0 35015366.01 07/2008 Information de défaut de la voie 0 du module CCX17 situé au point de connexion 3 du bus FIPIO. Gestionnaire Fipio TSX 57253 1 TBX LEP 030 0 TBX DES 1622 2 170 FNT 110 01 0 170 AAI 030 00 3 TSX FPP 010 0 T CCX 17 20 F 1 TBX DSS 1622 39 Objets langages PL7 Adressage des objets langage liés au bus AS-i Présentation L’adressage des principaux objets bit et mot associés au bus AS-i est de type géographique. C’est à dire qu’il dépend : z z z Illustration du numéro (adresse) du rack où est positionné le coupleur, de la position physique du coupleur dans le rack, du numéro (adresse) de l’équipement esclave sur le bus AS-i. L’adressage est défini de la manière suivante : I ou Q % \ Symbole Type d’objet Syntaxe xy.0 Rack/module/voie du TSX SAY 100 \ n i • N° esclave Rang du bit Le tableau ci-dessous décrit les différents éléments constituant l’adressage. Famille Elément Valeurs Description Symbole % - - Type d’objet I Q - Image de l’entrée physique du module, Image de la sortie physique du module, Ces informations sont échangées de manière automatique à chaque cycle de la tâche à laquelle elles sont attachées. Adresse rack x 0 ou 1 0à7 TSX 5710/102/103/153, PMX 57102, PCX 571012). Autres processeurs. Position module y 00 à 14 (1) Numéro de position dans le rack. Lorsque le numéro de rack (x) est différent de 0, la position (y) est codée sur 2 digits : 00 à 14 ; par contre si le numéro de rack (x) = 0, on élimine les zéros non significatifs (élimination par la gauche) de "y" ("x" n'apparaît pas et "y" est sur 1 digit pour les valeurs inférieures à 9). N° voie 0 - Le coupleur TSX SAY 100 ne possède qu’une seule voie. N° de l’esclave n 0 à 31 Adresse physique de l’esclave. Rang i 0à3 Position du bit image de l’entrée ou de la sortie. (1) : Le nombre d’emplacements maximum nécessite l’utilisation d’un rack d’extension. 40 35015366.01 07/2008 Objets langages PL7 Exemple Le tableau ci-dessous présente quelques exemples d’adressage d’objets. Objet Description %I3.0\2.1 Entrée 1 de l’esclave 2, le module TSX SAY 100 étant positionné à l’emplacement 3 du rack 0. %Q3.0\4.3 Sortie 3 de l’esclave 4, le module TSX SAY 100 étant positionné à l’emplacement 3 du rack 0. 0 0 P S Y 2 6 0 0 T S X 5 7 1 0 3 1 o o C o m m 2 3 4 S A Y 1 0 0 0 1 2 P ABE-8R44SB11 3 4 P XVA-S102 35015366.01 07/2008 41 Objets langages PL7 Adressage des objets mots Présentation L’adressage des mots (hors mots de modules d’entrées/sorties, et blocs fonction) suivent une même syntaxe décrite ci-après. Illustration L’adressage des mots internes, constants et système suit les règles suivantes : Syntaxe % M, K ou S B, W, D ou F Symbole Type d’objet Format i Numéro Le tableau ci-dessous décrit les différents éléments constituant l’adressage. Famille Elément Valeurs Symbole % - - Type d’objet M - Mots internes destinés à stocker des valeurs en cours du programme. Ils sont rangés à l’intérieur de l’espace donnés dans une même zone mémoire. K - Mots constants mémorisent des valeurs constantes ou des messages alphanumériques. Leur contenu ne peut être écrit ou modifié que par le terminal. Ils sont stockés au même endroit que le programme, Ils peuvent donc avoir comme support de la mémoire FLASH EPROM. S - Mots système (Voir Manuel de référence, Tome 2), ces mots assurent plusieurs fonctions : z certains renseignent sur l’état du système par lecture des mots %SWi (temps de fonctionnement système et application, ...). z d’autres permettent d’agir sur l’application (modes de marche, ...). 42 Description 35015366.01 07/2008 Objets langages PL7 Famille Elément Valeurs Description Format B 8 bits Octet, ce format est exclusivement utilisé pour les opérations sur chaîne de caractères. W 16 bits Simple longueur : ces mots de 16 bits peuvent contenir une valeur algébrique comprise entre -32 768 et 32 767, Rang du bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 Poids faible Poids fort D 32 bits Double longueur : ces mots de 32 bits peuvent contenir une valeur algébrique comprise entre -2 147 483 648 et 2 147 483 647. Ces mots s’implantent en mémoire sur deux mots simple longueur consécutifs. Poids faible 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 0 1 0 Poids fort F 32 bits Flottant: le format flottant utilisé est celui de la norme IEEE Std 754-1985 (équivalent IEC 559). La longueur des mots est de 32 bits, ce qui correspond à des nombres flottants simple précision. Exemples de valeurs flottantes : 1285.28 12.8528E2 Numéro i - La valeur maximum du numéro dépend du nombre d’objets configuré. Exemples : z z z z 35015366.01 07/2008 %MW15 = mot interne simple longueur numéro 15 %MF20 = mot interne flottant numéro 20 %KD26 = double mot constant numéro 26 %SW30 = mot système numéro 30 43 Objets langages PL7 Adressage des mots sur réseau L'adressage des mots sur réseau est décrit dans le manuel Métier communication. D'autre part les réseaux utilisent des objets spécifiques : les mots communs .Ce sont des objets mots simple longueur (16 bits) communs à toutes les stations connectées au réseau de communication. Adressage : %NW{i.j}k avec : i = 0 à 127 numéro de réseau, j = 0 à 31 numéro de station et k= 0 à 3 numéro de mot 44 35015366.01 07/2008 Objets langages PL7 Règle de recouvrements Principes Les octets, mots simples, double longueur et flottant sont rangés à l’intérieur de l’espace donné dans une même zone mémoire. Ainsi, il y a recouvrement entre : z z z Illustration le mot double longueur %MDi et les mots simple longueur %MWi et %MWi+1 (le mot %MWi renfermant les poids faibles et le mot %MWi+1 les poids forts du mot %MDi), le mot simple longueur %MWi et les octets %MBj et %MBj+1 (avec j=2 x i), le flottant %MFk et les mots simple longueur %MWk et %MWk+1. Cette illustration montre le recouvrement des mots internes. %MW0 %MB1 %MB0 %MW1 %MB3 %MB2 %MW2 %MB5 %MB4 %MW3 %MB7 %MB6 %MD0 %MD1 %MD2 %MD3 %MDi %MWi %MWi+1 %MWk %MFk Exemples z z z z 35015366.01 07/2008 %MWk+1 %MD0 correspond à %MW0 et %MW1 (voir illustration ci-dessus). %MW3 correspond à %MB7 et %MB6 (voir illustration ci-dessus). %KD543 correspond à %KW543 et %KW544. %MF10 correspond à %MW10 et %MW11. 45 Objets langages PL7 Objets de bloc fonction Généralités Les blocs fonction mettent en oeuvre des objets bits et des mots spécifiques accessibles par programme. Exemple de bloc fonction L’illustration suivante présente un bloc fonction compteur/décompteur. %Ci R S E %C.P:9999 D CU MODIF:Y CD F Bloc compteur/décompteur Objets bits Ils correspondent aux sorties des blocs. Ces bits sont accessibles par les instructions booléennes de test. Objets mots Ils correspondent : z z 46 aux paramètres de configuration du bloc, ces paramètres peuvent être accessibles ( ex : paramètre de présélection) ou pas (ex: base de temps) par programme, aux valeurs courantes (ex : %Ci.V valeur de comptage en cours). 35015366.01 07/2008 Objets langages PL7 Liste des objets de blocs fonction accessibles par programme Le tableau suivant décrit l’ensemble des objets de blocs fonction. Blocs fonctions Symbole Nb Maxi Nb Maxi Type Micro Premium d’objets Temporisateur %TMi 64 Compteur/ Décompteur Monostable Registre mot Programmateur cyclique Temporisateur série 7 %Ci 32 %MNi %Ri 4 %DRi %Ti 8 8 64 255 (128 par défaut) Mot Bit 255 (64 par défaut) Mot Bit 255 (32 par défaut) Mot Description Adresse Accès écriture Valeur courante %TMi.V non Valeur de présélection %TMi.P oui Sortie temporisateur %TMi.Q non Valeur courante %Ci.V non Valeur de présélection %Ci.P oui Sortie débordement (vide) %Ci.E non Sortie présélection atteinte %Ci.D non Sortie débordement (plein) %Ci.F non Valeur courante %MNi.V non Valeur de présélection %MNi.P oui Bit Sortie débordement (vide) %MNi.R non 255 (4 par défaut) Mot Accès au registre %Ri.I oui Sortie du registre %Ri.O oui Bit Sortie registre plein %Ri.F non Sortie registre vide %Ri.E non 255 (8 par défaut) Mot Numéro de pas en cours %DRi.S oui 255 (0 par défaut) Etats du pas j %DRi.Wj non Temps d’activité du pas %DRi.V non Bit Dernier pas défini en cours %DRi.F non Mot Valeur courante %Ti.V non Valeur de présélection %Ti.P oui Sortie en cours %Ti.R non Sortie temporisateur écoulé %Ti.D non Bit Note : Le nombre total de temporisateurs %TMi + %Ti est limité à 64 pour un Micro,et 255 pour un Premium. 35015366.01 07/2008 47 Objets langages PL7 Objets PL7 de type tableau Tableaux de bits Les tableaux de bits sont des suites d'objets bits adjacents de même type et de longueur définie : L. Exemple de tableaux de bits : %M10 %M11 %M10:6 %M12 %M13 %M14 %M15 %M10:6 Ce tableau définit les objets bits qui peuvent être mis sous forme de tableau de bits. Type Adresse Exemple Accès en écriture Bits d’entrées TOR %Ix.i:L %I25.1:8 Non Bits de sorties TOR %Qx.i:L %Q34.0:16 Oui Bits internes %Mi:L %M50:20 Oui Bits Grafcet %Xi:L, %Xj.i:L %X50:30 Non Note : Les longueurs maximum des tableaux dépendent des types d’objet z Pour les bits d’entrées/sorties TOR : la taille maximum dépend de la modularité (nombre d’entrées/sorties du module). z Pour les bits internes ou Grafcet : la taille maximum dépend de la taille définie en configuration. 48 35015366.01 07/2008 Objets langages PL7 Tableaux de mots Les tableaux de mots sont des suites de mots adjacents de même type et de longueur définie : L. Exemple de tableaux mots : %KW10:5 16 bits %KW10 %KW14 Ce tableau définit les objets mots qui peuvent être mis sous forme de tableau de mots. Type Format Adresse Exemple Accès en écriture Mots internes Simple longueur %MWi:L %MW50:20 Oui Double longueur %MDi:L %MD30:10 Oui Flottant %MFi:L %MF100:20 Oui Simple longueur %KWi:L %KW50:20 Non Mots constants Double longueur %KDi:L %KD30:10 Non Flottant %KFi:L %KF100:20 Non Mots Grafcet Mots Grafcet %Xi.T:L, %Xj.i.T:L %X12.T:8 Non Mots système Mots système %SWi:L %SW50:4 Oui Note : Les longueurs maximum des tableaux dépendent des types d’objet. z Pour les mots internes, constantes ou Grafcet : la taille maximum dépend de la taille définie en configuration. z Pour les mots système : seul les mots %SW50 à 53 peuvent être adressés sous forme de tableau. 35015366.01 07/2008 49 Objets langages PL7 Chaînes de caractères Les chaînes de caractères sont des suites d'octets adjacents de même type et de longueur définie : L. Exemple de chaîne de caractères : %MB10:5 %MB10 8 bits %MB14 Ce tableau définit les objets qui peuvent être mis sous forme de chaîne de caractères. Type Adresse Exemple Accès en écriture Mots internes %MBi:L %MB10:8 Oui Mots constants %KBi:L %KB20:6 Oui Note : L’indice i doit être pair. 50 35015366.01 07/2008 Objets langages PL7 Objets indexés Adressage direct L’adressage des objets est dit direct, quand l’adresse de ces objets est fixe et définie à l’écriture du programme. Exemple : %MW26 (mot interne d'adresse 26) Adressage indexé En adressage indexé, l’adresse directe de l’objet est complétée d’un index : à l’adresse de l’objet est ajouté le contenu de l’index. Le tableau suivant présente le type d’index qui peut être utilisé en fonction du type d’automate : Type d’index Automates Premium/ Atrium Automates Micro un mot interne %MWi X X un mot constant %KWi X - une valeur immédiate X - Légende X : utilisable - : non utilisable Le nombre de "mots index" n’est pas limité. Ce type d’adressage permet de parcourir successivement une suite d’objets de même nature (mots internes, mots constants...), : à l’adresse de l’objet est ajoutée le contenu de l’index. Exemple : MW108[%MW2] : mot d’adresse directe 108 + contenu du mot %MW2. Si le mot %MW2 a pour contenu la valeur 12, écrire %MW108[%MW2] équivaut donc à écrire %MW120. 35015366.01 07/2008 51 Objets langages PL7 Description des objets indexables Le tableau suivant définit les objets qui peuvent être indexés. Type Format Adresse Exemple Accès en écriture Bit d'entrées Booléen %Ixy.i[index] %I21.3[%MW5] Non Bit de sortie Booléen %Qxy.i[index] %Q32.4[%MW5] Oui Bit interne Booléen %Mi[index] %M10[%MW5] Oui Bit Grafcet Booléen Mots internes Mots constant Mots Grafcet %Xi[index] %X20[%MW5] Non %Xj.i[index] %X2.3[%MW5] Non Simple longueur %MWi[index] %MW30[%MW5] Oui Double longueur %MDi[index] %MD15[%MW5] Oui Flottant %MFi[index] %MF15[%MW5] Oui Simple longueur %KWi[index] %KW50[%MW5] Non Double longueur %KDi[index] %KD50[%MW5] Non Flottant %KFi[index] %KF50[%MW5] Non Simple longueur Tableau de mots %Xi .T[index] %X20 .T[%MW5] Non %Xj.i .T[index] %X2.3 .T[%MW5] Non %MWi[index]:L %MW50[%MW5]:10 Oui %MDi[index]:L %MD40[%MW5]:10 Oui %KWi[index]:L %KW70[%MW5]:20 Non %KDi[index]:L %KD80[%MW5]:10 Non Note : Les valeurs maximum des index dépendent des types d’objets indexés. z Pour les bits d’entrées/sorties TOR : 0<i+index<m (m étant le nombre maximum d’entrées/sorties du module) . z Pour tous les autres objets (exceptés objet double longueur ou flottant) : 0<i+index<Nmax , Nmax = taille maximum dépend de la taille définie en configuration. Pour les mots double longueur ou flottant : 0<i+index<Nmax-1. Indexation des mots doubles L’adresse réelle = adresse directe du double mot indexé + 2 fois le contenu du mot index. Exemple : %MD6[%MW100] Si %MW100=10, le mot adressé sera 6 + 2 x 10 -->%MD26. 52 35015366.01 07/2008 Objets langages PL7 Débordement d’index Il y a débordement d’index dès que l’adresse d’un objet indexé dépasse les limites de la zone incluant ce même type d’objet, c’est-à-dire quand : z z adresse objet + contenu de l’index inférieur à la valeur zéro, adresse objet + contenu de l’index supérieur à la limite maximum configurée En cas de débordement d’index, le système provoque la mise à l’état 1 du bit système %S20 et l'affectation de l'objet s'effectue avec une valeur d'index égale à 0. Le tableau suivant donne les conditions de mise à 1 et 0 du bit système %S20. Mis à l’état 1 Remis à l’état 0 z mise à 1 par le système sur débordement z mise à 0 par l’utilisateur, après d’index 35015366.01 07/2008 modification de l’index 53 Objets langages PL7 Objets Grafcet Objets bits Le tableau suivant récapitule tous les objets bits Gracet disponibles et décrit leur rôle. Type Description %Xi état de l'étape i du graphe principal (Chart). %XMj état de la macro-étape j du Grafcet. %Xj.i état de l'étape i de la macro-étape j du Grafcet. %Xj.IN état de l’étape d'entrée de la macro-étape. %Xj.OUT état de l'étape de sortie de la macro-étape. Ces bits sont à 1 lorsque l'étape ou la macro-étape est active, à 0 lorsqu'elle est inactive. Objets mots Le tableau suivant récapitule tous les objets mots Gracet disponibles et décrit leur rôle. Type Description %Xi.Ti temps d'activité de l'étape i du Gracet. %Xj.i.T temps d'activité de l'étape i de la macro-étape j du Gracet. %Xj.IN.T temps d'activité de l'étape i de la macro-étape j qui lui permettent de connaître l'état de l'étape i de la macro-étape j du Grafcet. %Xj.OUT.T temps d'activité de l’étape d'entrée de la macro-étape. %Xj.OUT temps d'activité de l'étape de sortie de la macro-étape. Ces mots incrémentés toutes les 100 ms et prennent une valeur entre 0 et 9999. 54 35015366.01 07/2008 Objets langages PL7 Symbolisation Rôle Les symboles permettent d’adresser les objets langage PL 7, par des noms ou mnémoniques personnalisés. Syntaxe Un symbole est une chaîne de 32 caractères alphanumériques maximum, dont le premier caractère est alphabétique. Un symbole commence par une lettre majuscule, les autres étant en minuscule (par exemple : Bruleur_1). A la saisie le symbole peut être écrit en majuscules ou en minuscules (par exemple: BRULEUR_1), le logiciel met automatiquement le symbole dans sa forme correcte. Caractères utilisables Le tableau suivant fournit les caractères utilisables dans le création des symboles. Type Description alphabétiques majuscules "A à Z" et lettres suivantes "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏDÑÒÓÓÕÖØÙÚÛÜYp" alphabétiques minuscules "a à z", et lettres accentuées : àáâãäåæçèéêëìíîïñòóôõöØùúûüypßÿ numériques chiffres de 0 à 9 (ils ne peuvent pas être placés en début de symbole). le caractère "_" il ne peut être placé ni en début de symbole, ni en fin de symbole. Un certain nombre de mots sont réservés par le langage et ne sont pas utilisables comme symboles, voir (Voir Manuel de référence, Tome 3). Edition des symboles Les symboles sont définis et associés aux objets langages par l'éditeur de variables, un commentaire de 508 caractères peut être associé à chaque symbole. Les symboles et leurs commentaires sont sauvegardés sur le disque du terminal et non dans l'automate. 35015366.01 07/2008 55 Objets langages PL7 Objets symbolisables Tous les objets PL7 sont symbolisables exceptés les objets structurés de types tableaux et objets indexés, mais si l'objet de base ou l'index est symbolisé, le symbole est utilisé dans l'objet structuré. Exemples : z z si le mot %MW0 a pour symbole "Température", le tableau de mots %MW0:12 est symbolisé par Température:12, le mot %MW10 a pour symbole Four_1, le mot indexé %MW0[%MW10] est symbolisé par Température[Four_1]. Les objets bits extraits de mots, bits ou mots de blocs fonction sont symbolisables mais s'ils ne sont pas symbolisés, ils peuvent hériter du symbole de l'objet de base . Exemples : z z Objets uniquement symboliques si le mot %MW0 a pour symbole Etat_pompe et si le bit extrait de mot %MW0:X1 n'est pas symbolisé, il hérite du symbole du mot, %MW0:X1 a pour symbole : Etat_pompe:X1, si le bloc fonction %TM0 a pour symbole Tempo_four1 et si la sortie %TM0.D n'est pas symbolisée, elle hérite du symbole du bloc, %TM0.D a pour symbole: Tempo_four.D. Les paramètres de blocs fonction DFB sont accessibles uniquement sous forme de symboles. Ces objets sont définis par la syntaxe suivante : Nom_DFB.Nom_paramètre Les éléments ont la signification et les caractéristiques suivantes. Elément Nb de caractères maximum Description Nom_DFB 32 nom donné au bloc fonction DFB utilisé. Nom_paramètre 8 nom donné au paramètre de sorties ou à la variable publique. Exemple : Controle.Ecart pour la sortie Ecart de l’instance DFB nommée Controle. 56 35015366.01 07/2008 Objets langages PL7 Objets présymbolisés Rôle Certains modules métier (exemple : comptage, commande d’axes, ...) permettent une symbolisation automatique des objets qui leur sont associés. Si vous donnez le symbole générique de la voie %CHxy.i du module, tous les symboles des objets associés à cette voie peuvent être alors sur demande générés automatiquement. Syntaxe Ces objets sont symbolisés avec la syntaxe suivante: Préfixe_utilisateur_Suffixe_constructeur Les éléments ont la signification et les caractéristiques suivantes : Elément Nb de caractères maximum Description Préfixe_utilisateur 12 symbole générique donné à la voie par l'utilisateur Suffixe_constructeur 20 partie du symbole correspondant à l'objet bit ou mot de la voie donnée par le système Note : En plus du symbole, un commentaire constructeur est généré automatiquement, ce commentaire rappelle succinctement le rôle de l'objet. Exemple Cet exemple traite le cas d’un module de comptage situé dans l’emplacement 3 du bac automate. Si le symbole générique (préfixe-utilisateur) donné à la voie 0 est Compt_pieces, les symboles suivants sont générés automatiquement. 35015366.01 07/2008 Repère Type %CH3.0 CH Symbole Commentaire %ID3.0 DWORD Compt_pieces_cur_meas Mesure courante du compteur %ID3.0.4 DWORD Compt_pieces_capt Valeur capturée du compteur %I3.0 EBOOL Compt_pieces_enab_activ Validation active %I3.0.1 EBOOL Compt_pieces_pres_done Présélection effectuée 57 Objets langages PL7 58 35015366.01 07/2008 Mémoire utilisateur 3 Présentation Objet de ce chapitre Ce chapitre décrit la structure mémoire des automates Micro et Premium. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Structure mémoire des automates Micro 35015366.01 07/2008 Page 60 Structure mémoire des automates Premium 62 Description de la mémoire bits 64 Description de la mémoire mots 66 Caractéristiques de la mémoire des automates TSX 37 68 Caractéristiques de la mémoire des automates TSX/PCX 57 10/15/20/25/26/ 28 70 Caractéristiques de la mémoire des automates TSX/PCX 57 30/35/36 73 Caractéristiques de la mémoire des automates TSX 57 453/4823 75 59 Mémoire utilisateur Structure mémoire des automates Micro Généralités L’espace mémoire des automates Micro accessible à l’utilisateur est découpé en deux ensembles distincts : z z mémoire bits mémoire mots Mémoire bits La mémoire bit est située dans la mémoire RAM intégrée au module processeur. Elle contient l’image des 1280 objets bits. Rôle de la mémoire mots La mémoire mots (16 bits) supporte : z z z Structure sans carte mémoire d’extension les données : données dynamiques de l'application et données système, le programme : descripteurs et code exécutable des tâches, les constantes : mots constants, valeurs initiales et configuration des entrées/ sorties. Les données, programme et constantes sont supportés par la mémoire RAM interne au module processeur. Le schéma suivant décrit la structure mémoire. RAM interne Données Programme Constantes Flash EPROM interne Sauvegarde programme et constantes Sauvegarde %MW La mémoire Flash EPROM intégrée au module processeur peut être utilisée pour la sauvegarde : z z 60 du programme application (9 ou 15 Kmots en fonction du processeur), de 1000 mots internes %MWi. 35015366.01 07/2008 Mémoire utilisateur Structure avec carte mémoire d’extension Les données sont supportées par la mémoire RAM interne au module processeur. Les programme et constantes sont supportés par la carte mémoire d’extension. Le schéma suivant décrit la structure mémoire. RAM interne Données Flash EPROM interne Zone inutilisable Sauvegarde %MW Carte mémoire RAM ou Flash EPROM externe Programme Constantes Une mémoire de 10/16 Kmots Flash EPROM (suivant le processeur) intégrée au module processeur peut être utilisée pour la sauvegarde de 1000 mots internes %MWi. Sauvegarde de la mémoire Les mémoires RAM peuvent être secourues par pile Cadmium-nickel: z z supportée par le module processeur pour la mémoire bit et RAM interne, insérée dans carte pour la carte mémoire RAM. La recopie de l’application dans la mémoire FLASH EPROM interne nécessite que l’automate ne possède pas de carte PCMCIA et que la taille de l’application soit inférieure ou égale à 9/15 Kmots (suivant le processeur). Le transfert d'application depuis la mémoire FLASH EPROM interne vers la mémoire RAM s'effectue automatiquement lorsqu'il y a perte de l'application en RAM (défaut de sauvegarde ou absence de batterie). Un transfert manuel peut également être demandé, au travers d'un terminal de programmation. 35015366.01 07/2008 61 Mémoire utilisateur Structure mémoire des automates Premium Généralités L'espace mémoire des automates Premium ne comporte qu'un seul ensemble. La mémoire bits est intégrée à la mémoire mots (dans la zone des données), elle est limitée à 4096 bits. Rôle de la mémoire mots La mémoire mots (16 bits) supporte : z z z Structure sans carte mémoire d’extension les données : données dynamiques de l'application et données système (le système réserve une zone mémoire RAM de 5 Kmots minimum) le programme : descripteurs et code exécutable des tâches, les constantes : mots constants, valeurs initiales et configuration des entrées/ sorties. Les programmes, données et constantes sont supportés par la mémoire RAM interne au module processeur. Le schéma suivant décrit la structure mémoire. RAM interne Données Programme Constantes Structure avec carte mémoire d’extension Les données sont supportées par la mémoire RAM interne au module processeur. Les programmes et constantes sont supportés par la carte mémoire d’extension. Le schéma suivant décrit la structure mémoire. RAM interne Carte mémoire RAM ou Flash EPROM externe 62 Données Programme Constantes 35015366.01 07/2008 Mémoire utilisateur Sauvegarde de la mémoire La mémoire bit et RAM interne est secourue par la pile Cadmium-nickel supportée par le module processeur. La carte mémoire RAM interne est secourue par pile Cadmium-nickel. 35015366.01 07/2008 63 Mémoire utilisateur Description de la mémoire bits Généralités Pour les automates Micro : cette mémoire contient 1280 objets bits quel que soit le type d' automate. Pour les automates Premium : cette mémoire bits n'existe pas et son contenu se trouve dans la mémoire mots dans la zone des données de l'application. Le codage des objets bits PL7 permet le test de front montant ou descendant sur : z z Fonctionnement les bits d’entrées/sorties, les bits internes. Chaque objet bit contenu dans la mémoire bits est mémorisé à l’aide de 3 bits affectés de la façon suivante : F A C Etat courant (seul bit accessible par le programme application) Etat antérieur Etat de forçage Lors de la mise à jour de la mémoire bits, le système assure : Phase Etat de forçage Description 1 Le transfert de l’image de l’état courant dans l’état antérieur. 2 La ré-actualisation de l’état courant par le programme, le système ou le terminal (cas du forçage d’un bit). Sur une demande de forçage par le terminal : z z l’état de forçage F est mis à l’état 1 l’état courant C est mis à l’état : z 1 si le forçage à 1 est demandé z 0 si le forçage à 0 est demandé Ces états n’évoluent plus jusqu’à ce que : z z 64 le forçage soit supprimé et le bit concerné mis à jour, le forçage inverse soit demandé, seul l’état courant est modifié. 35015366.01 07/2008 Mémoire utilisateur Conseils d’utilisation des fronts montants ou descendants Les instructions contacts front montant ou descendant ne fonctionnent correctement que si vous suivez les règles ci-après: z z z z z dans tous les cas, traiter pour un même objet : z bit d’entrée : le contact de front dans la tâche où le module d’entrée est échangé, z bit de sortie ou interne : traiter sa lecture et son écriture à l’intérieur d’une même tâche. Tout objet bit testé sur front doit être écrit une fois et une seule en utilisant les bobines normale -( )- ou inverse -(/)- (et/ou équivalent en langage liste d'instructions). Ne pas utiliser les bobines -(S)- ou -(R)-. Quand une sortie est déclarée dans une liste d'échange d'un traitement événementiel, elle provoque l'échange du groupe de voies qui lui est associé, ce qui perturbe la gestion des fronts dans la tâche qui gère normalement ce groupe de voies. ne pas effectuer de SET ou de RESET d'un objet dont on teste le front car même si le résultat de l'équation conditionnant le SET/RESET vaut 0, l'action SET/ RESET n'est pas effectuée mais l'historique de l'objet est mis à jour (perte du front). ne pas tester le front d'entrées/sorties utilisées dans une tâche événementielle, dans une tâche maître ou rapide pour les bits internes : la détection d'un front est indépendante du cycle de la tâche, un front sur bit interne %Mi est détecté lorsque son état a changé entre 2 lectures. Ce front reste détecté tant que ce bit interne n'est pas scruté en zone action. Exemple : Ainsi dans l'exemple ci-après, si vous forcez à 1 le bit %M0 dans une table d'animation, le front reste permanent. %M0 P INC %M0 Pour que le front ne soit détecté qu'une seule fois, il faut utiliser un bit interne intermédiaire. Dans ce cas l'historique de %M1 est mis à jour, donc le front n'est présent qu'une seule fois. %M0 %M1 %M1 P 35015366.01 07/2008 INC %M0 65 Mémoire utilisateur Description de la mémoire mots Généralités Cette mémoire mots de 16 bits est structurée en 3 espaces logiques : z z z Données, Programme, Constantes. dont la taille est définie par configuration. Note : Les symboles et les commentaires associés aux objets ne sont pas enregistrés en mémoire automate mais stockés dans l'application locale (disque dur du terminal). Mémoire Données application Mémoire Programme application La mémoire Données comprend les différentes zones suivantes : Type de mots Description Système Nombre fixe Blocs fonction Correspond aux mots et entrées/sorties de ces blocs (valeurs courantes, de réglage...). Le nombre de chaque type de bloc fonction est fixé en configuration Internes Taille définie par le nombre déclaré en configuration. Entrées/sorties Correspond aux mots associés à chaque module. Leur nombre dépend des modules configurés. Communs réseau 4 mots communs par station automate (disponibles uniquement si module de communication présent et configuré en échange de mots communs). Cette zone comprend le code programme exécutable, les informations graphiques (réseaux de contacts) et les commentaires programme. Note : Quelque soit le type de langage utilisé ou la taille de la zone programme, le nombre d'elements de programmation (reseaux de contact, phrases litterales...) est limité. Avant d'atteindre la limite, PL7 vous préviendra à travers une fenêtre d'avertissement. 66 35015366.01 07/2008 Mémoire utilisateur Mémoire constante application 35015366.01 07/2008 Cette zone comprend les paramètres des blocs fonction et des modules d'entrées/ sorties définis en configuration et les mots constants %KW. 67 Mémoire utilisateur Caractéristiques de la mémoire des automates TSX 37 Taille de la mémoire bits Le tableau suivant décrit la répartition mémoire des objets bits. Processeur TSX 37 05/08/10 37 21/22 Taille disponible sur processeur 1280 1280 Type d’objets bits système %Si 128 128 bits entrées/sorties %I/Qx.i (1) (1) bits internes %Mi 256 256 bits d'étapes %Xi 96 128 Légende (1) Taille de la mémoire mots dépend de la configuration matérielle déclarée (modules d'entrées/sorties, équipements sur bus AS-i) Le tableau suivant décrit la répartition mémoire des objets mots Processeur TSX 3705/08 3710 3721 - Cartouche - - 32 Kmots 64 Kmots 128 Kmots RAM interne 9 Kmots 14 Kmots 20 Kmots 52 Kmots 84 Kmots 148 Kmots Données (%MWi) 0,5 Kmots(1) 0,5 Kmots 0,5 17,5 Kmots 17,5 (1) Kmots (1) Kmots 17,5 Kmots Programme 100% booléen • Langage LD 1,6 Ki 3,8 Ki 6,6 Ki 13,7 Ki 28,5 Ki 58,2 Ki • Langage IL 2 Ki 4,9 Ki 8,4 Ki 17,5 Ki 36,3 Ki 74,2 Ki • Langage ST 1,3 Ki 3,3 Ki 5,6 Ki 11,7 Ki 24,2 Ki 49,5 Ki Programme 90% booléen • Langage LD 1,1 Ki 3,1 Ki 5,4 Ki 11,8 Ki 24,7 Ki 50,1 Ki • Langage IL 1,4 Ki 3,8 Ki 6,6 Ki 14,3 Ki 30,0 Ki 61 Ki • Langage ST 1,1 Ki 2,9 Ki 5,1 Ki 11,1 Ki 23,3 Ki 47,3 Ki Programme 65% booléen • Langage LD 0,9 Ki 2,2 Ki 4,0 Ki 9,1 Ki 18,9 Ki 38,4 Ki • Langage IL 1,0 Ki 2,5 Ki 4,6 Ki 10,3 Ki 21,3 Ki 43,4 Ki • Langage ST 1,0 Ki 2,5 Ki 4,6 Ki 10,3 Ki 21,3 Ki 43,4 Ki Constantes (1) 128 mots 128 mots 128 mots 256 mots 512 mots 512 mots Légende 68 35015366.01 07/2008 Mémoire utilisateur Processeur TSX 3705/08 3710 3721 (1) Taille par défaut, peut être étendue au détriment de la taille programme application. Ki Kinstructions (1024 instructions) Le tableau suivant décrit la répartition mémoire des objets mots Processeur TSX 37 22 Cartouche - 32 Kmots 64 Kmots 128 Kmots RAM interne 20 Kmots 52 Kmots 84 Kmots 148 Kmots Données (%MWi) 0,5 Kmots (1) 17,5 Kmots 17,5 Kmots 17,5 Kmots 6,3 Ki 13,6 Ki 28,4 Ki 57,6 Ki • Langage IL 8,1 Ki 17,3 Ki 36,1 Ki 73,5 Ki • Langage ST 5,4 Ki 11,5 Ki 24,1 Ki 49 Ki 5,2 Ki 11,6 Ki 24,5 Ki 50 Ki • Langage IL 6,3 Ki 14,2 Ki 29,8 Ki 60,8 Ki • Langage ST 4,9 Ki 11,0 Ki 23,2 Ki 47,2Ki 3,9 Ki 8,9 Ki 18,8 Ki 38,4 Ki • Langage IL 4,4 Ki 10,1 Ki 21,2 Ki 43,4 Ki • Langage ST 4,4 Ki 10,1 Ki 21,2 Ki 43,4 Ki Constantes (1) 128 mots 256 mots 512 mots 512 mots Programme 100% booléen • Langage LD Programme 90% booléen • Langage LD Programme 65% booléen • Langage LD Légende (1) Taille par défaut, peut être étendue au détriment de la taille programme application. Ki Kinstructions (1024 instructions) Note : La commande AP/Bilan mémoire du logiciel PL7 permet de connaitre la répartition mémoire de l'application dans la mémoire automate. 35015366.01 07/2008 69 Mémoire utilisateur Caractéristiques de la mémoire des automates TSX/PCX 57 10/15/20/25/26/28 Taille de la mémoire bits Ce tableau décrit la répartition mémoire des objets mots des automates TSX 57 1••, TSX 57 2••, TSX 57 2•23 et PCX 57 203. Processeur Type d’objets TSX 57 103/153 TSX57 203/ et PCX 57 203 253/2623/2823 bits système %Si 128 128 bits entrées/sorties %I/Qx.i (1) (1) bits internes %Mi (nb maxi) 3962 8056 bits d'étapes %Xi (nb maxi) 1024 1024 Légende (1) 70 dépend de la configuration matérielle déclarée (modules d'entrées/sorties, équipements sur bus AS-i) 35015366.01 07/2008 Mémoire utilisateur Taille de la mémoire mots Le tableau suivant décrit la répartition mémoire des objets mots des automates TSX 57 1••, TSX 57 2••, TSX 57 2•23 et PCX 57 203. Processeur TSX 57-103 - TSX 57 153 TSXPCX 57 203/ 2623 TSX- 57 253/ 2823 TSX-PCX 57 203/ TSX 57 253/2623/ 2823 TSX-PCX 57 203/ TSX 57 253/2623/ 2823 TSX-PCX 57 203/ TSX 57 253/2623/ 2823 TSX-PCX 57 203/ TSX 57 253/2623/ 2823 Cartouche - - 32K 64K 128K 256K - RAM interne 32K 32K 64K 32K 32K 48K/64K 48K/64K 48K/64K 48K/64K 48K/64K 48K/64K 0,5 K (1) 26 K 26 K 1K (1) 1K (1) 30,5K 30,5K 30,5K 30,5K 12,3 Ki 26,9 Ki 15,5 Ki 22,8 Ki 12,3 Ki 26,6 Ki 56,5 Ki 115,3 Ki • Langage IL 11,2 Ki 15,6 Ki 34,3 Ki 19,7 Ki 29,1 Ki 15,6 Ki 33,9 Ki 71,6 Ki 147,1 Ki • Langage ST 10,5 Ki 22,9 Ki 13,1 Ki 19,4 Ki 10,4 Ki 22,6 Ki 47,8 Ki 98,0 Ki 11,0 Ki 17,4 Ki 8,6 Ki 21,1 Ki 46,9 Ki 98,4 Ki Données (%MWi) Programme 100% booléen • Langage LD 8,8 Ki 7,6 Ki Programme 90% booléen • Langage LD 5,2 Ki 8,6 Ki 21,4 Ki • Langage IL 6,2 Ki 10,3 Ki 25,6 Ki 13,1 Ki 20,7 Ki 10,3 Ki 25,2 Ki 56,0 Ki 117,4 Ki • Langage ST 8,3Ki 20,5 Ki 10,5 Ki 16,6 Ki 8,3 Ki 20,2 Ki 44,9 Ki 94,2 Ki 5,0 Ki Programme 65% booléen • Langage LD 3,6 Ki 6,7 Ki 16,7 Ki 8,1 Ki 13,1 Ki 6,6 Ki 16,4 Ki 36,6 Ki 77,0 Ki • Langage IL 3,7 Ki 6,8 Ki 17,0 Ki 8,3 Ki 13,4 Ki 6,8 Ki 16,8 Ki 37,5 Ki 78,8 Ki • Langage ST 4,2 Ki 7,9 Ki 19,7 Ki 9,6 Ki 15,5 Ki 7,8 Ki 19,4 Ki 43,3 Ki 91,1 Ki Constantes (1) 128 mots 256 mots 512 mots 256 mots 256 mots 256 mots 512 mots 512 mots 1024 mots Légende (1) Taille par défaut, peut être étendue au détriment de la taille programme application. Ki Kinstructions K Kmots 35015366.01 07/2008 71 Mémoire utilisateur Note : z quand ce tableau mentionne pour une caractéristique 2 valeurs séparées par un"/", elles sont associées respectivement à chaque type de processeur (séparés par un "/" dans l'entête du tableau). z la commande AP/Bilan mémoire du logiciel PL7 permet de connaitre la répartition mémoire de l'application dans la mémoire automate. 72 35015366.01 07/2008 Mémoire utilisateur Caractéristiques de la mémoire des automates TSX/PCX 57 30/35/36 Taille de la mémoire bits Ce tableau décrit la répartition mémoire des objets mots des automates TSX 57 3•3, TSX 57 3623 et PCX 57 353. Processeur TSX/PCX 57 303/353/3623 Type d’objets bits système %Si 128 bits entrées/sorties %I/Qx.i (1) bits internes %Mi (Nb maxi) 16250 bits d'étapes %Xi (Nb maxi) 1024 Légende (1) 35015366.01 07/2008 dépend de la configuration matérielle déclarée (modules d'entrées/sorties, équipements sur bus AS-i) 73 Mémoire utilisateur Taille de la mémoire mots Le tableau suivant décrit la répartition mémoire des objets mots des automates TSX 57 3•3, TSX 57 3623 et PCX 57 353. Processeur TSX 57 303/3623 TSX/ PCX57 353 TSX 57 303/ 3623 / TSX/ PCX57 353 TSX 57 303/ TSX 57 303/ TSX 57 303/ TSX 57 303/ 3623 / TSX/ 3623 / TSX/ 3623 / TSX/ 3623 / TSX/ PCX57 353 PCX57 353 PCX57 353 PCX57 353 Cartouche - - 32K 64K 128K 256K 384K RAM interne 64K/80K 64K/80K 80K/96K 80K/96K 80K/96K 80K/96K 80K/96K Données (%MWi) 1K (1) 1K (1) 30,5K 30,5K 30,5K 30,5K 30,5K Programme 100% booléen • Langage LD 28,8 Ki 30,1 Ki 12,3 Ki 26,6 Ki 56,2 Ki 115,3 Ki 150,5 Ki • Langage IL 36,7 Ki 38,4 Ki 15,6 Ki 33,9 Ki 71,6 Ki 147,1 Ki 150,5 Ki • Langage ST 24,5 Ki 25,6 Ki 10,4 Ki 22,6 Ki 47,8 Ki 98,0 Ki 148,3 Ki Programme 90% booléen • Langage LD 22,6 Ki 23,8 Ki 8,6 Ki 21,1 Ki 46,9 Ki 98,4 Ki 149,9 Ki • Langage IL 27,1 Ki 28,4 Ki 10,3 Ki 25,2 Ki 56,0 Ki 117,5 Ki 157,6 Ki • Langage ST 21,7 Ki 22,7 Ki 8,3 Ki 20,2 Ki 44,9 Ki 94,2 Ki 142,9 Ki Programme 65% booléen • Langage LD 17,4 Ki 18,2 Ki 6,6 Ki 16,4 Ki 36,6 Ki 77,0 Ki 117,4 Ki • Langage IL 17,8 Ki 18,6 Ki 6,8 Ki 16,8 Ki 37,5 Ki 78,8 Ki 120,1 Ki • Langage ST 20,5 Ki 21,5 Ki 7,8 Ki 19,4 Ki 43,3 Ki 91,1 Ki 138,8 Ki Constantes (1) 256 K 256 K 256 K 1024 K 1024 K 1024 K 1024 K Légende (1) Taille par défaut, peut être étendue au détriment de la taille programme application. Ki Kinstructions K Kmots Note : z quand ce tableau mentionne pour une caractéristique 2 valeurs séparées par un"/", elles sont associées respectivement à chaque type de processeur (séparés par un "/" dans l'entête du tableau). z la commande AP/Bilan mémoire du logiciel PL7 permet de connaitre la répartition mémoire de l'application dans la mémoire automate. 74 35015366.01 07/2008 Mémoire utilisateur Caractéristiques de la mémoire des automates TSX 57 453/4823 Taille de la mémoire bits Ce tableau décrit la répartition mémoire des objets mots des automates TSX 57 453/4823. Processeur TSX Type d’objets 57 453/4823 bits système %Si 128 bits entrées/sorties %I/Qx.i (1) bits internes %Mi (Nb maxi) 32634 bits d'étapes %Xi (Nb maxi) 1024 Légende (1) 35015366.01 07/2008 dépend de la configuration matérielle déclarée (modules d'entrées/sorties, équipements sur bus AS-i) 75 Mémoire utilisateur Taille de la mémoire mots Le tableau suivant décrit la répartition mémoire des objets mots des automates TSX 57 453/4823. Processeur TSX 57 453/4823 Cartouche - RAM interne 96K 176K 176K 176K 176K 176K 176K 176K Données (%MWi) 1K (1) 30,5K 30,5K 30,5K 30,5K 30,5K 30,5K 30,5K 12,3 Ki 26,6 Ki 56,2 Ki 115,3 Ki 150,5Ki 150,5 Ki 150,5 Ki 32K 64K 128K 256K 384K (2) 512K (2) 2*480K (2) Programme 100% booléen • Langage LD 37,5 Ki • Langage IL 47,8 Ki 15,6 Ki 33,9 Ki 71,6 Ki 147,1 Ki 150,5 Ki 150,5 Ki 150,5 Ki • Langage ST 31,9 Ki 10,4 Ki 22,6 Ki 47,8 Ki 98,0 Ki 148,3 Ki 150,7 Ki 150,7 Ki 8,6 Ki 21,1 Ki 46,9 Ki 98,4 Ki 149,9 Ki 157,6 Ki 157,6 Ki Programme 90% booléen • Langage LD 30,2 Ki • Langage IL 36,0 Ki 10,3 Ki 25,2 Ki 56,0 Ki 117,5 Ki 157,6 Ki 157,6 Ki 157,6 Ki • Langage ST 28,9 Ki 8,3 Ki 20,2 Ki 44,9 Ki 94,2 Ki 142,9 Ki 157,8 Ki 157,8 Ki 6,6 Ki 16,4 Ki 36,6 Ki 77,0 Ki 117,4 Ki 157,8 Ki 157,8 Ki Programme 65% booléen • Langage LD 23,2 Ki • Langage IL 23,7 Ki 6,8 Ki 16,8 Ki 37,5 Ki 78,8 Ki 120,1 Ki 161,3 Ki 161,3 Ki • Langage ST 27,4 Ki 7,8 Ki 19,4 Ki 43,3 Ki 91,1 Ki 138,8 Ki 171,3 Ki 171,3 Ki Constantes (1) 256 mots 256 mots 1024 mots 1024 mots 1024 mots 1024 mots 1024 mots 1024 mots Légende (1) Taille par défaut, peut être étendue au détriment de la taille programme application. (2) Le nombre d'elements de programmation est atteint Ki Kinstructions K Kmots Note : z Quand ce tableau mentionne pour une caractéristique 2 valeurs séparées par un"/", elles sont associées respectivement à chaque type de processeur (séparés par un "/" dans l'entête du tableau). z La commande AP/Bilan mémoire du logiciel PL7 permet de connaitre la répartition mémoire de l'application dans la mémoire automate. 76 35015366.01 07/2008 Modes de marche 4 Présentation Objet de ce chapitre Ce chapitre traite du comportement du programme utilisateur sur Reprise à chaud et démarrage à froid. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Traitement sur coupure et reprise secteur 35015366.01 07/2008 Page 78 Traitement sur reprise à chaud 80 Gestion du démarrage à froid 82 77 Modes de marche Traitement sur coupure et reprise secteur Illustration L’illustration présente les différentes reprises secteurs détectées par le système. Si la durée de la coupure est inférieure au temps de filtrage de l'alimentation (environ 10 ms pour les alimentations alternatives ou à 1 ms pour les alimentations continues), celle-ci n'est pas vue par le programme qui s'exécute normalement. RUN Application Défaut secteur Attente secteur Retour secteur Oui Coupure détectée Non Sauvegarde Contexte OK Non Oui Carte mémoire identique Non Oui Exécution normale du programme 78 Reprise à chaud Démarrage à froid 35015366.01 07/2008 Modes de marche Fonctionnement Le tableau ci-après décrit les phases du traitement des coupures secteur. Phase 1 Coupure de l’alimentation sur un rack, autre que le rack 0 Description Lors de la coupure secteur le système mémorise le contexte application et l'heure de la coupure. 2 Il positionne toutes les sorties à l'état repli (état défini par configuration). 3 A la reprise secteur, le contexte sauvegardé est comparé à celui en cours; ce qui définit le type de démarrage à exécuter : z si le contexte application a changé (perte du contexte système ou nouvelle application), l'automate effectue l'initialisation de l'application : démarrage à froid, z si le contexte application est identique, l'automate effectue une reprise sans initialisation des données : reprise à chaud. Toutes les voies de ce rack sont vues en erreur par le processeur mais les autres racks ne sont pas perturbés, les valeurs des entrées en erreur ne sont plus rafraîchies dans la mémoire application et sont mises à 0 dans le cas d'un module d'entrée TOR à moins quelles aient été forcées auquel cas, elles sont maintenues à la valeur de forçage. Si la durée de la coupure est inférieure à 10 ms pour les alimentations alternatives ou à 1ms pour les alimentations continues, celle-ci n'est pas vue par le programme qui s'exécute normalement. 35015366.01 07/2008 79 Modes de marche Traitement sur reprise à chaud Cause d’une reprise à chaud Une reprise à chaud peut être provoquée : z z z z Illustration par une reprise secteur sans perte du contexte, par mise à 1 par programme du bit système %S1, depuis PL7 par terminal, par action sur bouton RESET du module alimentation du rack 0 (excepté sur station équipée d’un processeur PCX 57). Le dessin ci-après décrit le fonctionnement d’une reprise à chaud. Acquisition des entrées Exécution du programme TOP Si %S1=1, traitement éventuel de la reprise à chaud Arrêt du processeur Sauvegarde du contexte application Retour secteur Auto-test de la configuration Coupure détectée Mise à 1 du bit %S1 Mise à 0 du bit %S1 Mise à jour des sorties 80 35015366.01 07/2008 Modes de marche Fonctionnement Le tableau ci-après décrit les phases de réprise de l’exécution du programme sur reprise à chaud. Phase 1 2 Description L’exécution du programme reprend à partir de l’élément où a eu lieu la coupure secteur, sans mise à jour des sorties. A la fin du cycle de reprise, le système effectue : z l’initialisation des files de messages et d’événements, z l’envoi des paramètres de configuration à tous les modules d’entrées/sorties TOR et métiers, z la désactivation de la tâche rapide et des traitements événementiels (jusqu'à la fin du premier cycle de la tâche maître). 3 Note générale sur la reprise à chaud Le système effectue un cycle de reprise dans lequel il : z reprend en compte l'ensemble des modules d'entrées, z relance la tâche maître avec le bit %S1 (reprise à chaud) positionné à 1, z remet à l’état 0 le bit %S1 à la fin de ce premier cycle de la tâche maître, z réactive la tâche rapide et les traitements événementiels à la fin de ce premier cycle de la tâche maître. Note : Lorsqu’une reprise à chaud est provoquée soit par la mise à 1 du bit système %S1 soit par le bouton reprise à chaud de l’écran de mise au point de l’automate, le bit système %S1 reste à 1 pendant 2 cycles automate. Traitement par programme de la reprise à chaud En cas de reprise à chaud, si vous désirez un traitement particulier vis-à-vis de l'application, vous devez écrire le programme correspondant sur test de %S1 à 1 en début de programme de la tâche maître. Evolution des sorties Dès la détection de la coupure secteur, les sorties sont mises en position de repli : z z soit elles prennent la valeur de repli, soit il y a maintien de la valeur en cours, suivant le choix effectué en configuration. A la reprise secteur, les sorties sont à zéro jusqu'à ce qu'elles soient remises à jour par la tâche. 35015366.01 07/2008 81 Modes de marche Gestion du démarrage à froid Cause d’un démarrage à froid 82 Le tableau suivant décrit les différentes causes possibles d’un démarrage à froid. Causes Caractéristiques du démarrage Chargement d’une application Démarrage à froid forcé à STOP Action sur le bouton RESET du processeur Démarrage à froid forcé à STOP ou à RUN selon la définition de la configuration Action sur le bouton RESET du processeur suite à un défaut bloquant Démarrage à froid forcé à STOP Manipulation du préhenseur ou insertion/ extraction d’une carte mémoire PCMCIA Démarrage à froid forcé à STOP ou à RUN selon la définition de la configuration Initialisation depuis un PL7 Junior ou Pro Forçage du bit système %S0 Démarrage à froid forcé à STOP ou à RUN selon la définition de la configuration, sans initialisation des modules d’entrées/sorties TOR et métier Redémarrage après une coupure électrique avec perte de contexte Démarrage à froid forcé à STOP ou à RUN selon la définition de la configuration 35015366.01 07/2008 Modes de marche Illustration Le dessin ci-après décrit un redémarrage à froid. Acquisition des entrées Arrêt de l'application de sauvegarde du contexte du processeur Exécution du programme TOP Restauration de l'alimentation électrique Si %S0=1, traitement éventuel du démarrage à froid Auto-test de la configuration Faible puissance électrique>coupure Non BOT Oui Initialisation de l’application Mise à 1 du bit %S0 Mise à 0 du bit %S0 Mise à jour des sorties 35015366.01 07/2008 83 Modes de marche Opération Le tableau ci-après décrit les phases de redémarrage pour exécuter un programme après redémarrage à froid. Phase 1 2 Description Le démarrage s’effectue en RUN ou en STOP suivant l’état du paramètre Démarrage automatique en RUN défini dans la configuration ou si l'utilisation dépend de de l’état de l’entrée RUN/STOP. Le programme reprend en début de cycle. Le système effectue : z la réinitialisation des bits, la remise à zéro de l'affectation des E/S et des z z z z z z z z 3 mots internes (si l'option RAZ de %MW sur redémarrage à froid est cochée dans l'écran Configuration du processeur) ; Si la réinitialisation de %MW n'est pas active et si des mots internes %MWi sont enregistrés dans la mémoire interne Flash EPROM (TSX 37), ceux-ci sont restaurés lors d'un démarrage à froid ; l’initialisation des bits et des mots système ; l’initialisation des blocs fonction à partir des données de configuration ; la désactivation des tâches, autres que la tâche maître, jusqu'à la fin du premier cycle de la tâche maître ; le réglage de Grafcet sur les étapes initiales ; l’annulation des forçages ; l’initialisation des données déclarées dans les DFB : soit à 0, soit à la valeur initiale déclarée dans le code, c'est-à-dire avec la valeur enregistrée via la fonction SAVE ; l’initialisation des fichiers de messages et d’événements ; l’envoi des paramètres de configuration à tous les modules d’entrées/sorties TOR et métier. Pour ce premier cycle de redémarrage, le système effectue : z la relance de la tâche maître avec le bit %S0 (redémarrage à froid) défini à 1, le mot %SW10 (détection d’un redémarrage à froid lors de la première révolution d’une tâche) étant réglé à 0 ; z la remise à zéro du bit %S0 et la remise à 1 de chaque bit de mot %SW10 à la fin de ce premier cycle de la tâche maître ; z active la tâche rapide et les traitements événementiels à la fin de ce premier cycle de la tâche maître. Gestion du démarrage à froid pour chaque programme 84 Pour effectuer un traitement applicatif après un démarrage à froid de l'automate PL7, il est possible de tester par programme le bit %SW10:X0 (si %SW10:X0=0, il s'agit d'un redémarrage à froid) . 35015366.01 07/2008 Modes de marche Remarque sur le Démarrage à Froid Lorsqu’un démarrage à froid est éffectué, soit par %S0 mis à 1, soit par le bouton de démarrage à froid dans l’écran de l’automate, le bit système %S13 ne peut pas être passé à 1 et l’automate reste en marche. L’effet principal est l’initialisation des variables de l’application. Evolution des sorties Dès la détection de la coupure électrique, les sorties sont mises en position de repli : z z soit elles prennent la valeur de repli, soit elles conservent la valeur courante, suivant le choix effectué lors de la configuration. Lorsque l'alimentation électrique est de nouveau opérationnelle, les sorties sont réglées à zéro jusqu'à ce qu'elles soient remises à jour par la tâche. 35015366.01 07/2008 85 Modes de marche 86 35015366.01 07/2008 Structure logicielle 5 Présentation Objet de ce chapitre Ce chapitre décrit les tâches et leur exécution dans l’automate. Contenu de ce chapitre Ce chapitre contient les sous-chapitres suivants : 35015366.01 07/2008 Souschapitre Sujet Page 5.1 Description des tâches 88 5.2 Structure monotâche 97 5.3 Structure multitâche 105 5.4 Modules fonctionnels 115 87 Structure logicielle 5.1 Description des tâches Présentation Objet de ce souschapitre Ce sous-chapitre décrit la rôle et le contenu de chacune des tâches pouvant constituées un programme PL7. Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : 88 Sujet Page Présentation de la tâche maître 89 Description des sections et des sous-programmes 90 Présentation de la tâche rapide 94 Présentation des traitements événementiels 95 35015366.01 07/2008 Structure logicielle Présentation de la tâche maître Généralités La tâche maître représente le programme principal, elle est obligatoire quel que soit la structure adoptée monotâche ou multitâche. Le programme de la tâche maître (MAST) est constitué de plusieurs modules de programmes appelés sections (voir Description des sections et des sousprogrammes, p. 90), et de sous-programmes. L'exécution de la tâche maître peut être choisie (en configuration) cyclique (voir Exécution cyclique, p. 99) ou périodique (voir Exécution périodique, p. 101). Illustration L’illustration suivante montre un exemple de tâche maître comportant 4 sections et 3 sous-programmes. Sections Sas (LD) Four_1 (Grafcet) PRL (LD) CHART Sous-programmes POST (IL) Séchage (LD) SR0 Nettoyage (ST) 35015366.01 07/2008 89 Structure logicielle Description des sections et des sous-programmes Présentation des sections Les sections sont des entités autonomes de programmation. Les étiquettes de repérage des lignes d'instructions, des réseaux de contacts ... sont propres à la section (pas de saut de programme possible vers une autre section). Elles se programment soit en : z z z z langage à contacts, liste d’instructions, littéral structuré, Grafcet. Les sections sont exécutées dans leur ordre de programmation dans la fenêtre du navigateur (vue structurelle). Les sections sont liées à une tâche, une même section ne peut pas appartenir simultanément à plusieurs tâches. Présentation des sousprogrammes Les modules sous-programmes se programment aussi comme des entités séparées soit en : z z z langage à contacts, liste d’instructions, littéral structuré, Les appels aux sous-programmes s’effectuent dans les sections ou depuis un autresous-programme (8 niveaux d’imbrications maximum). Les sous-programmes sont aussi liés à une tâche, un même sous-programme ne peut pas être appelé depuis plusieurs tâches. 90 35015366.01 07/2008 Structure logicielle Exemple Le dessin suivant donne l’exemple de structure d’une tâche en sections et sousprogrammes. Mast + Sections Sas + Four_1 Prl Chart Post Séchage Nettoyage + SR SR0 SR1 SR2 35015366.01 07/2008 91 Structure logicielle Caractéristiques d’une section Le tableau suivant décrit les caractéristiques d’une section. Caractéristique Description Nom 24 caractères maximum Langage Langage à contacts, Liste d’instructions, Littéral structuré ou Grafcet Tâche Maître ou rapide Condition (optionnel) z %M,%S,%X Objets autorisés comme condition : z bit indexé,bits extrait de mots z %I , %Q Tous ces objets sont forçables depuis le terminal excepté les bits %S, bits indexés ,bits extrait , %Ixy.i.ERR,et %I xy.MOD.ERR. La condition doit être à l’état 1 pour que la section soit exécutée. Commentaire 250 caractères maximum. Protection Protection en écriture, protection en lecture/écriture. La protection peut être globale ou partielle. Note : Sur démarrage à froid les conditions d'exécution sont à 0, toutes les sections auxquelles sont associées une condition sont inhibées. Section Grafcet 92 Le tableau suivant décrit les éléments de programme d’une section Grafcet. Traitement Désignation Caractéristiques Préliminaire PRL Programmé en Langage à contacts LD, Liste d’instructions IL ou Littéral structuré ST. Il est exécuté avant le Grafcet. Grafcet CHART Dans les pages Grafcet, sont programmées des réceptivités associées aux transitions et des actions associées aux étapes ou aux étapes de macro-étapes. Postérieur POST Programmé en Langage à contacts LD, Liste d’instructions IL ou Littéral structuré ST. Il est exécuté après le Grafcet. 35015366.01 07/2008 Structure logicielle Caractéristiques d’un sousprogramme 35015366.01 07/2008 Le tableau suivant décrit les caractéristiques d’un sous-programme SRi. Caractéristique Description Numéro 0 à 253 Langage Langage à contacts, Liste d’instructions, Littéral structuré. Tâche Maître ou rapide Commentaire 250 caractères maximum. 93 Structure logicielle Présentation de la tâche rapide Généralités Cette tâche plus prioritaire que la tâche maître MAST est périodique afin de laisser le temps à la tâche moins prioritaire de s'exécuter. De plus, les traitements qui lui sont associés doivent donc être courts pour ne pas pénaliser la tâche maître. Comme pour la tâche maître, le programme associé se compose de sections et de sous-programmes. Période de la tâche rapide La période de la tâche rapide FAST est fixée en configuration, de 1 à 255 ms. Celleci peut être définie supérieure à celle de la tâche maître MAST pour s'adapter à des traitements périodiques lents mais prioritaires. Le programme exécuté doit cependant rester court pour éviter le débordement des tâches moins prioritaires. La tâche rapide est contrôlée par un chien de garde qui permet de détecter une durée anormale du programme application. En cas de débordement, le bit système %S11 est positionné à 1 et l'application est déclarée en défaut bloquant pour l'automate. Contrôle de la tâche rapide Le mot système %SW1 contient la valeur de la période, il est initialisé sur reprise à froid par la valeur définie en configuration, il peut être modifié par l'utilisateur par programme ou terminal. Des bits et mots système, permettent de contrôler l'exécution de cette tâche : z z Visualisation des temps d'exécution de la tâche rapide Les mots système suivants permettent d'avoir des informations sur le temps de cycle : z z z 94 %S19 : signale un débordement de période, il est positionné à 1 par le système, lorsque le temps de cycle devient supérieur à la période de la tâche. %S31 : permet de valider ou d'inhiber la tâche rapide, il est mis à 0 par le système sur démarrage à froid de l'application, à la fin du premier cycle de la tâche maître. Il est mis à 1 ou à 0 pour valider ou inhiber la tâche rapide. %SW33 contient le temps d'exécution du dernier cycle, %SW34 contient le temps d'exécution du cycle le plus long, %SW35 contient le temps d'exécution du cycle le plus court. 35015366.01 07/2008 Structure logicielle Présentation des traitements événementiels Généralités Les traitements événementiels permettent de réduire le temps de réaction du logiciel sur des événements de commande en provenance de certains modules métiers. Ces traitements sont exécutés en priorité sur toutes les autres tâches. Elles conviennent donc aux traitements demandant des délais de réactions très courts par rapport à l’arrivée de l’événement. Le nombre de traitements événementiels programmables dépend du type de processeur. Fonctionnement Type d’automate Nombre de traitements Désignation Micro TSX 37-05/08/10 8 EVT1 à EVT8 Micro TSX 37-21/22 16 EVT0 à EVT15 Premium TSX/PCX 57-1• 32 EVT0 à EVT31 Premium TSX/PCX 57-2•/3•/4• 64 EVT0 à EVT63 L'apparition d'un événement déroute le programme application vers le traitement qui est associé à la voie d'entrées/sorties qui a provoqué l'événement. Les entrées (%I, %IW, %ID) associées à la voie d'E/S qui a déclenché l'événement sont mises à jour par le système avant l'appel du traitement événementiel. L'association entre une voie et un numéro d'événement est réalisée dans l'écran de configuration des voies. 35015366.01 07/2008 95 Structure logicielle Evénements de commande Ce sont des événements externes liés aux fonctions métiers. Sur automates MIcro, les traitements événementiels peuvent être déclenchés par : z z z z les entrées 0 à 3 du module de position 1, sur front montant ou descendant, la ou les voies de comptage des modules de comptage, les voies de comptage du module 1 (si celui-ci est configuré en compteur), la réception de télégrammes dans un TSX 37-21/22 équipé d'un module TSX FPP20. Sur automates Premium , les traitements événementiels peuvent être déclenchés par: z z z z z z Gestion des traitements événementiels les entrées des modules DEY 16 FK, DMY 28 FK, DMY 28 RFK les voies des modules de comptage, les voies des modules de commande d'axe TSX CAY •, les voies des modules de commande pas à pas TSX CFY •, les voies de communication "FPP20", ... Les traitements événementiels peuvent être globalement validés ou inhibés par le programme application, au travers du bit système %S38. Si un ou plusieurs événements interviennent pendant qu'ils sont inhibés, les traitements associés sont perdus. Deux instructions du langage PL7, MASKEVT() et UNMASKEVT(), utilisées dans le programme application, permettent également de masquer ou démasquer les traitements événementiels. Si un ou plusieurs événements interviennent pendant qu'ils sont masqués, ils sont mémorisés par le système et les traitements associés ne seront effectués qu'après démasquage. Priorité des traitements Automates Micro TSX 37-05/08/10 Les 8 événements de commande possibles ont tous le même niveau de priorité; de ce fait, un traitement événementiel n'est pas interruptible par un autre. Automates Micro TSX 37-21/22 ou Premium Il existe 2 niveaux de priorité pour les événements de commande : l'événement 0 (EVT0) est plus prioritaire que les autres événements. 96 35015366.01 07/2008 Structure logicielle 5.2 Structure monotâche Présentation Objet de ce souschapitre Ce sous-chapitre décrit comment s’exécute une application monotâche. Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet Structure logicielle monotâche Exécution cyclique 35015366.01 07/2008 Page 98 99 Exécution périodique 101 Contrôle du temps de cycle 104 97 Structure logicielle Structure logicielle monotâche Description Le programme d’une application monotâche est associé à une seule tâche utilisateur : la tâche maître MAST (voir Présentation de la tâche maître, p. 89). Le programme associé à la tâche maître (MAST) est constitué de plusieurs sections, et de sous-programmes. L'exécution de la tâche maître peut être choisie (en configuration) : z z 98 cyclique (voir Exécution cyclique, p. 99) ou périodique (voir Exécution périodique, p. 101) 35015366.01 07/2008 Structure logicielle Exécution cyclique Description Ce type de fonctionnement correspond à l'exécution normale du cycle automate (choix par défaut). Il consiste à enchaîner les uns après les autres, les cycles de la tâche maître (MAST). Après avoir effectué la mise à jour des sorties, le système réalise les traitements qui lui sont propres puis enchaîne un autre cycle de la tâche. Fonctionnement Le dessin suivant montre les phases d’exécution du cycle automate. Traitement du programme Traitement du programme T.I. %Q %I Cycle n Description des différentes phases 35015366.01 07/2008 T.I. %Q %I Cycle n+1 Le tableau ci-après décrit les phases de fonctionnement. Repère Phase Description T.I Traitement interne Le système réalise implicitement la surveillance de l'automate (gestion des bits et mots système, mise à jour des valeurs courantes de l'horodateur, mise à jour des voyants d'état, détection des passages RUN/STOP, ...) et le traitement des requêtes en provenance du terminal (modifications et animation). Dans le cas du Premium, le traitement interne est réalisé en parallèle avec les traitements des entrées et des sorties. %I Acquisition des Ecriture en mémoire de l'état des informations présentes sur les entrées entrées des modules TOR et métier associées à la tâche, - Traitement du programme %Q Mise à jour des Ecriture des bits ou des mots de sorties associés aux modules sorties TOR et métier associés à la tâche selon l'état défini par le programme application. Exécution du programme application, écrit par l'utilisateur, 99 Structure logicielle Mode de fonctionnement Automate en RUN, le processeur effectue dans l'ordre le traitement interne, l'acquisition des entrées, le traitement du programme application et la mise à jour des sorties. Automate en STOP, le processeur effectue : z z z Illustration le traitement interne, l'acquisition des entrées, et suivant la configuration choisie : z mode repli : les sorties sont mis en position de "repli" , z mode maintien : les sorties sont maintenues à leur dernière valeur. L’illustration suivante montre les cycles de fonctionnement. Traitement interne Acquisition des entrées RUN STOP Traitement du programme Mise à jour des sorties Contrôle du cycle 100 Le contrôle du cycle s'effectue par chien de garde (voir Contrôle du temps de cycle, p. 104). 35015366.01 07/2008 Structure logicielle Exécution périodique Description Dans ce mode de fonctionnement, l'acquisition des entrées, le traitement du programme application et la mise à jour des sorties s'effectuent de façon périodique selon un temps défini en configuration (de 1 à 255 ms). En début de cycle automate, un temporisateur dont la valeur courante est initialisée à la période définie en configuration, commence à décompter. Le cycle automate doit se terminer avant l'expiration de ce temporisateur qui relance un nouveau cycle. Fonctionnement Le dessin suivant montre les phases d’exécution du cycle automate. Traitement du programme Traitement du programme T.I. %Q %I T.I. T.I. %I Cycle n Description des différentes phases 35015366.01 07/2008 %Q T.I. Cycle n+1 Le tableau ci-après décrit les phases de fonctionnement. Repère Phase Description T.I Traitement interne Le système réalise implicitement la surveillance de l'automate (gestion des bits et mots système, mise à jour des valeurs courantes de l'horodateur, mise à jour des voyants d'état, détection des passages RUN/STOP, ...) et le traitement des requêtes en provenance du terminal (modifications et animation) Dans le cas du Premium, le traitement interne est réalisé en parallèle avec les traitements des entrées et des sorties. %I Acquisition des Ecriture en mémoire de l'état des informations présentes sur les entrées entrées des modules TOR et métier associés à la tâche, - Traitement du programme %Q Mise à jour des Ecriture des bits ou des mots de sorties associés aux modules sorties TOR et métier associés à la tâche selon l'état défini par le programme application. Exécution du programme application, écrit par l'utilisateur, 101 Structure logicielle Mode de fonctionnement Automate en RUN, le processeur effectue dans l'ordre le traitement interne, l'acquisition des entrées, le traitement du programme application et la mise à jour des sorties. z z Si la période n'est pas encore terminée, le processeur complète son cycle de fonctionnement jusqu'à la fin de la période par du traitement interne. Si le temps de fonctionnement devient supérieur à celui affecté à la période, l'automate signale un débordement de période par la mise à l'état 1 du bit système %S19 de la tâche, le traitement se poursuit et est exécuté dans sa totalité (il ne doit pas dépasser néanmoins le temps limite du chien de garde). Le cycle suivant est enchaîné après l'écriture implicite des sorties du cycle en cours. Automate en STOP, le processeur effectue : z z z 102 le traitement interne, l'acquisition des entrées, et suivant la configuration choisie : z mode repli : les sorties sont mis en position de "repli" , z mode maintien : les sorties sont maintenues à leur dernière valeur. 35015366.01 07/2008 Structure logicielle Illustration L’illustration suivante montre les cycles de fonctionnement. Lancement de la période Traitement interne Acquisition des entrées RUN STOP Traitement du programme Mise à jour des sorties Traitement interne Fin de période Contrôle du cycle Deux contrôles sont effectués : z z 35015366.01 07/2008 débordement de période (voir Contrôle du temps de cycle, p. 104), par chien de garde (voir Contrôle du temps de cycle, p. 104), 103 Structure logicielle Contrôle du temps de cycle Généralités La durée d'exécution de la tâche maître, en fonctionnement cyclique ou périodique, est contrôlée par l'automate (chien de garde) et ne doit pas dépasser la valeur définie en configuration Tmax (250 ms par défaut, 500 ms maximum). Chien de garde logiciel (fonctionnement périodique ou cyclique) Dans le cas de débordement, l'application est déclarée en défaut, ce qui provoque l'arrêt immédiat de l'automate. z z sur le Micro, la mise à 0 de la sortie alarme %Q2.0 si elle a été configurée, sur le Premium, la mise à 0 du relais alarme sur l'alimentation Le bit %S11 permet de contrôler l'exécution de cette tâche. Il signale un débordement du chien de garde, il est positionné à 1 par le système, lorsque le temps de cycle devient supérieur au chien de garde. Note : Sur le Premium, la valeur du chien de garde doit être supérieure à la période. Contrôle en fonctionnement périodique En fonctionnement périodique, un contrôle supplémentaire permet de détecter un dépassement de période : z z Exploitation des temps d'exécution de la tâche maître %S19 : signale un débordement de période, il est positionné à 1 par le système, lorsque le temps de cycle devient supérieur à la période de la tâche. %SW0 : ce mot contient la valeur de la période (en ms), il est initialisé sur reprise à froid par la valeur définie en configuration, il peut être modifié par l'utilisateur. Les mots système suivants permettent d'avoir des informations sur le temps de cycle : z z z %SW30 contient le temps d'exécution du dernier cycle. %SW31 contient le temps d'exécution du cycle le plus long, %SW32 contient le temps d'exécution du cycle le plus court. Note : Ces différentes informations sont accessibles aussi depuis l'éditeur de configuration de façon explicite. 104 35015366.01 07/2008 Structure logicielle 5.3 Structure multitâche Présentation Objet de ce souschapitre Ce sous-chapitre décrit comment s’exécute une application mutlitâche. Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet Structure logicielle multitâche 35015366.01 07/2008 Page 106 Séquencement des tâches dans une structure multitâche 108 Affectation des voies d’entrées/sorties aux tâches maître et rapide 110 Echanges d'entrées/sorties dans les traitements événementiels 112 105 Structure logicielle Structure logicielle multitâche Description Illustration La structure en tâches d'une telle application est la suivante : Tâche Désignation Description Maître MAST Toujours présente qui peut être cyclique ou périodique. Rapide FAST Optionnelle qui est toujours périodique. Evénementielle EVTi Appelés par le système lors de l'apparition d'un événement sur un coupleur d'entrées/sorties. Ces traitements sont optionnels et servent aux applications nécessitant des temps de réponse courts pour agir sur les entrées/sorties. Le dessin suivant montre les tâches d’une structure multitâche et leur niveau de priorité. Tâche maître - 106 Tâche rapide Priorité Traitements événementiels + 35015366.01 07/2008 Structure logicielle Exemple L’exemple suivant présente une structure multitâche composée d’une tâche maître MAST , d’une tâche rapide FAST et de 2 traitements événementiels EVT0 et EVT1. FAST MAST Sas (LD) Alarm_Sas (LD) Four_1 (Grafcet) Surv_Sec (LD) EVT0 Alarm_Four (ST) PRL (LD) Alarm_Nettoyage (ST) CHART POST (IL) SR0 Séchage (LD) SR0 Nettoyage (ST) 35015366.01 07/2008 107 Structure logicielle Séquencement des tâches dans une structure multitâche Généralités La tâche maître est par défaut active. La tâche rapide est par défaut active si elle est programmée. Le traitement événementiel est activé lors d'apparition de l'événement qui lui a été associé. Fonctionnement Le tableau suivant décrit l’exécution des tâches prioritaires. Phase Description du séquencement des tâches Description 1 Arrivée d'un événement ou début de cycle de la tâche rapide. 2 Arrêt de l'exécution des tâches en cours moins prioritaires, 3 Exécution de la tâche prioritaire. 4 La tâche interrompue reprend la main lorsque les traitements de la tâche prioritaire se termine. Le dessin suivant illustre le séquencement des tâches d’un traitement multitâche comportant une tâche maître cyclique, une tâche rapide de période 20ms et un traitement événementiel. E E v éne me nts Ma ît re Sy s t è m e ETS ETS Rapid e TS ET 20 ms E ETS ET 2 0 ms TS 2 0 ms E ETS TS T 20 ms Légende : E : acquisition des entrées T : traitement du programme S : mise à jour des sorties 108 35015366.01 07/2008 Structure logicielle Contrôle des tâches L'exécution des tâches rapide et événementielles peut être contrôlée par programme à travers l'utilisation des bits système : z z z 35015366.01 07/2008 %S30 permet d'activer ou pas la tâche maître MAST. %S31 permet d'activer ou pas la tâche rapide FAST. %S38 permet d'activer ou pas les traitements événementiels EVTi. 109 Structure logicielle Affectation des voies d’entrées/sorties aux tâches maître et rapide Généralités En plus du programme application, les tâches maître MAST et rapide FAST exécutent des fonctions système liées à la gestion des entrées/sorties implicites qui leur sont associées. L'association d'une voie ou d'un groupe de voies à une tâche est définie dans l'écran de configuration du coupleur correspondant; la tâche associée par défaut étant la tâche MAST. Modules TOR La modularité des modules TOR étant de 8 voies successives (voies 0 à 7, voies 8 à 15, ...), les entrées/sorties peuvent être affectées par groupes de 8 voies, indifféremment à la tâche MAST ou FAST. Exemple : il est possible d'affecter les voies d'un module 28 entrées/sorties de la manière suivante : z z z z Modules de comptage entrées 0 à 7 affectées à la tâche MAST, entrées 8 à 15 affectées à la tâche FAST, sorties 0 à 7 affectées à la tâche MAST, sorties 8 à 15 affectées à la tâche FAST. Chaque voie d'un module de comptage peut être affectée indifféremment à la tâche MAST ou FAST. Exemple : pour un module de comptage 2 voies, il est possible d'affecter : z z 110 la voie 0 à la tâche MAST, la voie 1 à la tâche FAST. 35015366.01 07/2008 Structure logicielle Modules analogiques Les voies des modules d'entrées analogiques du Micro sont obligatoirement affectées à la tâche MAST. Par contre, il est possible d'affecter les voies ou groupes de voies de sorties analogiques indifféremment à la tâche MAST ou FAST, avec une modularité de 2 voies. Exemple : pour un module de 4 sorties analogiques, il est possible d'affecter : z z les voies 0 et 1 à la tâche MAST et, les voies 2 et 3 à la tâche FAST. Les voies des modules d'entrées et sorties analogiques du Premium peuvent être affectées à la tâche MAST ou FAST. Cette affectation est individuelle pour chacune des voies des modules d'entrées ou de sorties analogiques isolées (4 voies isolées) et avec une modularité de 4 voies pour les autres modules. Note : Afin d’obtenir des performances optimales, il est préférable de regrouper les voies d’un module dans une même tâche. 35015366.01 07/2008 111 Structure logicielle Echanges d'entrées/sorties dans les traitements événementiels Généralités Il est possible d'utiliser à chaque traitement événementiel des voies d'entrées/ sorties autres que celle relative à l'événement. Les échanges sont alors réalisés implicitement par le système avant (%I) et après (%Q) le traitement applicatif. Ces échanges peuvent être relatifs à une voie (exemple module de comptage) ou à un groupe de voies (module TOR). Dans le second cas, si le traitement modifie par exemple les sorties 2 et 3 d'un module TOR, c'est l'image des sorties 0 à 7 qui sera transférée vers le module. Fonctionnement Le tableau suivant décrit les échanges et les traitements réalisés. Phase 112 Description 1 L'apparition d'un événement déroute le programme application vers le traitement qui est associé à la voie d'entrée/sortie qui a provoqué l'événement 2 Toutes les entrées associées à la voie qui a provoqué l'événement sont acquises automatiquement. 3 Toutes les entrées utilisées par l'utilisateur dans le traitement EVTi sont acquises. 4 Le traitement événementiel est exécuté. Il doit être le plus court possible. 5 Toutes les sorties utilisées par l'utilisateur dans le traitement EVTi sont mises à jour. Les sorties associées à la voie qui a provoqué l'événement doivent être également utilisées, pour être mise à jour. 35015366.01 07/2008 Structure logicielle Règle de programmation Règle générale : Les entrées échangées (et le groupe de voies associées) lors de l'exécution du traitement événementiel sont remis à jour (perte des valeurs historiques, donc des fronts), il faut donc éviter de tester des fronts sur ces entrées dans les tâches maître (MAST) ou rapide (FAST). Dans le cas des modules TOR TSX DEY16FK, TSX DMY28FK ou TSX DMY28RFK: L'entrée qui a déclenché l'événement ne doit pas être testée dans le traitement événementiel (la valeur n'est pas rafraîchie). Le test du front qui a déclenché l'événement doit être effectué sur le mot d'état: z z %IWxy.i:X0 = 1 --> front montant, %IWxy.i:X1 = 1 --> front descendant. Sur les automates Micro : z z Performances les modules d'entrées analogiques qui ne peuvent être utilisés que dans la tâche MAST, ne doivent pas être échangés dans un traitement événementiel. pour chaque traitement événementiel, il est possible de déclarer au maximum les échanges pour 2 modules en entrée (avant le traitement de l'événement) et 2 modules en sortie (après le traitement de l'événement). Sur les automates Premium, suivant le processeur utilisé, le nombre d'échanges utilisés est limité: Nombre d'échanges utilisables dans les traitements événementiels par processeur P57-1• P57-2• /3• /4• Entrées/sorties TOR 32 échanges 128 échanges Entrées/sorties analogiques 8 échanges 16 échanges Autres métier 4 échanges 16 échanges Pour les entrées/sorties TOR, un échange concerne un groupe de 8 voies, il est généré lors de l'utilisation des entrées d'un groupe de 8 voies (autre que le groupe de voies qui génère l'événement) et lors de l'écriture des sorties d'un groupe de 8 voies. Pour les entrées/sorties analogiques ou d'un autre métier, un échange est généré lors de l'utilisation des entrées d'une voie (autre que la voie qui génère l'événement et lors de l'écriture des sorties d'une voie). 35015366.01 07/2008 113 Structure logicielle Note : z Les échanges des entrées/sorties de la tâche EVTi, étant réalisés par voie (pour certains modules analogiques et métiers) ou par groupe de voies (pour les modules TOR et certains modules analogiques), si le traitement modifie par exemple les sorties 2 et 3 d’un module TOR, c’est l’image (mémoire automate) des sorties de 0 à 7 qui sera transférée vers le module. z Tout échange d’une entrée/sortie dans une tâche événementielle peut provoquer la perte de l’information de front vis à vis des traitement effectués sur cette voie (ou groupe de voie), dans la tâche où elle a été déclarée : MAST ou FAST. Visualisation du nombre d'événements traités Le mot système %SW48 donne le nombre d'événements traités. Ce mot est initialisé à 0 sur démarrage à froid puis incrémenté par le système lors du lancement d'un événement. Ce mot est modifiable par l'utilisateur. Le bit système %S39 signale la perte d'événement. 114 35015366.01 07/2008 Structure logicielle 5.4 Modules fonctionnels Structuration en modules fonctionnels Généralités Un module fonctionnel est un regroupement d'éléments de programme destinés à réaliser une fonction d’automatisme. Structure Un module fonctionnel est défini par les attributs suivants : nom court : 8 caractères (exemple : TR371) nom long : 16 caractères (exemple : Avance/Recule pour BT371) une fiche descriptive (sans limitation du nombre de caractères) non mémorisée dans l’automate mais mémorisée dans le fichier .STX de l’application. z z z Illustration L’illustration ci-après montre la composition d’un module fonctionnel : Prod1 - 35015366.01 07/2008 + Programme + Tables d’animation + Ecrans d’exploitation 115 Structure logicielle Description des éléments d’un module fonctionnel Limites d’utilisation 116 Le tableau décrit le rôle de chacun des éléments : Elément Composition Programme Un ou plusieurs modules de code : z sections z événements z macro-étapes z tables d'animation z ... Tables d’animation Une ou plusieurs tables d’animations. Mdm1 Modules fonctionnels de niveau inférieur, ces modules assumant, par rapport à la fonction principale, une ou plusieurs sous-fonctions d’automatisme. Seul le produit PL7 PRO permet la mise en oeuvre des modules fonctionnels sur les automates Premium. 35015366.01 07/2008 Description des langages PL7 II Présentation Objet de cet intercalaire Cet intercalaire décrit les langages de programmation des automates Micro et Premium. Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Page Langage à contacts 119 7 Langage liste d’instructions 133 8 Langage litteral structuré 151 9 10 35015366.01 07/2008 Titre du chapitre 6 Grafcet 175 Blocs fonction DFB 223 117 Langages PL7 118 35015366.01 07/2008 Langage à contacts 6 Présentation Contenu de ce chapitre Ce chapitre décrit la programmation en langage à contacts. Contenu de ce chapitre Ce chapitre contient les sujets suivants : 35015366.01 07/2008 Sujet Page Présentation générale du langage à contacts 120 Structure d’un réseau de contacts 121 Etiquette d’un réseau de contacts 122 Commentaire d’un réseau de contacts 123 Eléments graphiques du langage à contacts 124 Règles de programmation d’un réseau de contacts 127 Règle de programmation des blocs fonction 128 Règles de programmation des blocs opération 129 Exécution d’un réseau de contacts 130 119 Langage à contacts Présentation générale du langage à contacts Généralités Une section de programme écrite en langage à contacts se compose d’une suite de réseaux de contacts exécutés séquentiellement par l’automate. La représentation d'un réseau de contacts est proche de celle d'un schéma électrique. Illustration d’un réseau de contacts L’écran suivant présente un réseau de contacts PL7. 3 2 1 LD : MAST - CHART %L100 %I1.0 (* Attente de séchage*) %M12 %Q2.5 %I1.7 %TM4.Q %M17 %I1.10 %Q2.3 %M2 %I1.4 F2 Composition d’un réseau de contacts F3 P F4 %M27 %TM0 IN TM Q MODE TON TB: 1 mn TMP: 9999 MODIF: Y %M25 %MW0.X OPERATE %MW15:=%MW18+500 SR2 C N F5 X F6 F7 F8 F9 F10 F11 S F12 R S.F1 S.F2 OPER S.F3 COHP H S.F4 COHP V S.F5 S.F6 FB S.F7 F (...) S.F8 Ce tableau décrit les constituants d’un réseau de contacts. Repère Elément Fonction 1 Etiquette Repére un réseau de contacts (optionnel). 2 Commentaire Renseigne un réseau de contacts (optionnel). 3 Eléments graphiques z les entrées/sorties de l’automate (boutons-poussoirs, Ils représentent : détecteurs, relais, voyants...) z les fonctions d’automatismes (temporisateurs, compteurs...,), z les opérations arithmétiques, logiques et spécifiques, z les variables internes de l’automate. 120 35015366.01 07/2008 Langage à contacts Structure d’un réseau de contacts Introduction Un réseau s’inscrit entre deux barres de potentiel. Le sens de circulation du courant s'établit de la barre de potentiel gauche vers la barre de potentiel droite. Illustration Le dessin ci-après décrit la structure d’un réseau de contacts. 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 Barre de potentiel 7 8 9 10 11 . Zone action Zone test Description d’un réseau de contacts Un réseau de contacts est composé d’un ensemble d’éléments graphiques disposés sur une grille de : z z 16 lignes maximum et 11 colonnes (pour automates Premium), 7 lignes maximum et 11 colonnes (pour automates Micro). Il est réparti en deux zones : z z 35015366.01 07/2008 la zone test, dans laquelle figurent les conditions nécessaires à une action la zone action, qui applique le résultat consécutif à un enchaînement de test. 121 Langage à contacts Etiquette d’un réseau de contacts Généralités L’étiquette permet de repérer un réseau dans une entité de programme (programme principal, sous-programme, ...). Elle est optionnelle. Syntaxe Cette étiquette a la syntaxe suivante : %Li avec i compris entre 0 et 999. Elle se positionne à la partie supérieure gauche devant la barre de potentiel. Illustration Les réseaux de contacts suivant illustrent l’utilisation d’une étiquette. %M20 %L245 Etiquette %L245 %Q2.3 %M155 S Règles Un repère d’étiquette ne peut être affecté qu’à un seul réseau au sein d’une même entité de programme. Il est nécessaire d’étiqueter un réseau afin de permettre un branchement après un saut de programme (voir illustration ci-dessus). L’ordre des repères des étiquettes est quelconque, (c’est l’ordre de saisie des réseaux qui est pris en compte par le système lors de la scrutation). 122 35015366.01 07/2008 Langage à contacts Commentaire d’un réseau de contacts Généralités Le commentaire facilite l’interprétation du réseau auquel il est affecté, mais n’est pas obligatoire. Syntaxe Le commentaire est intégré au réseau et comprend 222 caractères alphanumériques au maximum, encadrés de part et d'autre par les caractères (* et *). Illustration Le dessin ci-dessous repère la position du commentaire. Zone commentaire Règles Les commentaires s’affichent dans la zone réservée dans la partie supérieure du réseau de contacts. En cas de suppression d’un réseau, le commentaire qui lui est associé est également supprimé. Les commentaires sont mémorisés dans l’automate et sont accessibles à tout moment par l’utilisateur. A ce titre, ils consomment de la mémoire programme 35015366.01 07/2008 123 Langage à contacts Eléments graphiques du langage à contacts Généralités Les éléments graphiques sont les instructions du langage à contacts. Contacts Les éléments graphiques des contacts se programment en zone test et occupent une cellule (1 ligne de hauteur et 1 colonne de largeur). Désignation Contact à ouverture Contact passant quand l’objet bit qui le pilote est à l’état 0. Contact à détection de front montant Front montant : détection du passage de 0 à 1 de l’objet bit qui le pilote. P N Front descendant : détection du passage de 1 à 0 de l’objet bit qui le pilote. Les éléments graphiques de liaison permettent de relier les éléments graphiques de test et d’action. Désignation 124 Fonctions Contact passant quand l’objet bit qui le pilote est à l’état 1. Contact à détection de front descendant Eléments de liaison Graphisme Contact à fermeture Graphisme Fonctions Connexion horizontale Permet de relier en série les éléments graphiques de test et d’action entre les deux barres de potentiel. Connexion verticale de potentiel Permet de relier en parallèle les éléments graphiques de test et d’action. Dérivation courtcircuit Permet de relier 2 objets au travers de plusieurs connexions. 35015366.01 07/2008 Langage à contacts Bobines Les éléments graphiques des bobines se programment en zone action et occupent une cellule (1 ligne de hauteur et une colonne de largeur). Désignation Graphisme Bobine directe L’objet bit associé prend la valeur du résultat de la zone test. Bobine inverse L’objet bit associé prend la valeur inverse du résultat de la zone test. Bobine d’enclenchement S L’objet bit associé est mis à 1 lorsque le résultat de la zone test est à 1. Bobine de déclenchement R L’objet bit associé est mis à 0 lorsque le résultat de la zone test est à 1. Saut conditionnel à un autre réseau (JUMP) ->>%Li Bobine dièse # Bobine appel à un sous-programme (CALL) Retour de sousprogramme C <RETURN> Arrêt programme <HALT> 35015366.01 07/2008 Fonctions Permet un branchement à un réseau étiqueté, amont ou aval. Les sauts ne sont effectifs qu’au sein d'une même entité de programmation (programme principal, sousprogramme,...). L’exécution d’un saut provoque : z l’arrêt de la scrutation du réseau en cours, z l’exécution du réseau étiqueté demandé, z la non scrutation de la partie du programme située entre l’action de saut et le réseau désigné. Proposée en langage Grafcet, utilisée lors de dièse la programmation des réceptivités associées aux transistions provoque le passage à l'étape suivante. Permet un branchement en début de sousprogramme lorsque le résultat de la zone de test sousprogramme est à 1. L'exécution d'un appel à un sous-programme provoque : z l’arrêt de la scrutation du réseau en cours, z l’exécution du sous-programme, z la reprise de la scrutation du réseau interrompu. Réservée au sous-programme SR, permet le retour au module appelant lorsque le résultat de la zone de test est à 1. Provoque l'arrêt de l'exécution du programme lorsque le résultat de la zone de test est à 1. 125 Langage à contacts Blocs fonction standard Les éléments graphiques des blocs fonction standard se programment en zone test et occupent une dimension d'une hauteur de 16 lignes maximum et une largeur 3 colonnes. Désignation Graphisme Blocs Temporisateur, Compteur, Monostable, Registre, Programmateur cyclique Blocs fonction DFB Chacun des blocs fonctions standards utilise des entrées, des sorties, des entrées/sorties permettant de les reliés aux autres éléments graphiques. Les éléments graphiques des blocs fonction DFB se programment en zone test et occupent une dimension d'une hauteur de 16 lignes maximum et une largeur 3 colonnes. Désignation Graphisme Blocs programmables Blocs opération Fonctions Chacun des blocs fonctions DFB utilise des entrées, des sorties, des entrées/sorties permettant de les relier aux autres éléments graphiques pour les objets de type bits ou pouvant être affectés à des objets numériques ou tableaux Les éléments graphiques des blocs opération se programment en zone test et occupent les dimensions mentionnées ci-dessous. Désignation 126 Fonctions Graphisme Fonctions Bloc comparaison vertical Permet la comparaison de 2 opérandes, suivant le résultat, la sortie correspondante passe à 1. Dimension : 2 colonnes/4 lignes Bloc comparaison horizontal Permet la comparaison de 2 opérandes, la sortie passe à 1 lorsque le résultat est vérifié (un bloc peut contenir jusqu'à 4096 caractères). Dimension : 2 colonnes/1 ligne Bloc Opération Réalise les opérations arithmétiques, logiques…fait appel à la syntaxe du langage littéral structuré. (Un bloc peut contenir jusqu'à 4096 caractères). Dimension : 4 colonnes/1 ligne 35015366.01 07/2008 Langage à contacts Règles de programmation d’un réseau de contacts Généralités La programmation d'un réseau de contacts s'effectue à l'aide des éléments graphiques, en respectant les règles de programmation ci-après. Règles de programmation Les éléments graphiques simples de test et d’action occupent chacun une cellule au sein d’un réseau. Toute ligne de contacts commence sur la ligne de potentiel gauche et doit se terminer sur la ligne de potentiel droite. Les tests sont toujours situés sur les colonnes 1 à 10. Les actions sont toujours situées sur la colonne 11. Le sens de circulation du courant est le suivant : z z Exemple de réseau de contacts 35015366.01 07/2008 pour les liaisons horizontales, de la gauche vers la droite, pour les liaisons verticales, dans les deux sens. L’écran suivant présente un exemple de réseau de contacts. 127 Langage à contacts Règle de programmation des blocs fonction Généralités Les blocs fonction standard se positionnent dans la zone test des réseaux de contacts. Règles de programmation des blocs fonction Quel que soit le type de bloc fonction utilisé, il doit obligatoirement être relié en entrée à la barre de potentiel gauche, en direct ou à travers d’autres éléments graphiques. z z sorties "en l’air" : il n’est pas nécessaire de relier à d’autres éléments graphiques les sorties des blocs fonction, sorties testables : les sorties des blocs fonction sont accessibles à l’utilisateur sous forme d’objet bit. Les variables internes de blocs et les sorties graphiques sont des objets exploitables à distance depuis une autre partie du programme. Les entrées non câblées des blocs fonction standard sont mises à 0. Comme pour les éléments graphiques du type contacts, il est possible de réaliser des combinaisons de blocs fonction. Exemple d’un réseau de contacts 128 L’illustration suivante présente un exemple d’un réseau de contacts contenant 2 blocs fonction. 35015366.01 07/2008 Langage à contacts Règles de programmation des blocs opération Généralités Les blocs comparaison se positionnent dans la zone test et les blocs opération se positionnent dans la zone action. Règles de programmation des blocs opération Quel que soit le type de bloc opération utilisé, il doit obligatoirement être relié en entrée à la barre de potentiel gauche, en direct ou à travers d’autres éléments graphiques. Exemple de blocs opération L’illustration suivante présente un exemple d’un réseau de contacts contenant 2 blocs de comparaison et un bloc opération. Comme pour les éléments graphiques du type contacts, il est possible de réaliser des combinaisons de blocs fonction et opération. %TM10 %I3.6 %MW1>100 %I1.2 %MW2>500 35015366.01 07/2008 IN Q TYP:TP TB:100ms TM.P:200 MODIF:Y %Q6.3 %TM2.P:=3450 129 Langage à contacts Exécution d’un réseau de contacts Réseau connexe Un réseau connexe contient des éléments graphiques tous reliés entre eux par des éléments de liaison (hors barre de potentiel), mais indépendants des autres éléments graphiques du réseau (pas de liaisons verticales vers le haut ou vers le bas en limite de réseau connexe). Illustration de réseaux connexes Le réseau de contacts suivant est composé de 3 réseaux connexes. Réseau connexe 2 Réseau connexe 1 Réseau connexe 3 Règle d’exécution de réseaux connexes Le premier réseau connexe évalué est celui dont le coin gauche est situé le plus en haut à gauche. Un réseau connexe est évalué dans le sens de l'équation : évaluation du réseau de haut en bas, ligne par ligne, et dans chaque ligne de gauche à droite. Dans le cas où une liaison verticale de convergence est rencontrée, le sous réseau qui lui est associé est évalué (selon la même logique) avant de continuer l'évaluation du réseau qui l'englobe. 130 35015366.01 07/2008 Langage à contacts Exécution des éléments dans un réseau connexe Le tableau suivant décrit l’ordre d’exécution des éléments dans un réseau connexe.. Phase Description 1 Le système évalue l'état logique de chaque contact, en fonction de : z la valeur courante des objets internes de l'application, z l'état des entrées des modules d'entrées/sorties acquis en début de cycle 2 Le système exécute les traitements associés aux fonctions, aux blocs fonctions, et aux sous-programmes, 3 Le système met à jour les objets bits associés aux bobines (la mise à jour des sorties des modules d'entrées/sorties s'effectue en fin de cycle), 4 Le système débranche vers un autre réseau étiqueté du même module programme (saut à un autre réseau ->>%Li), retour au module appelant <RETURN>, ou arrêt du programme <HALT>, Exemple 1 : illustration Le dessin suivant visualise l’ordre d’exécution des éléments graphiques. Exemple 1 : fonctionnement Le tableau suivant décrit l'exécution des éléments graphiques dans le réseau illustré ci-dessus. Phase 35015366.01 07/2008 Description 1 Evaluation du réseau jusqu'à rencontre de la 1ère liaison verticale de convergence : contacts A, B, C. 2 Evaluation du premier sous réseau : contact D, 3 Poursuite de l'évaluation du réseau jusqu'à la rencontre de la deuxième liaison verticale de convergence: contact E, 4 Evaluation du 2ème sous réseau : contacts F et G, 5 Evaluation de la bobine H. 131 Langage à contacts Exemple 2 : illustration Le dessin suivant visualise l’ordre d’exécution des éléments graphiques. Exemple 2 : fonctionnement Le tableau suivant décrit l'exécution des éléments graphiques dans le réseau illustré ci-dessus. Phase 132 Description 1 bobine 1 : INIT, %M5, %M7, %Q2.1, 2 bobine 2 : %M4, %MW2:X1,AUTO, UP_1, 3 Bloc opération. 35015366.01 07/2008 Langage liste d’instructions 7 Présentation Généralités Ce chapitre décrit les régles de programmation en langage liste d’instructions. Contenu de ce chapitre Ce chapitre contient les sujets suivants : 35015366.01 07/2008 Sujet Page Présentation générale du langage liste d’instructions 134 Structure d’un programme liste d’instructions 135 Etiquette d’une phrase en langage liste d’instructions 136 Commentaire d’une phrase en langage liste d’instructions 137 Présentation des instructions en langage liste d’instructions 138 Règle d’utilisation des parenthèses en langage liste d’instructions 142 Description des instructions MPS, MRD et MPP 145 Principes de programmation des blocs fonction prédéfinis 147 Règles d’exécution d’un programme liste d’instructions 149 133 Langage liste d’instructions Présentation générale du langage liste d’instructions Généralités Une section écrite en langage liste d’instructions se compose d’une suite d’instructions exécutées séquentiellement par l’automate. Illustration d’un programme L’illustration suivant présente un programme liste d’instructions PL7 et le détail d’une instruction.. !%L0: LD ANDN OR( AND ) AND ST %I1.0 %M12 %TM4.Q %M17 LD %I3.5 %I3.7 %Q2.5 !%L2: Composition d’une instruction LD Code instruction %I1.0 Opérande Ce tableau décrit les constituants d’une instruction. Elément Fonction Code instruction Le code instruction détermine l’opération à exécuter. Il existe 2 types de codes instructions : z test, dans laquelle figurent les conditions nécessaires à une action (ex : LD, AND, OR...), z action, qui sanctionne le résultat consécutif à un enchaînement de test. (ex : ST, STN, R, ...). Opérande Une instruction agit sur un opérande. Cet opérande peut être : z une entrée/sortie de l’automate (boutons-poussoirs, détecteurs, relais, voyants...), z une fonctions d’automatisme (temporisateurs, compteurs...), z une opération arithmétique et logique ou une opération de transfert, z une variable interne de l’automate. 134 35015366.01 07/2008 Langage liste d’instructions Structure d’un programme liste d’instructions Généralités Comme en langage à contacts, les instructions sont organisées en séquence d'instructions (équivalent à un réseau de contacts) appelée phrase. Exemple de phrase L’illustration suivante présente une phrase liste d’instructions PL7. Description d’une phrase !(*Attente de séchage*) %L2 : LD %I1.0 AND %M10 ST %Q2.5 3 Chaque phrase commence par un point d'exclamation (généré automatiquement), elle comporte les éléments suivants. Repère 35015366.01 07/2008 1 2 Elément Fonction 1 Commentaire Renseigne une phrase (optionnel). 2 Etiquette Repère une phrase (optionnel). 3 Instructions Une à plusieurs instructions de test, le résultat de ces instructions étant appliqué à une ou plusieurs instructions d'action. Une instruction occupe une ligne maximum 135 Langage liste d’instructions Etiquette d’une phrase en langage liste d’instructions Généralités L’étiquette permet de repérer une phrase dans une entité de programme (programme principal, sous-programme, ...). Elle est optionnelle. Syntaxe Cette étiquette a la syntaxe suivante : %Li avec i compris entre 0 et 999. Elle se positionne en début d’une phrase. Illustration Le programme suivant illustre l’utilisation d’une étiquette. %L0 : LD JMPC %M40 %L10 !(*Attente de séchage*) %L2 : LD %I1.0 AND %M10 ST %Q2.5 ... %L10 : LD %I3.5 ANDN %Q4.3 OR %M20 ST %Q2.5 Règles Etiquette Une même étiquette ne peut être affectée qu’à une seule phrase au sein d’une même entité de programme. Il est nécessaire d’étiqueter une phrase afin de permettre un branchement après un saut de programme. L’ordre des repères des étiquettes est quelconque, c’est l’ordre de saisie des phrases qui est prise en compte par le système lors de la scrutation. 136 35015366.01 07/2008 Langage liste d’instructions Commentaire d’une phrase en langage liste d’instructions Généralités Le commentaire facilite l’interprétation d’une phrase auquel il est affecté. Il est optionnel. Syntaxe Le commentaire peut être intégré au début d'une phrase et peut occuper 3 lignes maximum (soit 222 caractères alphanumériques), encadrés de part et d'autre par les caractères (* et *). Illustration L’illustration ci-après repère la position du commentaire dans une phrase. !(*Attente de séchage*) %L2 : LD %I1.0 AND %M10 ST %Q2.5 Règles Commentaire Les commentaires s’affichent uniquement à partir de la première ligne de la phrase. En cas de suppression d’une phrase, le commentaire qui lui est associé est également supprimé. Les commentaires sont mémorisés dans l’automate et sont accessibles à tout moment par l’utilisateur. A ce titre, ils consomment de la mémoire programme. 35015366.01 07/2008 137 Langage liste d’instructions Présentation des instructions en langage liste d’instructions Généralités Le langage liste d’instructions comporte des instructions : z z z z Instructions de test de test d’action sur bloc fonction numériques Le tableau suivant décrit les instructions de test du langage liste d’instructions.. Désignation Graphisme équivalent LD Le résultat booléen est égal à l’état de l’opérande. LDN Le résultat booléen est égal à l’état inverse de l’opérande. LDR P Le résultat booléen passe à 1 à la détection du passage de 0 à 1 de l’opérande (front montant). N Le résultat booléen passe à 1 à la détection du passage de 1 à 0 de l’opérande (front descendant). LDF AND Le résultat booléen est égal au Et logique entre le résultat booléen de l’instruction précédente et l’état de l’opérande. ANDN Le résultat booléen est égal au Et logique entre le résultat booléen de l’instruction précédente et l’état inverse de l’opérande. ANDR P Le résultat booléen est égal au Et logique entre le résultat booléen de l’instruction précédente, et la détection d’un front montant de l’opérande (1=front montant). N Le résultat booléen est égal au Et logique entre le résultat booléen de l’instruction précédente, et la détection d’un front descendant de l’opérande (1=front descendant). ANDF 138 Fonctions OR Le résultat booléen est égal au Ou logique entre le résultat booléen de l’instruction précédente et l’état de l’opérande. ORN Le résultat booléen est égal au Ou logique entre le résultat booléen de l’instruction précédente et l’état inverse de l’opérande. 35015366.01 07/2008 Langage liste d’instructions Désignation Graphisme équivalent ORR P ORF N Le résultat booléen est égal au Ou logique entre le résultat booléen de l’instruction précédente, et la détection d’un front montant de l’opérande (1=front montant). Le résultat booléen est égal au Et logique entre le résultat booléen de l’instruction précédente et l’état de l’opérande., et la détection d’un front descendant de l’opérande (1=front descendant). AND( Et logique (8 niveaux de parenthèses) OR( Ou logique (8 niveaux de parenthèses) XOR, XORN, XORR, XORF - MPS MRD MPP N 35015366.01 07/2008 Fonctions Ou exclusif Aiguillage vers des bobines. - Négation 139 Langage liste d’instructions Instructions d’action Le tableau suivant décrit les instructions de test du langage liste d’instructions. Désignation Graphisme ST L’opérande associé prend la valeur du résultat de la zone test. STN L’opérande associé prend la valeur inverse du résultat de la zone test. S S L’opérande associé est mis à 1 lorsque le résultat de la zone test est à 1. R L’opérande associé est mis à 0 lorsque le résultat de la zone test est à 1. R Instruction sur bloc fonction JMP - Permet un branchement inconditionnel à une phrase étiquetée, amont ou aval. JMPC - Permet un branchement conditionné à un résultat booléen à 1 , à une phrase étiquetée amont ou aval. JMPCN - Permet un branchement conditionné à un résultat booléen à 0 , à une phrase étiquetée amont ou aval. SRn - Branchement en début de sous-programme. RET - Retour de sous-programme. RETC - Retour de sous-programme conditionné à un résultat booléen à 1. RETCN - Retour de sous-programme conditionné à un résultat booléen à 0. END - Fin de programme. ENDC - Fin de programme conditionné à un résultat booléen à 1. ENDCN - Fin de programme conditionné à un résultat booléen à 0. Le tableau suivant décrit les instructions de test du langage liste d’instructions.. Désignation Blocs Temporisateur, Compteur, Monostable, Registre, Programmateur cyclique 140 Fonctions Graphisme Fonctions Pour chacun des blocs fonction standards, il existe des instructions permettant de piloter le bloc. Une forme structurée permet de câbler directement les entrées/sorties des blocs. 35015366.01 07/2008 Langage liste d’instructions Instructions numériques 35015366.01 07/2008 Le tableau suivant décrit les instructions de test du langage liste d’instructions. Désignation Instructions Fonctions Elément de test LD[.....] AND[.....] OR[.....] Permet la comparaison de 2 opérandes, la sortie passe à 1 lorsque le résultat est vérifié. Exemple : LD[%MW10<1000] Résultat à 1 lorsque %MW10<1000. Elément d’action [.....] Réalisent les opérations arithmétiques, logiques... Utilisent la syntaxe du langage littéral structuré. Exemple : [%MW10:=%MW0+100] Le résultat de l’opération %MW0+100 est placé dans le mot interne %MW10. 141 Langage liste d’instructions Règle d’utilisation des parenthèses en langage liste d’instructions Généralités Les instructions AND et OR peuvent utiliser des parenthèses. Ces parenthèses permettent de réaliser des schémas à contacts de façon simple. Principe L'ouverture de parenthèses est associée à l'instruction AND ou OR. La fermeture de parenthèses est une instruction, elle est obligatoire pour chaque parenthèse ouverte. Exemple : AND( Exemple : OR( Les deux programmes suivants illustrent l’utilisation de la parenthèse. LD AND OR ST %I1.0 %I1.1 %I1.2 %Q2.0 LD AND( OR ) ST %I1.0 %I1.1 %I1.2 Le programme suivant illustre l’utilisation de la parenthèse. LD AND OR(N AND ) ST 142 %Q2.0 %I1.0 %I1.1 %I1.2 %I1.3 %Q2.0 35015366.01 07/2008 Langage liste d’instructions Association des parenthèses à des modificateurs 35015366.01 07/2008 Les "modificateurs" suivants peuvent être associés aux parenthèses. Code Rôle Exemple N Négation AND(N F Front descendant (Falling edge) AND(F R Front montant (Rising edge) OR(R [ Comparaison OR([%MW0>100] 143 Langage liste d’instructions Imbrication de parenthèses Il est possible d’imbriquer jusqu’à 8 niveaux de parenthèses. Les règles ci-après doivent être suivies : z z z Chaque parenthèse ouverte doit être impérativement refermée Les étiquettes %Li: ne doivent pas être placées dans des expressions entre parenthèses, ainsi que les instructions de saut JMP et d'appel à sous programme SRi, Les instructions d'affectation ST, STN, S et R ne doivent pas être programmées entre parenthèses. Exemple : Les programmes suivants illustrent l’utilisation de l’imbrication des parenthèses. 144 LD AND( OR(N AND ) ) ST %I1.0 %I1.1 %I1.2 %M3 LD AND( AND OR(N AND ) AND OR(N AND ) ) ST %I1.1 %I1.2 %I1.3 %I1.5 %I1.6 %Q2.0 %I1.4 %I1.7 %I1.8 %Q2.0 35015366.01 07/2008 Langage liste d’instructions Description des instructions MPS, MRD et MPP Généralités Les 3 types d'instruction permettent de traiter les aiguillages vers les bobines. Ces instructions utilisent une mémoire intermédiaire appelée pile pouvant stocker jusqu'à 3 informations booléennes... Note : Ces instructions ne peuvent pas être utilisées au sein d'une expression entre parenthèses Rôle Exemple 1 Le tableau suivant décrit le rôle de chacune des instructions Instruction Rôle MPS (Memory PuSh) Cette instruction a pour effet de stocker le résultat de la dernière instruction de test au sommet de la pile et de décaler les autres valeurs vers le fond de la pile. MRD (Memory ReaD) Cette instruction lit le sommet de la pile. MPP (Memory PoP) Cette instruction a pour effet de lire, de déstocker le sommet de la pile et de décaler les autres valeurs vers le sommet de la pile. Cet exemple illustre l’utilisation des instructions MPS, MRD, et MPP. LD AND MPS AND ST MRD AND ST MRD AND ST MPP AND ST 35015366.01 07/2008 %I1.0 %M0 %I1.1 %Q2.0 %I1.2 %Q2.1 %I1.3 %Q2.2 %I1.4 %Q2.3 145 Langage liste d’instructions Exemple 2 Cet exemple illustre le fonctionnement des instructions MPS, MRD, et MPP. LD MPS AND MPS AND( OR ) ST MPP AND ST MRD AND ST MPP AND ST 146 %I1.0 %I1.1 %I1.3 %M0 %Q2.0 %M1 %Q2.1 %I1.4 %Q2.2 %M10 %Q2.3 35015366.01 07/2008 Langage liste d’instructions Principes de programmation des blocs fonction prédéfinis Généralités Les blocs fonctions d’automatisme peuvent être programmés de 2 façons différentes : z z Principe de programmation directe avec instructions spécifiques à chaque bloc fonction (ex: CU %Ci), cette façon est la plus simple et la plus directe, avec instructions de structuration de bloc BLK ,OUT_BLK, END_BLK. Les instructions pilotent les entrées des blocs (ex: CU). Les sorties sont accessibles sous forme de bit (ex: %C8.D). Exemple : Cet exemple illustre la programmation directe d’un bloc fonction compteur. Traitement des entrées Traitement des sorties 35015366.01 07/2008 147 Langage liste d’instructions Principe de programmation structurés Ce type de programmation utilise une suite d' instructions encadrée par les instructions : z z z BLK indique le début du bloc OUT_BLK permet de câbler directement les sorties du bloc END_BLK indique la fin du bloc Exemple : Cet exemple illustre la programmation structurée d’un bloc fonction compteur. BLK %C8 LD %I1.1 R LDN %I1.2 ANDN %M0 CU OUT_BLK LD D ST %Q2.0 END_BLK Traitement des entrées Traitement des sorties Note : Ce principe de programmation structuré nécessitant les instructions supplémentaires BLK, OUT_BLK et END_BLK demande des volumes mémoires supérieurs par rapport à la programmation directe. Il est cependant à utiliser, si vous voulez garder une similitude avec des programmes réversibles pour nanoautomates TSX 07. 148 35015366.01 07/2008 Langage liste d’instructions Règles d’exécution d’un programme liste d’instructions Principe L’exécution d’un programme liste d'instructions s'effectue séquentiellement instruction par instruction. La première instruction d'une séquence d'instructions doit toujours être soit une instruction LD soit une instruction inconditionnelle (ex : JMP). Chaque instruction (excepté LD et les instructions inconditionnelles) utilise le résultat booléen de l'instruction précédente. Exemple 1 Le programme ci-après décrit l’exécution complète d’une phrase. LD AND OR ST Exemple 2 résultat = état du bit %I1.1 résultat = ET du résultat booléen précédent et de l'état du bit %M0 résultat = OU du résultat booléen précédent et de l'état du bit %M10 %Q2.0 prend l'état du résultat booléen précédent Les parenthèses permettent de modifier l'ordre de prise en compte des résultats booléens : LD AND OR( AND ) ST 35015366.01 07/2008 %I1.1 %M0 %M10 %Q2.0 %I1.1 %M0 %M10 %I1.2 résultat = état du bit %I1.1 résultat = ET du résultat booléen précédent et de l'état du bit %M0 résultat = état du bit %M10 résultat = ET du résultat booléen précédent et de l'état du bit %M10 %Q2.0 %Q2.0 prend l'état du résultat booléen précédent 149 Langage liste d’instructions Exemple 3 Le séquencement des instructions peut être modifié par les instructions de saut JMP d’appel à sous-programme. ! ! ! 150 LD JMPC LD AND ST %L10: LD AND ...... %M0 %L10 %I1.1 %M10 %Q2.0 Saut à l’étiquette %L10 si %M0=1 %I1.3 %M20 35015366.01 07/2008 Langage litteral structuré 8 Présentation Objet de ce chapitre Ce chapitre décrit les règles de programmation en langage littéral structuré. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Présentation du langage littéral structuré 35015366.01 07/2008 Page 152 Structure d’un programme en langage littéral structuré 153 Etiquette d’une phrase en langage littéral structuré 154 Commentaire d’une phrase en langage littéral structuré 155 Instructions sur objets bits 156 Instructions arithmétiques et logiques 157 Instructions sur tableaux et chaîne de caractères 159 Instructions de conversions numériques 162 Instructions sur programme et instructions spécifiques 163 Structure de contrôle conditionnelle IF...THEN 165 Structure de contrôle conditionnelle WHILE...END_WHILE 167 Structure de contrôle conditionnelle REPEAT...END_REPEAT 168 Structure de contrôle conditionnelle FOR...END_FOR 169 Instruction de sortie de boucle EXIT 170 Règles d’exécution d’un programme littéral structuré 171 151 Langage littéral structuré Présentation du langage littéral structuré Généralités Le langage littéral structuré est un langage évolué de type algorithmique particulièrement adapté à la programmation de fonctions arithmétiques complexes, manipulations de tableaux et gestions de messages. Il permet la réalisation de programmes par écriture de lignes de programmation, constituées de caractères alphanumériques. Limite d’utilisation Ce langage est utilisable avec les logiciels PL7 Micro, PL7 Junior et PL7 Pro sur les automates Premium et Micro. Dans la version PL7 Pro, ce langage permet la création des blocs fonction utilisateur DFB sur les automates Premium. Illustration d’un programme L’illustration suivante présente un programme en langage structuré PL7. ! (* Recherche du premier élément non nul dans un tableau de 32 mots, détermination de sa valeur (%MW10), de son rang (%MW11). Cette recherche s’effectue si %M0 est à 1, %M1 est mis à 1 si un élément non nul existe, sinon il est mis à 0*) IF %M0 THEN FOR %MW99:=0 TO 31 DO IF %MW100[%MW99]<>0 THEN %MW10:=%MW100[%MW99]; %MW11:=%MW99; %M1:=TRUE; EXIT; (*Sortie de la boucle*) ELSE %M1:=FALSE; END_IF; END_FOR; ELSE %M1:=FALSE; END_IF; 152 35015366.01 07/2008 Langage littéral structuré Structure d’un programme en langage littéral structuré Généralités Une section de programme littéral est organisée en phrases. Une phrase littérale est l’équivalent d’un réseau de contacts en langage à contacts. Exemple de phrase L’illustration suivante présente une phrase en langage structurée PL7. 1 Description d’une phrase ! %L20: (*Attente de séchage*) SET %M0; %MW4:=%MW2 + %MW9; (*calcul de pression*) %MF12:=SQRT (%MF14); 2 3 Chaque phrase commence par un point d'exclamation (généré automatiquement), elle comporte les éléments suivants. Repère Elément Fonction 1 Etiquette Repère une phrase. 2 Commentaire Renseigne une phrase. 3 Instructions Une à plusieurs instructions séparées par ";". Note : Chacun de ces éléments est optionnel, c'est-à-dire qu’il est possible d’avoir une phrase vide, une phrase constituée uniquement de commentaires ou uniquement d'une étiquette. 35015366.01 07/2008 153 Langage littéral structuré Etiquette d’une phrase en langage littéral structuré Rôle L’étiquette permet de repérer une phrase dans une entité de programme (programme principal, sous-programme, ...). Elle est optionnelle. Syntaxe Cette étiquette a la syntaxe suivante : %Li : avec i compris entre 0 et 999. Elle se positionne en début d’une phrase. Illustration Le programme suivant illustre l’utilisation d’une étiquette. ! Règles %L20 : (*Attente de séchage*) SET %M0; %MW4:=%MW2 + %MW9; (*calcul de pression*) %MF12:=SQRT (%MF14); Etiquette Une même étiquette ne peut être affectée qu’à une seule phrase au sein d’une même entité de programme. Il est nécessaire d’étiqueter une phrase afin de permettre un branchement après un saut de programme. L’ordre des repères des étiquettes est quelconque, c’est l’ordre de saisie des phrases qui est prise en compte par le système lors de la scrutation. 154 35015366.01 07/2008 Langage littéral structuré Commentaire d’une phrase en langage littéral structuré Rôle Le commentaire facilite l’interprétation d’une phrase à laquelle il est affecté. Il est optionnel. Syntaxe Le commentaire peut être intégré n’importe où dans la phrase et le nombre de commentaires par phrase n’est pas limité. Un commentaire est encadré de part et d’autre par les caractères (* et *). Illustration L’illustration ci-après repère la position du commentaire dans une phrase. ! Règles z z z z %L20 (*Attente de séchage*) SET %M0; %MW4:=%MW2 + %MW9; (*calcul de pression*) %MF12:=SQRT (%MF14); Commentaires Tous les caractères sont autorisés dans un commentaire. Le nombre de caractères est limité à 256 par commentaire. Les commentaires imbriqués sont interdits. Un commentaire peut tenir sur plusieurs lignes. Les commentaires sont mémorisés dans l’automate et sont accessibles à tout moment par l’utilisateur. A ce titre, ils consomment de la mémoire programme. 35015366.01 07/2008 155 Langage littéral structuré Instructions sur objets bits Instructions sur bits Instructions sur tableaux de bits 156 Les instructions suivantes s’appliquent sur des objets bits. Désignation Fonction := Affectation d'un bit OR OU booléen AND ET booléen XOR OU exclusif booléen NOT Inversion RE Front montant FE Front descendant SET Mise à 1 RESET Mise à 0 Les instructions suivantes s’appliquent sur des objets de type tableau de bits. Désignation Fonction Tableau := Tableau Affectation entre deux tableaux Tableau := Mot Affectation d'un mot à un tableau Mot := Tableau Affectation d'un tableau à un mot Tableau := Double mot Affectation d'un double mot à un tableau Double mot := Tableau Affectation d'un tableau à un double mot COPY_BIT Copie d'un tableau de bits dans un tableau de bits AND_ARX ET entre deux tableaux OR_ARX OU entre deux tableaux XOR_ARX OU exclusif entre deux tableaux NOT_ARX Négation sur un tableau BIT_W Copie d'un tableau de bits dans un tableau de mots BIT_D Copie d'un tableau de bits dans un tableau de doubles mots W_BIT Copie d'un tableau de mots dans un tableau de bits D_BIT Copie d'un tableau de doubles mots dans un tableau de bits LENGHT_ARX Calcul de la longueur d'un tableau en nombre d'éléments 35015366.01 07/2008 Langage littéral structuré Instructions arithmétiques et logiques Arithmétique entière sur mots et doubles mots Arithmétique sur flottants 35015366.01 07/2008 Les instructions suivantes s’appliquent sur des objets mots et doubles mots.. Désignation Fonction +, -, *, / Addition, Soustraction, Multiplication, Division entière REM Reste de la division entière SQRT Racine carrée entière ABS Valeur absolue INC Incrémentation DEC Décrémentation Les instructions suivantes s’appliquent sur des objets flottants.. Désignation Fonction +, -, *, / Addition, Soustraction, Multiplication, Division SQRT Racine carrée ABS Valeur absolue TRUNC Partie entière LOG Logarithme base 10 LN Logarithme népérien EXP Exponentielle naturelle EXPT Exponentiation d'un réel par un réel COS Cosinus d'une valeur en radian SIN Sinus d'une valeur en radian TAN Tangente d'une valeur en radian ACOS Arc cosinus (résultat entre 0 et 2 p) ASIN Arc sinus (résultat entre -p/2 et +p/2) ATAN Arc tangente (résultat entre -p/2 et +p/2) DEG_TO_RAD Conversion degrés en radians RAD_TO_DEG Conversion radians en degrés 157 Langage littéral structuré Instructions logiques sur mots et doubles mots Comparaisons numériques sur mots, doubles mots et flottants 158 Les instructions suivantes s’appliquent sur des objets mots et doubles mots. Désignation Fonction AND ET logique OR OU logique XOR OU logique exclusif NOT Complément logique SHL Décalage logique à gauche SHR Décalage logique à droite ROL Décalage logique circulaire à gauche ROR Décalage logique circulaire à droite Les instructions suivantes s’appliquent sur des objets mots, doubles mots et flottants. Désignation Fonction < Strictement inférieur à > Strictement supérieur à <= Inférieur ou égal à >= Supérieur ou égal à = Egal à <> Différent de 35015366.01 07/2008 Langage littéral structuré Instructions sur tableaux et chaîne de caractères Instructions sur tableaux de mots et doubles mots Les instructions suivantes s’appliquent sur des tableaux de mots et doubles mots. Désignation Fonction Tableau := Tableau Affectation entre deux tableaux Tableau := Mot Initialisation d'un tableau +, -, *, /, REM Opérations arithmétiques entre tableaux +, -, *, /, REM Opérations arithmétiques entre expressions et tableaux SUM Sommation des éléments d'un tableau EQUAL Comparaison de deux tableaux NOT Complément logique d'un tableau AND, OR, XOR Opérations logiques entre deux tableaux AND, OR, XOR Opérations logiques entre expressions et tableaux FIND_EQW, FIND_EQD Recherche du premier élément égal à une valeur FIND_GTW, FIND_GTD Recherche du premier élément supérieur à une valeur FIND_LTW, FIND_LTD Recherche du premier élément inférieur à une valeur MAX_ARW, MAX_ARD Recherche de la valeur maximum dans un tableau MIN_ARW, MIN_ARD Recherche de la valeur minimum dans un tableau OCCUR_ARW, OCCUR_ARD Nombre d'occurrences d'une valeur dans un tableau SORT_ARW, SORT_ARD Tri par ordre croissant ou décroissant d'un tableau ROL_ARW, ROL_ARD Décalage circulaire à gauche d'un tableau ROR_ARW, ROR_ARD Décalage circulaire à droite d'un tableau FIND_EQWP,FIND_EQDP Recherche du premier élément égal à une valeur depuis un rang LENGTH_ARW, LENGTH_ARD Calcul de longueur d'un tableau 35015366.01 07/2008 159 Langage littéral structuré Instructions sur tableaux de flottants 160 Les instructions suivantes s’appliquent sur des tableaux de flottants. Désignation Fonction Tableau := Tableau Affectation entre deux tableaux Tableau := Flottant Initialisation d'un tableau SUM_ARR Sommation des éléments d'un tableau EQUAL_ARR Comparaison de deux tableaux FIND_EQR Recherche du premier élément égal à une valeur FIND_GTR Recherche du premier élément supérieur à une valeur FIND_LTR Recherche du premier élément inférieur à une valeur MAX_ARR Recherche de la valeur maximum dans un tableau MIN_ARR Recherche de la valeur minimum dans un tableau OCCUR_ARR Nombre d'occurrences d'une valeur dans un tableau SORT_ARR Tri par ordre croissant ou décroissant d'un tableau ROL_ARR Décalage circulaire à gauche d'un tableau ROR_ARR Décalage circulaire à droite d'un tableau LENGTH_ARR Calcul de longueur d'un tableau 35015366.01 07/2008 Langage littéral structuré Instructions sur chaînes de caractères 35015366.01 07/2008 Les instructions suivantes s’appliquent sur des chaînes de caractères. Désignation Fonction STRING_TO_INT Conversion ASCII í Binaire (mot simple format) STRING_TO_DINT Conversion ASCII í Binaire (mot double format) INT_TO_STRING Conversion Binaire í (mot simple format) ASCII DINT_TO_STRING Conversion Binaire í (mot double format) ASCII STRING_TO_REAL Conversion ASCII í Flottant REAL_TO_STRING Conversion Flottant í ASCII <, >, <=, >=, =, <> Comparaison alphanumérique FIND Position d'une sous-chaîne EQUAL_STR Position du premier caractère différent LEN Longueur d'une chaîne de caractères MID Extraction d'une sous-chaîne INSERT Insertion d'une sous-chaîne DELETE Suppression d'une sous-chaîne CONCAT Concaténation de deux chaînes REPLACE Remplacement d'une chaîne LEFT Début de chaîne RIGHT Fin de chaîne 161 Langage littéral structuré Instructions de conversions numériques Instructions de conversions numériques 162 Les instructions réalisent des conversions de bits, mots, double mots et flottants. Désignation Fonction BCD_TO_INT Conversion BCD í Binaire INT_TO_BCD Conversion Binaire í BCD GRAY_TO_INT Conversion Gray í Binaire INT_TO_REAL Conversion d'un entier simple format en flottant DINT_TO_REAL Conversion d'un entier double format en flottant REAL_TO_INT Conversion d'un flottant en entier simple format REAL_TO_DINT Conversion d'un flottant en entier double format DBCD_TO_DINT Conversion d'un nombre BCD 32 bits en entier 32 bits DINT_TO_DBCD Conversion d'un entier 32 bits en nombre BCD 32 bits DBCD_TO_INT Conversion d'un nombre BCD 32 bits en entier 16 bits INT_TO_DBCD Conversion d'un entier 16 bits en nombre BCD 32 bits LW Extraction du mot de poids faible d'un double mot HW Extraction du mot de poids fort d'un double mot CONCATW Concaténation de 2 mots simples 35015366.01 07/2008 Langage littéral structuré Instructions sur programme et instructions spécifiques Instructions sur programme Les instructions suivantes n’agissent pas sur des objets du langage mais sur le déroulement du programme. Désignation Instructions de gestion du temps 35015366.01 07/2008 Fonction HALT Arrêt de l'exécution du programme JUMP Saut à une étiquette SRi Appel de sous-programme RETURN Retour de sous-programme MASKEVT Masquage des événements dans l'automate UNMASKEVT Démasquage des événements dans l'automate Les instructions suivantes effectuent des opérations sur les dates, heures et sur les durées. Désignation Fonction SCHEDULE Fonction hordateur RRTC Lecture date système WRTC Mise à jour de la date système PTC Lecture date et code arrêt ADD_TOD Ajout d'une durée à une heure du jour ADD_DT Ajout d'une durée à une date et heure DELTA_TOD Mesure d'écart entre heures du jour DELTA_D Mesure d'écart entre dates (sans heure) DELTA_DT Mesure d'écart entre dates (avec heure) SUB_TOD Remontée dans le temps sur heure SUB_DT Remontée dans le temps sur date et heure DAY_OF_WEEK Lecture du jour courant de la semaine TRANS_TIME Conversion durée en date DATE_TO_STRING Conversion d'une date en chaîne de caractères TOD_TO_STRING Conversion d'une heure en chaîne de caractères DT_TO_STRING Conversion d'une date complète en chaîne de caractères TIME_TO_STRING Conversion d'une durée en chaîne de caractères 163 Langage littéral structuré Instructions "Orphée" Instructions de temporisation 164 Les instructions suivantes sont des instructions spécifiques du langages Orphée. Désignation Fonction WSHL_RBIT, DSHL_RBIT Décalage à gauche sur mot avec récupération des bits décalés WSHR_RBIT, DSHR_RBIT Décalage à droite sur mot avec extension de signe et récupération des bits décalés WSHRZ_C, DSHRZ_C Décalage à droite sur mot avec remplissage par 0 et récupération des bits décalés SCOUNT Comptage/décomptage avec signalisation de dépassement ROLW,ROLD Décalage circulaire gauche RORW,RORD Décalage circulaire droite Ces instructions sont des fonctions de temporisation destinées à être utilisés pour la programmation du code des DFB. Désignation Fonction FTON Temporisation à l'enclenchement FTOF Temporisation au déclenchement FTP Temporisation d'impulsion FPULSOR Générateur de signaux rectangulaires 35015366.01 07/2008 Langage littéral structuré Structure de contrôle conditionnelle IF...THEN Rôle Cette structure de contrôle réalise une ou plusieurs actions si une condition est vrai. Dans sa forme générale les conditions peuvent être multiples. Forme simple Dans sa forme simple, la structure de contrôle a la syntaxe et le fonctionnement suivant. Syntaxe Fonctionnement Début du IF IF condition THEN non vérifiée Condition actions ; END_IF; vérifiée Action Fin du IF Exemple : ! (*Action conditionnelle IF (forme simple)*) IF %M0 AND %M12 THEN RESET %M0; INC %MW4; %MW10:=%MW8+%MW9; END_IF; 35015366.01 07/2008 165 Langage littéral structuré Forme générale Dans sa forme générale, la structure de contrôle a la syntaxe et le fonctionnement suivant. Syntaxe Fonctionnement Début du IF IF condition1 THEN actions1; ELSEIF condition2 THEN vérifiée Actions 1 vérifiée actions2; Actions 2 ELSE Condition 1 non vérifiée Condition 2 non vérifiée Actions 3 actions3; END_IF; Fin du IF Exemple : ! (*Action conditionnelle IF (forme simple)*) IF %M0 AND %M1 THEN %MW5:=%MW3+%MW4; SET %M10; ELSEIF %M0 OR %M1 THEN %MW5:=%MW3-%MW4; SET %M11; ELSE RESET %M10; RESET %M11; END_IF; Règle de programmation z z z z z 166 Les conditions peuvent être multiples. Chaque action représente une liste d'instructions. Plusieurs structures de contrôle IF peuvent être imbriquées. Le nombre de ELSIF est illimité. Il y a au maximum une partie ELSE 35015366.01 07/2008 Langage littéral structuré Structure de contrôle conditionnelle WHILE...END_WHILE Rôle Cette structure de contrôle réalise une action répétitive tant qu’une condition est vérifiée. Description La structure de contrôle a la syntaxe et le fonctionnement suivant. Syntaxe WHILE condition DO Fonctionnement Début du WHILE action ; END_WHILE; non vérifiée Condition vérifiée Action Fin du WHILE Exemple : ! (*Action itérative conditionnelle WHILE*) WHILE %MW4<12 DO INC %MW4; SET %M25[%MW4]; END_WHILE; Règle de programmation z z z z La condition peut être multiple. L’ action représente une liste d'instructions. Le test sur la condition est effectué avant d'exécuter l'action. Si lors de la première évaluation de la condition, sa valeur est fausse, alors l'action n'est jamais exécutée Plusieurs structures de contrôle WHILE peuvent être imbriquées. Note : L’instruction EXIT (voir Rôle, p. 170) permet d’arrêter l’exécution de la boucle et de continuer sur l’instruction suivant le END_WHILE. 35015366.01 07/2008 167 Langage littéral structuré Structure de contrôle conditionnelle REPEAT...END_REPEAT Rôle Cette structure de contrôle réalise une action répétitive jusqu’à ce qu’une condition soit vérifiée. Description La structure de contrôle a la syntaxe et le fonctionnement suivant : Syntaxe REPEAT Fonctionnement Début du REPEAT Action action ; UNTIL condition END_REPEAT; non vérifiée Condition vérifiée Fin du REPEAT Exemple : ! (*Action itérative conditionnelle REPEAT*) REPEAT INC %MW4; SET %M25[%MW4]; UNTIL %MW4>12 END_REPEAT; Règle de programmation z z z z La condition peut être multiple. L’ action représente une liste d'instructions. Le test sur la condition est effectué après avoir exécuté l'action. Si lors de la première évaluation de la condition, sa valeur est fausse, alors l'action est exécutée une fois. Plusieurs structures de contrôle REPEAT peuvent être imbriquées. Note : L’instruction EXIT (voir Rôle, p. 170) permet d’arrêter l’exécution de la boucle et de continuer sur l’instruction suivant le END_REPEAT. 168 35015366.01 07/2008 Langage littéral structuré Structure de contrôle conditionnelle FOR...END_FOR Rôle Cette structure de contrôle réalise un traitement un certain nombre de fois en incrémentant de 1 un indice à chaque boucle. Description La structure de contrôle a la syntaxe et le fonctionnement suivant. Syntaxe FOR indice:=valeur valeur finale DO Fonctionnement initiale TO Début du FOR Valeur initiale --> Indice action ; END_FOR; vérifiée Indice > Valeur finale non vérifiée Action Fin du FOR Indice+1 --> Indice Exemple : ! (*Action répétitive FOR*) FOR %MW4=0 TO %MW23+12 DO SET %M25[%MW4]; END_FOR; Règle de programmation z z z z z z Lorsque l'indice est strictement supérieur à la valeur finale, l'exécution se poursuit sur l'instruction suivant le END_FOR. L'incrémentation de l'indice est effectuée automatiquement et n'est donc pas à votre charge. L'action représente une liste d'instructions. La valeur initiale et la valeur finale sont forcément des expressions numériques de type mot. L'indice est forcément un objet de type mot accessible en écriture. Plusieurs structures de contrôle FOR peuvent être imbriquées. Note : L’instruction EXIT (voir Rôle, p. 170) permet d’arrêter l’exécution de la boucle et de continuer sur l’instruction suivant le END_FOR. 35015366.01 07/2008 169 Langage littéral structuré Instruction de sortie de boucle EXIT Rôle Cette instruction permet d’arrêter l’exécution de la boucle et de continuer sur l’instruction suivant l’instruction de fin de boucle. Règle de programmation z z Exemple Cette instruction n’est utilisable que dans les actions d’une des 3 boucles WHILE, REPEAT ou FOR. Cette instruction est rattachée à la boucle englobante la plus proche, c’est-à-dire qu’elle n’arrête pas l’exécution de toutes les boucles qui l’englobent. Dans cet exemple, l’instruction EXIT permet d’arrêter la boucle REPEAT mais en aucun cas la boucle WHILE. ! (*Instruction de sortie de boucle EXIT*) WHILE %MW1<124 DO %MW2:=0; %MW3:=%MW100[%MW1]; REPEAT %MW500[%MW2]:=%MW3+%MW500[%MW2]; IF(%MW500[%MW2]>32700) THEN EXIT; END_IF; INC %MW2; UNTIL %MW2>25 END_REPEAT; INC %MW1; END_WHILE; 170 35015366.01 07/2008 Langage littéral structuré Règles d’exécution d’un programme littéral structuré Généralités L'exécution d'un programme littéral s'effectue séquentiellement, instruction par instruction en respectant les structures de contrôle. Dans le cas d'expressions arithmétiques ou booléennes composées de plusieurs opérateurs, des règles de priorité sont définies entre les différents opérateurs. Règle de priorité des opérateurs Le tableau ci-dessous donne la priorité pour l'évaluation d'une expression du plus prioritaire ou moins prioritaire. Opérateur Symbole Priorité Parenthèses (expression) Plus forte Complément logique Inversion - sur opérande + sur opérande NOT NOT + Multiplication Division Modulo * / REM Addition Soustraction + - Comparaisons <,>,<=,>= Comparaison égalité Comparaison inégalité = <> ET logique ET booléen AND AND OU exclusif logique OU exclusif booléen XOR XOR OU logique OU booléen OR OR Moins forte Note : Lorsqu'il y a conflit entre deux opérateurs de même niveau de priorité, c'est le premier opérateur qui l'emporte (l'évaluation se fait de la gauche vers la droite). 35015366.01 07/2008 171 Langage littéral structuré Exemple 1 Dans l’exemple ci-après, le NOT est appliqué sur le %MW3 puis le résultat est multiplié par 25. La somme de %MW10 et %MW12 est ensuite calculée, puis le ET logique entre le résultat de la multiplication et de l'addition. NOT %MW3 * 25 AND %MW10 + %MW12 Exemple 2 Dans cet exemple, la multiplication de %MW34 par 2 est d’abord effectuée, puis le résultat est utilisé pour effectuer le modulo. %MW34 * 2 REM 6 Utilisation des parenthèses Les parenthèses sont utilisées pour modifier l'ordre d'évaluation des opérateurs, pour permettre par exemple de rendre une addition prioritaire sur une multiplication. Vous pouvez imbriquer les parenthèses et le niveau d'imbrication n'est pas limité. Les parenthèses peuvent également être utilisées afin d'éviter toute mauvaise interprétation du programme. Exemple 1 Dans cet exemple, l'addition est d'abord effectuée puis la multiplication : (%MW10+%MW11)*%MW12 Exemple 2 Cet exemple montre que les parenthèses peuvent être utilisées afin d'éviter toute mauvaise interprétation du programme. NOT %MW2 <> %MW4 + %MW6 En utilisant les règles de priorité des opérateurs, l'interprétation est la suivante : ((NOT %MW2) <> (%MW4 + %MW6)) Mais vous pouvez penser que l’opération est la suivante : NOT (%MW2 <> (%MW4 + %MW6)) Les parenthèses permettent donc de clarifier le programme. 172 35015366.01 07/2008 Langage littéral structuré Conversions implicites Les conversions implicites concernent les mots et les doubles mots. Les opérateurs que vous utilisez dans les expressions arithmétiques, dans les comparaisons et l'opérateur affectation effectuent ces conversions implicites (qui ne sont donc pas à la charge de l'utilisateur). Pour une instruction de la forme : <opérande 1> <opérateur> <opérande 2>, les cas possibles de conversions sont : Opérande 1 de type Opérande 2 de type Conversion Opérande 1 Conversion Opérande 2 Opération dans le type Mot Mot Non Non Mot Mot Double mot Double mot Non Double mot Double mot Mot Non Double mot Double mot Double mot Double mot Non Non Double mot Pour une affectation de la forme <opérande gauche> := <opérande droite>, c'est l'opérande de gauche qui impose le type attendu pour effectuer l'opération, ce qui signifie que l'opérande de droite doit être convertie si nécessaire suivant le tableau : Type opérande gauche Type opérande droite Conversion opérande droite Mot Mot Non Mot Double mot Mot Double mot Mot Double mot Double mot Double mot Non Note : Toute opération entre deux valeurs immédiates est effectuée en double longueur. 35015366.01 07/2008 173 Langage littéral structuré 174 35015366.01 07/2008 Grafcet 9 Présentation Objet de ce chapitre Ce chapitre décrit les règles de programmation en Grafcet. Contenu de ce chapitre Ce chapitre contient les sous-chapitres suivants : 35015366.01 07/2008 Souschapitre Sujet Page 9.1 Présentation générale du Grafcet 176 9.2 Règle de construction du Grafcet 184 9.3 Programmation des actions et des conditions 193 9.4 Macro-étapes 204 9.5 Section Grafcet 209 175 Grafcet 9.1 Présentation générale du Grafcet Présentation Objet de ce souschapitre Ce sous-chapitre décrit les éléments de base d’un Grafcet. Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet Présentation du Grafcet 176 Page 177 Description des symboles graphiques du Grafcet 178 Description des objets spécifiques au Grafcet 180 Possibilités du Grafcet 182 35015366.01 07/2008 Grafcet Présentation du Grafcet Généralités Le langage Grafcet est conforme au langage "Diagramme fonctionnel en séquence" (SFC) de la norme IEC 1131-3. Le Grafcet permet de représenter graphiquement et de façon structurée le fonctionnement d’un automatisme séquentiel. Présentation Cette description graphique du comportement séquentiel de l’automatisme et des différentes situations qui en découlent, s’effectue à l’aide de symboles graphiques simples. Etape initiale 1 Transition 2 Divergence en ET 3 Actions 7 Divergence en OU 4 Actions 5 8 Actions Convergence en OU 9 6 Convergence en ET 10 35015366.01 07/2008 Actions Etape 177 Grafcet Description des symboles graphiques du Grafcet Description Désignation Le tableau suivant décrit les éléments graphiques de base du Grafcet. Symbole Fonctions Etapes initiales i ou i Etapes simples i ou i Symbolisent les étapes initiales actives en début de cycle après une initialisation ou une reprise à froid. Symbolisent un état stable de l'automatisme. Le nombre d'étapes maximum (y compris les étapes initiales) est configurable de : z 1 à 96 pour un TSX 37-10, z 1 à 128 pour un TSX 37-20, z 1 à 250 pour un TSX 57. Le nombre maximum d'étapes actives simultanément est configurable. Macro-étapes Symbolise une macro-étape : ensemble unique d'étapes et de transitions. Le nombre de macro-étapes maximum est configurable de 0 à 63 pour TSX 57 uniquement. i Etape de Macroétapes i ou i IN ou OUT Symbolisent les étapes d'une macro-étapes. Le nombre maximum d'étapes pour chaque macro-étapes est configurable de 0 à 250 pour TSX 57. Chaque macro-étape comporte une étape IN et OUT. Transitions Permettent le passage d'une étape à une autre. Une réceptivité associée à cette transition permet de définir les conditions logiques nécessaires au franchissement de cette transition. Le nombre de transitions maximum est de 1024, il n'est pas configurable. Le nombre maximum de transitions valides simultanément est configurable. Divergences en ET Transition d'une étape vers plusieurs étapes : permet l'activation simultanée de 11 étapes au maximum. Convergences en ET Transition de plusieurs étapes vers une seule : permet la désactivation simultanée de 11 étapes au maximum. 178 35015366.01 07/2008 Grafcet Désignation Symbole Fonctions Divergences en OU Transition d'une étape vers plusieurs étapes : permet de réaliser un aiguillage vers 11 étapes au maximum. Convergences en OU Transition de plusieurs étapes vers une seule : permet de réaliser une fin d’aiguillage venant de 11 étapes au maximum. Renvois d’origine "n" est le numéro de l'étape "d'où l'on vient" (étape d'origine). n Renvoi de destination "n" est le numéro de l'étape "où l'on va" (étape de destination). n Liaisons orientées vers : z le haut z le bas z la droite ou la gauche Ces liaisons permettent de réaliser un aiguillage, un saut d'étapes, une reprise d'étapes (séquence). Note : Le nombre maxi d'étapes (étapes du graphe principal + étapes de macroétapes) dans la section Grafcet ne doit pas dépasser 1024 sur TSX 57. 35015366.01 07/2008 179 Grafcet Description des objets spécifiques au Grafcet Généralités Le Grafcet dispose d'objets bits associés aux étapes, de bits système spécifiques , d'objets mots indiquant le temps d'activité des étapes et de mots système spécifiques. Objets Grafcet Le tableau suivant décrit l’ensemble des objets associés au Grafcet. Désignation Description %Xi Bits associés aux étapes (1=étape active) %XMj Etat de l'étape i du Grafcet principal %Xj.i Bits système associés au Grafcet (i de 0 à n) (n dépend du processeur) Etat de la macro-étape j (j de 0 à 63 pour TSX /PMX/PCX 57) Etat de l'étape i de la macro-étape j %Xj.IN Etat de l'étape d'entrée de la macro-étape j %Xj.OUT Etat de l'étape de sortie de la macro-étape j %S21 Provoque l'initialisation du Grafcet %S22 Provoque la remise à zéro générale du Grafcet %S23 Provoque le figeage du Grafcet %S24 Provoque la remise à 0 de macro-étapes en fonction des mots système %SW22 à %SW25 %S25 Mis à 1 sur : z débordement des tables (étapes/transition), z exécution d'un graphe incorrect (renvoi de destination sur une étape qui n'appartient pas au graphe). Mots associés aux étapes Mots système associés au Grafcet 180 %Xi.T Temps d'activité de l'étape i du Grafcet principal %Xj.i.T Temps d'activité de l'étape i de la macro-étape j %Xj.IN.T Temps d'activité de l'étape d'entrée de la macro-étape j %Xj.OUT.T Temps d'activité de de l'étape de sortie de la macro-étape j %SW20 Mot permettant de connaître pour le cycle courant le nombre d'étapes actives, à activer et à désactiver. %SW21 Mot permettant de connaître pour le cycle courant le nombre de transitions valides, à valider ou à invalider. %SW22 à %SW25 Suite de 4 mots permettant de désigner les macro- étapes à remettre à 0 sur mise à 1 du bit %S24. 35015366.01 07/2008 Grafcet Bits associés aux étapes Les bits associés aux étapes %Xi, aux macro-étapes %XMi, et aux étapes de macro-étapes %Xj.I , %Xj.IN et %Xj.OUT ont les propriétés suivantes : z z z Temps d’activité Les mots temps d'activité des étapes %Xi.T et des étapes de macro-étapes %Xj.I , %Xj.IN et %Xj.OUT ont les propriétés suivantes : z z z z z z 35015366.01 07/2008 Ils sont à 1 lorsque les étapes sont actives. Ils peuvent être testés dans toutes les tâches, mais ne peuvent être écrits que dans le traitement préliminaire de la tâche maître (prépositionnement des graphes). Ces tests et actions sont programmés soit en langage à contacts, soit en langage liste d'instructions, soit en langage littéral. Ils sont indexables. Ils sont incrémentés toutes les 100 ms et prennent une valeur de 0 à 9999. Incrémentation du mot : pendant l'activité de l'étape associée. A la désactivation de l'étape, le contenu est figé. A l'activation de l'étape, le contenu est remis à zéro puis incrémenté. Le nombre de mots temps d'activité n'est pas configurable, un mot est réservé pour chaque étape. Ces mots sont indexables. 181 Grafcet Possibilités du Grafcet Généralités Le traitement séquentiel est structuré en : z z 1 sous ensemble : Graphe principal, 64 sous ensembles : Macro-étapes, Ces sous-ensembles sont eux-mêmes divisés en 8 pages. Illustration L’illustration suivante décrit la structure générale en page du Grafcet. Macro-étape 63 Graphe principal Macro-étape 0 Page 7 Page 7 Page 1 Page 0 182 Page 1 Page 0 35015366.01 07/2008 Grafcet Caractéristiques Elles dépendent du processeur à programmer, elles sont récapitulées dans le tableau ci-dessous. Nombre TSX 37-20 TSX 57 Par défaut TSX 37-10 Maxi Par défaut Maxi Par défaut Maxi Etapes du Graphe principal 96 96 128 128 128 250 Macro-étapes 0 0 0 0 8 64 Etapes de macroétapes 0 0 0 0 64 250 Total d'étapes 96 96 128 128 640 1024 Etapes actives simultanément 16 96 20 128 40 250 Transitions valides simultanément 20 192 24 256 48 400 Le nombre de transitions synchrones (ou nombre de convergences en ET) ne doit pas dépasser 64, le nombre total de transitions étant toujours de 1024. 35015366.01 07/2008 183 Grafcet 9.2 Règle de construction du Grafcet Présentation Objet de ce souschapitre Ce sous- chapitre décrit les règles de base pour construire les graphes du Grafcet. Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : 184 Sujet Page Représentation du Grafcet 185 Utilisation des divergences et convergences OU 186 Utilisation des divergences et convergences ET 187 Utilisation des renvois 188 Utilisation des liaisons orientées 191 Commentaire Grafcet 192 35015366.01 07/2008 Grafcet Représentation du Grafcet Généralités Le graphe principal et chacune des macro-étapes se programment sur 8 pages (page 0 à 7). Une page Grafcet est constituée de 14 lignes et 11 colonnes qui définissent 154 cellules. Dans chaque cellule, il est possible de saisir un élément graphique. Illustration Le dessins ci-dessous illustre le découpage d’une page Grafcet. 1 2 3 4 5 6 7 8 9 10 11 1 0 2 3 1 4 5 2 6 7 3 8 9 10 11 12 13 14 Règles d'écriture z z z z z z 35015366.01 07/2008 La première ligne permet de saisir des renvois d'origine. La dernière ligne permet de saisir des renvois de destination. Les lignes paires (de 2 à 12) sont des lignes d'étapes (pour les étapes renvois de destination). Les lignes impaires (de 3 à 13) sont des lignes de transitions (pour les transitions et les renvois d'origine). Chaque étape est repérée par un numéro différent (0 à 127) dans un ordre quelconque. Des graphes différents peuvent être représentés sur une même page. 185 Grafcet Utilisation des divergences et convergences OU Rôle Une divergence OU est un aiguillage d’une étape vers plusieurs étapes. Une convergence OU réalise une fin d’aiguillage. Illustration Le dessin ci-dessous présente une divergence OU de une étape vers 9 étapes et une convergence OU. 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Règle d’utilisation z z z z 186 Le nombre de transitions en amont d'une fin d'aiguillage (convergence en OU) ou en aval d'un aiguillage (divergence en OU) ne doit pas dépasser 11. Un aiguillage peut se tracer vers la gauche ou vers la droite. Un aiguillage doit généralement se terminer par une fin d'aiguillage. Pour éviter de franchir simultanément plusieurs transitions, les réceptivités associées doivent être exclusives. 35015366.01 07/2008 Grafcet Utilisation des divergences et convergences ET Rôle Une divergence ET permet l’activation simultanée de plusieurs étapes. Une convergence ET permet la désactivation simultanée de plusieurs étapes. Illustration Le dessin ci-dessous présente une divergence et une convergence ET de 6 étapes. 41 42 43 44 45 46 47 48 49 50 51 52 53 54 Règles d’utilisation z z z z 35015366.01 07/2008 Le nombre d'étapes en aval d'une activation simultanée (divergence en ET) ou en amont d'une désactivation simultanée (convergence en ET) ne doit pas dépasser 11. Une activation simultanée d'étapes doit généralement se terminer par une désactivation simultanée d'étapes. L'activation simultanée est toujours représentée de la gauche vers la droite. La désactivation simultanée est toujours représentée de la droite vers la gauche. 187 Grafcet Utilisation des renvois Rôle Les renvois assurent la continuité d'un Grafcet lorsque le tracé direct d'une liaison orientée ne peut être fait, soit au sein d'une page, soit entre deux pages consécutives ou non. Cette continuité est assurée grâce à un renvoi de destination auquel correspond systématiquement un renvoi d'origine. Exemple L’illustration suivante montre des exemples de renvois. 10 18 9 0 10 1 11 8 2 3 4 12 5 8 9 1 6 7 12 14 15 16 17 18 2 0 10 Le tableau ci-après explicite l’utilisation des renvois de l’exemple. 188 Utilisation Exemple Le rebouclage d'un graphe peut s'effectuer à l'aide de renvois. Rebouclage de l'étape 18 vers l'étape 0. Une reprise de séquence peut s'effectuer à l'aide de renvois. Etape 10 vers étape 1 ou étape 8 vers étape 2. Utilisation des renvois lorsqu'une branche de graphe est plus longue que la page. Etape 9 vers étape 10. 35015366.01 07/2008 Grafcet Renvois utilisés dans les divergences et convergences OU Le tableau suivant donne les règles d’utilisation des renvois dans le cas de divergence ou convergence OU. Règle Illustration Pour un aiguillage, les transitions et les renvois de destination doivent être saisis dans la même page. 10 Pour une fin d'aiguillage, les renvois d'origine doivent être saisis dans la même page que l'étape de destination. Page 1 21 20 10 Page 2 10 20 21 Pour une fin d'aiguillage suivie d'un renvoi de destination, il doit y avoir autant de renvois d'origine qu'il n'y a d'étapes avant la fin d'aiguillage 4 5 6 Page 1 10 4 5 6 Page 2 10 35015366.01 07/2008 189 Grafcet Renvois utilisés dans les divergences et convergences ET Le tableau suivant donne les règles d’utilisation des renvois dans le cas de divergence ou convergence ET. Règle Pour une activation simultanée d'étapes, les renvois de destination doivent se trouver sur la même page que l'étape et la transition de divergence Illustration 25 Page 2 30 35 37 25 25 25 30 35 37 43 45 48 Page 3 Pour une désactivation simultanée, les étapes et la transition de convergence doivent se trouver sur la même page que le renvoi de destination. Lorsque plusieurs étapes convergent vers une seule transition, le renvoi d'origine porte le numéro de l'étape amont la plus à gauche. 50 43 Page 1 Page 2 50 190 35015366.01 07/2008 Grafcet Utilisation des liaisons orientées Rôle Les liaisons orientées relient une étape à une transition ou une transition à une étape. Elles peuvent être verticales ou horizontales. Illustration Le schéma suivant présente un exemple d’utilisation d’une liaison orientée. 0 2 1 3 4 (1) Règles (2) Les liaisons orientées peuvent : z z se croiser (1), elles sont alors de natures différentes, se rencontrer (2), elles sont alors de même nature. Le croisement d'une liaison avec une activation ou une désactivation simultanée d'étapes est impossible. 35015366.01 07/2008 191 Grafcet Commentaire Grafcet Généralités Les commentaires permettent de donner des informations sur les étapes et transitions d’un Grafcet. Ils sont optionnels. Syntaxe Le texte du commentaire est encadré par (* à gauche et *) à droite. Sa taille maximale est de 64 caractères. Illustration L’illustration suivante présente des exemples de commentaires. 1 2 (*Commentaire*) (*Exemple de com- 3 (*Commentaire sur 2 lignes*) 4 Règles z z z 192 Dans une page Grafcet, il est possible de saisir un commentaire dans n'importe quelle cellule. Un commentaire occupe deux cellules contigües sur deux lignes maximum. Si la zone d'affichage est trop petite, le commentaire est tronqué à l'affichage mais lors de l'impression de la documentation, le commentaire est présenté dans son intégralité. Le commentaire saisi dans une page Grafcet est stocké dans les informations graphiques embarquées dans l'automate. A ce titre, ils consomment de la mémoire programme. 35015366.01 07/2008 Grafcet 9.3 Programmation des actions et des conditions Présentation Objet de ce souschapitre Ce sous-chapitre décrit les règle de programmation des actions et conditions d’un Grafcet. Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet Programmation des actions associées aux étapes 35015366.01 07/2008 Page 194 Programmation des actions à l’activation ou à la désactivation 196 Programmation des actions continues 197 Programmation des réceptivités associées aux transitions 199 Programmation des réceptivités en langage à contacts 201 Programmation des réceptivités en langage liste d’instructions 202 Programmation des réceptivités en langage littéral structuré 203 193 Grafcet Programmation des actions associées aux étapes Généralités Les actions associées aux étapes décrivent les ordres à transmettre à la partie opérative (processus à automatiser) ou à d’autres systèmes automatisés. Les actions qui peuvent être programmées soit en langage à contacts, soit en langage liste d'instructions, soit en langage littéral structuré. Ces actions ne sont scrutées que si l’étape à laquelle elles sont associées est active. 3 types d’actions Le logiciel PL7 autorise trois types d’action : z z z les actions à l’activation : actions exécutées une fois lorsque l’étape à laquelle elles sont associées passe de l’état inactif à l’état actif. les actions à la désactivation : actions exécutées une fois lorsque l’étape à laquelle elles sont associées passe de l’état actif à l’état inactif. les actions continues : ces actions sont exécutées tant que l’étape à laquelle elles sont associées est active. Note : Une même action peut comprendre plusieurs éléments de programmation (phrases ou réseaux de contacts). Repérage des actions Ces actions sont repérées de la manière suivante : MAST - <nom section Grafcet> - CHART (ou MACROk)- PAGE n %Xi x avec x = P1 pour Activation, x = N1 Continue, x = P0 Désactivation n = Numéro de la page i = Numéro de l'étape Exemple : MAST - Peinture - CHART - PAGE 0 %X1 P1 Action à l'activation de l'étape 1 de la page 0 de la section Peinture 194 35015366.01 07/2008 Grafcet Règles d’utilisation z z z Ordre d’exécution des actions Toutes les actions sont considérées comme des actions mémorisées, d’où : une action asservie à la durée de l’étape Xn doit être remise à zéro à la désactivation de l’étape Xn ou à l’activation de l’étape Xn+1. Une action à effet maintenu sur plusieurs étapes est positionnée à un à l’activation de l’étape Xn et remise à zéro à la désactivation de l’étape Xn+m. Toutes les actions peuvent être asservies à des conditions logiques, donc être conditionnelles. Les actions asservies à des sécurités indirectes doivent être programmées dans le traitement postérieur (voir Description du traitement postérieur, p. 220) (traitement exécuté à chaque scrutation ) Pour l’exemple suivant, sur un tour de cycle, l’ordre d’exécution des actions est le suivant. Lorsque l’étape 51 est activée, les actions sont exécutées dans l’ordre suivant : 1. actions à la désactivation de l’étape 50, 2. actions à l’activation de l’étape 51, 3. actions continues de l’étape 51. Exemple : 50 Activation %X50 Continue %X50 Désactivation %X50 51 Activation %X51 Continue %X51 Désactivation %X51 Dès la désactivation de l’étape 51, les actions continues associées ne sont plus scrutées. 35015366.01 07/2008 195 Grafcet Programmation des actions à l’activation ou à la désactivation Règles Ces actions sont exécutées une fois lorsque l’étape à laquelle elles sont associées passe de l’état inactif à l’état actif. Ces actions sont impulsionnelles et sont exécutées sur un seul tour de scrutation. Elles permettent l'appel à un sous-programme, l'incrémentation d'un compteur, etc. Exemple 1 Dans cet exemple, cette action fait appel à un sous-programme %L1 %M25 SR4 C Exemple 2 Dans cet exemple, cette action incrémente le mot %MW10 et remet à 0 les mots %MW0 et %MW25. %L1 : INC %MW10;%MW0:=0;%MW25:=0; 196 35015366.01 07/2008 Grafcet Programmation des actions continues Règles Ces actions sont exécutées tant que l’étape à laquelle elles sont associées est active. Elles peuvent être : z z Exemple d’ action conditionnelle Actions conditionnelles : l’action est exécutée si une condition est remplie, Actions temporisées : c'est un cas particulier, le temps intervenant comme condition logique. Cet asservissement peut être réalisé simplement en testant le temps d'activité associé à l'étape. Dans cet exemple, le bit %M10 est asservi à l'entrée %I2.5 ou au bit interne %M9 et à l'entrée %I1.2. Tant que l'étape 2 est active et que ces conditions sont présentes, %M10 est positionné à 1. Le dernier état lu à la désactivation est mémorisé puisque les actions associées ne sont plus scrutées. Il est donc nécessaire de remettre à 0 le bit %M10, dans l'action à la désactivation de l'étape par exemple. Illustration de l’exemple. %L10 %M10 %I2.5 %M9 Action continue %I1.2 %L1 %M25 %M10 R 35015366.01 07/2008 Action à la désactivation 197 Grafcet Exemple d’action temporisée Dans cet exemple, le bit %M12 est piloté tant que le temps d'activité de l'étape 3 est inférieur à 10 secondes (base de temps : 100 ms). %L1 %M25 %X3.T<100 %M12 Ces actions peuvent également être inconditionnelles. 198 35015366.01 07/2008 Grafcet Programmation des réceptivités associées aux transitions Généralités Une réceptivité associée à une transition permet de définir les conditions logiques nécessaires au franchissement de cette transition. Le nombre de transitions maximum est de 1024, il n'est pas configurable. Le nombre maximum de transitions valides simultanément est configurable. Règles z z z z Repérage de la réceptivité A chaque transition est associée une réceptivité qui peut être programmée soit en langage à contacts, soit en langage liste d'instructions, soit en langage littéral. Une réceptivité n’est scrutée que si la transition à laquelle elle est associée est valide. Une réceptivité correspond à un réseau de contacts ou à une liste d'instructions ou à une expression littérale, comprenant une série de tests sur bits et/ou sur mot. Une réceptivité non programmée est une réceptivité toujours fausse. Les réceptivités sont repérées de la manière suivante : MAST - <nom section Grafcet> - CHART(ou MACROk) - PAGE n %X(i) --> % X(j) avec : n = Numéro de la page i = Numéro d'étape amont j = Numéro d'étape aval Exemple : MAST - Peinture - CHART - PAGE 0 %X(0) --> %X(1) Réceptivité associée à la transition entre l'étape 0 et l'étape 1 de la page 0 du graphe de la section Peinture. Note : Lors d'une activation simultanée ou d'une désactivation simultanée d'étapes, le repère indiqué est celui de l'étape dans la colonne située le plus à gauche. 35015366.01 07/2008 199 Grafcet Réceptivité utilisant le temps d'activité Dans certaines applications, des actions sont pilotées sans contrôle d'information de retour (fin de course, détecteur, ...). La durée de l'étape est conditionnée par un temps, le langage PL7 permet d'utiliser le temps d'activité associé à chaque étape. Exemple : ! X3.T>=150 Cette réceptivité programmée en langage littéral structuré permet de rester dans l'étape 3 pendant 15 secondes. 200 35015366.01 07/2008 Grafcet Programmation des réceptivités en langage à contacts Règles de programmation La réceptivité associée à la transition se programme sous la forme d’un réseau de contacts comprenant une zone test et une zone action. La structure du réseau de contacts est similaire à celle d’un réseau programmé dans un module de programme. Seuls les éléments suivants peuvent être utilisés : z z Exemple éléments graphiques de test : contacts (%Mi, %I, %Q, %TMi.D ...), blocs comparaisons, éléments graphiques d’action : bobine "dièse" uniquement (les autres bobines n’étant pas significatives dans ce cas). Cet exemple illustre la programmation d’une réceptivité en langage à contacts. %I2.1 %MW10<20 35015366.01 07/2008 # 201 Grafcet Programmation des réceptivités en langage liste d’instructions Règles de programmation La réceptivité associée à la transition se programme sous la forme d'une liste d'instructions comportant uniquement des instructions de test. La liste d'instructions admises pour l'écriture d'une réceptivité diffère d'une liste d'instructions classique par : z z Exemple la structure générale : pas d'étiquette (%L). la liste des instructions : z pas d'instructions d'actions (objets bits, mots ou blocs fonctions), z pas de saut, d'appel de sous-programme. Cet exemple illustre la programmation d’une réceptivité en langage liste d’instructions. ! 202 LD AND %I2.1 [%MW10<20] 35015366.01 07/2008 Grafcet Programmation des réceptivités en langage littéral structuré Règles de programmation La réceptivité associée à la transition se programme sous la forme d’une expression booléenne ou d’une expression arithmétique ou d’une association des deux. L’expression admise pour l’écriture d’une réceptivité diffère d’une ligne de programmation en langage littéral par : z z Exemple la structure générale : z pas d’étiquette (%L) z pas de phrase action, de phrase conditionnelle ou de phrase itérative. la liste des instructions : z pas d’action sur objet bit, z pas de saut, d’appel sous-programme, z pas de transfert, pas d’instruction d’action sur blocs. Cet exemple illustre la programmation d’une réceptivité en langage littéral structuré. ! %I2.1 AND [%MW10<20] 35015366.01 07/2008 203 Grafcet 9.4 Macro-étapes Présentation Contenu de ce sous-chapitre Ce sous-chapitre décrit la programmation des macro-étapes. Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : 204 Sujet Page Présentation des macro-étapes 205 Constitution d’une macro-étape 206 Caractéristiques des macro-étapes 207 35015366.01 07/2008 Grafcet Présentation des macro-étapes Généralités Une macro-étape est une représentation condensée, unique, d’un ensemble d’étapes et de transitions. Une macro-étape s’insère dans un graphe comme une étape et en respecte les règles d’évolution. Macroreprésentation Un Grafcet de premier niveau décrivant l'enchainement des séquences permet de mieux expliciter la structuration de la partie commande. Chaque séquence est associée à une symbolisation particulière de l' étape : la macro-étape. Cette notion de "macro-représentation" permet de hiérarchiser l'analyse. Chaque niveau peut être complété, modifié sans remettre en cause les autres niveaux. Les macro-étapes sont disponibles pour les automates TSX57. La figure suivante montre un Grafcet constitué de 3 macro-étapes. IN 0 0 M0 1 OUT M1 IN 0 M2 1 3 2 OUT 35015366.01 07/2008 205 Grafcet Constitution d’une macro-étape Description La symbolisation graphique d’une macro-étape se distingue d’une étape par deux traits horizontaux. L’illustration suivante montre une macro-étape et son expansion. IN 0 M1 1 OUT L’expansion d’une macro-étape est caractérisée par deux étapes spécifiques : z z Evolution une étape d’entrée répondant aux mêmes règles que les autres étapes, une étape de sortie ne pouvant avoir d’actions associées. Lorsque la macro-étape est active, l’évolution de la macro-étape respecte les règles générales d’évolution d’un Grafcet). Exemple : 1 IN 0 M1 1 2 OUT La macro-étape M1 est activée quand l’étape IN est active et que sa réceptivité aval est vraie. Elle est désactivée quand son étape de sortie est active et que la réceptivité M1>2 est vraie. L’étape 2 est alors activée. 206 35015366.01 07/2008 Grafcet Caractéristiques des macro-étapes Caractéristiques générales Le langage Grafcet PL7 autorise la programmation de 64 macro-étapes M0 à M63. L’expansion d’une macro-étape, constituée d'une ou plusieurs séquences, est programmable au plus sur 8 pages et comprend au maximum 250 étapes plus l’étape IN et l’étape OUT. Une macro-étape peut contenir une ou plusieurs macro-étapes. Cette hiérarchie est possible jusqu’à concurrence de 64 niveaux. Illustration L’analyse d’une application peut être structurée de façon à fournir une approche globale puis détaillée des différentes opérations à réaliser. IN IN 0 0 0 1 M0 3 1 2 OUT M1 OUT M2 Vers une analyse détaillée 35015366.01 07/2008 207 Grafcet Etapes initiales L’expansion d’une macro-étape peut contenir une ou plusieurs étapes initiales. Ces étapes initiales sont activées à la mise sous tension ou lors d’une initialisation par programme. La macro-étape est alors visualisée à l’état actif. Dans l’exemple ci-après l’étape initiale 1 de l’expension est activée lors d’une initialisation du programme, la macro-étape est alors à l’état actif. M0 IN 0 M1 1 3 2 M2 OUT 208 35015366.01 07/2008 Grafcet 9.5 Section Grafcet Présentation Contenu de ce sous-chapitre Ce sous-chapitre présente la constitution d’une section Grafcet. Il décrit l’utilisation et les règles de programmation de chaque traitement. Contenu de ce sous-chapitre Ce sous-chapitre contient les sujets suivants : Sujet Structure d’une section Grafcet 35015366.01 07/2008 Page 210 Description du traitement préliminaire 211 Prépositionnement du Grafcet 212 Initialisation du Grafcet 213 Remise à zéro du Grafcet 214 Figeage du Grafcet 215 Remise à zéro des macro-étapes 216 Fonctionnement du traitement séquentiel 218 Description du traitement postérieur 220 209 Grafcet Structure d’une section Grafcet Composition d’une section Une section de programme écrit en Grafcet comporte trois traitements consécutifs : z z z le traitement préliminaire , le traitement séquentiel, le traitement postérieur. La section Grafcet se programme dans la tâche MAST. Illustration Le dessin suivant illustre l’ordre de scrutation des traitements. Traitement préliminaire Traitement séquentiel Traitement postérieur Rôle des traitements Le tableau suivant décrit le rôle de chacun des traitements et le langage avec lequel ils peuvent être programmés. Traitement Rôle Langage Préliminaire Il permet de traiter : z les initialisations sur reprise secteur ou défaillance, z les initialisations sur reprise secteur ou défaillance, z la logique d'entrée. Langage à contacts, liste d’instructions ou littéral Séquentiel Il permet de traiter l’ossature séquentielle de l’application et donne accès au traitement des réceptivités et des actions directement associées aux étapes. Grafcet Postérieur Il permet de traiter : z la logique de sortie, z la surveillance et les sécurités indirectes spécifiques aux sorties. Langage à contacts, liste d’instructions ou littéral Note : Les macro-étapes sont exécutées dans leur ordre de scrutation dans le traitement séquentiel. 210 35015366.01 07/2008 Grafcet Description du traitement préliminaire Généralités Saisi en langage à contacts, en langage liste d'instructions ou en langage littéral, le traitement préliminaire est scruté dans sa totalité du haut vers le bas. Exécuté avant les traitements séquentiel et postérieur, il permet de traiter tous les événements ayant une influence sur ces derniers : z z gestion des reprises secteur et réinitialisations, remise à zéro ou prépositionnement des graphes. C’est donc uniquement dans le traitement préliminaire qu’il faut agir sur les bits associés aux étapes (mise à 0 ou à 1 des bits étapes %Xi ou %Xi.j par les instructions SET et RESET). Bits système Les opérations de prépositionnement, inititialisation, figeage... s’effectuent à l’aide des bits système %S21 à %S24. Les bits système associés au Grafcet étant classés numériquement par ordre de priorité (%S21 à %S24), lorsque plusieurs d’entre eux sont simultanément mis à 1 dans le traitement préliminaire, ils sont traités un par un dans un ordre croissant (un seul est effectif par tour de scrutation). Ces bits sont effectifs au début du traitement séquentiel. Traitement des reprises à froid Sur une nouvelle application, ou sur une perte de contexte système, le système effectue un démarrage à froid. Le bit %S21 est mis à 1 par le système avant l'appel du traitement préliminaire et le Grafcet est positionné sur les étapes initiales. Si vous désirez un traitement particulier vis-à-vis de l'application en cas de démarrage à froid, il a la possibilité de tester %S0 qui reste à 1 durant le premier cycle de la tâche maître (MAST). Traitement des reprises à chaud Suite à une coupure secteur sans changement d'application, le système effectue une reprise à chaud, il repart dans l'état qui précédait la coupure secteur. Si vous désirez un traitement particulier vis-à-vis de l'application en cas de reprise à chaud, vous avez la possibilité de tester %S1 dans le traitement préliminaire, et d’appeler le programme correspondant. 35015366.01 07/2008 211 Grafcet Prépositionnement du Grafcet Rôle Le prépositionnement du Grafcet peut être utilisé lors du passage d’un fonctionnement en marche normale en marche spécifique ou à l’apparition d’un incident (exemple : défaut provoquant une marche dégradée). Cette opération intervient sur le déroulement normal du cycle de l’application, elle doit donc être effectuée avec précaution. Prépositionnement du Grafcet Le positionnement peut porter sur l’ensemble ou sur une partie du traitement séquentiel : z z en utilisant les instructions SET, RESET, par remise à zéro générale (%S22) puis, dans le cycle suivant, positionnement à 1 des étapes. Note : Dans le cas de la remise à zéro d'une étape, les actions à la désactivation de celle-ci ne sont pas exécutées. Exemple Dans cet exemple la mise à 1 du bit %M20 provoque le prépositionnement des étapes %X12 à 1, des étapes %X10 et %X11 à 0. %M20 %X12 S %X10 R %X11 R 212 35015366.01 07/2008 Grafcet Initialisation du Grafcet Rôle L’initialisation du Grafcet s’effectue par le bit système %S21. Normalement à l’état 0, la mise à l’état 1 de %S21 provoque : z z Initialisation du Grafcet la désactivation des étapes actives, l’activation des étapes initiales. Le tableau suivant donne les différentes possibilités de mise à 1 et à 0 du bit système %S21. Mis à l’état 1 Remis à l’état 0 z Par mise à l’état 1 de %S0 z Par le système au début du traitement z Par le programme utilisateur z Par le programme utilisateur z Par le terminal (en mise au point ou table z Par le terminal (en mise au point ou table d’animation) Règle d’utilisation 35015366.01 07/2008 d’animation) Lorsqu’il est géré par le programme utilisateur, %S21 doit être positionné à 0 ou 1 dans le traitement préliminaire. 213 Grafcet Remise à zéro du Grafcet Rôle La remise à 0 du Grafcet s’effectue par le bit système %S22. Normalement à l’état 0, la mise à l’état 1 de %S22 provoque la désactivation des étapes actives de l’ensemble du traitement séquentiel. Note : La fonction RESET_XIT permet de réintialiser par programme les temps d’activation de toutes les étapes du traitement séquentiel (Voir Manuel de référence, Tome 2). Remise à zéro du Grafcet Le tableau suivant donne les différentes possibilités de mise à 1 et à 0 du bit système %S22. Mis à l’état 1 Remis à l’état 0 z Par le programme utilisateur z Par le système à la fin du traitement z Par le terminal (en mise au point ou table séquentiel d’animation) Règle d’utilisation z z ce bit doit être écrit à 1 dans le traitement préliminaire, la remise à 0 de %S22 est géré par le système ; il est donc inutile de le remettre à 0 par programme ou par le terminal. Pour redémarrer le traitement séquentiel dans une situation donnée, vous devez prévoir selon l’application une procédure d’initialisation ou de prépositionnement du Grafcet. 214 35015366.01 07/2008 Grafcet Figeage du Grafcet Rôle Le figeage du Grafcet s’effectue par le bit système %S23. Normalement à l’état 0, la mise à l’état 1 de %S23 provoque le maintien en l’état des Grafcet. Quelle que soit la valeur des réceptivités aval aux étapes actives, les Grafcet n’évoluent pas. Le gel est maintenu tant que le bit %S23 est à 1. Figeage du Grafcet Le tableau suivant donne les différentes possibilités de mise à 1 et à 0 du bit système %S23.. Mis à l’état 1 Remis à l’état 0 z Par le programme utilisateur z Par le programme utilisateur z Par le terminal (en mise au point ou table z Par le terminal (en mise au point ou table d’animation) Règle d’utilisation z z 35015366.01 07/2008 d’animation) géré par le programme utilisateur, ce bit doit être positionné à 1 ou 0 dans le traitement préliminaire, le bit %S23 associé aux bits %S21 et %S22 permet de réaliser un figeage du traitement séquentiel à l’état initial ou à l’état 0. De même le Grafcet peut être prépositionné puis figé par %S23. 215 Grafcet Remise à zéro des macro-étapes Rôle La remise à zéro des macro-étapes s’effectue par le bit système %S24. Normalement à l’état 0, la mise à l’état 1 de %S24 provoque la mise à zéro des macro-étapes choisies dans une table de 4 mots système (%SW22 à %SW25). Note : La fonction RESET_XIT permet de réintialiser par programme les temps d’activation des étapes de macro-étape (Voir Manuel de référence, Tome 2). Remise à zéro des macroétapes Règles d’utilisation 216 Le tableau suivant donne les différentes possibilités de mise à 1 et à 0 du bit système %S24. Mis à l’état 1 Remis à l’état 0 z Par le programme utilisateur z Par le système au début du traitement z z ce bit doit être écrit à 1 uniquement dans le traitement préliminaire, la mise à 0 de %S24 est gérée par le système, il est donc interdit de le remettre à 0 par programme ou par le terminal. 35015366.01 07/2008 Grafcet Table de mots %SW22 à %SW25 A chaque bit de cette table correspond une macro-étape. L’utilisation en est la suivante : z z chargement de la table des mots %SW22 à %SW25 (bit à mettre à 1 lorsque la macro-étape correspondante ne doit pas être mise à zéro), validation par %S24. L’illustration suivante présente le codage des mots %SW22 à %SW25. F %SW22 F %SW23 XM63 0 XM17 XM16 XM31 F 0 XM1 XM0 XM15 %SW25 0 XM49 XM48 Exemple : ! IF %I4.2 AND %T3.D THEN %SW22:=16#AF8F; %SW23:=16#F3FF; %SW24:=16#FFEF; %SW25:=16#FFFF; SET %S24 Ces quatre mots sont initialisés à 16#FFFF si %S21 = 1. 35015366.01 07/2008 217 Grafcet Fonctionnement du traitement séquentiel Généralités Ce traitement permet la programmation de l'ossature séquentielle de l'application. Le traitement séquentiel comprend : z z le graphe principal organisé en 8 pages, jusqu’à 64 macro-étapes de 8 pages chacune. Dans le graphe principal, plusieurs Grafcet non connexes peuvent être programmés et se dérouler simultanément. L'évolution du Grafcet s’effectue en 3 grandes phases. Phase 1 Le tableau suivant décrit les opérations réalisées lors de la première phase. Phase Phase 2 Description 1 Evaluation des réceptivités des transitions validées. 2 Demande de désactivation des étapes amont associées. 3 Demande d'activation des étapes aval concernées La phase 2 correspond à l’évolution de la situation du Grafcet en fonction des transitions franchies : Phase Description 1 Désactivation des étapes en amont des transitions franchies. 2 Activation des étapes en aval des transitions franchies. 3 Invalidation des transitions franchies. 4 Validation des transitions en aval des nouvelles étapes activées. Résultat : Le système met à jour deux tables dédiées respectivement à l'activité des étapes et à la validité des transitions : z la table d'activité des étapes mémorise, pour le cycle courant, les étapes actives, les étapes à activer et les étapes à désactiver, z la table de validité des transitions mémorise, pour le cycle courant, les transitions situées en aval des étapes concernées par la table précédente 218 35015366.01 07/2008 Grafcet Phase3 Les actions associées aux étapes actives sont exécutées dans l'ordre suivant : Phase Dépassement de capacités Description 1 Actions à la désactivation des étapes à désactiver. 2 Actions à l'activation des étapes à activer. 3 Actions continues des étapes actives. Le nombre d'éléments de la table d'activité des étapes et de la table de validité des transitions est configurable. Le dépassement de la capacité de l'une ou l'autre entraîne : z z z le passage en STOP de l'automate (arrêt de l'exécution de l'application), le passage à 1 du bit système %S26 (dépassement de capacité d'une des deux tables), le clignotement du voyant ERR de l'automate. Le système met à disposition de l'utilisateur deux mots système : z z %SW20 : mot permettant de connaître pour le cycle courant, le nombre d'étapes actives, à activer et à désactiver %SW21 : mot permettant de connaître pour le cycle courant, le nombre de transitions valides, à valider ou à invalider Diagnostic En cas de défaut bloquant, les mots système %SW125 à %SW127 permettent de déterminer la nature du défaut. 35015366.01 07/2008 %SW125 %SW126 %SW127 DEF7 0 =0 Dépassement de la table des étapes (étapes/ transitions) Dépassement de la table des transitions DEF7 =0 0 DEFE N° étape N°macro-étape ou Exécution de graphe incorrect (problème de 64 pour le graphe transition avec renvoi de destination non principal résolu). 219 Grafcet Description du traitement postérieur Généralités Saisi en langage à contacts, en langage liste d'instructions ou en langage littéral, le traitement postérieur est scruté de haut en bas. Ce traitement est le dernier exécuté avant l'activation des sorties et permet de programmer la logique de sortie. Actions associées au Grafcet Le traitement postérieur permet de compléter les consignes émises par le traitement séquentiel en intégrant à l'équation d'une sortie les modes de marche et d'arrêt et les sécurités indirectes spécifiques à l'action. Il permet également de traiter une sortie activée plusieurs fois dans le traitement séquentiel. D'une manière générale, il est recommandé de programmer les actions agissant directement sur le process dans le traitement postérieur. Exemple : %I2.4 %X5 %Q4.1 %X8 %X59 %M26 %I1.0 z z z I2.4 = sécurité indirecte spécifique au pilotage de la sortie %Q4.1. %M26 = bit interne résultat de la logique d'entrée traitant des modes de marche et d'arrêt. %I1.0 = bouton poussoir. La sortie %Q4.1 est activée par les étapes 5, 8 et 59 du traitement séquentiel. 220 35015366.01 07/2008 Grafcet Actions indépendantes du Grafcet Le traitement postérieur permet également de programmer les sorties indépendantes du traitement séquentiel. Contrôle de l'exécution du Grafcet Il peut s’avérer nécessaire de contrôler le bon déroulement du Grafcet en testant le temps d’activité de certaines étapes.Le test de ce temps s’effectue par comparaison soit à une valeur minimum soit à une valeur maximum déterminée par l’utilisateur. L’exploitation du défaut est laissée au choix de l’utilisateur (signalisation, procédure particulière de fonctionnement, édition de message). Exemple : ! IF (%X2.T > 100 AND %X2) THEN SET %Q4.0 ;END_IF ; 35015366.01 07/2008 221 Grafcet 222 35015366.01 07/2008 Blocs fonction DFB 10 Présentation Objet de ce chapitre Ce chapitre décrit la programmation des blocs fonction utilisateur DFB. Contenu de ce chapitre Ce chapitre contient les sujets suivants : 35015366.01 07/2008 Sujet Page Présentation des blocs fonction DFB 224 Comment mettre en oeuvre un bloc fonction DFB 226 Definition des objets des blocs fonction type DFB 228 Définition des paramètres DFB 231 Définition des variables DFB 232 Règle de codage des Types DFB 234 Création des instances de DFB 236 Règle d’utilisation des DFB dans un programme 237 Utilisation d’un DFB dans un programme en langage à contacts 239 Utilisation d’un DFB dans un programme en langage liste d’instructions ou littéral 241 Exécution d’une instance DFB 242 Exemple de programmation de bloc fonction DFB 243 223 Blocs fonction DFB Présentation des blocs fonction DFB Rôle Le logiciel PL7-Pro offre à l’utilisateur la possibilité de créer ses propres blocs fonction répondant aux spécificités de ses applications. Ces blocs fonction utilisateur permettent de structurer une application. Ils seront utilisés dès qu’une séquence de programme se trouve répétée à plusieurs reprises dans l’application ou pour figer une programmation standard (exemple : algorithme de commande d’un moteur incluant la prise en compte des sécurités locales). Ils peuvent être transmis à l’ensemble des programmeurs et être utilisés dans la même application ou dans toutes autres applications (fonction exportation/ importation). Exemples d’utilisation L’utilisation d’un bloc fonction DFB dans une application permet de : z z z z Comparaison avec les sousprogrammes simplifier la conception et la saisie du programme, accroître la lisibilité du programme, faciliter sa mise au point (toutes les variables manipulées par le bloc fonction DFB sont identifiées sur son interface), diminuer le volume de code généré (le code correspondant au DFB n’étant chargé qu’une fois, quel que soit le nombre d’appels au DFB dans le programme). Par rapport au sous programme, ils permettent : z z z de paramètrer plus facilement le traitement, d’utiliser des variables internes propres au DFB donc indépendantes de l’application, d’être testés indépendamment de l’application. Ils offrent en langage à contacts une visualisation graphique du bloc facilitant la programmation et la mise au point. De plus les blocs fonction DFB exploitent des données rémanentes. 224 35015366.01 07/2008 Blocs fonction DFB Domaine d’utilisation Le tableau ci-après décrit le domaine d’application des DFB. Fonction Domaine Automates pour lesquels les DFB sont utilisables. Premium Logiciel de création des DFB. 35015366.01 07/2008 PL7 Pro Logiciels avec lesquels les DFB sont utilisables. PL7 Pro ou un PL7 Junior Langage de programmation pour la création du code des DFB. langage littéral structuré et langage à contacts Langage de programmation avec lesquels les DFB sont utilisables. langage à contacts, littéral structuré et en liste d’instructions 225 Blocs fonction DFB Comment mettre en oeuvre un bloc fonction DFB Marche à suivre La mise en oeuvre d'un bloc fonction DFB s'effectue en 3 étapes principales : Etape Conception du type DFB Action 1 Conception du DFB modèle (appelé : Type DFB). 2 Création d'une image de ce bloc appelée instance pour chaque utilisation dans l'application. 3 Utilisation de l'instance dans le programme PL7. Consiste à définir et coder tous les éléments composant le DFB modèle, à l’aide de l’éditeur de DFB. L’illustration suivante montre la composition d’un DFB modèle. Nom type DFB Sorties Entrées Entrées/ Sorties Variables publiques Variables privées Code Un bloc fonction Type DFB se compose : z z z z z z 226 d'un nom, de paramètres : z entrées, z sorties, z entrées/sorties, de variables : z variables publiques, z variables privées, du code en langage littéral structuré ou en langage à contacts, d’un commentaire, d’une fiche descriptive. 35015366.01 07/2008 Blocs fonction DFB Création d'une instance DFB Une fois le Type DFB conçu, l'utilisateur définit une instance du DFB à l'aide de l'éditeur de variables ou lors de l'appel de la fonction dans l'éditeur de programme. Utilisation des DFB Cette instance du bloc s'utilise ensuite comme un bloc fonction standard en langage à contacts, ou comme une fonction élémentaire en langage littéral structuré ou liste d'instructions. Elle peut se programmer dans les différentes tâches (excepté dans les tâches événementielles) et sections de l'application. 35015366.01 07/2008 227 Blocs fonction DFB Definition des objets des blocs fonction type DFB Caractéristiques générales des objets DFB Ces objets sont des données internes au DFB, ils sont purement symboliques (pas d'adressage sous forme de repère). Les DFB utilisent 2 types d’objet : z z Syntaxe Pour chaque paramètre ou variable utilisé, le concepteur du bloc fonction Type DFB définit : z z z z 228 les paramètres les variables un nom de 8 caractères maximum (sont autorisés les lettres non accentuées, les chiffres,le caractère "_"; le premier caractère doit être une lettre; les mots clefs et les symboles sont interdits), un type d'objet (voir tableau ci-après), un commentaire optionnel de 80 caractères maximum, une valeur initiale (excepté pour les paramètres Entrées/Sorties). 35015366.01 07/2008 Blocs fonction DFB Type d’objets Le tableau ci-après décrit la liste des différents types d’objets possibles lors de la déclaration des paramètres et des variables du type DFB. Action sur... Type Nom Exemples Bits BOOL Booléen Le type BOOL ne gère pas les fronts. Si la gestion de front n'est pas utile dans le traitement, il est préférable d'utiliser le type BOOL Exemple d'objet de type BOOL du langage PL7 : %MWi:Xj qui ne gère pas les fronts mais qui consomme moins de taille mémoire que le type EBOOL. EBOOL Booléen étendu Le type EBOOL gère les fronts, il est donc possible d'exécuter sur ce type de paramètre ou de variable des instructions sur front de type RE et FE. si vous souhaitez associer un type EBOOL à un paramètre d'entrées/sorties lors de l'utilisation, il doit être de type EBOOL dans le DFB. Exemple d'objet de type EBOOL du langage PL7 : %Mi,%Ixy.i,%Qxy.i. WORD Entier 16 bits Exemple d'objet de type WORD du langage PL7 : %MWi, %KWi, DWORD Entier 32 bits Exemple d'objet de type DWORD du langage PL7 : %MDi, %KDi, REAL Réel Exemple d'objet de type REAL du langage PL7 : %MFi, %KFi AR_X Tableau de bits Exemple d'objet de type AR_X du langage PL7 : %Mi:L, %Ix.i:L AR_W Tableau d'entier 16 bits Exemple d'objet de type AR_W du langage PL7 : %MWi:L, %KWi:L AR_D Tableau d'entier 32 bits Exemple d'objet de type AR_D du langage PL7 : %MDi:L, %KDi:L AR_R Tableau de réels Exemple d'objet de type AR_R du langage PL7 : %MFi:L, %KFi:L STRING Chaîne de caractères Exemple d'objet de type STRING du langage PL7: %MBi, %KBi Mots Tableaux 35015366.01 07/2008 229 Blocs fonction DFB Note : z Cas des tableaux : la longueur du tableau doit être obligatoirement mentionnée pour les paramètres sorties et les variables publiques et privées, par contre il n'est pas nécessaire de les définir pour les paramètres entrées et les paramètres entrées/sorties. z Les valeurs initiales peuvent être définies pour les entrées (si elles ne sont pas de type tableau), pour les sorties et pour les variables publiques et privées. 230 35015366.01 07/2008 Blocs fonction DFB Définition des paramètres DFB Illustration L’illustration suivante présente des exemples de paramètres Controle Entrées Sorties DWORD Ecart WORD Accel WORD Vitesse BOOL Erreur BOOL Enable WORD Actions Description des paramètres Entrées/ Sorties Le tableau ci-après décrit le rôle de chaque type de paramètres. Paramètre Nombre maximum Rôle Entrées 15 (1) Ce sont les données à fournir au DFB par le programme application. Ces paramètres en lecture seule ne peuvent pas être modifiés dans le code du DFB. Sorties 15 (2) Ce sont les données élaborées par le DFB à destination du programme application. Entrées/ Sorties 15 Ce sont des paramètres d'entrées modifiables dans le code du DFB. Légende : (1) Nombre d'entrées + Nombre d'entrées/sorties inférieur ou égal à15 (2) Nombre de sorties + Nombre d'entrées/sorties inférieur ou égal à 15 Note : z Tout bloc DFB doit avoir au moins une entrée booléenne. z La modification de l'interface d'un DFB (variables publiques ou paramètres) est possible uniquement s'il n 'est pas instancié et utilisé dans l'application. 35015366.01 07/2008 231 Blocs fonction DFB Définition des variables DFB Description des variables Le tableau ci-après décrit le rôle de chaque type de variables. Variable Nombre maximum Rôle Publique 100 Variables internes utilisées dans le traitement et accessibles par l’utilisateur en réglage ou par le programme application en dehors du code DFB (en tant que variable publique d’instance DFB, voir cidessous : Accès aux variables publiques). Privée 100 Variables internes au code du bloc fonction, ces variables sont calculées et exploitées à l’intérieur même du DFB mais n’ont aucun lien avec l’extérieur du DFB. Ces variables sont utiles pour la programmation du bloc mais n’ont pas d’intérêt pour l’utilisateur du bloc (par exemple : variable intermédiaire de renvoi d’une expression combinatoire à l’autre, résultat d’un calcul intermédiaire...). Note : La modification de l’interface d’un DFB (variables publiques ou paramètres) est possible uniquement s’il n’est pas instancié et utilisé dans l’application. Accès aux variables publiques Seuls les paramètres de sorties et les variables publiques sont accessibles en tant qu’objets dans le programme application en dehors du corps du bloc fonction. Leur syntaxe est la suivante : Nom_DFB.Nom_paramètre Où Nom_DFB est le nom donné à l’instance du DFB utilisé (32 caractères maximum) et Nom_paramètre est le nom donné au paramètre de sorties ou à la variable publique (8 caractères maximum). Exemple : Controle.Ecart pour la sortie Ecart de l’instance DFB nommée Controle. 232 35015366.01 07/2008 Blocs fonction DFB Sauvegarde et restitution des variables publiques Les variables publiques, modifiées par programme ou par réglage, peuvent être sauvegardées en lieu et place des valeurs d’initialisation (définies dans les instances DFB) par mise à 1 du bit système %S94. Le remplacement n’a lieu que si l’autorisation en a été donnée au niveau de chaque variable en validant le champ S dans l’écran de définition des variables publiques du DFB. Ces valeurs sauvegardées sont ré-appliquées par une mise à 1 du bit système %S95 ou sur une ré-initialisation de l’automate. L’inhibition de la fonction "Save/Restore" globale pour tous les blocs fonction DFB est possible (boîte de dialogue Propriétés du type DFB). 35015366.01 07/2008 233 Blocs fonction DFB Règle de codage des Types DFB Généralités Le code définit le traitement que doit effectuer le bloc DFB en fonction des paramètres déclarés. Le code du bloc fonction DFB se programme en langage litteral ou en langage à contacts. Dans le cas du langage littéral, le DFB est constitué d’une seule phrase littérale de longueur non limitée. Règles de programmation Toutes les instructions et fonctions avancées du langage sont permises exceptés : z z z z z z l’appel aux blocs fonction standards, l’appel aux autres blocs fonction DFB, branchement à une étiquette JUMP, l’appel à sous-programme, l’instruction HALT, les instructions utilisant des variables de modules d’entrées/sorties (ex : READ_STS, SMOVE...). Le code exploite les paramètres et les variables du DFB définies par l’utilisateur. Le code du bloc fonction DFB ne peut utiliser ni les objets d’entrées/sorties (%I,%Q...), ni les objets globaux de l’application (%MW,%KW...) excepté les bits et mots système %S et %SW. Note : Pas d’utilisation possible d’étiquette. Fonctions spécifiques Le tableau ci-après décrit les fonctions spécifiquement adaptées pour être utilisées dans le code. Fonctions Rôle FTON, FTOF, FTP, FPULSOR Ces fonctions de temporisation sont destinées à être utilisées à la place des blocs fonction temporisation standard. 234 LW, HW, COCATW Ces instructions permettent de manipuler des mots et de doubles mots. LENGTH_ARW, LENGTH_ARD, LENGTH_ARR Ces instructions permettent de calculer les longueurs de tableau. 35015366.01 07/2008 Blocs fonction DFB Exemple de code Le programme suivant donne l’exemple code en littéral. CHR_200:=CHR_100; CHR_114:=CHR_104; CHR_116:=CHR_106; RESET DEMARRE; (*On incremente 80 fois CHR_100*) FOR CHR_102:=1 TO 80 DO INC CHR_100; WHILE((CHR_104-CHR_114)<100)DO IF(CHR_104>400) THEN EXIT; END_IF; INC CHR_104; REPEAT IF(CHR_106>300) THEN EXIT; END_IF; INC CHR_106; UNTIL ((CHR_100-CHR_116)>100) END_REPEAT; END_WHILE; (* On boucle tant que CHR_106) IF (CHR_106=CHR_116) THEN EXIT; ELSE CHR_114:=CHR_104; CHR_116:=CHR_106; END_IF; INC CHR_200; END_FOR; 35015366.01 07/2008 235 Blocs fonction DFB Création des instances de DFB Généralités Une instance DFB est une copie du Type DFB : z z elle exploite le code du Type DFB, (il n’y a pas duplication du code), elle crée une zone de données spécifique à cette instance, qui est la recopie des paramètres et des variables du Type DFB. Cette zone est située dans l’espace donnée de l’application. Chaque instance DFB est repérée par un nom de 32 caractères maximum défini par l’utilisateur. Les caractères permis sont identiques à ceux autorisés pour les symboles, c’est à dire sont autorisés : z z z les lettres non accentuées, les chiffres, le caractère "_". Le premier caractère doit être une lettre; les mots clefs et les symboles sont interdits. Règles Il est possible de créer autant d’instances souhaitées à partir d’un même type de DFB. Néanmoins le nombre d’instances de DFB ne doit pas utiliser plus de 32 K mots de la mémoire interne de l’automate. Les valeurs initiales des variables publiques définies pour les blocs fonction Type DFB peuvent être modifiées pour chaque instance. 236 35015366.01 07/2008 Blocs fonction DFB Règle d’utilisation des DFB dans un programme Généralités Les instances de DFB sont utilisables dans tous les langages (langages à contacts, littéral et liste d'instructions) et dans toutes parties de l'application : sections, sous programme, module Grafcet, (excepté dans les tâches événementielles). Règles générales d’utilisation Les règles suivantes doivent être respectées quel que soit le langage utilisé : z z z 35015366.01 07/2008 tous les paramètres d'entrées de type tableau ainsi que les paramètres d'entrées/ sorties doivent être renseignés les paramètres d'entrées non câblés gardent la valeur du précédent appel ou la valeur d'initialisation si le bloc n'a jamais été appelé avec cette entrée renseignée ou câblée. tous les objets affectés aux paramètres d'entrées, de sorties et d'entrées/sorties doivent être obligatoirement de même types que ceux définis lors de la création du Type DFB (par exemple : si le type WORD est défini pour le paramètre d'entrée "vitesse", il n'est pas autorisé d'y affecter des doubles mots %MDi, %KDi). Seule exception les types BOOL et EBOOL pour les paramètres d'entrées ou de sorties (pas pour les paramètres entrées/sorties) peuvent être mixés. Exemple : le paramètre d'entrée "Validation" peut être défini en tant que BOOL et peut être associé à un bit interne %Mi qui est de type EBOOL, par contre dans le code interne du type DFB le paramètre d'entrée aura bien la propriété d'un type BOOL, il ne sait pas gérer les fronts. 237 Blocs fonction DFB Affectation des paramètres Le tableau suivant résume les différentes possibilités d’affectation des paramètres dans les différents langages de programmation : Paramètre Type Affectation paramètre Affectation Entrées Booléen Câblé (1) optionnelle (2) Numérique Objet ou expression optionnelle Tableau Objet obligatoire Entrées/ Sorties Booléen Objet obligatoire Numérique Objet obligatoire Tableau Objet obligatoire Sorties Booléen Câblé (1) optionnelle Numérique Objet optionnelle Tableau Objet optionnelle (1) câblé en langage à contacts, ou objet en langage booléen ou littéral (2) en langage à contacts tout bloc DFB doit avoir au moins une entrée booléenne (binaire) câblée. 238 35015366.01 07/2008 Blocs fonction DFB Utilisation d’un DFB dans un programme en langage à contacts Principe Il y a deux possibilités pour appeler un bloc fonction DFB : z z un appel textuel dans un bloc opération, la syntaxe et les contraintes sur les paramètres sont identiques à celles du langage littéral. un appel graphique, voir exemple ci-après. Les blocs fonctionnels DFB graphiques ont des entrées /sorties qui sont affectées directement par des objets ou des expressions, ces objets ou expressions occupent une cellule du réseau graphique. 2 blocs fonctionnels DFB connectés en série doivent être séparés d’au moins 2 colonnes Exemple L’illustration suivante présente un exemple simple de programmation d’un DFB. Control_port_1 Controle ABS(%MD0) DWORD Ecart WORD Accel %MW8 %Q2.1 10000 WORD Vitesse BOOL Erreur %Q2.5 BOOL Enable %MW100 35015366.01 07/2008 WORD Actions %MW100 239 Blocs fonction DFB Le tableau ci-après repère les différents éléments du DFB. Repère Rôle 1 Nom du DFB 2 Nom du Type DFB 3 Paramètre effectif de la première entrée 4 Paramètres d’entrées (nom et type) 5 Paramètres de sorties (nom et type) 6 Paramètres d’entrées/sorties (nom et type) Note : z Un bloc fonction DFB doit avoir au moins une entrée booléenne câblée. z Les entrées, sorties ou entrées/sorties numériques du bloc ne sont pas câblées. A ces broches sont associés des objets mentionnés sur la cellule face à la broche. 240 35015366.01 07/2008 Blocs fonction DFB Utilisation d’un DFB dans un programme en langage liste d’instructions ou littéral Généralités L'appel du bloc fonction DFB constitue une action, qui peut être placée dans une phrase comme pour tout autre action du langage. Syntaxe générale La syntaxe de programmation des DFB est la suivante : Nom_DFB (E1,...,En,ES1,...,ESn,S1,...,Sn) Le tableau suivant décrit le rôle des paramètres de l’instructions. Syntaxe en littéral Paramètres Rôle E1, ..., En Expressions (excepté pour les objets de type BOOL/EBOOL), objets ou valeurs immédiates servant de paramètres effectifs aux paramètres d'entrées. ES1, ..., ESn Paramètres effectifs correspondant aux entrées/sorties; ce sont toujours des objets langages en lecture/écriture. S1, ..., Sn Paramètres effectifs correspondant aux sorties; ce sont toujours des objets langages en lecture/écriture. L’instruction en langage littéral a la syntaxe suivante : Nom_DFB (E1,...,En,ES1,...,ESn,S1,...,Sn); Exemple : Cpt_boulons(%I2.0,%MD10,%I2.1,%Q1.0); Syntaxe en liste d’instructions L’instruction en langage liste d’instructions a la syntaxe suivante : [Nom_DFB (E1,...,En,ES1,...,ESn,S1,...,Sn)] Exemple : LD TRUE [Cpt_boulons(%I2.0,%MD10,%I2.1,%Q1.0)] 35015366.01 07/2008 241 Blocs fonction DFB Exécution d’une instance DFB Fonctionnement L'exécution d'une instance DFB s'effectue dans l'ordre suivant : Etape Outils de mise au point Chargement des paramètres d'entrées et d'entrées/sorties à l'aide des paramètres effectifs. Tout entrée laissée libre prend à l'initialisation ou sur reprise à froid la valeur d'initialisation définie dans le type DFB, elle prend ensuite la valeur courante du paramètre. 2 Passage par valeur des paramètres d'entrées (excepté pour le type tableau). 3 Passage par adresse des paramètres entrées/sorties. 4 Exécution du code littéral. 5 Ecriture des paramètres de sorties. Le logiciel PL7 offre plusieurs outils de mise au point du programme PL7 et des DFB : z z z 242 Action 1 table d'animation : tous les paramètres et variables publiques sont affichés et animés en temps réel, il est possible de modifier et forcer les objets désirés, point d'arrêt, pas à pas et diagnostic programme, écrans d'exploitation : pour la mise au point unitaire. 35015366.01 07/2008 Blocs fonction DFB Exemple de programmation de bloc fonction DFB Généralités Cet exemple est donné à titre didactique, le DFB à programmer est un compteur. Caractéristiques du type DFB Le compteur est réalisé à partir du Type DFB suivant : Cpt_pieces EBOOL Raz BOOL Done DWORD Presel EBOOL Count DWORD V_cour Le tableau ci-après décrit les caractéristiques du Type DFB à programmer. Caractéristiques Valeurs Nom Cpt_pieces Entrées z Raz : remise à zéro du compteur z Presel : valeur de présélection du compteur z Count : entrée comptage Fonctionnement du compteur 35015366.01 07/2008 Sorties Done : sortie valeur de présélection atteinte Variable publique V_cour : Valeur courante incrémentée par l'entrée Count Le tableau suivant décrit le fonctionnement que doit avoir le compteur. Phase Description 1 Ce bloc compte les fronts montants sur l'entrée Count. 2 Le résultat est placé dans la variable V_cour, cette valeur est remise à zéro par un front montant sur l'entrée Raz. 3 Le comptage s'effectue jusqu'à la valeur de présélection, lorsque cette valeur est atteinte la sortie Done est mise à 1, elle est remise à 0 sur front montant sur l'entrée Raz. 243 Blocs fonction DFB Code du DFB La programmation du code du Type DFB est donnée ci-après. !(*Programmation du DFB Cpt_pieces*) IF RE Raz THEN V_cour:=0; END_IF; IF RE Count THEN V_cour:=V_cour+1; END_IF; IF(V_cour>=Presel) THEN SET Done; ELSE RESET Done; END_IF; Exemple d’utilisation Dans cet exemple le Type DFB créé, est utilisé 3 fois (3 instances DFB) pour le comptage de 3 types de pièces. Lorsque le nombre de pièces programmé (dans les mots %MD10, %MD12, et %MD14) est atteint, la sortie du compteur pilote l'arrêt du système d'approvisionnement de pièces correspondant. 244 35015366.01 07/2008 Blocs fonction DFB Le programme suivant utilise les 3 instances du type DFB Cpt_pieces : Cpt_boulons, Cpt_ecrous et Cpt_vis. Cpt_boulons Cpt_pieces %I1.0 EBOOL Raz %MD10 %I1.1 %Q2.1 BOOL Done DWORD Presel EBOOL Count Cpt_ecrous Cpt_pieces %I1.2 EBOOL Raz %MD12 %I1.3 %Q2.2 BOOL Done DWORD Presel EBOOL Count Cpt_vis Cpt_pieces %I1.4 EBOOL Raz %MD14 %I1.5 %Q2.3 BOOL Done DWORD Presel EBOOL Count 35015366.01 07/2008 245 Blocs fonction DFB 246 35015366.01 07/2008 B AC Index A D Action, 194 Action à l’activation, 196 Action continue, 197 Activation, 196 Adressage Bus AS-i, 40 Bus FIPIO, 37 E/S Micro, 31 Modules en rack, 34 Momentum, 37 TBX, 37 Aiguillage, 186 Démarrage à froid, 82 DFB, 224 Divergence ET, 187 Divergence OU, 186 Divergences en ET, 178, 179 B Bloc fonction DFB, 224 C Commentaire, 192 Grafcet, 192 Liste d’instructions, 137 littéral, 155 Réseau de contacts, 123 Convergence ET, 187 Convergence OU, 186 Convergences en ET, 178, 179 Coupure secteur, 78 E Eléments graphiques, 124 Etape d’entrée, 206 Etape de sortie, 206 Etiquette Liste d’instructions, 136 littéral, 154 Réseau de contacts, 122 Exécution Cyclique, 99 Périodique, 101 Réseau de contacts, 130 Exécution d’un programme littéral, 171 EXIT, 170 F Figeage du Grafcet, 215 FOR...END_FOR, 169 G Grafcet, 177 35015366.01 07/2008 247 Index I O IF...THEN, 165 Initialisation du Grafcet, 213 Instance DFB, 236 Instruction arithmétique, 157 chaîne de caractères, 159 conversion, 162 Gestion du temps, 163 logique, 157 objet bits, 156 programme, 163 tableaux, 159 Instructions Liste d’instructions, 138 Objet Bit, 29 Bloc fonction, 46 Booléen, 26 DFB, 228 Indexé, 51 Mot, 27, 42 Objet langage P7, 25 Objets Grafcet, 54, 180 L Langage Littéral structuré, 152 Langage à contacts, 120 Langages PL7, 17 Liaison orientée, 191 Liste d’instructions, 134 Littéral structuré, 152 Logiciel PL7, 16 M Macro-étape, 205 Mémoire Bits, 64 Micro, 68 Mots, 66 Premium, 62, 70, 73, 75 TSX 37, 60, 68 TSX 57, 70, 73, 75 TSX Micro, 60 TSX57, 62 Module fonctionnel, 23, 115 Monotâche, 98 Multitâche, 21, 106, 108 248 P Page Grafcet, 182, 185 Paramètre DFB, 231 Phrase Liste d’instructions, 135 littérale, 153 PL7, 16 Prépositionnement du Grafcet, 212 Présymbolisation, 57 Programmation Réseau de contacts, 127 R Réceptivité, 199 Remise à zéro des macro-étapes, 216 Remise à zéro du Grafcet, 214 Renvoi de d’origine, 188 Renvoi de destination, 188 REPEAT...END_REPEAT, 168 Reprise à chaud, 80 Reprise secteur, 78 Réseau de contacts, 121 S Section, 21, 90 Section Grafcet, 210 Sous-programme, 21, 90 Symboles Grafcet, 178 Symbolisation, 55 35015366.01 07/2008 Index T Tableau, 48 Tâche, 21 Maître, 89 Rapide, 94 Traitement Evénementiel, 95, 112 postérieur, 220 Traitement préliminaire, 211 Traitement séquentiel, 218 V Variable DFB, 232 W WHILE...END, 167 35015366.01 07/2008 249 Index 250 35015366.01 07/2008