Automate Programmable
industriel
1 Introduction
L’automate programmable au cœur du
système automatisé de production
1.1 Structure d’un système automatisé
Energie Energie
Réseau
Autres automates
Supervision Commande Pré-
Actionneurs
actionneurs
Automate
Interface Programmable
Homme-
Machine Informations Interface
Capteurs
Utilisateur
Partie commande Partie opérative
1.1 Structure d’un système automatisé
Energie Actionneurs
Energie
Actionneur
Autres électrique :
systèmes
Commande Pré-
Moteur
Actionneurs
actionneurs
Actionneur
Partie
Interface Commande
pneumatique
Homme-
Machine ou hydraulique :
Informations Interface
vérin Capteurs
Utilisateur
Partie commande Partie opérative
1.1 Structure d’un système automatisé
Energie Energie
Pré-actionneurs
Variateur de vitesse
Autres
systèmes
pour moteur
Commande Pré-
Actionneurs
actionneurs
Partie
Interface Commande
Homme- Distributeur électropneumatique
Machine InformationsInterface
ou électrohydraulique
Capteurs
Utilisateur
Partie commande Partie opérative
1.1 Structure d’un système automatisé
Energie Capteurs Energie
Autres
systèmes Commande Pré-
Détecteur
Actionneurs
actionneurs
Détecteur inductif Détecteur optique de contact
Partie
Commande
Interface
Homme-
Machine Informations Interface
Capteurs
Codeur optique
Utilisateur (position arbre moteur) Caméra
Partie commande Partie opérative
1.1 Structure d’un système automatisé
Energie Energie
Interface Homme-Machine
Autres
systèmes Commande Pré-
Actionneurs
actionneurs
Boutons et voyants
Partie
Interface Commande
Homme-
Machine Informations Interface
Ecran tactile Capteurs
Utilisateur
Partie commande Partie opérative
1.1 Structure d’un système automatisé
Qui peut concurrencer l’automate ?
Peu d’éléments à produire
On recherche :
- Un faible coût de développement
- Un développement rapide et aisé
Automate Programmable Industriel
Beaucoup d’éléments à produire (ex : ABS d’une voiture)
On recherche :
- Un faible coût unitaire du composant
Microcontrôleur
1.2 L’automate programmable
Entrées/Sorties logiques
Entrée/Sorties analogiques
Sorties PWM
Commande d’axe
Extensions Compteurs rapides
Régulation
Communication (CAN, Ethernet…)
Sorties logiques
Sorties logiques Actionneurs
Variables internes
IHM
Unité Entrées logiques Capteurs
Entrées logiques Centrale
Version « compacte »
développement
PC
1.2 L’automate programmable
Extensions déportées
Entrées/Sorties logiques
Entrées/Sorties analogiques
Sorties PWM
Commande d’axe
Compteurs rapides
Coupleur réseau (CAN, Ethernet…)
Régulation
Variables internes
Sorties logiques
Sorties logiques Actionneurs
IHM Unité
Centrale Entrées logiques Capteurs
Entrées logiques
Version « réseau de terrain »
développement
PC
1.3 Problématiques combinatoires et séquentielles
qSelon le cahier des charges, les habitudes, les
contraintes de développement et de mise au
point, les taches sont programmées de façon
combinatoire ou séquentielle
1.3 Problématiques combinatoires et séquentielles
Exemples combinatoires
q Le voyant s’allume si le capteur d’usure est à 1 ou si la
pièce a été utilisée 1000 fois
q Le compteur s’incrémente à chaque cycle de production
q Les conditions de démarrage sont réunies si le capot est
fermé et le bain d’huile à la bonne température
q L’alimentation est coupée une présence est détectée dan le
champ opératoire
1.3 Problématiques combinatoires et séquentielles
Exemple séquentiel
q Suite à un ordre de marche, le vérin sort. Quand le noyau
est totalement sorti, il faut attendre 10s. Ensuite, le vérin
rentre. Quand le noyau est totalement rentré, on attend un
nouvel ordre de marche.
qLes systèmes séquentiels sont généralement décrits par un
grafcet
2 Les langages de programmation
• La norme IEC 1131-3 définit entre autres
choses, cinq langages qui peuvent être utilisés
pour la programmation d’applications
d’automatisme. Les cinq langages sont :
- SFC « Sequential Function Char »
- FB « function block diagram »
- ST « Structured Text »
- LD « ladder diagram »
- IL « instruction list»
2.1 Les différents langages
• SFC (« sequential function char ») : issu du langage
GRAFCET, ce langage, de haut niveau, permet la
programmation aisée de tous les procédés
séquentiels ;
• FBD (« function block diagram », ou schéma blocs) :
ce langage permet de programmer graphiquement à
l’aide de blocs, représentant des variables, des
opérateurs ou des fonctions. Il permet de manipuler
tous les types de variables ;
• LD (« ladder diagram », ou schéma à relais) : langage
graphique dédié à la programmation d’équations
booléennes (true/false), très utilisé malgré qu’il soit
très bas niveau;
2.1 Les différents langages
• ST (« structured text » ou texte structuré) : ce
langage est un langage textuel de haut niveau.
Il permet la programmation de tout type
d’algorithme plus ou moins complexe ;
• IL (« instruction list », ou liste d’instructions) : ce
langage textuel de bas niveau est un langage à
une instruction par ligne. Il peut être comparé
au langage assembleur.
2.2 Architecture d’un projet
Omron
• Un projet est composé de configurations.
– Une configuration: plate-forme
matérielle composée d’une ou plusieurs
ressources.
• Une ressource représente un cycle
automate, divisée en plusieurs unités
de programmation appelées POUs
(program organization unit).
• Les POUs sont organisés en une
architecture hiérarchisée. Les
programmes peuvent être décrits
avec les langages graphiques ou
textuels SFC, FBD, LD, ST ou IL.
Les POUs peuvent être des
programmes, des fonctions ou des blocs fonctionnels.
2.3 les Variables
• Les variables peuvent être locales à un POU
Une variable locale ne peut être utilisée que par
un seul POU.
• Les variables peuvent être globales elles
peuvent alors être utilisées par tous les POUs
d’une ressource.
2.3 les Variables
2.3 les Variables
• Une variable représentée directement peut être
utilisée dans les programmes pour accéder à une voie
d’E/S (entrée/sortie). L’identificateur d’une telle
variable commence toujours par le caractère « % »
2.3 Table des entrées/sorties et mémoire interne
En fonction de sa puissance, un API possède
Des signaux d’entrées/sorties physiques
qDes entrées logiques (accessibles bit/bit ou par mot)
qDes sorties logiques (accessibles bit/bit ou par mot)
qDes entrées analogiques
qDes sorties PWM
qDes entrées de comptage
q…..
De la mémoire interne pour le stockage de données
(transition, étapes, calculs intermédiaires…)
qBits ou mots « système » (ex First_Cycle)
qBits ou mots réservés pour certains périphériques (ex FinTimer)
qBits ou mots utilisables pour les données, mémorisés ou non
suite à une coupure d’alimentation.
2.3 Table des entrées/sorties et mémoire interne
La Table des symboles permet d’associer à chaque symbole
un emplacement physique ou en mémoire.
Sortie 1 bit
Bit interne
Mot interne
Entrée 1 bit
2.4 Le langage FDB
- Le langage FBD (function block diagram) est un
langage graphique.
Il permet la construction d’équations complexes à
partir des opérateurs standards, de fonctions ou de
blocs fonctionnels.
2.4 Langage FDB
- Les Blocs Fonctionnels sont des POUs avec
plusieurs paramètres d'entrée et de sortie.
- L’instanciation est possible. Il est possible de
créer plusieurs instances (copies) nommées d’un blocs.
Intérêt sur des taches répétitives, exemple:
Programmation d’un bloc fonctionnel réalisant le
démarrage étoile/triangle d’une MAS pour piloter 10
moteurs.
-Les blocs fonctionnels peuvent être programmé en ST,
LD, IL.
-Un bloc fonctionnel peut appeler un autre bloc (pas
toujours possible)
2.4 Le langage Strucured Text ST
- Le langage ST (structured text) est un langage textuel
de haut niveau dédié aux applications
d’automatisation. Ce langage est principalement utilisé
pour décrire les procédures complexes,
difficilement modélisables avec les langages
graphiques. C’est le langage par défaut pour la
programmation des actions dans les étapes et des
conditions associées aux transitions du langage SFC.
2.5 Langage ST:
Les types d’énoncés du langage ST sont :
— assignation ;
— sélection IF-THEN-ELSIF-ELSE ;
— énoncé RETURN ;
— sélection CASE ;
— itération WHILE ;
— itération REPEAT ;
— itération FOR ;
— énoncé EXIT.
2.5 Langage ST:
Enoncé IF-THEN-ELSIF-ELSE :
2.5 Langage ST:
Enoncé Return : termine l’exécution du programme
2.5 Langage ST:
Enoncé CASE :
2.5 Langage ST:
Enoncé WHILE :
Enoncé REPEAT : énoncé d’itération avec test d’itération en fin de boucle.
2.5 Langage ST:
Enoncé FOR :
Enoncé EXIT : quitte une boucle d’itération FOR, WHILE ou REPEAT
2.6 Le langage LADDER
Diagramme à contacts, utilisé pour programmer des
éléments combinatoires
« ET » «OU»
Vcc
GND a b S
Relais Bobine de sortie
Normalement ouvert
c
Relais normalement fermé
S = a . (/b + c)
2.6 Le langage LADDER
a b S
Un réseau
q On utilise un réseau par calcul
q Une section est un ensemble de réseaux
q Pour structurer le programme, on l’organise en sections
2.6 Le langage LADDER
2.6 Le langage LADDER
2.7 traduction du SFC en ST
Exemple q Pour chaque transition on définit une variable interne TOR
t20_21 t21_22 t22_20
20 Chacune vaut 1 si la transition est vrai, 0 sinon
bp2m + bp2d
q Pour chaque étape on définit une variable interne TOR
21 X20 X21 X22
Chacune vaut 1 si l’étape est active, 0 sinon
dp2
22 n=2 q Entrées physiques : bpm2m, bp2d, dp2 (TOR)
Variable interne : n (entier)
1
2.7 traduction du SFC en ST
Modèle en trois parties, partie 1 : les transitions
(* Ceci est un commentaire *)
(* Transitions *) Affectation :=
t20_21 := X20 AND (bp2m OR bp2d) ;
Opérateurs
NOT, AND, OR
t21_22 := X21 AND dp2 ;
t22_20 := X22 ;
2.7 traduction du SFC en ST
Modèle en trois parties, partie 2 : les étapes
(* Etapes *)
(* Activation *)
IF %S13 OR t22_20 THEN X20 :=TRUE ; END_IF;
IF t20_21 THEN X21 :=TRUE; END_IF;
IF t21_22 THEN X22 :=TRUE; END_IF;
2.7 traduction du SFC en ST
Modèle en trois parties, partie 2 : les étapes
(* Etapes *)
(* Désactivation *)
IF t20_21 THEN X20:=FALSE; END_IF;
IF t21_22 OR %S13 THEN X21:=FALSE; END_IF;
IF T22_20 OR %S13 THEN X22 :=FALSE; END_IF;
2.7 traduction du SFC en ST
Modèle en trois parties, partie 3 : les sorties
(* Sorties *)
IF X22 THEN N:=2; END_IF;
Pour une sortie TOR : IF X22 THEN S:= TRUE;
3 Structure interne d’un automate
Process
Lecture des Mise à jour
Entrées des Sorties
3.1 Structure interne d’un automate
PC registre = mémoire tampon
Communication Données et Périphériques
Mémoire internes
programme (Timers/Compteurs)
Energie
électrique
Alimentation
Interface Interface
d’entrées de sortie
Registre d’entrées
Registre de sortie
Optocoupleurs
Transistors/relais
Optocoupleurs
ENTREES CPU SORTIES
Entrées Sorties
3.2 Le cycle de Process
l’automate
Lecture des Mise à jour
!
Le contenu du
Entrées Des Sorties registre change
pendant le cycle
Mémoire
programme
Interface et données Interface
d’Entrée de Sortie
Registre de sortie
Registre d’entrée
Transistors/relais
Optocoupleurs
Optocoupleurs
ENTREES Entrées Central Unit Sorties
SORTIES
3.2 Le cycle de l’automate
Registre Registre
Entrées Sorties
IMAGE
IMAGE
CPU
(µP)
lecture des
entrées
t t+Δt
mise à jour
des sorties
exécution des
t
instructions Temps de cycle
Sorties(t+Δt) = fonction( Entrées(t) , Sorties(t) )
Ordre de grandeur du temps de cycle : entre 1 et 100 ms
3.2 Durée de vie des entrées
le tapis tourne doucement
lecture des
entrées
mise à jour
des sorties
exécution des t
instructions
entrée de l’automate mise à jour de l’état des leds
issue du capteur
tin
prise en compte de la présence de la pièce t
changement d’état de l’entrée,
capteur pour
présence d’une pièce
compter les pièces
passant sur le tapis
Leds affichant le
nombre de pièces
passées
3.2 Durée de vie des entrées
le tapis tourne plus vite.
lecture des
entrées
mise à jour
des sorties
exécution des t
instructions
mise à jour de
l’état des leds
entrée de l’automate
issue du capteur
tin tin tin
t
changement
d’état de l’entrée, prise en prise en prise en
présence d’une Lecompte
compte de la passage
de de la deuxième
compte de
pièce présence pièce n’a pasdeété
de l’absence pris endecompte
l’absence
la pièce pièce pièce