net/publication/258243012
CITATIONS READS
0 1,000
1 author:
Daniel Chillet
IRISA - Institut de Recherche en Informatique et Systèmes Aléatoires
124 PUBLICATIONS 741 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Daniel Chillet on 30 November 2015.
F IGURE 1. Vue générale de l’interface graphique représentant le réseau de l’ordre de démarrage du moteur. Cette action est alors renvoyée, au
Pétri permettant le contrôle du système. travers du serveur et du driver vers le contrôle de l’application qui
appel simplement la fonction StartMotor(). Le réseau de Pétri
se trouve alors dans l’état présenté à la figure 4.
qu’ils doivent paramètrer à l’aide d’un tableau de commandes et
d’évènements, ce driver doit ensuite être initialisé dans le code
applicatif que développe l’étudiant.
Une fois le système initialisé, c’est-à-dire le serveur et l’application
contrôlant le système connectés (phase 1 du diagramme de séquence),
l’opérateur déclenche un démarrage de l’application de contrôle du
système à piloter. Supposons que le système à piloter soit un simple
moteur (permettant le déplacement d’un chariot sur un parcours
spécifique), et que le contrôle consiste simplement à attendre un
ordre Start de la part de l’opérateur, déclenchant le démarrage
du moteur, et que celui-ci s’arrête lorsque qu’un capteur (de fin de
course par exemple) se déclenche. Dans ce cas, le réseau de Pétri
correspondant est tel que celui présenté dans la figure 2. Dans cette
figure, les fonctions receive(...) et send(...) correspondent
aux réceptions et envois de messages entre le serveur et le client. La
fonction receive(’sensor’) correspond par exemple à l’attente
d’un signal en provenance du capteur de fin de course du chariot.
Cette fonction sera vrai/true lorsque cet évènement sera reçu
par le serveur. Les fonctions send(’StartMotor’) ainsi que F IGURE 4. Evolution du réseau de Pétri simple permettant de piloter un
send(’StopMotor’) provoqueront quant à elles l’envoi de mes- moteur, après que l’ordre de démarrage ait été donné par l’opérateur.
sages vers le client.
Dans le diagramme représenté à la figure 3, l’opérateur déclenche, La suite du diagramme de séquence présente le déclenchement
depuis son boitier de commande, un ordre de démarrage du système de l’évènement Sensor correspondant, par exemple, à la détection
(Start). Le réseau de Pétri indique que la réception de cet ordre d’une butée de fin de course (consécutif au déplacement d’un
receive(’start’) provoque le franchissement de la transi- chariot par exemple). Dans cette nouvelle séquence, la séquence
tion t1, ce franchissement provoque alors l’envoi d’un ordre de d’évènements est presque identique et débute par un évènement
démarrage au moteur send(’StartMotor’), ce qui se traduit (Sensor) envoyé directement vers le réseau de Pétri via le dri-
par un appel à la fonction driver du moteur. ver et le serveur. Le réseau de Pétri reçoit alors l’information
D’un point de vue diagramme de séquences, le fonctionnement est de déclenchement de l’évènement et évalue alors les transitions à
alors le suivant, l’ordre de démarrage déclenché par l’opérateur est franchir, s’il y en a. Dans notre exemple, la transition t3 devient
récupéré par l’application de contrôle. Celle-ci envoie alors cet ordre franchisage. Le simulateur de réseaux de Pétri provoque alors le
vers le réseau de Pétri au travers du driver et du serveur supportant la franchissement de cette transition, et génère alors un jeton dans la
simulation du réseau. Cet ensemble d’opérations provoque l’arrivée place p3. Cet ensemble transition t3 et place p3 permet de modéliser
d’un nouvel évènement dans le réseau, qui voit sa transition t1 la prise en compte d’une interruption, et cette interruption est capturée
franchissable. Le réseau déplace alors le jeton de la place p1 vers par la place p3, et conduit le réseau de Pétri dans l’état représenté à
la place p2, et déclenche alors l’action de la transition t1, à savoir la figure 5.
F IGURE 3. Diagramme de séquence illustrant la connexion du serveur de simulation de réseaux de Pétri et de l’application réalisant le contrôle du système..
La présence d’un jeton dans la place p3 et d’un jeton dans la bon fonctionnement du contrôle du système.
place p2 permet alors au simulateur de provoquer le franchissement
III. T RAVAIL À R ÉALISER PAR LES ÉTUDIANTS
de la transition t2 qui déclenche alors l’action associée, c’est-à-dire
l’action d’arrêt du moteur (send(’StopMotor’)). À noter sur Les projets que nous proposons aux étudiants correspondent à
la figure 5 que la transition t2 est de couleur verte, indiquant que des systèmes de production d’une complexité suffisante pour que
cette transition est franchissable. Une fois cette transition franchit, le le développement immédiat du code ne soit guère facilité. Le ca-
réseau se trouve alors dans l’état représenté par la figure 6. hier des charges est volontairement ambigüe et souffre de manque
d’explications sur certains points et de trop d’informations inutiles
Si le diagramme de séquences permet de décrire l’enchainement sur d’autres points. Nous demandons aux étudiants de réfléchir, dans
des fonctions à appeler pour assurer une prise en compte complète un premier temps à une décomposition du problème en plusieurs
d’un évènement, le réseau de Pétri simplifie la vue et ne montre que grandes fonctions. L’objectif consiste à sensibiliser les étudiants au
l’aspect fonctionnel du contrôle. Le travail des étudiants consiste à fait que dans un problème complexe, il y a bien souvent un cœur
définir cet aspect fonctionnel, et l’idée est de leur monter qu’une fois de problème à résoudre et que viennent ensuite des compléments,
le réseau décrit, celui-ci peut tout à fait être utilisé pour vérifier le compléments qui n’ont de sens que si le cœur du problème est géré.
bon fonctionnement. L’enseignant insiste ensuite sur le fait que la
validation fonctionnelle n’établit en rien que le codage sera en mesure
de piloter le système en respectant l’ensemble des contraintes. Les
étudiants poursuivent alors le projet par une phase de codage de leur
solution, éventuellement modifiée sir le besoin s’en faisait sentir.
Au terme du projet, les étudiants produisent un document final
englobant à la fois la modélisation, les explications concernant le
passage au code et les tests réalisés (sous forme de trace d’exécution).
L’évaluation globale du projet tient compte de tous ces éléments,
et une grosse part de la notation est attribuée à la cohérence globale
entre la modélisation et le code développé. Les étudiants pour lesquels
le code de la solution ne respecte pas la modélisation sont fortement
pénalisés. Le message que nous souhaitons passer au travers de
l’évaluation de la cohérence consiste à dire que si le travail de
modélisation est correctement fait et validé, alors la partie codage
doit suivre cette modélisation. Nous sensibilisons les étudiants au
fait que beaucoup d’outils sont actuellement proposés pour produire
F IGURE 5. Evolution du réseau de Pétri simple permettant de piloter du code à partir d’une modélisation et que dans ce cas, la structure du
un moteur, après la réception de l’évènement de fin de course provoquant code est évidemment en parfaite cohérence avec cette modélisation.
l’interruption modélisée sur la gauche de la figure.
La question qui se pose concerne la raison pour laquelle nous
n’utilisons les outils disponibles, notamment des outils commerciaux
ou universitaires éprouvés. Notre réponse, qui peut être critiquable
consiste à dire que l’utilisation massive d’outils, notamment pour
produire du code automatiquement, ou semi-automatiquement, ne
peut être vraiment profitable que si les méthodes et techniques sous
jacentes sont maitrisées. Nous pensons qu’avant de pouvoir utiliser
intelligemment de tels outils, il est important d’avoir pratiqué à partir
d’outils ne masquant pas toute la complexité du système. D’où l’idée
de passer par un outil simple, ne produisant aucun code.
Comme cela a été mentionné plus haut, une attention particulière
est portée sur les tests réalisés, et les étudiants sont aussi très
fortement sanctionnés s”ils sont dans l’impossibilité de démontrer
que leur développement est correct. Ce point est souvent sujet à ques-
tionnement de la part des étudiants, et le passage par la modélisation
et la vérification de cette modélisation leur permet de se poser la
question du test beaucoup plus tôt, et de lever des questions sur la
compréhension globale du système bien avant la phase d’écriture du
code à proprement parler. Sur ce point, nous insistons sur l’intérêt
F IGURE 6. Evolution du réseau de Pétri simple permettant de piloter un du travail au niveau modélisation plutôt qu’au niveau du code. Ce
moteur, après franchissement de la transition t2 provoquant l’arrêt du moteur. niveau d’abstraction permet en effet de s’affranchir des problèmes
directement liés à la syntaxe, et de vraiment se concentrer sur les
fonctionnalités, ces dernières correspondant aux réelles attentes du
Il n’est par exemple pas prioritaire de s’intéresser à la vitesse du client.
chariot si la gestion de son démarrage et de son arrêt ne sont pas
gérés correctement. IV. E XEMPLES DE CAHIER DES CHARGES
À partir de leur modélisation, les étudiants produisent un document
qui est remis à l’encadrant et une présentation orale permet de faire un Les exemples que nous proposons aux étudiants concernent dans
point afin de discuter de l’orientation prise pour définir la solution. Il un premier temps un problème très simple ayant pour objectif de
s’agit là non pas de corriger la modélisation et de donner une solution piloter le positionnement de deux grues à l’aide d’une console de
au problème, mais plutôt de critiquer la modélisation proposée au commande. Il s’agit ici surtout de leur donner un exemple complet,
regard du problème posé. qui leur permet de manipuler sur un exemple simple et leur faire
À l’issue de cette présentation, quelques exemples de modélisation comprendre que la modélisation par réseau de Pétri de la solution
sont sélectionnés pour être simuler par notre outil afin de montrer que peut tout à fait être utilisée pour vérifier la fonctionnalité du système
le travail de réflexion est alors terminé. Cette partie fait l’objet d’une à développer.
présentation par l’enseignant à partir d’au minimum deux solutions Le code C permettant de piloter les grues est aussi fourni et sera
proposées par les étudiants. Pour illustrer l’importance de cette phase bien souvent utilisé par les étudiants comme un point de départ pour
de modélisation, au moins une solution correcte et une incorrecte sont le développement du code de leur projet.
utilisées. L’objectif étant de montrer que cette étape va permettre de La figure 7 présente un exemple de système qui est proposé aux
détecter des problèmes dans le contrôle du système, d’un point de étudiants, le texte ci-dessous donne une illustration de la présentation
vue fonctionnel. Une réflexion est alors entamée avec les étudiants du cahier des charges qui est donné aux étudiants et à partir duquel
sur la façon dont le système doit être stimulé afin de valider son ils doivent construire une solution.
A. Premier exemple de cahier des charges est arrivé aux limites (capteurs est ouest représentés sur la
Un petit village breton soucieux de montrer l’exemple et de figure).
participer activement à la diminution de son empreinte écologique, a – Le moteur d’inclinaison dispose des butées dites
décidé d’étudier un système de chauffage des bâtiments publics basé horizontale et verticale. Ces butées sont elles
sur l’utilisation d’un chauffe eau solaire. Le village est soumis à des aussi équipées de capteurs afin de détecter l’arrivée aux limites
ensoleillements assez réguliers, et des relevés ont montré qu’il était (capteur horizontal vertical représentés sur la figure).
envisageable de récupérer suffisamment d’énergie pour chauffer la – Le système est équipé d’une pompe permettant de réaliser la
mairie et l’école. circulation d’eau depuis le ballon d’eau chaude vers le chauffe
Le système envisagé par le maire du village est composé d’un eau.
chauffe eau solaire et d’un système de stockage (ballon d’eau chaude) – L’eau ne doit circuler que si la température de sortie du chauffe
afin de pouvoir emmagasiner de l’énergie lorsque l’ensoleillement est eau solaire est plus élevée que la température de sortie du ballon
maximum et la restituer lorsque les besoins s’en font sentir. Lorsque d’eau chaude.
l’ensoleillement n’est pas suffisant et que l’eau dans le ballon n’est – Il est toutefois interdit de poursuivre la circulation d’eau lorsque
pas suffisamment chaude, un autre système prend le relais pour la température d’eau chaude au sommet du ballon est supérieure
chauffer la mairie et l’école. Nous n’étudierons pas cette partie, au maximum.
toutefois le système à développer devra lever une alarme lorsque – Le ballon d’eau doit être maintenu entre les niveaux min et
la température de sortie du ballon d’eau chaude n’est plus suffisante max, et cela est à assurer par la commande de la vanne de
pour le chauffage de la mairie et de l’école. remplissage. Les passages de l’eau devant les capteurs min et
Le système est composé d’un chauffe eau solaire, d’un système de max provoquent des interruptions.
stockage d’eau chaude composé d’un ballon de grosse capacité, de – Si le niveau d’eau dans le ballon d’eau descend en dessous
moteurs de positionnement du chauffe eau, d’une pompe pour assurer du capteur TropBas, alors une alarme doit être levée pour
la circulation de l’eau, de capteurs de température, de capteurs de indiquer un problème de remplissage du ballon. Dans ce cas, la
passage d’eau minimum et maximum dans le ballon d’eau chaude. circulation d’eau dans le chauffe eau doit être interrompue.
– La vanne de vidage est pilotée par un autre système dont nous
Capteur Moteur Capteur n’avons pas connaissance.
butée horizontal inclinaison température – Lorsque la température de chauffage est insuffisante (inférieure
chaud
à Tchauf f age alors le système doit lever une alarme indiquant
Capteur
température qu’un autre système doit éventuellement prendre le relais pour
max
chauffer les bâtiments publics.
Capteur B. Second exemple de cahier des charges
butée vertical Max
Min L’objectif de ce projet est de concevoir et de mettre en œuvre un
TropBas système de gestion de centrale à béton. L’obtention d’une toupie de
Capteur
béton résulte du mélange de trois agrégats différents (A1, A2, A3),
Capteur
butée ouest Capteur température de ciment (C1 ou C2) et d’eau. La centrale à béton, représentée à
butée est chauffage
la figure 8, est composée des éléments suivants :
Moteur
– Silos de stockage des agrégats (SA1 , SA2 , SA3 ) et des ciments
orientation Capteur (SC1 , SC2 )
température
Vanne
froid
vidage
– Silos intermédiaires pour les agrégats et les ciments
Moteur – Balances BA et BC permettant de mesurer les quantités
circulation d’agrégats et de ciments
– Tapis TA et TC permettant de transférer les agrégats et les
Vanne ciments vers le malaxeur
remplissage
– Malaxeur équipé d’une vis sans fin permettant de mélanger les
différents éléments.
F IGURE 7. Vue simplifiée du système de chauffage d’eau à partir d’un
chauffe eau solaire. Le conducteur de la toupie, demande la réalisation d’un mélange
par l’intermédiaire d’un bouton Start après avoir indiqué le type de
Les conditions et modes de fonctionnement sont donnés ci-dessous. béton, le volume souhaité et la distance à parcourir pour livrer cette
– Pour être complètement efficace, le chauffe eau solaire doit toupie. Chaque type de béton se caractérise par une composition
être positionné face au soleil du mieux possible. Pour cela, le particulière en termes de quantité d’eau, d’agrégats et de ciment.
système devra piloter les moteurs de positionnement du chauffe La composition de chaque type de béton est mémorisée au sein du
eau solaire. système de gestion. Les différents types utilisés sont définis dans la
– Le chauffe eau solaire s’oriente grâce à deux moteurs, l’un per- partie suivante.
met une orientation est-ouest, alors que l’autre permet d’orienter
l’inclinaison. Chaque silo intermédiaire x d’agrégats et de ciment est équipé
– Les deux axes de rotation sont équipés de butées, permettant de de deux vannes tout ou rien Vx.1 et Vx.2 permettant de remplir et de
définir des limites de rotation. Le moteur d’orientation dispose vider ce silo. De plus, chaque silo possède deux capteurs xmin et
des butées est et ouest positionnées façon à ce que le chauffe xmax permettant de détecter par l’intermédiaire d’une interruption
eau soit face au soleil au levé et au coucher du soleil en plein été. si le niveau minimal et le niveau maximal sont atteints. Le système à
Ces butées sont équipées de capteurs indiquant que le système concevoir doit maintenir en permanence dans chaque silo le niveau
Silos de stockage agrégats Silos de stockage des ciments et il est aussi l’occasion de clarifier la séparation entre l’étape de
Eau
SA1 SA2 SA3 SC1 SC2 réflexion de l’étape de codage. Nous insistons d’ailleurs fortement
sur le fait quel le travail de l’ingénieur s’achève à la modélisation et
la vérification de la solution, et qu’à ce stade c’est le technicien qui
prend le relai pour implémenter la solution modélisée.
VA1.1 VA2.1 VA3.1 VE1 VC1.1 VC2.1 Comme ce projet poursuit aussi l’objectif d’une confrontation à
Silos
MaxA3 un operating system temps réel, nous demandons ensuite aux
intermédiaires Silos étudiants de développer leur application de contrôle et de valdier
Nplus
agrégats intermédiaires celle-ci. La découpe de l’application en plusieurs parties permet
MinA3 SIC1 SIC2
SIA1 SIA2 SIA3 Nmoins ciments
aux étudiants de tester leur développement indépendamment et de
VA1.2 VA2.2 VA3.2 VC1.2 VC2.2
Balance C vérifier que celle-ci fonctionne, avant de faire l’assemblage total de
Balance A
la solution.
Pmoins, Pplus Pmoins, Pplus
VBA
Notons que pour aller plus loin, nous pourrions envisager de croiser
VE2 VBC
Tapis A Tapis C
les rapports de modélisation et de demander que chaque binôme
d’étudiants code la solution modélisée par un autre binôme. Pour
TPA éviter trop de tension lors du déroulement du projet, nous n’imposons
TPC
Malaxeur CMLX pas ce croisement des rapports.
VI. C ONCLUSION
VM Ayant constaté la difficulté de nos étudiants à comprendre l’intérêt
de la modélisation d’une solution avant le passage au code, nous
Camion
avons développé un outil de simulation de réseaux de Pétri, per-
mettant de sensibiliser les étudiants au fait que lorsqu’une solution
est correctement modélisée, elle peut être vérifiée/validée et qu’une
F IGURE 8. Synoptique de la centrale à béton fois cette validation effectuée, il ne reste alors plus qu’à développer
le code de cette application. La partie intelligente du travail est
contenue dans la définition de la solution, la partie codage est quant
entre ces valeurs minimales et maximales. à elle directement liée à la technologie et nécessite des compétences
de technologues précises et complètes, mais il n’y a normalement
... pas de remise en cause d’organisation générale de la solution à
De la même façon que sur l’exemple précédent, cette brève ce niveau : il s’agit en général simplement d’instancier la solution
présentation est suivi d’explications concernant les modes de fonc- sur une technologie donnée. Bien que ce passage au code puisse
tionnement attendus. nécessiter des compétences d’ingénieur, notamment pour être en
mesure de développer des solutions robustes et respectant l’ensemble
V. I MPACT DE L’ UTILISATION DE CET OUTIL des contraintes, nous souhaitons insister sur le fait qu’une partie
Si l’objectif global de ce projet est de confronter nos étudiants au importante du travail est fait lors de la modélisation et qu’il s’agit
développement de codes dits temps réel, ce projet poursuit plusieurs alors d’autres compétences qui sont mises en œuvre pour la suite du
objectifs, dont l’un qui consiste à leur faire prendre conscience de développement, et notamment des compétences faisant appel à des
l’importance de la modélisation. Mais il s’agit aussi de les confronter connaissances technologiques.
à un operating system du commerce qui a fait ses preuves et sur lequel Le passage obligé par une modélisation, ben qu’au départ mal vécu
ils pourraient être amené à travailler, à savoir VxWorks. par les étudiants, est au final vue comme un plus puisqu’il permet
L’obligation de produire une modélisation, bien qu’au départ mal de mieux cerner les différentes phases de développement : la phase
vécue par les étudiants, se révèle au final un guide très apprécié de réflexion et la phase de codage.
par les étudiants lors du passage au code. L’évaluation de cette Le meilleur critère permettant d’évaluer l’impact de ce projet et
modélisation est de plus une contrainte suffisamment importante pour de la méthode utilisée est très certainement la lecture des rapports
qu’ils jouent le jeu. Les étudiants appréhendent alors la difficulté de de stage de fin d’étude/stage d’ingénieur. En effet, dans ce stage, les
la modélisation. C’est un exercice difficile, dont ils ne comprennent élèves ingénieurs sont soumis aux méthodes de travail de l’entreprise
pas l’intérêt immédiat. et rare sont celles qui laisseront un étudiants se lancer dans une
Après avoir modélisé une solution, les étudiants sont à moitié phase de codage sans avoir validé une solution au préalable. À
convaincu de l’intérêt du travail qu’ils ont fournis, mais ils constatent la lecture de ces rapports, il n’est pas rare de voir apparaitre une
alors rapidement que leur modélisation est un support d’échange avec modélisation très proche, dans sa forme, de ce que les étudiants
l’enseignant et que l’on ne discute pas de problème de syntaxe d’un ont mis en œuvre dans ce projet. Au delà de la satisfaction de
langage mais bien de problème concernant la solution. voir son propre enseignement réutilisé directement dans l’entreprise,
Lorsque les étudiants passent au codage, ils parviennent la satisfaction est plutôt de voir que le futur ingénieur est alors
généralement à décomposer plus facilement le travail en binôme. maintenant probablement complètement convaincu de l’intérêt d’une
En effet, la modélisation fait systématiquement apparaitre des fonc- réflexion avant de se lancer dans le codage, contrat rempli ! ! !
tions différentes, et cette découpe permet d’identifier clairement les
dépendances et les interactions entre les fonctions.
Le passage par l’outil de simulation de réseaux de Pétri est
généralement très révélateur pour les étudiants. L’outil permet en
effet de faire le lien entre la modélisation et le système à piloter,