You are on page 1of 66

Le Grafcet G7

grafcet fonctionnel
vs
grafcet technologique
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 2 karen.godary@lirmm.fr
Grafcet fonctionnel / technologique
grafcet fonctionnel : prise en compte de la partie fonctionnelle, en
faisant abstraction de toute ralisation technologique
grafcet technologique : en s'appuyant sur le grafcet fonctionnel, intgre
les contraintes technologiques et oprationnelles.
grafcet fonctionnel
principe
grafcet
technologique
technologie
pneumatique
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 3 karen.godary@lirmm.fr
Grafcet fonctionnel / technologique
Pour garantir l'indpendance du grafcet fonctionnel, faire attention certains cas particuliers.
Gestion des fronts : permet de tester l'apparition / disparition d'evt plutt que leur
prsence. C'est le cas lorsqu'une information est dj prsente dans l'tat initial.
Exemple : commande d'un moteur : lorsque l'oprateur commande la rotation, l'information
du capteur p de position est dj vraie => tester l'apparition de p et non sa prsence.
Rmq : en fait le test d'un front montant se traduit ds le grafcet technologique l'aide d'une
tape supplmentaire.
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 4 karen.godary@lirmm.fr
Grafcet fonctionnel / technologique
Exclusivit au niveau des divergences : l'exclusivit de a et c peut tre :
lie au procd : par ex. capteurs "opposs" (objet gauche / objet droite);
incompatibilit temporelle : a priori jamais en mme temps;
exclusion logique : structurellement, cf. schma.
Mais pour garantir l'indpendance, il vaut mieux expliciter l'exclusivit de faon
structurelle
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 5 karen.godary@lirmm.fr
Grafcet fonctionnel / technologique
Gestion des simultanits en fin de convergence
Hypothse sur les capteurs
Pb : si une action finie
avant l'autre, elle ne
peut pas s'arrter
1 solution, mais avec
hypothse : capteurs
contact maintenus
solution la meilleure.
Le Grafcet G7
Dialogue entre grafcets
Le Grafcet G7
Dialogue entre grafcets :
Communication dans l'entreprise
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 8 karen.godary@lirmm.fr
CF COURS RLI
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 9 karen.godary@lirmm.fr
Communications
Evolution des architectures d'automatismes : introduction de communications
de faon hirarchique
En entreprise : hirarchie des communications = pyramide CIM (Computer
Integrated Manufacturing)
Avantages :
Rduction du cblage
Rduction des cots (cblage, interface PO/PC (interface capteurs))
Modularit
Inconvnients :
Gestion des dlais, pertes, contraintes temporelles, rpartition des donnes
problmatique des rseaux locaux industriels (RLI)
Cf. cours
RLI
Le Grafcet G7
Dialogue entre grafcets :
Division technologique
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 11 karen.godary@lirmm.fr
Ralisation technologique
Il est donc souvent ncessaire ou judicieux de diviser la partie
commande et/ou la partie oprative :
Application complexe divise en sous parties de moindre complexit;
Synchronisation et dialogue entre sites rparties gographiquement;
Intgration du concept de CIM avec ncessit d'optimiser les
communications entre niveaux.
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 12 karen.godary@lirmm.fr
Ralisation technologique
Exemple : 2 chariots
Le Grafcet G7
Hirarchisation de la partie
commande
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 14 karen.godary@lirmm.fr
Hirarchisation
Exemple : 3 chariots.
Les chariots 1 et 2 se chargent (CPi) gauche et se
dchargent (Dpi) droite dans le chariot 3;
chariot 1 en 1er
Le chariot 3 se dcharge (Dp3) droite.
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 15 karen.godary@lirmm.fr
Hirarchisation
Dcoupage de la PC :
Gestion des chariots (3 grafcets, un par chariot)
Gestion des synchronisations, mmorisations, ressources.
chariot 1 chariot 2
chariot 3
synchro synchro
synchro
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 16 karen.godary@lirmm.fr
Hirarchisation
Synchronisation et gestion de la ressource chariot 3 :
chariot 1
chariot 2
chariot 3
grafcet de
synchronisation
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 17 karen.godary@lirmm.fr
Hirarchisation
Commande hirarchise :
Le Grafcet G7
Implantation
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 19 karen.godary@lirmm.fr
Mise en oeuvre
La norme dfinit les symboles et les rgles ncessaires la
reprsentation graphique de ce langage, ainsi que linterprtation qui
en est faite.
Les techniques de mise en uvre (passage dune spcification
GRAFCET une ralisation cble et (ou) programme) ne font pas
partie du domaine dapplication de cette norme.
Rmq : ds le cas des systmes de commande intgrant un automate
programmable, la norme CEI 61131-3 (1993) dfinie un ensemble de
langages de programmation destins aux automates programmables.
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 20 karen.godary@lirmm.fr
Implantation du grafcet
Description du comportement du grafcet = rgles d'volution => modle
comportementale.
Pour l'implantation, on a besoin d'une formalisation supplmentaire :
Soit algorithme d'volution
Soit quation boolennes quivalentes (quations logiques)
Ces 3 reprsentations sont quivalentes (mme comportement du systme
vis--vis des E/S)
Le Grafcet G7
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 22 karen.godary@lirmm.fr
Algorithme d'volution
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 23 karen.godary@lirmm.fr
Algorithme d'volution
Exemple :
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 24 karen.godary@lirmm.fr
Algorithme d'volution
Exemple :
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 25 karen.godary@lirmm.fr
Algorithme d'volution
IMPLANTATION INFORMATIQUE : plusieurs faons selon des critres
d'optimisation (taille mmoire, tps d'excution..)
Exemple simple :
Donnes
Paramtre.
ou
Proprit
Paramtre.
ou
Proprit
Paramtre.
ou
Proprit
Paramtre.
ou
Proprit
Paramtre.
ou
Proprit
Entre
Nom Valeur N Connex. 1 = vert
0 =rouge
Sortie
Nom Valeur N Connex. 1 = vert
0 =rouge
Etapes
Nom Etat Initiale ? Liste Trans. Amont Liste Trans. Aval
Transition
Nom Franchissable ? Rceptivit Liste Etapes Amont Liste Etapes Aval
Rceptivit
Nom Valeur Fonction
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 26 karen.godary@lirmm.fr
Algorithme :
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 27 karen.godary@lirmm.fr
Algorithme d'volution
Variantes :
Algorithme sans recherche de stabilit : le prcdent; (nom : SRS)
Algorithme avec recherche de stabilit (nom : ARS) : de nouvelles entres ne
sont lues que lorsque le grafcet a atteint un tat stable.
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 28 karen.godary@lirmm.fr
Algorithme d'volution
Intrt de la recherche de stabilit
Exemple : dplacement d'un mobile
Fonctionnement :
Dplacements initiaux : H et D
Si atteinte de b avant a : le mobile repart gauche
jusqu' c
Si atteinte de a avant b, et le bouton poussoir m
enclench : continu d'aller droite jusqu' d (ne
monte plus)
Si atteinte de a avant b, et m non enclench : va
droite jusqu' b, puis revient gauche jusqu' c.
(1)
(4)
(2)
(3)
(5)
(7)
(6)
(8)
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 29 karen.godary@lirmm.fr
Algorithme d'volution
Mise en uvre SANS stabilit :
1) Lecture des entres
2) Evolution de la situation (franchissement d'1 ou plusieurs transitions simultanes)
3) Excutions des actions
Exemple de scnario d'entre : capteur m, puis a, puis b rapidement aprs a
Comportement : (situation initiale {1,2})
Lecture de m
Evolution {1,2}{1,4}
Action : H,D
Lecture de a
Evolution {1,4}{3,4}
Action : D
Lecture de b
Transitions franchissables : n5 ET n6
simultanment franchies, pas trs correct a priori (branches censes tre exclusives)
Actions : G et D => confirmation du problme !!
Rmq : si b arrive + tard, la transition n6 sera franchie
avant la n5 => comportement non dterministe, ce
qui n'est pas dans l'esprit du Grafcet
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 30 karen.godary@lirmm.fr
Algorithme d'volution
Une solution : assurer explicitement l'exclusivit des branches d'une structure
de choix, ou viter les situations instables (difficile, et grafcet souvent limit).
Autre solution : Mise en uvre AVEC stabilit
1) Lecture des entres
2) Evolution de la situation jusqu' atteinte d'une situation stable
3) Excutions des actions
Sauf cas particulier, la recherche de stabilit est indispensable la mise en
uvre correcte d'un grafcet.
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 31 karen.godary@lirmm.fr
Algorithme d'volution
Optimisations :
Diminution du nb de transitions explorer : au lieu d'explorer toutes les
transitions, on slectionne les transitions aval des tapes actives.
Diminution du nb de transitions explorer : au lieu d'explorer toutes les
transitions, on ne slectionne que les transitions associes aux entres
qui ont changes.
Rmq : ces optimisations sont + ou efficaces suivants l'implmentation
mmoire des donnes (listes, chanes ou doublement chanes,
tableaux, etc..)
Le Grafcet G7
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 33 karen.godary@lirmm.fr
quations quivalentes
Principe : on considre une tape Xp et son environnement.
Une tape p est active (Xp vaut 1) si :
elle est active par l'amont
elle valait dj 1 et n'est pas dsactive par l'aval
) on esact i vat i Condi t i onD ( ) t ( Xp ct i vat i on Condi t i onA ) t ( Xp
n n
+ =
+1
Equation logique d'une tape
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 34 karen.godary@lirmm.fr
quations quivalentes
Initialisation : activation des tapes initiales, dsactivation des autres :
Init(Xp) = 1 t
0
si Xp est une tape initiale, 0 sinon.
) ( ) ( ) ( ) (
1
on esactivati ConditionD t Xp ctivation ConditionA Xp Init t Xp
n n
+ + =
+
Equation logique d'une tape
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 35 karen.godary@lirmm.fr
quations quivalentes
Exemple : dbut de choix de squences
b+c
d
e
e . X c . X X
d . X b . X X
) c b . ( X a . X X
31 10 31
21 10 21
10 9 10
+ =
+ =
+ + =
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 36 karen.godary@lirmm.fr
quations quivalentes
Exemple : fin de choix de squences
a
g
f
f . X e . X X
g . X d . X X
a . X ) f . X g . X ( X
32 31 32
22 21 22
9 32 22 9
+ =
+ =
+ + =
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 37 karen.godary@lirmm.fr
quations quivalentes
Exemple : dbut de squences parallles
e . X c . X X
d . X b . X X
b . X a . X X
21 10 31
21 10 21
10 9 10
+ =
+ =
+ =
b
d
e
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 38 karen.godary@lirmm.fr
quations quivalentes
Exemple : fin de squences parallles
b . X . X e . X X
b . X . X d . X X
a . X b . X . X X
21 31 30 31
31 21 20 21
10 31 21 10
+ =
+ =
+ =
a
X31.b
X21.b
X30.e
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 39 karen.godary@lirmm.fr
Conditions d'activation (CAXp) : pour Xp l'instant n+1
Conditions de dsactivation (CDXp) :

+
p de amont j i
j ju
j jd j
i
i i R X X R X
,
1 ) . .. ) . (

+
p de aval l k
l lv
l ld l
k
k R X X R
,
1 ) . .. ) (
quations quivalentes
j
1
j
d
i
Ri Ti
Tj
Rj
Rk
Tk
Tl
Rl
l1
ld
p
instant n
instant n+1
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 40 karen.godary@lirmm.fr
quations quivalentes
Action continue : son activit dpend de l'activit des tapes
auxquelles elle est associe.
Exemples :
Gestion des actions
A = X1 + X3
B = X2
A = X1
B = X2
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 41 karen.godary@lirmm.fr
quations quivalentes
Action conditionelle : son activit dpend de l'activit des tapes
auxquelles elle est associe ET des conditions.
Exemple :
Gestion des actions
A = X1 . e
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 42 karen.godary@lirmm.fr
quations quivalentes
Gestion des arrts d'urgence :
AU doux : stop des actions
AU Dur : dsactivation des tapes
AUD ) . ) CDXp ( ) t ( Xp CAXp ) Xp ( I ni t ( ) t ( Xp
n n
+ + =
+1
Signaux d'arrt d'urgence
AUd . Xp A =
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 43 karen.godary@lirmm.fr
quations quivalentes
Exemple 1 :
le grafcet
Les quations quivalentes
X
i
(0) = 0 i
Init = 1 t=1
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 44 karen.godary@lirmm.fr
quations quivalentes
Exemple 2 : commande du cycle d'1 vrin avec initialisation et dtect de dpassement du tps
le grafcet
1
2
Ordre VaGauche
T1
NonGA T2
GA
T3
GoCycle
T4
DA
T2
GA
3
Attente
4
Ordre VaDroite
T5
X4
11
Dbut dtection
10
T6
X3
12
ALARME
T7 t/X11/5 sec
T8 ACQ
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 45 karen.godary@lirmm.fr
quations quivalentes
le grafcet
Les quations quivalentes
ACQ . X sec) / X / t . ( X X
) sec) / X / t ( X . ( X X . X X
X . X X . X ACQ . X I ni t X
DA . X GoCycl e . X X
GoCycl e . X GA . X GA . X X
GA . X DA . X GA . X X
I ni t X
. X I ni t . X I ni t X
) GA GA ( . X I ni t X
12 5 11 11 12
5 11 3 11 4 10 11
4 10 3 11 12 10
4 3 4
3 1 2 3
2 4 1 2
1
0 1 1 1 1
1 1
+ =
+ + =
+ + + =
+ =
+ + =
+ + =
=
+ = + =
+ + =
Les quations de sorties
12
4
2
X ALARME
X VaDr oi t e
X VaGauche
=
=
=
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 46 karen.godary@lirmm.fr
Conclusion
Ces principes montrent comment passer d'un Grafcet une
ralisation algorithmique ou un circuit.
Ils s'appliquent quelque soit la technologie:
circuits logiques
programmation logique sur API
programmation classique sur PC industriels
etc...
Le Grafcet G7
Quelle technologie ?
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 48 karen.godary@lirmm.fr
Mise en uvre
Le Grafcet n'impose aucune solution : le choix ne dpend que de
critres conomiques ou des conditions d'utilisation.
Exemples :
Si besoin de modification, si bcp d'E/S ou si implmentation personnalise : API,
programm directement en G7 par une console de programmation (et / ou rseau).
Si : langage simple (ET, OU, mmoires)
Si fonctionnement prdfini et fig, et simple : cblage lectronique (portes et
bascules).
Si environnement peu compatible avec l'lectronique : cblage non lectronique
(ralisation pneumatique ou lectrique)
Si fonctionnement complexe avec besoin de rapidit ou de calcul numrique : carte
-contrleur ou mme -processeur.
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 49 karen.godary@lirmm.fr
Mise en uvre
Approches de mise en uvre :
Approche cble asynchrone
bascules RS
Approche cble synchrone
diagramme d'tats, squenceur bascules D
Approche cble programme
mmoire et bascules D
Approche programme
contrleur et processeur boolen
Automate Programmable
+ flexible
Le Grafcet G7
Programmation par logique cble
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 51 karen.godary@lirmm.fr
Ralisation technologique
Programmation en logique cble :
Logique combinatoire
Logique squentielle asynchrone
Bascule RS
Logique squentielle synchrone
Squenceur lectrique
Squenceur pneumatique
Le Grafcet G7
Exemple :
Cblage par bascules RS
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 53 karen.godary@lirmm.fr
Cblage asynchrone
Mise en uvre par cblage asynchrone : cas simple d'un grafcet linaire.
Une bascule RS par tape
Une tape s'active si son tape amont est active + rceptivit vraie
Une tape se dsactive qd la suivante est active
Etape 2 :
Activation : S2 = Q1.d
Sortie X : X=Q2
Dsactivation : R2=Q3
Etape i :
Si : Set
Ri : Reset
Qi : Sortie
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 54 karen.godary@lirmm.fr
Schma du cblage du systme complet :
Cblage asynchrone
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 55 karen.godary@lirmm.fr
Cblage asynchrone
Principale difficult : le routage, surtout pour un circuit imprim (croisements de pistes
impossibles). D'autant plus que chaque composant doit tre aliment (alimentations non
reprsentes ici). Mais il existe dsormais de bons logiciels de routage.
La mise en uvre d'un Grafcet par cblage n'est pas trs complique, par contre la
modification est difficile (souvent, nouveau cblage si modif du G7). De mme, la
recherche d'erreurs aprs coup tant difficile => test du cblage ds sa ralisation.
Autre problme de cette mthode :
une tape active dsactive son tape amont en permanence, tant qu'elle reste active (au lieu
de ne le faire qu'au moment de la transition).
L'tape amont ne peut alors pas tre active par un autre signal (ex : bouton "init")
Solution : mmoriser par une bascule intermdiaire l'tat des transitions.
trop complexe !
reste des difficults lies aux tps de rponse des bascules
cblage synchrone (bascule D),
Le Grafcet G7
Automate Programmable Industriel
(API)
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 57 karen.godary@lirmm.fr
Automate Programmable Industriel
Caractristiques essentielles : adapt pour le contrle de procd
Un ordinateur durci : ambiance industrielle
Une connectique adapte : connexion rapide
Un systme d'exploitation adapt : fonctionnement prform
Programme et exploitation adapts : formalisme proche de la dfinition des
quations de commande.
Cycle de base :
m
o
d
u
l
a
r
i
t

E
/
S
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 58 karen.godary@lirmm.fr
Automate Programmable Industriel
Structure des systmes
automatiques :
Principe de fonctionnement
d'un API :
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 59 karen.godary@lirmm.fr
Automate Programmable Industriel
Langages des API
LANGAGE
si machine = -processeur
spcifique au -processeur
si machine = machine logique spcialise
proche du langage boolen
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 60 karen.godary@lirmm.fr
Automate Programmable Industriel
Fonctions combinatoires lmentaires :
ET logique : entre la variable et le rsultat prcdent,
OU logique : entre la variable et le rsultat prcdent,
LIRE : l'tat de la variable indique,
RANGER : le rsultat dans la variable indique,
NON : inverser l'tat de la variable slectionne
Pour chaque tape i :
crire sa condition d'activation CAXi
crire sa condition de dsactivation CDXi
crire son action associe
Utilisation d'une variable interne associe M0,i
Programmation en langage boolen
(U : fonction ET)
Ex : langage STEP5
sur une console
PG605 pour les
automates de types
SIMATIC S5 Siemens
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 61 karen.godary@lirmm.fr
Automate Programmable Industriel
Type d'lments :
Entres (contacts) : contact ouvert ou ferm
Sorties (bobines) : set et reset
Fonctions : AND, OR, XOR, NOT (NAND, NOR)
Programmation d'une tape i avec action A :
crire sa condition d'activation CAXi
crire sa condition de dsactivation CDXi
remplacement de chaque tape Xi par une variable interne de
lautomate note Bi ;
cblage de la CAXi sur le SET de Bi et de la CDXi sur le RESET de Bi;
cblage de laction A associe Xisur la variable interne Bi.
Programmation en langage contacts (ladder)
Ex : langage PL7-2 sur un
terminal TSX-T407 pour
les automates
Tlmcanique TSX 17-
20/27/47-J/47-10/20
Projet
P5+P7
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 62 karen.godary@lirmm.fr
Automate Programmable Industriel
Langage proche de l'criture directe et non du schma.
Ligne :
Ln : NomVariable = ExpressionBooleenne
Instruction de saut
exemple : L20 : (E3+E5) = L35
si (E3+E5) est vraie, le programme va ligne L35 (sinon L21)
utilisation :
Initialisation
Mode Panne ou Normal
Calcul en fonction d'une valeur de variable
Programmation en expressions boolennes
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 63 karen.godary@lirmm.fr
Automate Programmable Industriel
Programmation structure en 3 parties :
Programmation " directe" en GRAFCET
Ex : automate
Tlmcanique TSX 47
avec le langage
GRAFCET PL7-2 sur un
terminal TSX-T407
Projet
P5+P7
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 64 karen.godary@lirmm.fr
Automate Programmable Industriel
Programmation " directe" en GRAFCET
Exemple
Bits systmes de l'automate :
SY21=I1,7 : init du G7
SY22=I1,6 : RAZ du G7 (AUD)
SY09=I1,5 : mise 0 des Out (Aud)
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 65 karen.godary@lirmm.fr
Automate Programmable Industriel
Programmation des API : alas
Il existe une diffrence entre l'excution du systme d'quations
squentielles thoriques et l'excution d'une suite d'quations sur un API.
Dans un API, l'tat final atteint peut dpendre de l'ordre des quations /
instructions / ladder.
Pour viter cela : si modification d'une variable pendant un cycle, ne pas
faire les calculs restant avec la nouvelle valeur mais avec celle de dbut du
cycle (utiliser une variable temp).
Exemple :
a = b+c
d = a
d = a
a = b+c

temp = a
a = b+c
d = temp
d = a
a = b+c

Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 66 karen.godary@lirmm.fr


Automate Programmable Industriel
Le programme est galement structur de
faon squentielle (comme pour l'API) afin de
tenir compte du traitement squentiel des
informations du systme automatique.
Implmentation de l'algorithme d'volution.
Ex : Pascal, C.
Programmation en langage volu

You might also like