You are on page 1of 26

ISIM Gabs

LASCMI3

API et Supervision industrielle

A.U. 2011/2012

Chapitre 2
Programmation des API
1. Introduction
Les langages de programmation utilise pour les API ont volu depuis lintroduction des automates la fin
des annes 60. Actuellement la norme CEI 61131-3 (la partie 3 sur 8 de la norme not prcdemment 1131,
apparu en 1993 et en deuxime dition en 2003 et spcifiant les langages de programmation), spcifie 5
langages qui sont :

langages graphiques :
o langage LADDER ( relais), LD
o Botes fonctionnelle, ou Functional Block Diagram (FBD).
Langages textuel :
o Texte structur (ST)
o Liste dinstructions(IL)
Diagramme de fonctions squentielles (Sequential Chart function, SFC) :
o Version graphique (proche du grafcet)
o Version textuelle.

Le cycle de fonctionnement dun automate peut tre simplifi comme suit :

Lecture des entres et


sauvegarde en mmoire

Lecture des entres de la


mmoire, excution des
instructions du
programme et
mmorisations des
sorties

Mise jour des sorties

S. MARAOUI

Page 1

API et Supervision industrielle

ISIM Gabs
LASCMI3

A.U. 2011/2012

Le temps dun cycle dpend de la taille du programme excut et la vitesse du processeur avec une
moyenne de 2-5ms/K de programme. Le scan du programme limite les vitesses (frquences) des signaux
auxquels un api peut ragir. La figure suivante illustre le cas o lautomate compte le nombre dimpulsions
dun signal : le premier est moins rapide que la vitesse de scan du programme, le comptage est correct. Le
deuxime signal est plus rapide et lautomate peut rater quelques impulsions. Le troisime est encore plus
rapide et lautomate peut rater plusieurs impulsions. Pour que la lecture des entres se fait correctement,
thoriquement il faut que le temps dune impulsion en entre dure plus que 1/(2*priode de scan). Par
exemple si le temps de scan est de 20ms, lautomate peut lire des impulsions dune largeur de
1/(2*0.01)=0.02s soit une frquence de 50Hz. En pratique, dautres facteurs, tel que le filtrage sur les
entres, ont un effet considrable sur la vitesse de lecture et doivent tre pris en compte.

Signal 1

Signal 2

Signal 3

Un autre problme moins vident peut apparaitre lorsque le changement dune entre parvient juste aprs
sa lecture, ce qui va retarder lactivation (ou dsactivation) de la sortie concerne un cycle (voir figure)
Lecture de
lentre

Lecture de
lentre

Mise jour
de la sortie

Entre
processus

Entre processus

Sortie
processus

Sortie processus

Scan du
programme

Scan du
programme

Mise jour de la
sortie

Scan du
programme

Par exemple considrant un processus ou la matire douvre est dplace avec la vitesse de 15m/s (par
exemple barre de fer de construction), et qui doit tre dcoup sous la commande dun api avec un temps
de scan de 30ms, aprs un signal dune photocellule. La marge derreur est donc de 15000*0.03=450mm.
Les constructeurs peuvent proposer des cartes spciales (avec leur propre *P) pour traiter ces signaux
rapides.
S. MARAOUI

Page 2

ISIM Gabs
LASCMI3

API et Supervision industrielle

A.U. 2011/2012

2. Identification des entres/sorties et bit dadresses :


2.1.

Rangs, cartes et signaux

Le programme dAPI concerne les connections avec le processus et les modules des entres et sorties
doivent tre identifi dans le programme. Les constructeurs ont diffrentes faon didentifier ces E/S (voir
exemple figure ci-dessous)

Notation: (a) Mitsubishi, (b) Siemens, (c) Allen-Bradley, and (d) Tlmecanique.
Gnralement les apis contiennent des rangs (racks) locales ou loign. Chacune contient des cartes (ou
modules) dentres sorties avec 8, 16 ou 32 connections. Lide est dadresser ces E/s en utilisant la notion
de rack/module/bit.
Exemple 1 Allen Bradley PLC-5:
LAllen Bradley PLC-5 peut avoir jusqu 8 racks dans sa version 5/25. Le rack 0 contient automatiquement le
processeur, et lutilisateur peut attribuer des adresses dans les autres racks (de 1 7) en positionnant des
switchers. Ses racks (outre le n0) se connectent au processeur via un cble de communication srie des E/S
lointaines. Il y a trois faons avec laquelle un rack peut tre configur pour ce constructeur mais seule la plus
simple est prsente.
Chaque rack contient une carte 16 voie dentres et une carte 16 voie de sortie, ou bien deux cartes de 8
voies gnralement (mais pas ncessairement du mme type. Dans la figure suivante par exemple le slot 1
contient une carte dentre 16 voies et une carte de sortie 16 voies. Le slot 2 contient 2 cartes de sorties
de 8 voies chacune.

S. MARAOUI

Page 3

ISIM Gabs
LASCMI3

API et Supervision industrielle

A.U. 2011/2012

Ladressage des entres est comme suit : I : Rack Slot/bit, o bit est sur deux digits.
Allen Bradley utilise un systme dadressage octal pour les bits, donc les nombres autoriss sont0-7 et 10-17.
Par exemple ladresse I :27/14 dsigne lentre 14 sur le slot 7 dans le rack 2. Les sorties sont adresses de
manire analogue : O:Rack Slot/Bit. Donc ladresse O:35/06 est la sortie 6 sur le slot 5 du rack 2.
Exemple 2 Siemens SIMATIC S5 :
Les E/s numrique des API de Siemens sont organis en groupes de 8 bits (appel Byte).un signal est identifi
utilisant son numro de bit (0-7)et son numro de byte (0-127). Les entres ont not I<byte>.<bit>, et les
sorties Q<byte>.<bit>, exemple lentre I9.4 et la sortie Q52.7.
Comme pour lAllen Bradley, siemens utilise des slots pour les cartes dans un ou plusieurs racks. Les cartes
sont disponibles en 16 bits (2-ytes) ou 32 bits (4-bytes). Un systme peut tre construit partir de racks
locaux connect via un cble de bus parallle, des racks loigns avec une connexion srie. Les racks locaux
sont plus rapides et peuvent rsoudre quelques problmes lis aux processus rapides et aux connections
sries, mais ne peuvent pas tre qu quelques mtres de distance du processeur.
La forme la plus simple dadressage est les slots fixes (figure ci-dessous). Quatre bytes sont attribus
squentiellement chaque slot (0-3 pour le premier slot, 4-7 pour le deuxime,). Lentre I2.4 est donc le
bit dentre numro 4 du premier byte de la carte dans le slot 3 du premier rack.

Lutilisateur a la possibilit daffecter ladressage par byte (appel adressage de slots variable). Le numro du
premier byte et le nombre de bytes (2 pour les cartes 16 bites et 4 pour les cartes 32 bites) peuvent tre
fix pour chaque slot indpendamment avec des switchers dans le module adaptateur pour chaque rack.
Nimporte quelle combinaison est possible, toutefois il est recommand dutiliser une numrotation
squentielle (figure suivante).

S. MARAOUI

Page 4

API et Supervision industrielle

ISIM Gabs
LASCMI3

A.U. 2011/2012

A noter finalement que siemens utilise diffrentes notation dans diffrents pays avec des terminaux de
programmation multilingues (par exemple E pour lentre et a pour la sortie en Allemagne).

2.2.

Bits de sauvegarde internes.

Comme pour les entres et sorties, lautomate ncessite de sauvegarder des signaux internes de donnes
concernant par exemple le bon fonctionnement du systme, mise en attente, dfaillance dtect,
Lautomate permet dallou des bits internes pour ces signaux. Ces bits ont des appellations qui varient dun
constructeur un autre, par exemple relais auxiliaires pour Mitsubishi, drapeaux (flags) pour Siemens, bit de
sauvegarde pour Allen Bradley, de mme la notation varie, Mitsubishi utilise Mnnn, avec nnn est un
nombre dans une zone prdfinie de M100 M377 (octal), Siemens utilise la notation FByte.bit (e.g. F27.06),
pour le PLC-5 de Allen Bradley, le bit de sauvegarde (bit storage) est not B3/n o n est le numro du signal
(e.g. B3/100). Dans cette notation B est pour Bit storage, 3 vient du fait que le PLC-5 maintient les donne en
fichiers (fichier 3 pour ces bits, fichier 4 pour les timers (T4), fichier 5 pour les compteurs (C5), ).

3. Programmation en langage Ladder :


Le langage Ladder (LD) est issu du domaine des relais lectromcaniques et dcrit le flux dnergie travers
un rseau dune unit organis du programme, de gauche droite. Initialement ce langage est destin
commander des signaux boolens. Ces rseaux sont organis du haut vers le bas sauf spcification de
lutilisateur.
En LD lvaluation du rseau dpend de sa forme graphique (noms des variables et types de connections).
Les lments sont connect soit en srie soit e parallle.

3.1.

Elments de base dun rseau Ladder

Un rseau LD consiste en les lments suivants :


-

Connections
Contacts et bobines.
Elments graphiques pour contrler lexcution de la squence (sauts)
Elments graphiques pour appels des fonctions blocs (FB)
Connecteurs.

Le tableau suivant donne les principaux lments (contacts et bobines) dun rseau LD :
Objet graphique
-| |-|/|-|P|-|N|-( )S. MARAOUI

nom
Contact normalement ouvert
Contact normalement ferm
Contact ferm au front montant
Contact ferm au front descendant
Bobine normalement ouverte
Page 5

API et Supervision industrielle

ISIM Gabs
LASCMI3

-( / )-( S )- (ou ( L)-( R )- (ou ( U )-( P )-( N )|-<return>


|-cond-<return>
|->>Label
|-cond->>Label

3.2.

A.U. 2011/2012

Bobine normalement ferme


Bobine Latch (maintenu 1 une fois actionn
Bobine Reset (remise 0 de la bobine latch)
Bobine active au front montant de son entre
Bobine active au front descendant de son entre
Retour unconditionnel (vers le sous-programme appelant)
Retour conditionnel
Saut inconditionnel
Saut conditionnel

Appelle de fonctions ou blocs fonctionnels (FB):

Les fonctions et les FB, reprsents par des rectangles, peuvent avoir plusieurs paramtres et variables
dentres et de sorties. Les fonctions peuvent avoir un ou plusieurs paramtres retourner. Les noms
formels des paramtres dentres et de sortie doivent apparatre lintrieur du bloc. Le paramtre
appropri actuel (variables, constantes sont crit en dehors du bloc, sur le fils adjacent au paramtre
formel, il est aussi possible de connect les entres/sorties dun bloc avec celle dun autre bloc.
Les paramtres dune (FB) peuvent tre des donne de nimporte quel type, mais au moins une seule entre
et une seule sortie doivent tre de type boolen et doivent avoir des connections direct ou indirect aux
lignes de puissance gauche et droite. Une FB standard une sortie Q pour rpondre cette exigence.

Les fonctions doivent avoir un paramtre dentre et un de sortie spciales appel EN et ENO
respectivement, qui contrlent lexcution de la fonction. Si EN est valu faux (= 0), la fonction nest pas
excute et ENO est aussi mis 0. Il est possible dutiliser ENO comme un paramtre derreur. Les autres
tats pour lesquelles ENO est 0, sont dtermins par le constructeur et doivent tre documents.

S. MARAOUI

Page 6

ISIM Gabs
LASCMI3

3.3.

API et Supervision industrielle

A.U. 2011/2012

Variables en boucle de retour (feedback)

Si une variable est utilis pour sauvegarder une valeur (sortie) dans un cycle et lue comme une entre dans
le cycle suivant dans le mme rseau, elle est appele variable en feedback

Seules les connections implicites en feedback (en rptant le nom de la variable) sont possible en LD et donc
pas de connexion explicite (de droite vers la gauche) ne sont autorises.
Si un FB et une variable en feedback font partie du mme rseau, ceci peut conduire des comportements
diffrents selon les systmes dAPI.
Considrant par exemple le rseau donn par la figure suivante :

Dans cette exemple il nest pas claire si le contact var2 sera attribu la valeur du paramtre FBname O2 du
cycle dautomate en cours ou celle du cycle prcdent. La norme 61131-3 ne discute pas en dtails cette
ambigut. Pour rsoudre ce problme le FB doit tre considr comme un rseau LD part. Sil y a besoin
dutiliser des parties du rseau pour prdfinir un paramtre dentre, ou dutiliser un paramtre de sortie
dans le mme rseau, alors cette variable ne doit pas tre affecte un contact ou une bobine dans le
mme rseau.

4. Programmation en liste dinstruction (IL)


4.1.

Syntaxe

Le langage IL est un langage simple, semblable au langage assembleur, largement utilis pour la
programmation de lapi et souvent comme langage intermdiaire vers lequel les programmes crits en
autres langages sont traduits.

S. MARAOUI

Page 7

API et Supervision industrielle

ISIM Gabs
LASCMI3

A.U. 2011/2012

Un programme en IL se prsente comme une srie dinstructions avec une instruction par ligne. Chaque
instruction consiste en un oprateur suivit par un ou plusieurs oprandes. Dune faon gnrale, une
instruction en IL a la syntaxe suivante
Label :

Oprateur/Fonction

Oprande (list)

(*Commentaire*)

par exemple :
LD

Qui indique que loprande A est charger, ou bien : OUT

Les oprandes utilise un code mnmonique qui varie de constructeur un autre, bien que la norme indique
les instructions utiliser (et qui sont largement adopt), le tableau suivant donne quelques instructions
selon cette norme et son quivalent pour certain constructeurs :
CEI 61131-3
LD

Mitsubishi
LD

Omron
LD

Siemens
A

LDN

LDI

LD NOT

AN

AND
ANDN

AND
ANI

AND
AND NOT

A
AN

OR
ORN

OR
ORI

OR
OR NOT

O
ON

ST

OUT

OUT

Description
Charger loprande
dans le registre
rsultat
Charger le
complment de
loprande
ET logique
ET logique avec le
complment de
loprande
OU logique
Ou logique avec le
complment de
loprande
Sauvegarder le
registre de rsultat
dans loprande

Exemple 1 : programmation de lquation Q = A . B utilisant la notation de Siemens :


A
A
AN
B
=
Q
Exemple 2:
A(
A
AN
O(
AN
A
)
=

(* charger A*)
(*Charger le complment de B*)
(*sauvegarderle rsultat en Q*)

I0.0
I1.1
I0.0
I0.1
Q2.0

S. MARAOUI

Page 8

ISIM Gabs
LASCMI3

4.2.

API et Supervision industrielle

A.U. 2011/2012

Accumulateur universel (Rsultat courant)

Les langages assembleurs standards se basent sur une architecture matrielle dans laquelle un accumulateur
est utilis pour sauvegarder les rsultats des diffrentes oprations effectues par le processeur. Le langage
IL offre cette possibilit daccumulateur appel rsultat courant (Current Result, CR). Toutefois le CR na pas
un nombre de bits fixes comme pour un accumulateur, le compilateur IL assure quun accumulateur virtuel
(incluant une pile accumulateur) est toujours disponible pour nimporte quelle largeur de mmoire. Le
nombre de bits dpond de type de donne de loprande, et elle varie dinstruction autre pour sadapter
linstruction la plus rcente.
Les types de donnes dans le CR peuvent tre :
-

lmentaires
Composes (structure, array, )
Fonction bloc.

Exemple :
VAR_INPUT
FirstOperand: INT;
END_VAR
VAR
SecondOperand, ThirdOperand: INT := 10;
WordVar:
WORD;
END_VAR
LD 1
ADD
ST
LT
AND

FirstOperand
SecondOperand
ThirdOperand
WordVar

(* 1 {INT} *)
(* 11 {INT} *)
(* 11 {INT} *)
(* Faux {BOOL} *)
(* Erreur: WordVar est de type WORD, pas BOOL comme CR *)
(* type de donne non compatible *)

ST Exam43

4.3.

Utilisation des fonctions ou blocs fonctionnels (FB):

Appelle dune fonction


Une fonction est appele en IL en crivant son nom. Les paramtres de cette fonction suivent spar par
des virgules. Les paramtres formels peuvent tre aussi prendre les valeurs actuelles en ligne par ligne
utilisant le signe := . le premier paramtre de la fonction est le CR, il faut donc quil soit charger just avant
lappel de la fonction. Le premier oprande dans lappelle de la fonction est le deuxime paramtre, ainsi de
sutie.
Exemple : soit la fonction LIMIT ayant trois paramtres dappel, MN, MX et IN, lappel de cette fonction peut
se faire comme suit :
Utilisant les paramtres actuels
LD
1
Limit 2,3

Utilisant les paramtres formels


Utilisant les paramtres formels
LIMIT(
LIMIT(
MN :=1
MX :=2
MX :=2
MX :=1
IN :=3
IN :=3
)
)
Une fonction doit retourner au moins une sortie, dont le type est spcifi dans la dclaration de la fonction,
et qui sera sauvegarder dans CR.

S. MARAOUI

Page 9

ISIM Gabs
LASCMI3

API et Supervision industrielle

A.U. 2011/2012

Exemple dappel et de dclaration de fonction :

Dans cet exemple on fait deux appels UserFun. Dans le premierappel Funpar1 est gale 10, dans le
deuxime il est gale) 60. A la fin des deux appels la valeur 110 est sauvegarde dans la variable Sum.
Appelle dun bloc fonction (FB)
Un FB peut tre activ par loprateur CAL (ou CALC pour lappel conditionnel, ou CALCN pour lappel
conditionnel avec ngation). La norme 61131-3 dcrit trois mthodes pour passer les paramtres un FB en
langage IL :
1- Utilisant un appel incluant la liste des instances actuelles des paramtres dentre et sortie entre
parenthses.
2- Charger et sauvegarder les paramtres dentre avant lappel de la FB
3- Appeler implicitement e utilisant les paramtres dentre comme oprateur. Cette mthode nest
valable que pour les FB standard et non pour celle dfinies par lutilisateur, etelle est rarement
utilise en pratique.
Exemple : considrant le bloc suivant (temporisation) qui sera appel par les trois mthodes :

(*Declarations des variables*)


VAR
Rel, Out:
BOOL := 0;
Time1:
TON;
Value TIME;
END_VAR

S. MARAOUI

(* Release - Input; Output *)


(* FB TON standard a les paramtres formels *)
(* IN, PT (entres) et Q, ET (sorties *)
(* entre mise 1 *)

Page 10

API et Supervision industrielle

ISIM Gabs
LASCMI3

(*methode 1*)

(*donner les
paramtres*)

(* Appel: *)
CAL Time1 (
IN:=Rel,
PT:= t#500ms,
Q=>Out, (* Output p. 1 *)
ET=>VALUE (* Output p. 2 *)
)

(*methode 2*)

LD
ST
LD
ST
LD
PT
LD

CAL Time1

(*methode 3*)

t#500ms
Time1.PT
Rel
Time1.IN
t#500ms
Time1
Rel

IN

time1

A.U. 2011/2012

(*Utilisation des paramtres de


sortie*)
LD
ST
LD
ST

Time1.Q
Out
Time1.ET
Value

5. Programmation en FBD (Logigramme)


Un programme (ou partie de programme) crit en langage FBD (Function Block Diagram) comporte trois
parties : dpart en fin du programme, partie dclaration et partie code.
La partie dclaration peut tre textuelle ou graphique. La partie code est divis en rseaux. Un rseau est
constitu de :
-

Label du rseau
Commantaire
Graphique du rseau

Dans ce langage on utilise des fonctions logique comme ET, OU, NAND, NOR, XOR ou des combinaisons de
ces fonctions. Lutilisateur peut aussi dfinir ses propres fonctions o FB, comme pour le langage LD.
Exemple :

S. MARAOUI

Page 11

ISIM Gabs
LASCMI3

API et Supervision industrielle

A.U. 2011/2012

6. Programmation en texte structur (ST)


Comme le IL, le langage ST est un langage textuel. Il est dit de haut niveau. Il offre un ensemble
dinstructions abstraites dcrivant des fonctions plus ou moins complexes dune faon condense. Les
avantages du langage ST par rapport celui de lIL sont nombreuses, parmi lesquelles :
-

Formulation trs condense des fonctions raliser.


Construction claire du programme en blocs fonctionnels.
Possibilit pousse de commande de processus.

Les inconvnients de ce langage sont lis principalement leur compilation, puisque gnralement les
programmes compils sont plus longs et plus lents lexcution.

Expressions en ST
Un programme crit en ST est form par un ensemble dexpressions, spar par un ; (le retour la ligne
est interprt comme un simple espace). Les commentaires sont de la forme (*Commentaire*) et peuvent
tre dans lexpression mme comme : A := B (* elongation *) + C (* temperature *);
Les expressions du langage sont rsum dans le tableau suivant :
Mot cl
:=

Description
Affectation
Appel de fonction

Return
If

Retour
Slection

Case

Choix multiple

For

Itration

While
Repeat

Exit

Fin de boucle

exemple
D :=10 ;
FBName(
Par1:=10,
Par2:=20,
Par3:=>Res);

Return ;
IF d < e THEN f:=1;
ELSIF d=e THEN f:=2;
ELSE f:= 3;
END_IF;
CASE f OF
1: g:=11;
2: g:=12;
ELSE g:=FunName();
END_CASE;
FOR h:=1 TO 10 BY 2 DO
f[h/2] := h;
END_FOR;
WHILE m > 1 DO
n := n / 2;
END_WHILE;
REPEAT
i := i*j;
UNTIL i < 10000
END_REPEAT;

exit;

N.B : diffrents oprateurs sont utilis pour effectuer les oprations logiques et arithmtiques (&,and, or,
<,>, parenthses,) , comme par exemple pour le langage C, lordre de priorit est aussi semblable.

S. MARAOUI

Page 12

API et Supervision industrielle

ISIM Gabs
LASCMI3

A.U. 2011/2012

7. Programmation SFC (Grafcet)


Le langage SFC (Sequentiel Function Chart) de la norme CEI 61131-3 a t dfini pour pouvoir diviser un
problme complexe en des units plus petites et plus manipulable, et aussi pour dcrire le flux de
commande entre ces units. La squence dexcution de ces units dpond de conditions statiques dfinies
par le programme et des conditions dynamiques dfinies par les E/S. Les units peuvent elles mme tre
programmes utilisant les autres langages de programmations des API.
Le premier langage largement adopt dcrivant un processus par un ensemble dtats et de conditions
transitoires est le Grafcet, qui est par la suite largement intgr dans le langage SFC.
Les processus pouvant tre dcris par un comportement squentiels caractris par des tapes, sont
particulirement adapts pour que leurs fonctionnement soit dcrit avec ce langage.

7.1.

Rappel sur le grafcet :

Le GRAFCET (GRAphe Fonctionnel de Commande par Etape Transition) est un outil graphique qui permet la
description du fonctionnement du systme automatis au cours du temps d'une faon claire et sans
ambigut.
Un grafcet est un ensemble des tapes, des transitions et des liaisons orientes.
Etape : Une tape correspond une phase durant laquelle on effectue une action
pendant une certaine dure (mme faible mais jamais nulle). L'action doit tre stable, c'est
dire que l'on fait la mme chose pendant toute la dure de l'tape.
A chaque tape on associe une ou plusieurs actions.
2

Marche
avant

Monte

Une tape peut tre active on effectue l'action qui lui est associe,

3*

Etape
active

Etape inactive

ou dsactive.
Les actions peuvent :
Commander des actions extrieures : Dplacement dun chariot, mise en marche dun moteur,
allumage dun voyant

Effectuer des relations intrieures : lancer une temporisation, activer un autre cycle

Transition : Une transition est une condition de passage d'une tape une autre. Elle
dfinit la fin de ltape qui la prcde. A chaque transition on associe une condition logique
appele rceptivit qui dfinit la condition de passage d'une tape la suivante.
Les liaisons orientes
Les liaisons orientes indiquent les voies dvolution du grafcet. Elles sont horizontales ou verticales. Le sens
gnral dvolution du grafcet est du haut vers le bas. Des flches doivent tre utilises dans le cas contraire
ou lorsquune meilleure comprhension pourra en rsulter.
La figure suivante illustre les diffrentes composantes dun grafcet :

S. MARAOUI

Page 13

ISIM Gabs
LASCMI3

API et Supervision industrielle

A.U. 2011/2012

Rgles dvolution dun GRAFCET

La modification de l'tat de l'automatisme est appele volution, et est rgie par 5 rgles :
Rgle 1 : Situation initiale : Un grafcet doit contenir au moins une tape qui soit active au dbut
du fonctionnement du systme et partir du quelle le grafcet va voluer. Cette tape est
appele tape initiale.
Rgle 2 : Franchissement d'une transition : Une transition est franchissable si toutes les tapes
immdiatement prcdentes sont actives et la rceptivit associe cette transition est vraie. Si
une transition est franchissable, elle est forcment franchie.
Rgle 3 : Activation et dsactivation d'une tape :Le franchissement d'une transition entrane
l'activation de toutes les tapes immdiatement suivantes et la dsactivation de toutes les
tapes immdiatement prcdentes.
Rgle 4 : Plusieurs transitions simultanment franchissables sont simultanment franchies.
Rgle 5 : Si au cours du fonctionnement dune mme tape doit tre active et dsactive simultanment,
alors elle reste active.
Diffrentes structures d'un grafcet
Un cycle dautomatisme peut tre linaire, ou ramifi. Les cycles simples ne comportent quune seule
squence, cest dire un ensemble dtapes les unes la suite des autres.
Les cycles ramifis comportent plusieurs squences, le rle des aiguillages dans un GRAFCET est soit de
slectionner une squence : Aiguillage en OU (on parle dans ce cas de cycle plusieurs branches avec
slection de squence), soit dexcuter simultanment plusieurs squences : Aiguillage en ET (on parle dans
ce cas de cycle plusieurs squence squences simultanes).
Gracet squence unique : Cest un grafcet constitu dune suite dtapes et transitions sans ramifications.
Le cycle de poinonnage trait prcdemment en est un exemple.

S. MARAOUI

Page 14

ISIM Gabs
LASCMI3

API et Supervision industrielle

A.U. 2011/2012

Aiguillage en OU : Dans ce cas, le grafcet possde une structure plusieurs branches excution exclusive
c'est--dire une seule squence (branche) est excut la fois lors dun cycle.

Dautres structures daiguillage en OU sont aussi possibles comme le saut dtapes ou la reprise de
squence:

Aiguillage en Et (squences simultanes) : Cest grafcet qui possde plusieurs squences (branches) qui vont
se droules simultanment (en parallle).

S. MARAOUI

Page 15

API et Supervision industrielle

ISIM Gabs
LASCMI3

7.2.

A.U. 2011/2012

Identification des tapes et transissions en SFC

En SFC, une tape peut tre identifie graphiquement par un rectangle et un nom dtape (ou double
rectangle pour ltape initiale) ou textuellement via une dclaration :

Identifiant

Initiale

Ou :

Step Identifiant
(* Corps de ltape pour dcrire les actions *)
End_step
Initial_step identifiant ;
(*Corps de ltape *)
End_step

Une rceptivit associ une transition peut tre crite en lun des langages ST, LD ou FBD, mais pas e,IL
dans la version graphique du SFC.
Langage LD

Langage ST

Langage FBD

On peut aussi utiliser des connecteurs pour lier une rceptivit une transition.

dans ce cas les langages ST et IL ne sont pas autoriss.


S. MARAOUI

Page 16

API et Supervision industrielle

ISIM Gabs
LASCMI3

A.U. 2011/2012

Une troisime mthode consiste utiliser le nom de la rceptivit associ la transition, crite
indpendamment du diagramme SFC, les langages textuels peuvent tre utiliss dans ce cas. Cette mthode
lavantage de pouvoir utiliser le nom de la rceptivit pour diffrentes transitions auxquelles sont associ
la mme condition logique.
Exemple :
Dclaration de la rceptivit :

Appel de la transition :

7.3.

Description des actions :

Une action est utilise pour dcrire les instructions excut en association avec une tape active. Ces
instructions peuvent tre une action boolenne ou une squence dinstructions programme en LD, IL, FBD,
ST ou un sous-programme en SFC.
Un bloc action est constitu dune action avec une condition dexcution (appele qualificateur daction) et
un indicateur boolen variable (optionnel). Un bloc daction peut tre dfinit en version graphique ou
textuelle.
Qualificateur daction Nom daction Indicateur boolen variable
Instruction en LD, IL, ST ou SFC

S. MARAOUI

Page 17

ISIM Gabs
LASCMI3

API et Supervision industrielle

A.U. 2011/2012

Exemples :

S. MARAOUI

Page 18

API et Supervision industrielle

ISIM Gabs
LASCMI3

A.U. 2011/2012

8. Types de donnes et dclaration des variables


8.1.

Types de donnes

Types de donnes lmentaires :


Les types de donnes lmentaires spcifis par la norme 61131-3, sont donns par le tableau suivant :
Boolenne/string

Entiers signs

Entiers non signs

BOOL
INT
UINT
BYTE
SINT
USINT
WORD
DINT
UDINT
DWORD
LINT
ULINT
LWORD
Avec : D= double, L= long, S = Short et U = unsigned.

Temps, dure et
date
TIME
DATE
TIME_OF_DAY
DATE_AND_TIME
STRING

Rels (FP)
REAL
LREAL

Ces types ont caractris par leurs largeurs (nombres de bits) ainsi que par leur tendus (ou intervalles de
valeurs). Ceci ne sapplique pas aux types de temps et dates qui ont leurs propres spcifications.
Ces grandeurs sont rsumes dans les tableaux suivants pour les diffrents types lmentaires.
Type de variable
BOOL
BYTE
WORD
DWORD
LWORD
SINT
INT
DINT
LINT
USINT
UINT
UDINT
ULINT
REAL
LREAL
Type dtae
DATE
TOD
DT
Time

Bits
1
8
16
32
64
8
16
32
64
8
16
32
64
32
64

Intervalle
[0,1]
[0,,16#FF]
[0,,16#FFFF]
[0,,16#FFFF FFFF]
[0,,16#FFFF FFFF FFFF FFFF]
[-127,,128]
[-32768,,32767]
[-231,,231-1]
[-263,,263-1]
[0 255]
[0 65535]
[0 231-1]
[0 264-1]
Spcifi par la norme IEEE 754-2008

Description
Date (seulement)
Temps durant la journe
Temps et date
Dure

Initiale
0
0
0
0
0
0
0
0
0
0
0
0
0
0.0
0.0

Initiale
D#0001-01-01
Tod#00 :00 :00
Dt#0001-01-01-00 :00 :00
t#0s

Types de donnes drives (ou dfinition de type)


Lutilisateur peut dfinir ses propres types de donnes partir des types lmentaires. Ceci est appel
drivation ou dfinition de type. Ceci permet lutilisateur de dfinir les types les plus appropris ses

S. MARAOUI

Page 19

ISIM Gabs
LASCMI3

API et Supervision industrielle

A.U. 2011/2012

besoins. Ses dfinitions sont globales pour un projet api. La dfinition de type de variables utilise les mots
cls Type END_TYPE.
Exemple :
TYPE
LongFloatNum : LREAL; (*derivation depuis le norme *)
FloatingPoint : LongFloatNum; (* derivation depuis un type dfinit par lutilisateur *)
InitFloatNum : LREAL := 1.0; (* derivation avec une nouvelle valeur initiale *)
tControl : BOOL := TRUE; (* derivation avec nouvelle valeur initiale *)

END_TYPE

On peut aussi dclarer des type de donnes de type array (vecteur) ou structure.
Un array est une suite dlments de mme type conscutifs en la mmoire et peuvent tre accd via un
index, alors que la structure est forme de sous-lments qui peuvent tre de type lmentaire ou drivs.

Exemples:
1)
TYPE
Colour : (red, yellow, green); (* enumeration *)
Sensor : INT (-56..128); (* range *)
Measure : ARRAY [1..45] OF Sensor; (* array *)
TestBench : (* structure *)
STRUCT
Place : UINT; (* elementary data type *)
Light : Colour:= red; (* enumerated data type with initial value *)
Meas1 : Measure; (* array type *)
Meas2 : Measure; (* array type *)
Meas3 : Measure; (* array type *)
END_STRUCT;
END_TYPE
2) dfinition de structure relative au fonctionnement dun moteur
TYPE
LimitedRevol :
UINT (0..230);
TypLevel :
(Idling, SpeedUp1, SpeedUp2, MaxPower);
MotorState :
STRUCT
Revolutions : LimitedRevol; (* limites *)
Level : TypLevel; (*type enumeration*)
MaxReached : BOOL; (*type elementaire *)
Failure : BOOL; (*type elementaire *)
Brake : BYTE; (*type elementaire *)
END_STRUCT;
END_TYPE

S. MARAOUI

Page 20

API et Supervision industrielle

ISIM Gabs
LASCMI3

8.2.

A.U. 2011/2012

Dclaration de variable :

Forme gnrale de dclaration :


Les variables sont dclares avec le type de donne et des proprits. Ces proprits peuvent tre dfinies
dans la dclaration utilisant :
-

Les proprits du type de donnes spcifiques.


Informations (optionnelles) sur les valeurs initiales
Informations (optionnelles) sur les valeurs limites
type de variable du bloc de dclaration dans lequel la variable a t dclare (avec
qualificateur/attribue)

Exemple :
Type de variable

Attribue

VAR_OUTPUT RETAIN
Var1

Byte

:=

10;

Nom de variable
END_VAR

Valeur initiale
Type de donne

Fin du type de variable

Attribues de types de variables :


La norme CEI 61131-3 dfinie des attribues (ou qualificateurs) avec lesquelles de proprits supplmentaires
peuvent tre ajoutes aux variables :
-

RETAIN : variable retenu (peut tre rcuprer aprs coupure de courant grce la batterie).
NON_RETAIN : non rcuprable.
CONSTANT : variable constante, ne peut pas tre modifie
R_EDGE : front montant
F_EDGE : front descendant
READY_ONLY : protger en criture
READ_WRITE : peut-tre accde pour lcriture et la lecture

S. MARAOUI

Page 21

ISIM Gabs
LASCMI3

API et Supervision industrielle

A.U. 2011/2012

9. Fonctions standards
Les fonctions standards ont des variables dentre (paramtres formels) ainsi que la valeur retourn par la
fonction.

9.1.

Fonctions de conversions de types:

Ces fonctions standards convertie la variable dentre en le type de donne retourne par la fonction. Ces
fonctions sont rsumes par la figure suivante :

9.2.

Fonctions numriques :

Permettent de raliser des fonctions mathmatiques de base (abs, sqrt, Ln, Log, sin, cos, tan, asin,)

9.3.

Fonctions arithmtiques :

Permettent de raliser des oprations arithmtiques (add, sub, mult, div)


Addition et multiplication :

Soustraction et division :

MOD :

S. MARAOUI

Page 22

ISIM Gabs
LASCMI3

9.4.

API et Supervision industrielle

A.U. 2011/2012

Oprations sur les bits :

Permettent de manipuler des bit (shift droite/gauche, rotation droite/gauche : SHR,SHL, ROR et ROL)

9.5.

Oprations bit bit

Permettent de raliser des oprations de type fonctions logique de base (not, and, or, xor)

9.6.

Fonction slection

Les fonctions MAX, MIN et LIMIT permettent de faire une slection selon la valeur de lentre
Pour Max ou Min :

Pour limit :

Pour cette fonction : F :=MIN(MAX(IN,MN),MX) ;

9.7.

Fonctions SEL et Mux :

Sel : slection binaire.

F := IN0 si G=1 sinon F :=IN1


S. MARAOUI

Page 23

API et Supervision industrielle

ISIM Gabs
LASCMI3

A.U. 2011/2012

Mux : multiplexeur.

F :=INi, si K=i avec K=0n-1

9.8.

Fonctions pour variable de type date :

Dans ces figure (***)= ADD ou SUB

(***)=Mul ou Div
Conversion :

10.

Fonctions blocs standard :

Bascules :
Bascule set dominant

S. MARAOUI

Bascule reset dominant

Page 24

ISIM Gabs
LASCMI3

API et Supervision industrielle

Dtection de front :
Dtection front montant

A.U. 2011/2012

Dtection front descendant

Compteurs :
Trois types de compteurs : incrmentation (CTU), dcrmentation (CTD) et incrmentation-dcrmentation
(CTUD)
CTU

CTD

CTUD

FUNCTION_BLOCK CTU (* up counter *)


VAR_INPUT
CU : BOOL R_EDGE; (* CU front montant*)
R : BOOL;
PV : INT;
END_VAR
VAR_OUTPUT
Q : BOOL;
CV : INT;
END_VAR
IF R THEN (* reset compteur *)
CV := 0;
ELSIF CU AND ( CV < PV) THEN
CV := CV + 1; (* count up *)
ENDIF;
Q := (CV >= PV); (* limite attainte*)
END_FUNCTION_BLOCK

FUNCTION_BLOCK CTD (* down counter*)


VAR_INPUT
CD : BOOL R_EDGE;
LD : BOOL;
PV : INT;
END_VAR
VAR_OUTPUT
Q : BOOL;
CV : INT;
END_VAR
IF LD THEN (* reset compteur*)
CV := PV;
ELSIF CD AND ( CV > 0) THEN
CV := CV - 1; (* count down *)
ENDIF;
Q := (CV <= 0); (* zero reached *)
END_FUNCTION_BLOCK

FUNCTION_BLOCK CTUD
VAR_INPUT
CU : BOOL R_EDGE;
CD : BOOL R_EDGE;
R : BOOL;
LD : BOOL;
PV : INT;
END_VAR
VAR_OUTPUT
QU : BOOL;
QD : BOOL;
CV : INT;
END_VAR
IF R THEN (*reset counter(reset dominant)*)
CV := 0;
ELSIF LD THEN
CV := PV; (* valeur compter value *)
ELSE
IF NOT (CU AND CD) THEN
IF CU AND ( CV < PV) THEN
CV := CV + 1; (* count up *)
ELSIF CD AND ( CV > 0) THEN
CV := CV - 1; (* count down *)
ENDIF;
ENDIF;
ENDIF;
QU := (CV >= PV); (* limit reached *)
QD := (CV <= 0); (* zero reached *)
END_FUNCTION_BLOCK

Temporisation :
Trois types de temporisations sont disponible TON (dcompte T0), TOF (comptage T0) et impulsion

*** = TON ou TOF ou TP


S. MARAOUI

Page 25

ISIM Gabs
LASCMI3

API et Supervision industrielle

A.U. 2011/2012

Temporisation impulsions TP
Le diagramme ci-aprs montre le comportement des sortie ET et Q selon les valeurs des entres IN et PT

La fonction bloc standard TP fonctionne comme gnrateur dimpulsions, qui fournit une impulsion de
largeur fixe (TP) la sortie Q lorsquun front montant est dtect sur lentre IN. Le temps qui sest pass
peut tre lu sur ET (Elapsed Time). Anoter que limpulsion ne peut pas rinitialiser avant sa fin (voir
intervalle entre t2 et t2+PT).
Temporisation TON (On delay timer)
Le timer TON fournit la valeur de lentre IN la sortie Q avec un dlai lors quun front montant est dtect
sur IN. Si in est 0 un pour une dur2e plus courte que PT ? LE TIMER N4EST PAS D2MARRER.

TEMPORISATION TOF
Son fonctionnement est le contraire de celui de TON

S. MARAOUI

Page 26

You might also like