Manuel: Prise en main d'un automate Beckhoff BC9120
Automate Beckhoff
1. Installation Soft
L'installation se fait à l'aide du CD Beckhoff. Installer TwinCAT System Manager et TwinCAT PLC Control.
2. Montage des éléments (Terminaux)
Les différents terminaux s'enfichent les uns après les autres, il faut différencier les terminaux fonctionnant 24V et 5V en disposant un terminal KL9505 entre les deux. L'automate programmable Beckhoff doit toujours se terminer par un terminal de fin (KL9010).
Alimenter la PLC à l'aide d'une alimentation +24VDC (voir image) et ponter la borne KL9XXX.
Lors de la configuration de la PLC à l'aide de Twincat Manager, il faut mettre uniquement les Switch DIP 09-10 sur ON.
Lors de la mise en réseau de la PLC sur glspc19, choisir une adresse à l'aide des 8 premiers Switch DIP + DIP10=ON
DIP switch 1-8 modifies the last byte of the IP address (red DIP switch in the image below). DIP switch 9-10 selects the IP address mode (blue DIP switch in the image below).
3. Reconnaissance des Terminaux dans TwinCAT System Manager
Lors de la configuration des différents éléments, il faut se mettre en « Config Mode »,
c’est à dire cliquer sur l’icône « Mettre/remettre sur zéro TwinCAT en mode configuration (SHIFT F4) »
Configuration SYSTEME -> choisir système cible
- Rechercher [Ethernet]
- Sélectionner la bonne adresse
Configuration E/S -> Périphérique -> Lecture périphériques...
- Message d'alerte, Ok, Ok, Oui
A ce moment là, nous avons deux périphériques, BX-BK et BC9210.
Dans le périphérique BX-BK est apparut BX Kbus-Device dans lequel on trouve les différents éléments Hardware.
Attention: La lecture est imprécise, il faut vérifier chaque élément (physique) et le comparer avec le résultat obtenu dans BX-Kbus-Device. Si nécessaire, il faut effacer les bornes ne concordant pas et "insérer borne avant..." en choisissant la borne.
Il y à trois modes de fonctionnement possible:
- Mode de configuration (Config Mode)
- Mode de course (Libre Free Run)
- Mode d'exécution (R Time)
Le Mode de configuration: Ce mode sert à la configuration du PLC. Il est utile lors d'ajout ou de changement de borne et tout ce qui touche à la configuration. Raccourci SHIFT-F4
Le Mode de course: La petite icône "Commuter état course libre" ou CTRL-F5, permet de communiquer et commander les différentes I/O. Il permet entre autre de commander un moteur, configurer une entrée à 1 ou même visualiser un capteur de proximité à l'aide d'un graphique dynamique.
Le Mode d'exécution (temps réel): est activé si l'on désir contrôler la PLC par un programme (TwinCAT PLC Control)
4. Configuration & Création du programme dans TwinCAT PLC Control
TwinCAT PLC Control est un éditeur permettant la communication avec la PLC. Il y à plusieurs langages à dispositions:
Nous avons commencé notre projet avec LD (Logique à contact), mais son utilisation est limitée et ne permet apparemment pas de contrôler un moteur. Nous nous sommes donc tournés vers le langage ST (Structured Text), qui ressemble au langage Pascal.
Créer un programme en ST
- Fichier -> New
- Choose Target System Type -> Bcxx50 or BX via AMS
- Name of the POU -> Entrer le nom du programme et cocher ST
Ensuite, dans la barre des outils, cliquer sur Online -> Choose Run-Time System et choisir la bonne adresse et le bon port de communication.
Nous avons donc une fenêtre divisée horizontalement en deux. La partie du haut sert de définition des différentes variables et la partie du bas est réservée aux différentes boucles et autre du programme.
Les adresses libres de notre PLC sont comprises entre 0x4000 et 0x4FFF. Ce qui signifie 2048 mots de 16 bits.
Définition des variables dans TwinCAT PLC Control
Afin de communiquer avec la PLC, il est nécessaire de définir les variables de la manière suivantes :
- IX: Les entrée que l'on mappe avec la PLC
- QX: Les sorties que l'on mappe avec la PLC
- MX: Les variables que l'on peut allouer dans une certaine mémoire.
Exemple:
Compiler le projet afin de créer un fichier .PRX que l'on va utiliser avec TwinCAT System Manager.
5. Mapping des I/O entre la PLC et le programme
Retourner dans TwinCAT Sytem Manager, et, dans l'arbre à gauche, clic droit sur: -> Configuration API -> Ajouter projet API et sélectionner votre projet.
Imaginons que l'on aie assigné la sortie "Out1 AT %QX0.0 : BOOL;" , et que l'on veut gérer une sortie digitale de l'automate. Il faut cliquer droit sur la sortie et dans l'onglet "Variable", cliquer sur "Lien avec... " et sélectionner la variable. Enregistrer.
Cliquer alors sur l’icône -> Générer mappage
puis -> Vérifier configuration, puis -> Activer configuration. La PLC va alors se mettre en mode RTime.
6. Création d'un Bootproject
Lorsque l'on désalimente et réalimente la PLC, on veut que la PLC se mette en mode RUN et que le programme se mette à tourner automatiquement. Pour ce faire, il faut simplement aller dans l'onglet :
Online -> Create Bootproject
C'est le dernier pas avant d'avoir une PLC totalement autonome. Ceci fait, on peut théoriquement débrancher l'automate, se remettre sur l'ordinateur Beckhoff et communiquer avec ses entrées sorties.
7. Run du programme
Cliquer sur Online puis Login. Cliquer une deuxième fois sur Online puis Run. Le programme tourne alors en permanence en boucle du début à sa toute fin.
8. Projet Coralie
8.1 Adressage mémoire des éléments
Le tableau suivant illustre les éléments (terminaux) physiques de la PLC, leurs fonctions "FCT" ainsi que la mémoire allouée pour chaque fonction.
Nous avons la borne n°2, c'est un terminal KL2532 utilisé pour le contrôle du Volet de fermeture.
L'adressage %MB0 se trouvant à 0x4000 sera alors mappé avec Ctrl du terminal numéro 2.
BC9120 | Mémoire |
FCT |
Mém. hexa. |
n°1 |
|||
---|---|---|---|---|---|---|---|
KL2532 |
%MB0 %MB4 |
%MW2 %MW6 |
VF AC |
0x4000 0x4002 |
0x4001 0x4003 |
2 |
|
KL2532 |
%MB8 %MB12 |
%MW10 %MW14 |
MC DM |
0x4004 0x4006 |
0x4005 0x4007 |
3 |
|
KL2532 |
%MB16 %MB20 |
%MW18 %MW22 |
ADC ADC |
0x4008 0x4010 |
0x4009 0x4011 |
4 |
|
KL2532 |
%MB24 %MB28 |
%MW26 %MW30 |
AV AV |
0x4012 0x4014 |
0x4013 0x4015 |
5 |
|
KL1352 | 6 |
||||||
KL1352 | 7 |
||||||
KL1352 | 8 |
||||||
KL1352 | 9 |
||||||
KL1352 | 10 |
||||||
KL4032 | 11 |
||||||
KL3002 | 12 |
||||||
KL9505 | 13 |
||||||
KL1124 | 14 |
||||||
KL1124 | 15 |
||||||
KL1124 | 167 |
||||||
KL1124 | 17 |
||||||
KL1124 | 18 |
||||||
KL1124 | 19 |
||||||
KL9010 |
8. Annexe
8.1 Mémoire de la PLC
La PLC met à disposition 2048 registres que l'on va pouvoir allouer et manipuler en utilisant Python. Dans un registre il peut y avoir:
Important
|
Exemple:
Il n'est pas possible d'assigner un mot impaire.
8.2 Lecture de la mémoire avec Python
On a vu que la mémoire d'un seul registre était la aleur décimal de ses 16bits. La commande client.read_input_registers du module pymodbus de Python, nous permet de lire les registres de la PLC.
a = Client.read_input_registers(0x4000,1,unit=0) a.registers |
Si on écrit 2 dans la commande, a.registers retourne un vecteur avec les valeurs des adresses[0x4000, 0x4001]. Il est donc possible de lire plusieurs adresses à la fois.
Exemple: %MW56 :UINT := 123 ; la conversion hexadécimal de 56 égale 1C . Donc:
a = Client.read_input_registers(0x401C,1,unit=0)
a.registers ->retourne 123
8.3 Problèmes
Problème 1
Lorsque l'on effectue un Bootproject, et que l'on veut passer au Mode de configuration du PLC System Manager, la sortie du KL2532 se met automatiquement en marche. Le moteur se met donc à tourner même si cela n'est pas désiré. Les capteurs inductifs n'ont aucune influence.
Le mode Config Mode n'est alors pas utilisable. Et on ne peut plus jouer avec les entrées sorties pour les mettres à 0. => DANGER
Solution 1.0: Lorsque l'on créé un Bootproject, la PLC va redémarrer à chaque reboot. Lors de changement, il suffit de faire Delete Bootproject
Problème 2
Lorsque l'on connect la PLC pour la première fois sur le réseau de la Silla, impossible de communiquer avec cette dernière. La PLC est connectée avec un Câble Ethernet sur L107.2 et le PC sur L107.3 de la salle de contrôle.
Solution 2.0: La PLC doit être configurée avec tous les switch DIP sur OFF sauf le switch 10. Il faut alors attendre que la PLC se configure avant de choisir le système cible dans TwinCAT System Manager.