gpa-141 : automates programmables session ...laboratoire de gpa141 page 3 partie #1 : définir...
TRANSCRIPT
École de technologie supérieure
Département de génie de la production automatisée
GPA-141 : AUTOMATES PROGRAMMABLES
Session Automne 2012
LABORATOIRE #1
Objectif:
Ce laboratoire a pour objectif la prise de contact avec un automate programmable. Pour cette première
fois, vous aurez à programmer diverses équations de logique booléenne et à mettre en œuvre sur
l’automate l’automatisation d’un système.
Matériel mis à disposition:
Vous avez à votre disposition :
- un automate programmable de la compagnie Allen-Bradley
- un ordinateur
- un logiciel de programmation RSLogix 5000
Pour la prise de contact avec l’automate, l’approche choisie sera de faire une série d’exercices qui
permettront de découvrir divers aspects de l’automate utilisé en laboratoire.
Laboratoire de GPA141 Page 2
Ce style ou symbole : Indique :
Termes indiqués en italique gras (par ex.,
RSLogix 5000 ou OK) Élément ou bouton sur lequel vous devez cliquer ou nom de menu à
partir duquel vous devez sélectionner une option ou commande. Il
s’agit du nom d’un élément figurant à l’écran ou dans un exemple.
Termes utilisant la police Courier, entre
simples guillemets (par ex., 'Automate1') Élément que vous devez saisir dans le champ spécifié. Ce sont les
informations que vous devez indiquer en fonction de votre application
(par ex., une variable).
Remarque : Lorsque vous saisissez le texte dans le champ, souvenez-
vous qu’il est inutile de saisir les guillemets ; il vous suffit de saisir les
termes qu’ils contiennent (par ex., Automate1).
Le texte qui suit ce symbole fait référence à des informations
complémentaires. L’information peut vous fournir de précieux conseils
en vue de faciliter la compréhension et l’utilisation du ControlLogix.
Avertissement !!! Le texte qui suit ce symbole fait référence à un
message important. Il est conseillé de le lire attentivement.
Un lien vers un vidéo web démontrant ou réalisant les étapes
demandées.
Remarque : Si le bouton de la souris n’est pas précisé dans le texte, cela signifie que vous devez cliquer sur le
bouton gauche de la souris.
Laboratoire de GPA141 Page 3
Partie #1 : Définir l’équipement.
Le matériel
Chaque poste de travail possède; un ordinateur qui est relié à un automate. Le lien est un réseau Ethernet
dédié entre les deux. Il n’est donc pas possible d’interagir avec l’automate d’un autre poste. Chaque
châssis possède un automate, une carte de communication et une carte d’entrées et une carte de sorties. Ici
les entrées sont câblées sur des interrupteurs afin de permettre certaines simulations. Attention ces
interrupteurs d’entrées sont branchés en parallèle aux interrupteurs de fin de course sur les maquettes du
laboratoire (uniquement pour les quatre postes devant la classe). Pour les sorties à contrôler, seul les
maquettes en avant auront un résultat physique. Pour les autres postes, l’équipe devra regarder l’état du
voyant de sortie sur la carte.
16 x
Ethernet
4 postes avant
uniquement
Pour les laboratoires de GPA141, l’automate utilisé est le ControlLogix 5000 modèle 1756-L61, celui-ci
en soi ne peut pas fonctionner seul, il doit être mis dans un châssis compatible et correctement alimenté.
Bloc d’alimentation
Châssis
Chassis de contrôle (souvent appelé l’automate)
Carte contrôleur (automate), communication ou encore
d’entrées/sorties
Cette équipement est déjà monté et correctement câblé. Vous n’avez donc pas à démonter, modifier ou
altéré les équipements du laboratoire.
Laboratoire de GPA141 Page 4
Partie #2 : S’assurer du lien de communication
Présentation
Dans le monde des automates d’Allen-Bradley, la communication entre les logiciels propriétaires ou non
et les automates est assurée par un logiciel qui fait office de pont de communication. Ce logiciel est RS-
Linx (figure 1), il est nécessaire de configurer dans celui-ci le ou les liens désirés avec les équipements,
que ce soit pour programmer ou surveiller. Ce logiciel n’est pas utile à l’automate, il ne sert que lorsque
l’on veut mettre un logiciel en interaction avec celui-ci.
Ethernet
RS-
Linx
RSLogix 5000
Excel
FactoryView
Etc..
Figure 1 Rôle de RS-Linx
Il est important de comprendre que le serveur RS-Linx est un produit associer à l’ordinateur, il a
donc une seul configuration active et le fait de changer d’usager ne l’artère pas. Il est donc important à
chaque séance de laboratoire de vérifier ce lien, car rien ne garantit son exactitude face à vos besoins.
Laboratoire de GPA141 Page 5
Ouvrir l’interface du serveur RS-Linx pour s’assurer du lien
Celui-ci est accessible de deux manières; soit par le menu standard sous la branche de rockwell software
RS-Linx, comme montré à la figure 2.
.
Figure 2 Lancer RS-Linx par le menu de Windows
Ou encore en faisant un double-clic sur son icône dans la barre de tâche, voir la figure 3.
Figure 3 Lancer RS-Linx
L’application s’ouvrira sans fenêtre de surveillance, cela ne signifie pas que le lien n’est plus actif. Vous
devez faire une demande de visualisation, cette commande s’appelle un « RsWho ». La fenêtre qui
s’ouvre devrait contenir un lien de type Ethernet/IP comme montré à la figure suivante :
Figure 4 Interface de RS-Linx
Une vidéo montre comment ouvrir RS-Linx
Mettre en place un lien de communication
Laboratoire de GPA141 Page 6
Si lorsque que vous ouvrez (en cliquant sur le devant le lien) votre lien Ethernet dans la fenêtre de
surveillance, votre automate n’apparaît pas ou qu’il y a un X dessus, il est préférable de refaire le lien
Ethernet. Pour refaire le lien on doit premièrement fermer la(les) fenêtre(s) de surveillance ouverte(nt). En
second ouvrir le menu de configuration des pilotes « Configure drivers ». Mettre en place son lien.
1 Nettoyer
On peut essayer de nettoyer la liste des liens déjà en place « facultatif » en sélectionnant un pilote, puis en
appuyant sur le bouton « Delete », on répète l’exercice tant que la liste n’est pas vide.
2 Ajouter
Pour ajouter son lien choisir le type désiré dans la liste déroulante , pour les besoins
du laboratoire le choix sera toujours un lien de type « EtherNET/IP Driver ». Une fois le type sélectionné
cliquer sur le bouton « ADD New..»
Une fenêtre (figure 5) ouvre vous offrant un nom par défaut à donner au lien, il est préférable de laisser le
nom par défaut, afin d’éviter les confusions lors des marches à suivre des prochains chapitres.
Figure 5 Nom d'un lien
Une fois que vous aurez pressez le bouton « OK » pour confirmer le nom, Il sera nécessaire de définir sur
quelle carte réseau vous désirez utiliser, il est important de choisir la carte qui a une adresse locale
(192.168.100.X) afin de rechercher votre automate sur le bon canal. Chaque ordinateur possède deux
cartes réseau, une en lien avec l’établissement universitaire et l’autre avec votre automate, voir la figure 6.
Ethernet
(192.168.100.x)
ÉTS
Ethernet
Figure 6 branchement Ethernet du pc
Laboratoire de GPA141 Page 7
Figure 7 Sélection de la carte réseau
Après avoir sélectionné la bonne carte et cliquer le bouton « OK », la fenêtre se ferme. Vous pouvez
ensuite fermer la fenêtre « configure driver » en pressant le bouton « close ».
Il est de nouveau possible de faire faire une détection et/ou surveillance du réseau en passant par la fenêtre
de recherche « RSWho ».
Figure 8 Détection des périphériques EtherNET/IP
Si à cette étape votre automate n’apparait toujours pas à l’intérieur de la branche de votre réseau,
contacter votre chargé de laboratoire pour une aide supplémentaire.
Vous pouvez maintenant fermer votre RS-Linx sans crainte puisqu’il est une application de type serveur et
restera actif en arrière-plan (son icône devrait apparaitre dans la barre de tâche ).
Laboratoire de GPA141 Page 8
Partie #3 Démarrer un projet
Lancer l’application
Pour programmer un automate de la famille des ControlLogix, on doit utiliser l’application RSLogix
5000. Cette application permet la programmation, la modification, les sauvegardes et le diagnostic d’un
programme exécuté par l’automate. Ce programme n’est pas nécessaire pour que l’automate puisse utiliser
votre programme.
Pour démarrer ce programme allez dans le sous-menu Rockwell Software de votre ordinateur et choisissez
« RSLogix 5000 » comme montré à la figure 9.
Figure 9 Lancer RSLogix 5000
L’application de l’école est configurée pour s’ouvrir sur une fenêtre d’aide au démarrage. Cette fenêtre
montre les anciens fichiers pour ouverture rapide, mais contient également les liens importants vers les
manuels techniques de l’automate ainsi que multitude de vidéo d’aide à la compréhension de votre
équipement.
Figure 10 Fenêtre de départ
Vidéo d’aide
par le fabricant
Manuel d’aide
technique en PDF
Laboratoire de GPA141 Page 9
Les menus d’en-tête
Les menus d’en-tête de l’application continent plusieurs sous-sections avec des mandats distincts. Que
l’on présente ci-bas.
Figure 11 Menu en en-tête de RSLogix
Si jamais les menus d’en-tête sont non fonctionnels, il est possible de les remettre à leurs positions
par défaut. Choisir l’option « Toolbars » dans le menu d’édition. Cliquer sur le bouton « Reset Factory
Toolbar Layout».
Figure 12 Réinitialisation de l'en-tête
L’état du contrôleur du
projet
Édition classique des
fichiers sous un
environnement
Windows
Les commandes du
langage de
programmation choisi
Fenêtre de recherche
des étiquettes « tags »
Validation de la
syntaxe
Chemin d’accès avec
le contrôleur où l’on
veut mettre le projet
Laboratoire de GPA141 Page 10
Partie #4 La programmation
Exercice 1
Création d’un projet
Vous devez cliquer « New » dans le menu « File » ou encore en appuyant sur l’icône de la barre de
menu. Vous devez spécifier les caractéristiques de base de contrôleur dans la fenêtre montrés à la figure
13. Nommez votre premier projet « Lab1_a ».
Figure 13 Création d'un projet
Type : Choisir le modèle d’automate, dans les laboratoires de GPA141 nous utilisons le
1756-L61.
Revision : La révision du firmware courante dans l’automate. Pour connaitre cette version,
allez dans les propriétés de l’automate sous une fenêtre RSWho de RS-Linx.
Comment chercher l’information.
Name : Nom que vous désirez donner à votre projet, il sera le nom par défaut du fichier,
mais ils ne sont pas obligés d’être identiques.
Description : Facultatif, permet de mettre une description, utile uniquement pour les
programmeurs.
Chassis Type : Spécifier la dimension (nombre de fente pour des cartes) du châssis
Slot : Numéro de fente où l’automate du projet se trouve. Il est important de spécifiez
que le compte commence toujours à zéro.
Ex : un 1756-A7 signifie 7 fentes qui vont du numéro 0 à 6
Create In : Lieu de sauvegarde du fichier, ici spécifier votre répertoire personnel sur le
réseau ou autres unité de stockage personnel.
Laisser sur le « C » augmente les risques de plagiat. Art 8.2 du
http://www.etsmtl.ca/A-propos/Direction/Politiques-reglements/regl_etudes_sup.aspx
Security Authority : Laisser l’option sur « No protection »
Laboratoire de GPA141 Page 11
Une fois votre projet ouvert, un arbre apparait sur le côté gauche de l’application comme montré à la
figure 14.
Figure 14 Arbre d'un projet
IMPORTANT
Il faut comprendre que l’automate que nous utilisons dans le laboratoire est d’une puissance imposante.
Certaines caractéristiques ou fonctions ne seront pas abordées ou feront office de certaines hypothèses afin
de faciliter la compréhension de l’automate en général. Nous n’allons utiliser qu’une tâche de type continu
pour nos différents projets celle-ci pourra comprendre si nécessaire plus d’un programme qui auront
chacun plusieurs routines et étiquettes (synonyme de variables) locales montrés en blanc à la figure
suivante.
On retrouve ici notre
automate et uniquement les
cartes qu’il utilisera
Demander à faire des
graphiques de suivi
Liste des types d’étiquettes
de base et personnalisées
Fonctions personnalisées
Entrées / Sorties et étiquettes
globales
Liste des programmes et
étiquettes locales
Laboratoire de GPA141 Page 12
Figure 15 Structure d'un projet
Dans le cadre de ce cours nous allons retrouver SEULEMENT les informations de type communication
dans la section des étiquettes globales « Controler Tags » de l’automate. Tous ce qui concerne nos
séquences et besoin en temporisation, compteur, registres mémoires ou autres seront locales à votre
programme « Program Tags ».
Ajout des cartes du projet
Présentement, notre automate ne peut interagir avec aucune entité externe.
Figure 16 Aucunes cartes autre que l'automate
Pour ce premier projet nous allons ajouter une capacité de lire l’état des interrupteurs du montage et
assigner des sorties (DEL). Pour ce faire nous devons ajouter la définition de deux cartes dans le châssis
du projet, avec un clic-droit sur le « BackPlane » (montré à la figure 16), sélectionnez l’option « New
Module » comme montré à la figure suivante.
Laboratoire de GPA141 Page 13
Figure 17 Ajouter une carte
La fenêtre ouverte nous permet d’insérer manuellement la ou les cartes. On doit connaitre les modèles, les
caractéristiques et la révision. Les informations peuvent être dans notre cas récupérées dans une fenêtre
RSWho de RS-Linx. Ajout manuellement d’une carte d’entrée. Ajout manuellement d’une carte de sortie
Quand on sélectionne une carte, le système vous demande la version majeure et si il y a lieu la révision
mineure comme dans l’exemple suivant : « Revison 3.002 » donc la version majeure est 3 et la révision
mineure est 2. Comme montré dans les vidéos, RS-Linx vous permet de découvrir cette information en
allant sur les propriétés de la carte.
Figure 18 Liste des cartes possibles
Puisque cette génération d’automate permet plus d’un contrôleur (automate) sur le même châssis, il est
donc important d’ajouter dans notre projet uniquement les cartes que l’on devra utiliser pour interagir avec
le monde extérieur. Donc dans notre cas, puisque l’automate ne fait aucun contrôle via la carte Ethernet,
celle-ci n’est pas incluse dans les cartes de nos projets dans le laboratoire du cours GPA141.
Éditer la routine principale
Dans l’arborescence du projet, ouvrir la branche des tâches, ouvrir la tâche « MainTask », ouvrir le
programme « MainProgram » et faire un double-clic sur la routine « MainRoutine » comme montrée à la
figure 19.
Laboratoire de GPA141 Page 14
Figure 19 Chemin jusqu'à la routine principale
La routine principale d’un programme n’a pas un nom spécifique, elle est définie dans les propriétés de
programme. Elle est identifiée par l’icône , cela signifie qu’elle est appelée à chaque scrutation « scan »
du programme et c’est le rôle du programmeur d’appeler les autres sections du programme à partir de
celle-ci et dans l’ordre désiré.
Dans la fenêtre d’édition qu’y s’offre à vous, le principe de base est le glisser-coller « drag-and-drop ».
Créez les deux barreaux montrés ci-dessous dans votre routine. À noter que l’on ne peut ajouter en
dessous du barreau de fin « end ». Création de mes premiers barreaux
Figure 20 Barreaux à créer dans le projet
Tant qu’un barreau à des « e » devant, cela signifie que le barreau à une erreur de syntaxe. Il est également
possible de demander manuellement une compilation soit de la routine active « dans le menu d’en-
tête » ou du projet en entier « dans le menu d’en-tête ».
Expliquer les adresses des entrées et sorties
Du point vu de l’adressage des entrées et des sorties, l’automate procède de manière absolue pour interagir
avec ces dispositifs. Ce qui signifie une adresse absolue également, si la carte est dans le même châssis
que l’automate, alors l’adresse commence toujours par le mot réservé « Local ». Par la suite, le premier
chiffre spécifie la fente, ici l’automate ne fait pas de distinction entre les modèles de carte. Après le « : »
nous rentrons dans les caractéristiques de la carte, celle-ci peut contenir une ou plusieurs des sous-groupes
suivant : des entrées « I », des sorties « O », des états de fonctionnement « S », ou encore des commandes
de comportement « C ». Tout dépendant des modèles de carte nous allons retrouver dans les entrées et
dans les sorties un registre « DATA » étant l’information reçue ou transmise avec le monde extérieur.
Laboratoire de GPA141 Page 15
IB-16I
0
24 VDC
1
2
3
M
pp
a1
a2
4
5
6
7
8
9
10
11
12
13
14
15
V1a
V1b
V2a
V2b
V3a
V3b
OB-
16I0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
24 VDC
V1
V3
V2+
V2-
LumièreD
AT
A
DA
TA
Figure 21adressage des I/O
Donc si l’on désire par exemple, savoir si l’interrupteur « pp » est actionné, nous aurons besoin de nous
faire un contact sur l’adresse de l’entrée : « Local.1 :I.Data.1 ».
Ou encore si l’on désire activer V3, nous devrons mettre une bobine qui active l’adresse
« Local .2 :O.Data.3 ».
Charger le programme dans l’automate
Pour arriver à charger le programme dans votre automate, vous devez spécifier le chemin d’accès de votre
ordinateur jusqu’à votre automate, puisque la famille ControlLogix est d’une approche réseau, il pourrait
avoir plusieurs automates dans accessible, il est donc normal de devoir spécifier le chemin puisque le
programme est incapable de savoir à quel équipement s’adresse ce projet.
Ce chemin sera mémorisé pour l’avenir, mais peut être changé en tout temps. Vous devez donc ouvrir une
mini-fenêtre « RSWho » à l’intérieur de votre programme en appuyant sur l’icône dans les menus d’en-
tête tel que montré à la figure suivante.
Figure 22 Chemin d'accès vers l'automate
Laboratoire de GPA141 Page 16
Dans la fenêtre, ouvrir votre lien EtherNET/IP, la carte, suivi du châssis et cliquez finalement sur votre
automate.
Figure 23 Chemin pour atteindre l'automate
Par la suite, le bouton « » deviendra actif et vous pourrez télécharger « download » dans
l’automate. La transmission d’un projet se fait toujours dans l’ordre suivant:
DÉBUT
AUTOMATE
en mode RUN
TRANSFERER le
fichier
NON
PASSER en
mode PROGRAM
OUI
Réactiver le
mode RUN
NONPASSER en
mode RUN
OUI
RESTER en ligne
avec l’automate
pour observer
FIN
Figure 24 Séquence de transfert
Chargement d’un programme.
À cette étape il sera possible de mettre en action « RUN »l’automate, si la question ne vous a pas été
demandé durant le transfert. Il est important de comprendre qu’il existe 3 états de contrôleur et deux états
de lien entre RSLogix5000 et l’automate.
Hors-ligne
En mode
programme
En marche
En test
Figure 25 États d'un contrôleur
Laboratoire de GPA141 Page 17
L’automate peut être :
Tableau 1 États du contrôleur et lien
Mode : Couleur associé
à l’état
Définition
RUN Votre programme réside dans l’automate et celui-ci l’exécute selon
votre configuration mise en place dans votre projet
PROGRAM Votre programme réside dans l’automate mais n’est pas exécuté
TEST Votre programme réside dans l’automate et celui-ci l’exécute selon
votre configuration mais sans affecter les sorties
Connexion Couleur associé
à l’état
Mode actif sur le contrôleur
Online Celui affiché
Offline Inconnu, ce qui signifie que de se mettre offline ne désactive pas un
automate et ne le rends pas passif.
Valider la programmation
Mettre l’automate en marche « RUN ».
Répondre à la question 1 du laboratoire (celle-ci se trouve à la fin du présent document), il n’est pas
nécessaire de faire valider.
Une fois la question 1 répondu, sauvegarder votre programme puis mettre l’automate en mode
« program » et ensuite vous mettre hors ligne « offline ».
Laboratoire de GPA141 Page 18
Les langages
Il existe quatre langages de programmation possibles dans la famille des ControlLogix, par contre ils ne
sont pas nécessairement tous accessibles si votre licence ne le permet pas. Dans le laboratoire, les quatre
langages sont disponibles. Chaque langage peut faire beaucoup pour répondre à une problématique
d’automatisation. Par contre ils ont chacun leurs forces comme montré au tableau suivant. Il en revient
donc au programmeur de choisir la meilleure approche selon ces besoins afin de simplifier la solution.
Malheureusement quand un programmeur désire changer le choix de langage pour une routine, il n’existe
pas d’outil de conversion, il doit donc réécrire la routine, d’où l’importance de bien choisir le langage de
chacune des routines lors de leur création.
Tableau 2 Mandats des langages de programmation
En général, si la fonction ou le groupe de fonctions représente Utilisez ce langage
une exécution continue ou parallèle de multiples opérations (non séquentielles) logique à relais
des opérations booléennes ou sur bit
des opérations logiques complexes
un traitement de messages ou de communications
un asservissement machine
des opérations que le personnel de maintenance peut avoir à interpréter pour
dépanner la machine ou le procédé
un procédé continu et une commande de variateur
diagramme de blocs
fonctionnels
un contrôle de boucle
des calculs de débit
une gestion de haut niveau de multiples opérations
graphe de
fonctionnement
des séquences répétitives d’opérations séquentielles (SFC)
un processus de traitement par lots
une commande de mouvement avec du texte structuré
des commandes machine
des opérations mathématiques complexes texte structuré
des calculs sur fichiers ou en boucle
le traitement de chaînes ASCII ou de protocoles
Les exercices tout au long de ce laboratoire vous feront toucher aux différents langages.
Laboratoire de GPA141 Page 19
Exercice 2
SOUS-ROUTINE
Les sous-routines permettent de clarifier et simplifier la programmation, elles peuvent être dans différents
langages, mais elles sont exécutées selon les demandes du programmeur, nous allons donc modifier le
projet précédent afin que la routine principale appelle deux sous-routines contenant nos deux barreaux. Il
est clair ici que la division n’est qu’à titre formatif sur un si petit programme, mais déjà dans un
programme de base, elle prend toute son importance pour réussir à suivre et déverminer un projet. Pour
appliquer les modifications qui suivent, il est important de mettre votre programme en mode hors-ligne
« offline ».
Création d’une sous-routine
Dans la structure de votre projet, ouvrir la branche des tâches « Tasks », ouvrir la tâche par défaut
« MainTask », puis ouvrir le programme « MainProgram », par défaut également, comme montré à la
figure 26.
Figure 26 Arbre par défaut d'un nouveau projet
En cliquant avec le bouton de droite sur l’item « MainProgram », vous pourrez ajouter une routine comme
montrée ci-dessous.
Figure 27 Création d'une routine
Laboratoire de GPA141 Page 20
Name : Nom que vous désirez donner à votre routine, aucune espace ou caractère
spécial.
Description : Facultatif, permet de mettre une description, utile uniquement pour les
programmeurs.
Type : Choix du langage de conception de la routine, on ne peut qu’avoir qu’un
langage à la fois, et il est fixe une fois créé.
In Program or Phase : Ne faisant pas de gestion de production de type « batch » nous allons
toujours dans le cadre du cours choisir dans le « MainProgram »
Assignement : Défini si la routine qui sera exécutée automatiquement sur une faute du
programme en cours.
Vous allez maintenant créer deux sous-routines de type « Ladder Diagram » dans votre programme
« MainProgram » toujours dans le projet lab1_a; Equipement1 et Equipement2.
Figure 28 ajout d'une routine
Nous allons déplacer les deux barreaux de la routine principale vers la routine Equipement1 et
Equipement2. Pour sélectionner un barreau en entier, vous devez cliquer sur le chiffre à l’extrémité
gauche du barreau comme montré à la figure suivante :
Figure 29 Sélection d'un barreau
En utilisant les touches habituelles de Windows CTRL ou SHIFT pour la sélection multiple, il est possible
de sélectionner plus d’un barreau à la fois.
Sélectionnez le premier barreau et par la suite faites un « cut » dans le menu « edit » de la barre de menu.
Ouvrir la routine Equipement1 en double-cliquant dessus. Sélectionner le barreau « end » dans celle-ci et
faire un « paste ». Normalement votre barreau a été déplacé dans la routine Equipement1. Refaire
l’exercice pour déplacer le 2e barreau dans la routine Equipement2.
Laboratoire de GPA141 Page 21
Il est important de comprendre que les routines ne sont pas appelées automatiquement, c’est le
programmeur qu’y a ce contrôle. Nous allons donc rajouter dans la routine principale l’appel des deux
autres routines. Déplacez-vous dans l’onglet de gestion du programme (figure 30) et ajoutez dans deux
barreaux dans votre routine principale. Par la suite, ajouter à chacun des barreaux la commande « JSR »
(qui signifie : Jump Sub Routine), chacune de ces commandes devraient appelées respectivement les
routines Equipement1 et 2.
Figure 30 Gestion du programme
Dans le cas présent, la routine ne reçoit, ni ne retourne de paramètres, vous pouvez donc les enlever de la
boîte (voir la figure 31 ).
Figure 31 Gestion des paramètres d'un appel de routine
Une fois les deux appels mis en place, vos trois routines devraient ressembler à la figure 32.
Figure 32 Barreaux de l'exercice 2
Par la suite, charger « download » le tout dans l’automate et valider que le fonctionnement est le même
qu’avant.
Laboratoire de GPA141 Page 22
Les contacts booléens
Description
Les informations de type booléennes sont les plus utilisées dans un automate. Cette donnée peut
représenter une entrée ex . : l’état actif/inactif d’un interrupteur. Une étiquette interne à l’automate ou
l’état souhaité sur une sortie ex. : moteur en marche ou non.
L’information booléenne est très souvent associée à la programmation en barreaux « Ladder ». Il existe
donc différents opérateurs en « ladder » pour analyser un état souhaité d’une donnée booléenne et d’autres
pour assigner un état à cette donnée booléenne.
Opérateur de type lecture
Il existe 4 informations utiles dans un signal booléen, la présence, l’absence, l’apparition et la disparition.
Ils sont montrés et expliqués dans le tableau suivant :
Symbole Nom Description
Contact normalement ouvert Retourne un vrai (créer l’effet de se fermer
et de laisser passer l’électricité dans le fil) si
la donnée surveillée est vraie et sinon
retourne un faux (circuit ouvert).
Contact normalement fermé Retourne un vrai (créer l’effet de garder le
contact fermé et de laisser passer
l’électricité dans le fil) si la donnée
surveillée est fausse et sinon retourne un
faux (circuit ouvert).
Ou
Front montant Passe à vrai le temps d’un balayage de
programme (appelé souvent un « scan »)
quand l’information surveillée devient
vraie.
Front descendant Passe a vrai le temps d’un balayage de
programme (appelé souvent un « scan »)
quand l’information surveillée devient
fausse.
Laboratoire de GPA141 Page 23
Opérateur de type assignation
Il existe 3 assignations possibles sur une donnée booléenne, l’égalité, l’activation et la désactivation. Ils
sont montrés et expliqués dans le tableau suivant :
Symbole Nom Description
Égalité Mets à vrai la donnée associée si l’équation
qui précède est vraie (l’électricité active
cette bobine) sinon mets à faux la donnée
Activé Mets à vrai la donnée associée si l’équation
qui précède est vraie sinon ne fait aucun
effet.
Désactivé Mets à faux la donnée associée si l’équation
qui précède est vraie sinon ne fait aucun
effet.
Ressource supplémentaire fournie dans RSLogix5000 pour toutes les fonctions couvertes dans ce
laboratoire:
Créez un nouveau projet, nommez-le lab1_b. Dans celui-ci, vous allez ajouter les cartes situées sur les
« slot » 1 et 2 (valable pour quasiment tous les exercices du lab1), vous allez créer les barreaux suivant
directement dans la routine principale « MainRoutine ». Ajout d’une étiquette « tag » à même le programme.
Répondre à la question 2 du laboratoire (celle-ci se trouve à la fin du présent document), il n’est pas
nécessaire de faire valider le programme.
Laboratoire de GPA141 Page 24
Exercice 3
Les temporisateurs
Description
Les temporisations dans un automate sont l’exercice d’évaluer si un chronomètre a atteint une certaine
valeur pour procéder à une action. Les temporisateurs « Timer » n’arrêtent pas l’exercice de scrutation du
programme, ils ne font qu’activer des états d’étiquettes afin que nos logiques réagissent.
Dans la philosophie des automates Allen-Bradley, il existe trois types de temporisation; le retard, le
prolongement et le cumulé. Le nom du type de variable de temporisation à de légères différences et plus
ou moins de fonctionnalités tout dépendant du langage choisi pour faire évaluer la fonction de
temporisation.
Dans la famille ControlLogix la temporisation a une base de temps toujours en milliseconde, donc
exemple : Pour avec une attente de 3 secondes, vous devez indiquer un objectif de 3000 «.PRE » dans
l’étiquette.
Figure 33Onglet des temporisateurs et compteurs
Le retard
Le retard a pour mandat d’activer son bit complété « DN » en retard sur l’entrée active. Comme montré
dans le chronogramme de la figure suivante.
Figure 34 Chronogramme d'une fonction de retard
Laboratoire de GPA141 Page 25
Voir le tableau suivant pour trouver le symbole de la fonction de retard selon le langage choisi.
Langages Fonction de retard Type d’étiquette
Programmation en barreaux
TIMER
Bloc Fonctionnel « FB »
FBD_TIMER
Texte Structuré TONR(TONR_01);
FBD_TIMER
Programmation séquentielle
« SFC »
Inclus dans une étiquette de type
SFC_STEP
Comme troisième exercice, nous allons créer 2 comportements, et ce sous plusieurs langages; une
activation retardée sur une sortie « DEL de la carte de sortie » et une sortie qui s’allume un certain temps
avant de s’éteindre, et ce même si la demande reste active trop longtemps. Vous aurez à faire cette
programmation en barreaux, en « blocs fonctionnels » et en « Programmation séquentielle » dans un
nouveau projet appelé lab1_c.
Dans une première routine en barreaux « Ladder » faire le schéma suivant : Création de la routine.
Figure 35 Exercice en barreaux sur un "On-Delay"
Laboratoire de GPA141 Page 26
Dans une seconde routine en blocs fonctionnels « FB : Functions Blocs » faire le schéma suivant qui
devrait avoir le même comportement que la routine précédente. Vous devez vous assurer que les différents
blocs ont les bons paramètres, identiques à ceux spécifiés sous le schéma suivant. Création de la routine.
*1
*1
*2
*3
*2
*3
Laboratoire de GPA141 Page 27
Dans une troisième routine de cet exercice, nous allons utiliser la programmation séquentielle
« SFC :Sequentiel Function Chart » pour faire le schéma suivant qui devrait avoir le même comportement
que les routines précédentes. Vous devez paramétrer l’onglet SFC du contrôleur pour que celui-ci fasse
certaines opérations pour nous, voir la figure 36. Création de la routine.
Figure 36 Configuration comportementale du SCF
* Petit truc :
Clic droit choisir « Browse Tags »
Laboratoire de GPA141 Page 28
Le prolongement
Le prolongement a pour mandat d’activer son bit complété un certain temps supplémentaire une fois que
l’entrée devient inactive. Comme montré dans le chronogramme de la figure suivante.
Figure 37 Chronogramme d'une fonction de prolongement
Voir le tableau suivant pour trouver le symbole de la fonction de prolongement selon le langage choisi.
Langages Fonction de retard Type de étiquette
Programmation en barreaux
TIMER
Bloc Fonctionnel « FB »
FBD_TIMER
Texte Structuré TOFR(TOFR_01);
FBD_TIMER
Programmation séquentielle
« SFC »
n’existe pas
Laboratoire de GPA141 Page 29
Nous allons faire comme exemple un simple prolongement de signal d’entrée, souvent utilisé si l’on veut
s’assurer qu’un pulse sur une entrée va être vu par des équipements branché sur un réseau de
communication à fréquence lente. Nous allons rajouter cela à l’intérieur d’une routine « Retard » à la suite
du programme de l’exercice 3, ne pas oublier d’en faire l’appel dans la routine principale.
Le cumulé
Le cumulé ne se réinitialise pas automatiquement, il chronomètre si l’entrée est vrai, mais ne se réinitialise
pas automatique, on doit faire une réinitialisation « RST » dessus la variable. Il souvent utilisé pour
compter des temps de production en excluant les arrêts de machine.
Figure 38 Chronogramme d'une fonction de temps cumulé
Laboratoire de GPA141 Page 30
Voir le tableau suivant pour trouver le symbole de la fonction de temps cumulé selon le langage choisi.
Langages Fonction de retard cumulé Type d’étiquette
Programmation en barreaux
TIMER
Bloc Fonctionnel « FB »
FBD_TIMER
Texte Structuré RTOR(TOFR_01);
FBD_TIMER
Programmation séquentielle
« SFC »
n’existe pas
* Une fois tous les temporisateurs de l’exercice 3 (retard et prolongement) seront programmés et
fonctionnels, vous devez faire valider votre programme par le chargé de laboratoire.
Laboratoire de GPA141 Page 31
Exercice 4
Les compteurs
Description
Les compteurs sont des outils qui ont pour rôle de compter des impulsions, alors que le rôle des
temporisateurs est de compter du temps. Les compteurs ont un comportement similaire au temporisateur,
soit d’avoir un objectif « .PRE », tenir un compte des pulses « .ACC » et des bits d’état.
Il existe trois compteurs, l’incrémentale, le décrémentale et le double-sens.
L’incrémentale
Il représente la quasi-totalité des compteurs utilisés dans l’environnement d’AB « Allen-Bradley ». La
pulsation d’entrée incrémente l’accumulation « .ACC » et si celui-ci est égal ou supérieur à l’objectif
« .PRE » alors la sortie est vraie, comme montrée ci-dessous.
Figure 39 Chronogramme d'un compteur incrémentale
Langages Fonction de compte Type d’étiquette
Programmation en barreaux
COUNTER
Bloc Fonctionnel « FB » n’existe pas
Texte Structuré n’existe pas
Programmation séquentielle
« SFC »
n’existe pas
Laboratoire de GPA141 Page 32
Le décrémentale
Souvent utilisé en combinaison avec le « CTU » afin de faire des gestions de compte, exemple : connaître
la quantité dans une zone tampon entre une machine A et une machine B. attention, la commande « RES :
Reset » sur un « CTD » ne replace pas l’accumulateur à la valeur préréglé.
Langages Fonction de compte Type d’étiquette
Programmation en barreaux
COUNTER
Bloc Fonctionnel « FB » n’existe pas
Texte Structuré n’existe pas
Programmation séquentielle
« SFC »
n’existe pas
Le double-sens
Souvent utilisé dans un monde de gestion d’inventaire dynamique, celui-ci peut augmenter ou diminuer
son compte avec deux entrées impulsives distinctes.
Langages Fonction de compte Type d’étiquette
Programmation en barreaux n’existe pas
Bloc Fonctionnel « FB »
FBD_COUNTER
Texte Structuré CTUD(CTUD_01);
FBD_COUNTER
Programmation séquentielle
« SFC »
n’existe pas
Laboratoire de GPA141 Page 33
Créez une sous-routine « Compteurs » de type « Fonction Block » dans un nouveau projet « lab1_d », ne
pas oublier d’appeler votre sous-routine avec la fonction « JSR » dans la routine principale.
Ajoutez le schéma suivant dans la sous-routine.
Figure 40 Schéma de compteur directionnel
Charger le projet dans l’automate puis expliquez le comportement à la question 4 à la fin du laboratoire.
Laboratoire de GPA141 Page 34
Exercice 5
Les Étiquettes « Tags »
Depuis le début de ce laboratoire, nous avons créé des étiquettes de différent type (bool, timer, etc..)
directement dans la fenêtre d’édition de nos programmes sans se soucier de la portée. Nous allons
maintenant aborder ces étiquettes; où elles sont mises, comment les observer quand l’automate est en
marche et comment s’assurer qu’elles ont une valeur désirée.
Pour ceux qui ont une bonne connaissance de la programmation informatique, sachez que l’automate ne
fait pas d’allocation dynamique. Il est donc nécessaire de tout définir nos besoins dans un projet, si l’on
utilise des tableaux, ils doivent être assez grands pour répondre à vos demandes en tout temps.
Il y a deux lieux où résident les étiquettes créées, dans la partie globale du contrôleur donc accessible en
lecture et écriture de toutes les routines et de tous les programmes de votre projet. Cette zone est la section
des « Controler Tags » dans votre automate.
Figure 41 Étiquettes globales
Par convention, cette zone contient uniquement les entrées/sorties et les étiquettes servants à la
communication entre les programmes ou équipements externes.
La seule autre façon de déclarer une étiquette est qu’elle appartienne à un programme celle-ci sera donc
visible que pour les routines de ce programme uniquement, elle sera déclarée dans la section « Program
Tags ».
Figure 42 Étiquettes locales
Pour visualiser ces listes, vous n’avez qu’à double-cliquer sur la zone souhaitée. Il est possible de mettre
des filtres de recherche, afin de restreinte la recherche, mais également de trouver les variables inutiles,
oubliées par le programmeur.
Laboratoire de GPA141 Page 35
Il est possible d’ajouter, modifier ou supprimer des variables dans nos listes. Pour l’ajout on peut le faire
de deux manières, soit en faisant un clique-droit sur la zone où l’on veut ajouter la variable.
Figure 43 Ajout d'une étiquette
On peut également l’ajouter des variables à la liste si on se met sur l’onglet « Edit Tags» de la liste. Par la
suite on peut directement remplir les colonnes de la dernière ligne pour ajouter la donnée. Ici le
comportement est de type transactionnel comme une base de données, cela signifie que vous devez donc
compléter la ligne au complet et y enlever le focus pour que celle-ci soit ajoutée dans le projet.
Figure 44 Ajout d'une étiquette
Par la fenêtre des variables, et dans l’onglet « Edit Tags », il est possible de changer les caractéristiques
d’une variable déjà existante dans le système.
Pour supprimer une variable, vous devez sélectionner la ligne en entier en cliquant sur la petite bande
grise à sa gauche. Par la suite vous pourrez la supprimer en pressant la touche « Supprimer » de votre
clavier.
Figure 45 Supprimer une étiquette
Si l’on choisit l’onglet « Monitor Tags » il est possible de voir le contenu des variables et de les changer
dans l’automate alors que le programme est en exécution. La donnée n’est pas sauvé dans le programme à
moins de faire une sauvegarde et de répondre oui à la question du « upload data ». Par contre, si on est
hors-ligne les valeurs saisies seront également transférées lors du prochain chargement dans l’automate.
Figure 46 Visualisation du contenu des variables
Laboratoire de GPA141 Page 36
Lors de la création d’étiquettes dans un automate de la famille ControlLogix, elles peuvent être de quatre
types : base, alias, producteur ou encore consommateur. Dans notre cas, nous n’utiliserons que les deux
premiers types.
Base :
Une variable de type base est une variable classique, un peu comme une variable dans un ordinateur. Elle
sert à retenir une information, exemple : l’étape d’un système où il est rendu.
Alias :
Une variable de type alias est un pointeur, elle ne contient pas une information propre à elle, elle réfère à
un autre contenant de donnée. Très utilisée avec les entrées/sorties puisque le chemin est parfois laborieux
à retenir surtout dans un projet contenant plusieurs entrées/sorties.
Exemple : Lumiere_Verte_Chapiteau alias de Local :2.O.Data.3
Comme exercice, nous allons créer un nouveau projet « lab1_e » contenant comme depuis le début une
carte d’entrées et une carte de sorties. Dans la section des « program tags », créer la liste suivante
mentionnée au tableau 3.
Tableau 3 Liste d'étiquettes à créer
Tag Type Data Type Adresse
Description
Index Base DINT Index qui définit le bit actif
Pulseur Base TIMER Pulseur dans le système
P_1Hz ALias BOOL Local:1:I.Data.0 Choix fréquence pulseur
P_2Hz ALias BOOL Local:1:I.Data.1 Choix fréquence pulseur
P_4Hz ALias BOOL Local:1:I.Data.2 Choix fréquence pulseur
ImageDeSortie Base INT Table image pour appliquer sur toutes les
sorties de la carte.
Par la suite rajouter les quatre routines suivantes :
La question 5 (à la fin) consiste à mettre les commentaires sur les différentes lignes de code afin
d’expliquer le comportement. Et le mandat de chacune des lignes suivantes :
MainRoutine :
Laboratoire de GPA141 Page 38
Exercice 6
Les instructions « Add-On »
Depuis quelques générations, les automates ControlLogix nous permettent de créer nos propres
instructions afin de simplifier la programmation. Cette option est fort utile quand il y a répétition d’une
logique dans le système. Exemple, vous devez automatiser la séquence de huit machines identiques dans
votre automate, vous allez construire votre instruction qui contrôle une machine en permettent le passage
de paramètre de type entrée/sortie. Vous aurez donc une instruction à programmer et celle-ci sera appelée
huit fois pour séquencer chaque machine de manière indépendante.
Nous allons nous créer notre propre instruction de contrôle de moteur, celui-ci aura un départ, un arrêt et
une validation. Les sorties seront la commande au moteur et une faute si la validation ne se fait pas.
Création d’une instruction.
Avec le bouton de droite sur les « Add-On Instructions » de votre projet, on peut ajouter une instruction.
Y ajouter les entrées et sorties suivantes :
Laboratoire de GPA141 Page 39
Et finalement notre instruction aura besoin de certaines variables locales pour effectuer sa tâche.
Nous retrouvons ici la logique interne de notre instruction pour arriver à faire le contrôle d’un moteur.
Laboratoire de GPA141 Page 40
Par la suite il sera possible de se créer une routine qui utilisera notre instruction :
Question
Expliquer le comportement :
Si départ uniquement :
Si départ et rapidement suivi de la confirmation :
L’arrêt alors que le moteur est en marche normale :
Et que se passe-t-il si l’on perd la confirmation alors que le moteur est en marche normale :
Laboratoire de GPA141 Page 41
Exercice 7
Les comparateurs
Comme vous avez pu le constater, l’automate ne travaille pas uniquement avec des données booléennes, il
utilise de manière constante des valeurs numériques. Voici les plages de valeurs couvertes par chacune des
variables numériques:
DATA TYPE Étendu des valeurs Bits
BOOL 0 ou 1 0
SINT 0 @ 255 7 - 0
INT -32768 @ 32767 15 - 0
DINT -2 147 483 648 @ 2 147 483 647 31 - 0
REAL -3.40282347E38 @ 3.40282347E38 31 - 0
Il existe donc une série de comparateurs numérique comme le montrent les barreaux suivants, vous devez
fournir la liste complête des comparateurs numérique dans une programmation en barreaux :
Laboratoire de GPA141 Page 42
Exercice 8
Risque de dupliquer une sortie
Pourquoi il n’est pas recommandé de dupliquer une sortie? Ceci risque de créer un conflit sur la valeur de
la mémoire dupliquée. Le programme vous mettra un avertissement, mais vous laissera continuer, car il
est possible de faire opération de manière souhaitée dans certain cas, par contre pour la moyenne des
programmes ceci signifie une erreur de logique.
Faites un programme contenant ces deux barreaux, essayez-le en mode « run » et expliquez le
comportement à la fin du rapport.
Figure 47 Conflit d'adresse
Laboratoire de GPA141 Page 43
Exercice 9
Réaliser une petite séquence
Le GRAFCET est un diagramme qui représente l’état logique d’un procédé et qui le contrôle. Nous ferons
ici le GRAFCET d’un automatisme très simple.
MTConvoyeur
V
pb
m
Ce petit automatisme de remplissage de bouteilles est constitué d’un convoyeur commandé par un moteur
« MT », d’une valve de remplissage « V » et de deux capteurs, un capteur de présence de bouteille prête à
être remplie « pb » eu un bouton-poussoir « m ».
Pour démarrer l’automatisme, il suffit d’appuyer sur le bouton poussoir « m ». Le tapis roulant démarre et
une première bouteille se présente au poste de remplissage. Le capteur « pb » détecte la bouteille, puis la
valve « V » s’ouvre pendant 12 secondes pour remplir la bouteille. La bouteille est évacuée et une
nouvelle bouteille est présentée pour remplissage. Il faut remplir six bouteilles suite à l’appui sur le bouton
« m ».
Le GRAFCET de niveau 2 sera le suivant :
1
2
1
MT
m./pb
3 V
pb
0 C1
4 MT
T/3/12s
T=12s C1=C1+1
/pb.(C1=6) /pb.(C1<6)
Le GRAFCET est composé d’étapes et transitions que nous représenterons en utilisant des « program
tags » de type booléen. En premier lieu, créer un nouveau projet nommé « PROJET_1 ».
Laboratoire de GPA141 Page 44
Ainsi pour notre GRAFCET, nous pouvons choisir de faire la correspondance suivante :
Le GRAFCET est aussi composé de transitions que nous représenterons aussi avec des mémoires internes.
Ainsi pour notre GRAFCET, nous pouvons choisir de faire la correspondance suivante :
La logique en place nécessite deux autres variables soit un temporisateur et un compteur :
L’automate reçoit deux signaux d’entrée :
L’automate envoie deux signaux de sortie :
L’équation logique de la première transition est :
Y001= X001•m•pb
Cette équation contient l’état de l’étape validant cette transition (ici c’est l’étape 1 identifiée X001) et la
réceptivité de cette transition.
Les autres transitions auront comme équations logiques :
1.
1.
C DN
C DN
Y002 = X002•pb
Y003 = X003•T1.DN
Y004a = X004•pb•
Y004b = X004•pb•
Le C1 identifie un compteur incrémental. Le temporisateur T1 identifie l’état d’un temporisateur de 12
secondes avec délai sur la montée.
Le diagramme échelle de la première routine « transition » sera donc :
Laboratoire de GPA141 Page 45
Programmons maintenant les quatre équations représentant l’état des quatre étapes de ce GRAFCET dans
le bloc de fonction FC2. L’équation logique de la première étape est :
X001= Y004b+ X001•Y001+Init
Cette équation vérifie l’état de la transition précédant cette étape et celui de la transition qui suit. Le signal
« Init » initialise l’étape initiale et sera obtenu avec le bit interne M10.0.
Les autres étapes auront comme équations logiques :
X002 = Y001+ Y004b+ X002•Y002
X003 = Y002 + X003•Y003
X004 = Y003+ X004•Y004a•Y004b
Le diagramme échelle de la 2e routine « Etapes » sera donc :
Laboratoire de GPA141 Page 46
Il reste maintenant à programmer dans la routine « Actions » des actions de notre GRAFCET.
Les équations logiques des actions seront :
MT = X002+ X004
V = X003
La temporisation et le compteur seront aussi dans ce bloc qui sera donc :
Pour que le tout fonctionne, il faut éditer la routine principale pour qu’il appelle les 3 routines.
Mettez les entrées à 0 et transférez le projet dans l’automate, puis mettez ce dernier en mode RUN.
Testez le programme en activant les interrupteurs « m » et « pb » pour simuler ce procédé et examinez les
voyants des sorties « MT » et « V ». Visualisez les routines et les étiquettes.