Vous êtes sur la page 1sur 48

Les Réseaux de Petri (RdP)

Exemples d'étude
Les Réseaux de Petri (RdP)

Exemple d'étude n°1 :


Processus chimique flexible
Processus chimique flexible
„ Modélisation pour la conception de ce système.

„ 2 type de produits, suivant la recette utilisée :

„ Les transferts entre les deux réacteurs s'effectuent à l'aide d'un


robot, mais on suppose ne pas avoir à gérer ce robot
(simplification).
„ Pas de réservoirs intermédiaires.
„ Ici : pas de considération du tps, modéliser en RdP de base
karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 3
„ Cas d'un seul lot à fabriquer :

„ Analyse énumérative :
{ réseau borné
{ réseau vivant

„ Analyse structurelle :
{ Toutes transitions dans
des T- invariants
{ Toutes places dans des
P-invariants

„ Tous semble correct !

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 4


„ Cas de deux lots à fabriquer :

„ Analyse énumérative :
{ réseau borné
{ réseau NON VIVANT
{ Il y a un deadlock !!

„ Et pourtant..
„ Analyse structurelle :
{ Toutes transitions dans
des T-invariants
{ Toutes places dans des
P-invariants

„ D’où vient le pb ?
⇒ Les réservoirs sont bloqués
lorsque les recettes sont
commencées simultanément.
karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 5
„ Autre implémentation possible :
Pour représenter de façon +
réaliste le stock limité.
„ Un cycle = la totalité des produits
on été traités.

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 6


„ On rajoute une exclusion
mutuelle.

„ On obtient un réseau
borné et vivant même
pour plusieurs lots.

„ Rmq : mais on a perdu


l'intérêt du parallélisme !!
Inutiles
maintenant

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 7


Processus chimique flexible
„ Idée : réservoirs intermédiaires.

„ Conditions :
{ procédé ok (condition de température et
de pression à assurer pour le stockage)
{ coûts induits ok (coût réservoirs +
canalisations)

„ Hypothèses : le robot s'occupe également du


transfert entre les réacteurs et les réservoirs
intermédiaires.
⇒ conditions supp : robot ok

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 8


„ Analyse énumérative :
{ réseau borné

{ réseau vivant

„ Analyse structurelle :
tout est ok

„ C'est correct.. du point de vue


comportemental des RdP.
⇒ Qu'en est il des propriétés
spécifiques au système ?????
karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 9
Processus chimique flexible
„ Suite de la validation :
{ Génération (automatique) du graphe des marquages;

{ Analyse détaillée de ce graphe (manuelle ou automatique).

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 10


Nb de lots (initial) Réservoir_pb

Processus chimique flexible

karen.godary@lirmm.fr Réservoir_pa
Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 11
Processus chimique flexible
„ Suite de la validation :
{ Génération (automatique) du graphe des marquages;

{ Analyse détaillée de ce graphe (manuelle ou automatique).

„ On constate que certains marquages ont 2 jetons dans un des réservoirs.


⇒ On a oublié de spécifier que les réservoirs ne contiennent qu'une seule
charge.
⇒ Rajouter au modèle une gestion de la ressource "réservoir".

„ CONCLUSION :
La validation des propriétés comportementales des RdP ne suffit
pas à valider un modèle. Il faut également vérifier les propriétés
spécifiques extraites du cahier des charges.

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 12


Les Réseaux de Petri (RdP)

Exemple d'étude n°2 :


Atelier robotisé de production
Plan

„ Modélisation du système
{ Extension 1 : compteurs de pièces
{ Extension 2 : séquence de démarrage

„ Validation du modèle
{ Modèle "normal"
{ Modèle avec compteurs de pièces
{ Modèle avec séquence de démarrage

„ Mise en œuvre

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 14


Les Réseaux de Petri (RdP)

Modélisation
Cahier des charges

„ Usinage de pièces par 2 machines, M1 et M2


„ Transport des pièces par un seul Robot
„ Stock de pièces
„ Hypothèse : dès qu'elles sont usinées, les pièces sont
évacuées manuellement de façon immédiate.
⇒ on ne s'en préoccupe pas.

„ Mise en œuvre par MEF • MEF = Machine à état fini

⇒ Décomposition nécessaire pendant • Représentation du fonctionnement par


un cycle à 1 seul jeton.
la modélisation
• Ce jeton représente l'état du système

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 16


Prise en compte du procédé

„ Capteurs disponibles :
{ Piece_M1 : fin du transport d'une pièce sur M1
{ Piece_M2 : idem sur M2
{ Fin_US1 : fin de l'action usinage de la machine M1
{ Fin_US2 : idem pour M2

„ Actionneurs disponibles :
{ TR1 : transport d'une pièce sur M1
{ TR2 : transport d'une pièce sur M2
{ US1 : usinage de la machine M1
{ US2 : usinage de la machine M2

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 17


Prise en compte du procédé

⇒ Utilisation des RdP interprétés.

ƒ Attention : pas de capteurs "Robot libre" ou "M1 libre".


⇒ Il faut gérer cela par partage de ressource.

ƒ Pas de précision sur la quantité


du stock : on le suppose infini, on ne le gère pas.

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 18


Décomposition matérielle

„ Décomposition matérielle :
{ 3 modules possibles : M1, M2 et le Robot.
{ Pour simplifier, on ne va décomposer qu'en 2 modules
M1 et M2.
{ Les actions TR1 et TR2 seront considérées comme
appartenant à la commande de M1 (resp. M2).
{ Le robot sera considéré comme une ressource
partagée entre M1 et M2.

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 19


Modélisation des 2 machines
!!! : ces 2 actions utilisent la
ressource Robot

Représentation de l'état
intermédiaire avant le Piece_M1 Piece_M2
démarrage de l'usinage.

„ Etats possibles de M1 : (instantané)


{ M1 libre

{ TR1 (Piece_M1)

{ Pièce sur M1
Fin_US1 Fin_US2
{ US1 (Fin_US1)

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 20


Modèle complet du système

ressource
partagée

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 21


Modèle du système – extension 1

Piece_M1 Piece_M2

Fin_US1 Fin_US2

Nb de pièces
usinées par M1

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 22


Modèle du système – extension 2

Piece_M1 Piece_M2

Démarrage

Fin_US1 Fin_US2

Séquence de
démarrage du
système
karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 23
Les Réseaux de Petri (RdP)

Validation
Validation – Simulation

„ Exécution pas à pas : OK


„ Exécution aléatoire : OK

⇒ apparemment, pas de blocage, pas de pb..

¾ MAIS attention : la simulation n'est pas une méthode


d'analyse exhaustive.

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 25


Validation – Analyse structurelle

„ Toutes les places sont couvertes t0 t2


par des invariants.
⇒ le RdP est borné.

„ IP1 représente la ressource


Robot : ce jeton ne peut être
t1 t3
présent qu'en TR1 ou TR2 ou
RobotLibre.

„ IP2 représente la boucle de


commande de la machine M1; 1
P-SEMI-FLOWS GENERATING SET ----------
seul jeton est présent dans cette
boucle; il représente l'état en invariant

cours de la M1. IP1 : {Robot Libre} TR1 TR2


bornitude IP2 : {M1 Libre} {Piece sur M1} TR1 US1
„ Idem IP3 pour M2. IP3 : {M2 Libre} {Piece sur M2} TR2 US2
karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 26
Validation – Analyse structurelle

t0 t2
„ Toutes les transitions sont
couvertes par des invariants.
⇒ le RdP est vivant.

„ IT1 représente la commande t1 t3


de la machine M1; les 4
transitions forment une boucle;
une transition de cette boucle
est tjs tirable.

„ Idem IT2 pour M2. T-SEMI-FLOWS GENERATING SET ----------

consistent
vivacité
IT1 : Fin_US1 Piece_M1 t0 t1
IT2 : Fin_US2 Piece_M2 t2 t3
karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 27
Validation – Graphe des marquages
M1Libre, M2Libre, RobotLibre

t0 E0 t2

FinUS2
FinUS1 E1 M2Libre, TR1 M1Libre, TR2 E5
FinUS1
FinUS2
PieceM1 PieceM2

E2 M2Libre, PieceSurM1, RobotLibre M1Libre, PieceSurM2, RobotLibre E6

t1 t2 t0 t3
E3 E14 E7 E11
M2Libre, RobotLibre, US1 PieceSurM1, TR2 PieceSurM2, TR1 M1Libre, RobotLibre, US2

t2 PieceM2 PieceM1 t0
t1 t3

E4 TR2, US1 PieceSurM1, PieceSurM2, RobotLibre TR1, US2 E12

PieceM2 FinUS1 t1 E8 t3 FinUS2 PieceM1

E9 PieceSurM2, RobotLibre, US1 PieceSurM1, RobotLibre, US2 E13

t3 t1
E10
FinUS2 FinUS1
karen.godary@lirmm.fr RobotLibre,
Polytech' Montpellier, US1,
MEA4 - Cours US2
"Automatismes et SED" - 2007-08 28
Validation – Analyse par énumération

REACHABILITY ANALYSIS ---------------------

réseau borné Bounded

15 marking(s), 28 transition(s) taille du GM

LIVENESS ANALYSIS -------------------------

réseau vivant live

0 dead marking(s), 15 live marking(s)


0 dead transition(s), 8 live transition(s)

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 29


Modèle complet du système

Piece_M1 Piece_M2

Fin_US1 Fin_US2

Nb de pièces
usinées par M1

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 30


Validation – Simulation

„ La simulation montre une accumulation de jetons dans les places


Nb_p1 et Nb_p2.

⇒ Le réseau semble non borné.

„ Validation pour vérifier.

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 31


Validation – Analyse structurelle
T-SEMI-FLOWS GENERATING SET ----------

vivacité not consistent


no semi-flows

„ Aucun T-invariant n'a été trouvé ⇒ pas de conclusion sur la vivacité..

P-SEMI-FLOWS GENERATING SET ----------

not invariant
bornitude IP1 : {Robot Libre} TR1 TR2
IP2 : {M1 Libre} {Piece sur M1} TR1 US1
IP3 : {M2 Libre} {Piece sur M2} TR2 US2

„ 3 P-invariants ont été trouvés : les mêmes que précédemment.


„ Mais cette fois, toutes les places ne sont pas couvertes par des invariants…

⇒ Il est possible que le réseau ne soit pas borné.


karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 32
Validation – Graphe des marquages
M1Libre, M2Libre, RobotLibre

t0 E0

FinUS1 E1 M2Libre, TR1

PieceM1
„ Début de construction du GM..
E2 M2Libre, PieceSurM1, RobotLibre
„ Successeur de E3 : E4, qui est un
t1 marquage supérieur à E0
E3
M2Libre, RobotLibre, US1
⇒ Le graphe est non borné

FinUS1
⇒ Graphe de couverture :
E4 M1Libre, M2Libre, RobotLibre, Nb_p1
REACHABILITY ANALYSIS --------

unbounded
Nb_p1 et Nb_p2 sont des compteurs : on peut
les enlever pour le reste de l'analyse (vivacité). 89 classe(s), 167 transition(s)

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 33


Modèle complet du système

Piece_M1 Piece_M2

Démarrage

Fin_US1 Fin_US2

Séquence de
démarrage du
système
karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 34
Validation – Analyse structurelle
T-SEMI-FLOWS GENERATING SET ----------

not consistent
vivacité
IT1 : Fin_US1 Piece_M1 t0 t1
IT2 : Fin_US2 Piece_M2 t2 t3

„ 2 T-invariants (les mêmes que précédemment)


„ Mais toutes les transitions ne sont pas couvertes par des invariants => on ne sait pas.

P-SEMI-FLOWS GENERATING SET ----------

invariant

IP1 : {Robot Libre} TR1 TR2


bornitude IP2 : {M1 Libre} {Piece sur M1} TR1 US1 p0
IP3 : {M2 Libre} {Piece sur M2} TR2 US2 p0
IP4 : Nb_p1
IP5 : Nb_p2

„ Toutes les places sont couvertes par des invariants => réseau borné.
„ 2 nouveaux invariants : les places Nb_p1 et Nb_p2 qui ne seront jamais marquées.
karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 35
Validation – Graphe des marquages
p0, RobotLibre

Démarrage

M1Libre, M2Libre, RobotLibre

t0 E0 t2

FinUS2
FinUS1 E1 M2Libre, TR1 M1Libre, TR2 E5
FinUS1
FinUS2
PieceM1 PieceM2

E2 M2Libre, PieceSurM1, RobotLibre M1Libre, PieceSurM2, RobotLibre E6

t1 t2 t0 t3
E3 E14 E7 E11
M2Libre, RobotLibre, US1 PieceSurM1, TR2 PieceSurM2, TR1 M1Libre, RobotLibre, US2

t2 PieceM2 PieceM1 t0
t1 t3

E4 TR2, US1 PieceSurM1, PieceSurM2, RobotLibre TR1, US2 E12

PieceM2 FinUS1 t1 E8 t3 FinUS2 PieceM1

E9 PieceSurM2, RobotLibre, US1 PieceSurM1, RobotLibre, US2 E13

t3 t1
E10
FinUS2 FinUS1
karen.godary@lirmm.fr RobotLibre,
Polytech' Montpellier, US1,
MEA4 - Cours US2
"Automatismes et SED" - 2007-08 36
Validation – Analyse par énumération

REACHABILITY ANALYSIS ---------------------

réseau borné bounded

16 marking(s), 29 transition(s) taille du GM

LIVENESS ANALYSIS -------------------------


réseau not live
non vivant
0 dead marking(s), 15 live marking(s)
0 dead transition(s), 8 live transition(s)

mais pas de deadlock et aucune


„ Rmq : en réalité, le réseau est quasi-vivant. transition non vivante..
„ Idem pour la transition Démarrage ???
⇒ Le logiciel utilisé (TINA) n'est pas très précis dans ce domaine.
karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 37
Les Réseaux de Petri (RdP)

Remarque sur la modélisation


Modélisation : remarque

„ Il y a plusieurs façons d’envisager le passage d’un problème à un modèle.


„ ON PEUT PARTIR DE LA DESCRIPTION DES ACTIONS OU DE CELLE
DES COMPOSANTS MATERIELS
„ Exemples :
{ Pour le processus chimique :
„ On part de l’enchaînement des étapes de chaque recette
„ On associe une place à chaque étape les autres places décrivent l’occupation
du matériel par les produits (chaque réservoir est une ressource).
{ Pour le modèle de l’atelier flexible :
„ On part du découpage des composants physiques
„ On associe une place à chacun les transitions décrivent les transferts entre les
composants.

⇒ Au final, la description contient les deux (Actions et matériels)

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 39


Les Réseaux de Petri (RdP)

Mise en œuvre logicielle


Langage C
Décomposition en MEF
„ Etats possibles de la machine M1 : M1_libre, TR1, piece_sur_M1 et US1

switch (Etat_M1)
{
case M1_libre :

break;

case TR1 : Piece_M1

break;

case piece_sur_M1 :

break;

case US1 :

Fin_US1
break;
}

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 41


Décomposition en MEF

„ Commande de la machine M1 :

switch (Etat_M1)
{
case M1_libre :
if (Robot_libre==1)
{Etat_M1=TR1; Robot_Libre=0;}
break;

case TR1 :
if (Piece_M1)
{Etat_M1=piece_sur_M1; Robot_libre=1;}
break;

case pièce_sur_M1 :
Etat_M1=US1;
break;

case US1 :
if (Fin_US1)
{Etat_M1=M1_libre; nb_pI++;}
break;
}

int Robot_libre;
int nb_pI;
karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 42
Décomposition en MEF
enum Etat_M1 {M1_libre, TR1, piece_sur_M1, US1};
#define M2_libre #define M1_libre enum Etat_M2 {M2_libre, TR2, piece_sur_M2, US2};
#define TR2 #define TR1
#define piece_sur_M2 #define piece_sur_M1 int Robot_libre;
#define US2 #define US1 int nb_pI, nb_pII;

„ Commande de la machine M1 : „ Commande de la machine M2 :

switch (Etat_M1) switch (Etat_M2)


{ {
case M1_libre : case M2_libre :
if (Robot_libre==1) if (Robot_libre==1)
{Etat_M1=TR1; Robot_Libre=0;} {Etat_M2=TR2; Robot_Libre=0;}
break; break;

case TR1 : case TR2 :


if (Piece_M1) if (Piece_M2)
{Etat_M1=piece_sur_M1; Robot_libre=1;} {Etat_M2=piece_sur_M2; Robot_libre=1;}
break; break;

case piece_sur_M1 : case piece_sur_M2 :


Etat_M1=US1; Etat_M2=US2;
break; break;

case US1 : case US2 :


if (Fin_US1) if (Fin_US2)
{Etat_M1=M1_libre; nb_pI++;} {Etat_M2=M2_libre; nb_pI++;}
break; break;
} }
karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 43
Mise en œuvre monotâche
„ Structure et exécution du code avec MEF, monotâche
(Rappel)

1 - Lecture des entrées : valeurs des capteurs


MEF1
2 - Application de contrôle MEF2
MEF3
3 - Sorties : commandes des actionneurs

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 44


Mise en œuvre monotâche
1 - Lecture des entrées : valeurs des capteurs
Lecture_Entrées (Piece_M1, Fin_US1, Piece_M2, Fin_US2);

2 - Application de contrôle
switch (Etat_M1) {
case M1_libre :
if (Robot_libre==1) {Etat_M1=TR1; Robot_Libre=0;} break;
case TR1 :
if (Piece_M1) {Etat_M1=piece_sur_M1; Robot_libre=1;} break;
MEF1 case piece_sur_M1 :
Etat_M1=US1; break;
case US1 :
if (Fin_US1) {Etat_M1=M1_libre; nb_pI++;} break;
}

switch (Etat_M1) {
case M1_libre :
if (Robot_libre==1) {Etat_M1=TR1; Robot_Libre=0;} break;
case TR1 :
if (Piece_M1) {Etat_M1=piece_sur_M1; Robot_libre=1;} break;
MEF2 case piece_sur_M1 :
Etat_M1=US1; break;
case US1 :
if (Fin_US1) {Etat_M1=M1_libre; nb_pI++;} break;
}

3 - Sorties : commandes des actionneurs


karen.godary@lirmm.frGeneration_SortiesPolytech'
(TR1, US1, TR2, US2);
Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 45
Mise en œuvre multi-tâches
„ Structure et exécution du code avec MEF, multitâche
Moniteur multitâche
Gestion de l'exécution des tâches

lancement / suspension

Tâche 1 Tâche 2
1 - Entrées : capteurs liés à MEF1 1 - Entrées : capteurs liés à MEF2
2 - Application de contrôle : MEF1 2 - Application de contrôle : MEF2
3 - Sorties : actionneurs liés à MEF1 3 - Sorties : actionneurs liés à MEF2
Tâche 3
1 - Entrées : capteurs liés à MEF3
2 - Application de contrôle : MEF3
3 - Sorties : actionneurs liés à MEF3
karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 46
Mise en œuvre multi-tâches
Moniteur multitâche
Gestion de l'exécution des tâches
Tâche 1 lancement / suspension Tâche 2

1 - Entrées : capteurs liés à MEF1 1 - Entrées : capteurs liés à MEF2


Lecture_Entrées (Piece_M1, Fin_US1);
Lecture_Entrées (Piece_M2, Fin_US2);
Robot_libre
2 - Application de contrôle : MEF1 (ressource partagée)
2 - Application de contrôle : MEF2
switch (Etat_M1) {
case M1_libre : switch (Etat_M2) {
if (Robot_libre==1) case M2_libre :
{Etat_M1=TR1; Robot_Libre=0;} break; if (Robot_libre==1)
case TR1 : {Etat_M2=TR2; Robot_Libre=0;} break;
if (Piece_M1) case TR2 :
{Etat_M1=piece_sur_M1; Robot_libre=1;} if (Piece_M2)
break; {Etat_M2=piece_sur_M2; Robot_libre=1;
case piece_sur_M1 : break;
Etat_M1=US1; break; case piece_sur_M2 :
case US1 : Etat_M2=US2; break;
if (Fin_US1) case US2 :
{Etat_M1=M1_libre; nb_pI++;} break; if (Fin_US2)
} {Etat_M2=M2_libre; nb_pI++;} break;
}
3 - Sorties : actionneurs liés à MEF1 nb_pI nb_pII 3 - Sorties : actionneurs liés à MEF2
Generation_Sorties (TR1, US1); (compteurs)
karen.godary@lirmm.fr Generation_Sorties
Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 (TR2, US2); 47
FIN

karen.godary@lirmm.fr Polytech' Montpellier, MEA4 - Cours "Automatismes et SED" - 2007-08 48

Vous aimerez peut-être aussi