Académique Documents
Professionnel Documents
Culture Documents
10/12/2020
10/12/2020
10/12/2020
Département d’Electronique
LANGAGES DE PROGRAMMATION
DES APIS
HAMADACHE Fouzia
PLAN DU COURS
1 • Introduction
10/12/2020
2 • Langages de programmation des API
5 •Principe du GRAFCET
10/12/2020
La mise en œuvre d'un automate programmable
comporte trois phases principales :
la conception du système de contrôle, qui se fait
à l'aide d'outils méthodologiques et de modes de
représentation propres à l'automaticien;
la programmation de l'automate, qui consiste à
transposer le système de contrôle obtenu dans le
langage de programmation propre à l'automate;
l'exécution du programme
10/12/2020
Il s'agit de problèmes où tous les signaux provenant
du processus (ou en tout cas une majorité d'entre
eux) sont susceptibles de provoquer, à n'importe
quel moment, une réaction de l'automate. Le cas
typique étant celui d'une surveillance de
conditions d'alarme (dépassement de niveau,
surchauffe de moteurs, ...).
4
PROBLEMES DE NATURE
SEQUENTIELLE
Il arrive souvent, dans l'industrie, que les
10/12/2020
processus à contrôler aient une nature
séquentielle marquée. C'est le cas notamment de
tous les processus comportant des déplacements
d'outils, des transports de matière, etc. Du point
de vue du système de contrôle, ces processus se
caractérisent par le fait qu'à un moment donné,
seuls un nombre limité de signaux provenant du
processus doivent être pris en considération et
que seules un nombre limité de commandes sont
susceptibles d'être appliquées au processus.
5
LANGAGES DE PROGRAMMATION DES API
Chaque automate possède son propre langage. Mais, les constructeurs
proposent tous une interface logicielle répondant a la norme CEI
61131-3 définit par la commission électrotechnique
internationale(CEI). Cette norme définit cinq langages de
10/12/2020
programmation utilisables, qui sont :
LD
Ladder
Diagram
SFC FBD
Sequential Function
Chart Blok
function Langages Diagram
(GRAFCET) de
programm
ation
IL ST
6
Instruction Structured
List Text
LANGAGE À CONTACTS LD (LADDER)
Le langage LD est un langage graphique très populaire
auprès des automaticiens pour programmer les automates
programmables industriels.
10/12/2020
Il ressemble un peu aux schémas électriques, et est
facilement compréhensible.
Ce langage est une représentation graphique d’équations
booléennes. Chaque réseau contient des lignes horizontales
contenant des contacts (en entrée) , les blocs fonctionnels et
des relais (en sortie). Les contacts permettent de lire la
valeur d'une variable booléenne. Les blocs fonctionnels sont
des blocs préprogrammés qui permettent de réaliser des
fonctions avancées : temporisation, comptage,
communication, ...etc. Les bobines permettent d'écrire la
valeur d'une variable booléenne.
Ces symboles sont organisés en réseau reliés de gauche à
droite à des barres d’alimentation. L’évaluation de chaque
réseau se fait de gauche vers la droite. L’évaluation de
l’ensemble des réseaux se fait du haut vers le bas. Chaque 7
réseau est repéré par une étiquette (LABEL).
BIT LOGIC
10/12/2020
8
10/12/2020
9
ASSOCIATION DE CONTACTS ET DE BOBINES
• Contacts en série : L'association de contacts en série permet de réaliser
des « ET » logiques.
10/12/2020
• Contacts en parallèle : L’association de contacts en parallèle permet de
réaliser des « OU » logiques.
• Bobines en série : L'association de bobines en série n'est pas possible.
• Bobines en parallèle : L'association de bobines en parallèle permet de
commander plusieurs bobines par la même équation logique.
10
TYPE DE DONNÉES ET VARIABLES
10/12/2020
Une variable permet d’identifier des objets de données dont le contenu
peut varier (données associes aux entrées, aux sorties ou aux
emplacements mémoire de l’API)
11
INSTRUCTIONS DE COMPARAISONS
Les opérations de comparaison comparent les entrées IN1 et IN2 selon les types de
comparaison suivants :
10/12/2020
Les symboles I, D, R signifient que le format de données des entrées IN1 et IN2 est
entier, double entier, réel respectivement.
Les opérations de comparaison d’octets ne sont pas signées. Les autres sont
signées.
Ces opérations ne s'exécutent que si le RLO des opérations précédentes a la valeur
1.
Si la comparaison est vraie, le résultat logique (RLO) de sortie est 1 (le contact est
fermé).
12
INSTRUCTIONS DE CONVERSION
Les opérations de conversion lisent le contenu du
paramètre d’entrée IN puis le convertissent. Le
résultat est rangé dans le paramètre de sortie
10/12/2020
OUT. Ces opérations ne s'exécutent que si
l’entrée EN a la valeur 1. La sortie ENO prend la
valeur 1 si l’opération est réalisée.
13
INSTRUCTIONS DE COMPTAGE
Counters have an area reserved for them in the memory of your CPU.
This memory area reserves one 16-bit word for each counter address.
The ladder logic instruction set supports 256 counters.
Bits 0 through 11 of the counter contain the count value in binary
10/12/2020
coded decimal format.
The range of the count value is 0 to 999.
14
10/12/2020
15
INSTRUCTIONS DE TEMPORISATION
La fonction de temporisation permet à partir d’une fonction
d’entrée, d’assurer la commande automatique d’un autre circuit
10/12/2020
en fonction du temps.
Type de temporisation:
La temporisation à l’enclenchement ODT(ON Delay Timer) :
L'information de sortie n'apparaît qu'à partir du moment où
l'entrée passe de 0 à 1 et ceci après un temps t1.
En revanche, dès que l'entrée passe de 1 à 0, la sortie change
immédiatement d'état.
16
La temporisation au déclenchement OFFDT(OFF
Delay Timer):
L'information de sortie reste encore présente
10/12/2020
pendant un temps t2, à partir du moment où
l'entrée passe de 1 à 0.
Mais dès que l'entrée passe de 0 à 1, la sortie
change immédiatement d'état.
17
Timers have an area reserved for them in the
memory of your CPU. This memory area reserves
one 16-bit word for each timer address.
The ladder logic instruction set supports 256
10/12/2020
timers.
When a timer is started, the contents of the timer
cell are used as the time value. Bits 0 through 11
of the timer cell hold the time value in binary
coded decimal format (BCD format: each set of
four bits contains the binary code for one decimal
value).
Bits 12 and 13 hold the time base in binary code.
18
S_PULSE Pulse S5 Timer
S_PEXT Extended Pulse S5 Timer
S_ODT On-Delay S5 Timer
S_ODTS Retentive On-Delay S5 Timer
S_OFFDT Off-Delay S5 Timer
10/12/2020
( SP ) Pulse Timer Coil
( SE ) Extended Pulse Timer Coil
( SD ) On-Delay Timer Coil
( SS ) Retentive On-Delay Timer Coil
( SA ) Off-Delay Timer Coil
19
INSTRUCTION MOVE
Move est une opération de transfert.
Cette opération est activée par l'entrée de validation
10/12/2020
EN. La valeur indiquée dans l'entrée IN est copiée à
l'adresse précisée dans la sortie OUT. L'état de
signal de ENO est identique à celui de EN.
On dispose des opérations de transfert suivantes :
20
INSTRUCTIONS MATHÉMATIQUES SUR LES
ENTIERS
Opérations Additionner, Soustraire, Multiplier et Diviser
10/12/2020
ADD_I Additionner entiers de 16 bits
SUB_I Soustraire entiers de 16 bits
MUL_I Multiplier entiers de 16 bits
DIV_I Diviser entiers de 16 bits
ADD_DI Additionner entiers de 32 bits
SUB_DI Soustraire entiers de 32 bits
MUL_DI Multiplier entiers de 32 bits
DIV_DI Diviser entiers de 32 bits.
ADD_R Additionner réels de 32 bits.
SUB_R Soustraire réels de 32 bits.
MUL_R Multiplier réels de 32 bits. 21
DIV_R Diviser réels de 32 bits.
STATUS WORD
In Siemens PLCs the Status Word is an internal CPU
register used to keep track of the state of the
10/12/2020
instructions as they are being processed.
Each bit in the Status Word has a specific function to
keep track of bit logic (RLO, STA), math (OV, OS),
comparison operations (CC0, CC1) and whether the
logic should continue, be nested or start new (/FC,
OR, BR). Only the first 9 of the 16 bits are used.
/FC First Check
RLO Result of Logic Operation
STA Status
OR
OS Overflow Stored
OV Overflow
CC0, CC1 Condition Code 22
BR Binary Result
WORD LOGIC
WAND_W (Word) AND Word
WOR_W (Word) OR Word
10/12/2020
WXOR_W (Word) Exclusive OR Word
WAND_DW (Word) AND Double Word
WOR_DW (Word) OR Double Word
WXOR_DW (Word) Exclusive OR Double Word
23
OPÉRATIONS DE DÉCALAGE ET DE ROTATION
SHR_I Shift Right Integer
SHR_DI Shift Right Double Integer
10/12/2020
SHL_W Shift Left Word
SHR_W Shift Right Word
SHL_DW Shift Left Double Word
SHR_DW Shift Right Double Word
24
FLOATING POINT MATH INSTRUCTIONS
SQRT Racine carrée d’un nombre réel.
LN Logarithme naturel d’un nombre réel.
10/12/2020
EXP Valeur exponentielle sur la base d’un
nombre réel.
Sinus (SIN), Cosinus (COS) et Tangente (TAN).
25
LE LANGAGE SFC (SEQUENTIAL FUNCTION
CHART) OU GRAFCET
10/12/2020
le GRAFCET (GRAphe Fonctionnel de
Commande Etape/Transition). C’est un outil
graphique de description des comportements d’un
système logique, il permet de représenter le
cahier des charges d'un automatisme.
Il est fréquemment utilisé pour la mise en
oeuvre des automates programmables industriels
(API).
26
PRINCIPE DU GRAFCET
Le GRAFCET est une représentation alternée d'étapes
et de transitions. GRAFCET comprend :
10/12/2020
des étapes associées à des actions ;
des transitions associées à des conditions
logiques( réceptivités );
des liaisons orientées reliant étapes et transitions.
27
ETAPES
Une étape correspond à une situation dans
laquelle les variables de sorties conservent leur
état.
10/12/2020
Une étape symbolise un état ou une partie de
l'état du système automatisé.
10/12/2020
va permettre l'évolution du système.
A chaque transition est associée une condition
logique(fonction logique) appelée réceptivité qui exprime la
condition nécessaire pour passer d'une étape à une autre.
29
RÉCEPTIVITÉ D’UNE TRANSITION
Action d'un
10/12/2020
temporisateur, Comparaison
d'un compteur d’une valeur
analogique
du grafcets :
partie opérative : d'autres grafcet
états des capteurs pour la liaison
entre grafcets
Opérateur: d'autres
pupitre de systèmes :
commande
Réceptivité dialogue entre
systèmes
10/12/2020
vers le bas. Une flèche est nécessaire dans le cas
contraire.
32
RÈGLES D'ÉVOLUTION D'UN GRAFCET
10/12/2020
cinq règles d’évolution
33
- RÈGLE 1 : CONDITION INITIALE
La situation initiale caractérise le comportement
10/12/2020
initial de la partie commande vis-à-vis de la partie
opérative.
A l'instant initial, seules les étapes initiales sont
actives.
34
RÈGLE 2 : FRANCHISSEMENT D'UNE
TRANSITION.
Pour qu'une transition soit validée, il faut que
toutes ses étapes amont (immédiatement
10/12/2020
précédentes reliées à cette transition) soient
actives. Le franchissement d'une transition se
produit lorsque la transition est validée, ET
seulement si la réceptivité associée est vraie.
35
RÈGLE 3 : EVOLUTION DES ÉTAPES ACTIVES
Le franchissement d'une transition entraîne
obligatoirement :
la désactivation de toutes les étapes immédiatement
10/12/2020
précédentes reliées à cette transition
l'activation de toutes les étapes immédiatement
suivantes reliées à cette transition
36
RÈGLE 4 : EVOLUTION SIMULTANÉE
Toutes les transitions simultanément
franchissables à un instant donné sont
10/12/2020
simultanément franchies.
37
RÈGLE 5: ACTIVATION ET DÉSACTIVATION
SIMULTANÉE D’UNE ÉTAPE
10/12/2020
Si une étape doit être simultanément désactivée
par le franchissement d'une transition aval, et
activée par le franchissement d'une transition
amont, alors elle reste active. On évite ainsi des
commandes transitoires (néfastes à la partie
opérative).
38
LES STRUCTURES DE BASE
NOTION DE SÉQUENCE
Une séquence, dans un Grafcet, est une suite d'étapes
10/12/2020
à exécuter l'une après l'autre. Autrement dit chaque
étape ne possède qu'une seule transition AVAL et une
seule transition AMONT.
39
PARALLÉLISME ENTRE DEUX OU PLUSIEURS
SÉQUENCES (OU SÉQUENCES SIMULTANÉES OU
DIVERGENCE ET CONVERGENCE EN ET)
On dit qu'on se trouve en présence d'un parallélisme
structurel, si plusieurs activités indépendantes pouvant se
10/12/2020
dérouler en parallèle.
Divergence en ET : lorsque
la transition A est franchie,
les étapes 21 et 24 sont
actives.
Convergence en ET : la
transition B sera validée
lorsque les étapes 23 et 26
seront actives. Si la réceptivité
associée à cette transition est
vraie, alors celle-ci est franchie.
REMARQUES :
Après une divergence en ET, on trouve une convergence en ET.
Le nombre de branches parallèles peut-être supérieur à 2. 40
La réceptivité associée à la convergence peut-être de la forme = 1. Dans ce
cas la transition est franchie dès qu'elle est active.
Pour avoir la synchronisation, il faut créer des
10/12/2020
étapes d’attente avant la transition de la
convergence en ET.
41
AIGUILLAGE ENTRE DEUX OU PLUSIEURS
SÉQUENCES (DIVERGENCE ET CONVERGENCE
EN OU)
On dit qu'il y a Aiguillage ou divergence en
10/12/2020
OU lorsque le grafcet se décompose en deux ou
plusieurs séquences selon un choix conditionnel.
Divergence en OU :
l'évolution du système vers
une branche dépend des
réceptivités A et B associées
aux transitions.
Convergence en OU :
après l' évolution dans une
branche, il y a convergence
vers une étape commune.
42
REMARQUES :
A et B ne peuvent être vrais simultanément (conflit).
Après une divergence en OU, on trouve une convergence en OU.
10/12/2020
Le nombre de branches peut-être supérieur à 2.
La convergence de toutes les branches ne se fait pas obligatoirement au même
endroit.
43
SAUT DÉTAPES
Le saut d'étapes permet de sauter une ou plusieurs
étapes lorsque les actions associées sont inutiles à
10/12/2020
réaliser,
44
REPRISE DE SÉQUENCE
La reprise de séquence (ou boucle) permet de
reprendre, une ou plusieurs fois, une séquence tant
qu'une condition n'est pas obtenue.
10/12/2020
45
TEMPORISATION
Pour faire intervenir le temps dans une réceptivité , il
suffit d’indiquer après le repère ‘t’ son origine et sa
10/12/2020
durée.
La notation t/X20/5s signifie que la réceptivité sera
vraie 5 secondes après l’activation de l’étape repérée
X20.
La transition 20 - 21 est franchie lorsque la
temporisation, démarrée à l'étape 20 est écoulée, soit
au bout de 5s.
46
COMPTAGE
La transition 20 - 21 est franchie lorsque le contenu du
compteur C1 est égal à 4.
10/12/2020
Le compteur est incrémenté sur front montant du
signal b.
Il est mis à zéro à l'étape 21.
47
ACTIONS ASSOCIÉES AUX ÉTAPES
A chaque étape, peuvent être associées une ou
plusieurs actions. Elles traduisent ce qui doit être fait
10/12/2020
chaque fois que l'étape à laquelle elles sont associées
est active.
Mais on peut rencontrer aussi une même action
associée à plusieurs étapes ou une étape vide (sans
action) (étape d’attente).
L'action ou les actions sont décrites à l'intérieur d'un
ou de plusieurs rectangles reliés au symbole de l'étape
à laquelle elles sont associées.
48
TYPE D’ACTIONS
Le type d’action est décrit par un des qualificatifs
suivants :
10/12/2020
Qualificatifs Explications
N (Non stored) Non mémorisé
S(Set) Mémorisé
R(Reset) Remise à zéro prioritaire
L(time Limited) Limité dans le temps
D(time Delayed) Temporisé
P(Pulse) P0 Impulsion (activation)
P1 Impulsion (désactivation)
SD(Stored & time Delayed) Mémorisé et temporisé
DS(Delayed & Stored) Temporisé et mémorisé
SL(Stored &time Limited) Mémorisé et Limité dans
le temps
49
ACTION NON MÉMORISÉ )(N) (ACTION
CONTINUE
10/12/2020
désactivation de celle-ci.
50
ACTION MÉMORISÉE(SET & RESET)
S (mémorisé) : l'action commence à l'activation de
l'étape et se poursuit même après la désactivation de
10/12/2020
celle-ci; elle doit être explicitement arrêtée dans une
étape ultérieure du GRAFCET contenant l'action en
question affectée du qualificatif ‘’R’’.
51
ACTION IMPULSIONNELLE(P)
Dés que l’étape est active, l’action est exécutée pour un
seul cycle d’horloge.
10/12/2020
52
ACTION CONDITIONNELLE
C'est une action continue dont l'exécution est soumise
à une condition logique.
10/12/2020
“Action A " = X3.c
53
ACTION DE DURÉE LIMITÉE (L)
L'action démarre avec l'activation de l'étape et s'arrête
après un délai fixé ou à la désactivation de l'étape.
10/12/2020
c'est une action continue conditionnelle dont l'ordre
sera maintenu pendant un certain temps à partir de
l'activation de l'étape qui lui est associée.
54
ACTION TEMPORISÉE (D)
L’action est exécutée après un temps T et reste
exécutée tant que l’étape est toujours active.
10/12/2020
C'est une action continue conditionnelle dont la
condition logique est une temporisation permettant de
retarder l'action par rapport à l'activité de l'étape qui
lui est associée.
55
SD (MÉMORISÉ ET TEMPORISÉ)
L'action démarre avec un retard déterminé par rapport
à l'activation de l'étape et s'arrête après une remise à
10/12/2020
zéro prioritaire et, cela, indépendamment de l'évolution
de l'étape elle-même
56
DS (TEMPORISÉ ET MÉMORISÉ)
L'action démarre avec un retard déterminé par rapport
à l'activation de l'étape pour autant que celle-ci soit
10/12/2020
toujours active à ce moment (c'est ce qui différencie ce
cas du précédent); l'action s'arrête après une remise à
zéro prioritaire
57
SL (MÉMORISÉ ET LIMITÉ DANS LE TEMPS)
L'action démarre à l'activation de l'étape et s'arrête
après un délai fixé ou une remise à zéro prioritaire
10/12/2020
("R") et, cela, indépendamment de l'évolution de l'étape
elle-même.
58
10/12/2020
59
STRUCTURATION D'UN GRAFCET
Pour conserver au GRAFCET tout son potentiel de
clarté, il est indispensable de pouvoir le structurer. On
10/12/2020
entend par là que, dans le graphisme, on doit pouvoir
utiliser des étapes qui représentent elles-mêmes des
GRAFCET complets (on parle de macro-étapes). Si
cette possibilité n'existait pas le GRAFCET d'un
automatisme quelque peu complexe s'étalerait, en
effet, sur des mètres carrés de papier et serait
pratiquement inexploitable.
60
MACRO-ÉTAPE
Une macro-étape est une représentation simplifiée
d’un ensemble d’étapes et de transitions. Elle permet
de simplifier la représentation graphique d’un
10/12/2020
GRAFCET.
Une macro-étape est représentée par un carré
subdivisé en trois partie par 2 traits horizontaux. Elle
commence par une seule étape d’entrée et finit par une
seule étape de sortie.
61
NOTION DE SOUS GRAFCET
Une séquence du GRAFCET qui se répète plusieurs fois dans un
cycle de fonctionnement peut être extraite du graphe et mise sous
forme de sous-programme.
10/12/2020
Le principe consiste à créer une structure en deux Grafcets : un
Grafcet principal (Grafcet appelant) et un Grafcet secondaire
(Grafcet appelé).
Ces deux Grafcets échangent des informations de même nature, il
n'existe donc aucune notion de hiérarchie entre ces deux graphes.
On dit qu'ils sont synchronisés.
62
DIFFÉRENTS POINTS DE VUE D’UN GRAFCET
On distingue trois types de GRAFCET:
GRAFCET d’un point de vue système.
10/12/2020
GRAFCET d’un point de vue de la partie opérative (PO).
GRAFCET d’un point de vue de la partie commande (PC).
Remarque:
Le GRAFCET d’un point de vue (PO) et le GRAFCET d’un point
de vue (PC) doivent avoir le même nombre d’étapes.
.
63
GRAFCET D’UN POINT DE VUE SYSTÈME OU
GRAFCET FONCTIONNEL
Description faite par un observateur se situant d'un point d
e vue externe au SAP.
10/12/2020
Le point de vue système décrit le comportement du s
ystème vis à vis du produit. On regarde la matière
d'oeuvre sur laquelle agit le système et on suit son
évolution, étape par étape.
Ce GRAFCET décrit le fonctionnement global du système
automatisé, en traduisant le cahier de charge sans tenir
compte de la technologie adoptée; donc il permet de
dialoguer avec des personnes non spécialisés.
64
GRAFCET D’UN POINT DE VUE DE LA PARTIE
OPÉRATIVE (PO).
Description du comportement du système faite par un observateur se situ
ant d'un point de vue interne au SAP et externe à la PC.
10/12/2020
Les choix technologiques de la PO sont effectués.
Le point de vue partie opérative décrit les actions produites par l
es actionneurs à partir des informations acquises par les capteurs.
GRAFCET décrit en terme clair toutes les actions que doit réaliser la
partie opérative ainsi que les informations nécessaires pour les obtenir,
en tenant en compte de la technologie choisie pour les éléments de la
partie opérative ainsi que les informations reçues (ordres) ou
envoyées(comptes rendus).
65
GRAFCET D’UN POINT DE VUE DE LA PARTIE
COMMANDE (PC).
Description du comportement du système par un observateur se si
tuant d'un point de vue interne à la PC
Ce GRAFCET décrit les échanges de la partie commande avec la
10/12/2020
partie opérative et le dialogue avec l’opérateur, en tenant en
compte des choix technologiques des préactionneurs et des
capteurs.
On regarde les pré-actionneurs : distributeurs, contacteurs... et les
capteurs qui réalisent les réceptivités.
Ce type de GRAFCET est surtout utilisé pour l’élaboration des
schémas câblés, et la programmation des automates
66
EXEMPLE
10/12/2020
point de vue Système
67
point de vue PC
point de vue PO
GRAFCET POINT DE VUE AUTOMATE
C’est la description de la succession des signaux que
l’automate envoie ou reçoit sur ses entrées/sorties.
10/12/2020
68
10/12/2020
69
10/12/2020
Pour résumer, on peut dire que :
le Grafcet du point de vue « système » indique le
fonctionnement du système
le Grafcet du point de vue « partie opérative »
indique le fonctionnement des actionneurs
le Grafcet du point de vue « partie commande »
indique le fonctionnement des préactionneurs
Le terme fonctionnement signifie ici « décrire les
conditions de mise en marche, d’arrêt et d’évolution
»
70