Ddoc T 2017 0027 Ndiaye
Ddoc T 2017 0027 Ndiaye
Ddoc T 2017 0027 Ndiaye
Contact : ddoc-theses-contact@univ-lorraine.fr
LIENS
THESE
Soutenue le 16/03/2017
pour l’obtention du
par
Composition du jury
Je tiens particulièrement à remercier Mr Jacques Camerini qui a été mon manager au sein
de l’entreprise Schneider-Electric durant toute cette thèse. Il a été d’un très grand soutien et
d’une très grande patience. Il a su m’apprendre à travailler de manière plus efficace, m’a livré
l’ensemble des connaissances nécessaires à la réussite de ce projet et bien plus encore. Tout
cela avec pédagogie et bonne humeur. Il est et restera pour moi une référence.
Je tiens finalement à remercier les membres de ma famille pour leur soutien et l’ensemble
des sacrifices qu’ils ont acceptés de consentir sans rechigner tout au long de mes études. Plus
particulièrement mon père qui s’est tué à la tâche pour me voir, pour nous voir mes sœurs et
moi, réussir dans les domaines d’études que nous avions choisis. Je lui dédie exclusivement
cette thèse.
Je tiens aussi à remercier ma femme pour sa présence son soutien et d’avoir supporté mes
complaintes, mes peurs et mon caractère durant cette période.
A vous tous, ayant contribué de près ou de loin à cette thèse, ma gratitude est infinie.
i
ii
Tables des matières
Introduction générale ................................................................................................... 1
5 Problématique ..................................................................................................... 17
5.1 Besoin industriel ...................................................................................................... 18
5.2 Formalisation du problème ...................................................................................... 20
5.2.1 Formalisation des données d’entrées .................................................................... 20
5.2.1.1 Données relatives aux architectures .............................................................................. 21
5.2.1.2 Données relatives aux performances ............................................................................. 23
5.2.2 Exigences sur les formalismes de modélisation ..................................................... 24
5.2.2.1 Modularité et hiérarchisation ........................................................................................ 24
5.2.2.2 Pouvoir d’expression ...................................................................................................... 24
6 Conclusion ........................................................................................................... 25
iii
3.1 Vérification formelle des performances par model-checking .................................... 34
3.1.1 Principes et applications à la vérification de performances temporelles ..............34
3.1.2 Synthèse................................................................................................................. 36
3.2 Evaluation de performances à l’aide de réseaux de Petri.......................................... 37
3.2.1 Les RdP et quelques une de leurs extensions ........................................................ 37
3.2.1.1 Le temps dans les modèles RdP ..................................................................................... 37
3.2.1.2 Coloration et hiérarchisation des RdP ............................................................................ 39
3.2.1.3 Les réseaux de Petri colorés, hiérarchiques et P-temporisés......................................... 42
3.2.2 Evaluation de performances à l’aide des RdP ........................................................ 43
3.2.3 Synthèse................................................................................................................. 45
5 Conclusions .......................................................................................................... 54
iv
3.2.1.1 Modèle comportemental ............................................................................................... 76
3.2.1.2 Modèle d’intégration ..................................................................................................... 77
3.2.2 Modèle du composant réseau ............................................................................... 82
3.2.2.1 Vue d’ensemble.............................................................................................................. 83
3.2.2.2 La fabrique de commutation .......................................................................................... 85
3.3 Algorithmes pour la génération automatique de modèle de RdP ............................. 86
3.4 Evaluation de performances .................................................................................... 88
3.4.1 Génération des observateurs de performance ...................................................... 88
3.4.2 Cadre de représentation des performances à évaluer .......................................... 88
3.4.2.1 Temps de réponse .......................................................................................................... 89
3.4.2.2 Temps de cycle des composants .................................................................................... 89
3.4.3 Définition des observateurs de performance ........................................................ 89
3.4.3.1 Les moniteurs ................................................................................................................. 90
3.4.3.2 Définition des moniteurs associés à la mesure des temps de réponse.......................... 91
3.4.3.3 Définition des moniteurs associés à la mesure des temps de cycle............................... 94
3.5 Paramètres de simulation de Monte-Carlo ............................................................... 95
4 Conclusion ........................................................................................................... 97
v
vi
Liste des figures
Figure 1: Exemple d'une architecture de C/C pour un procédé industriel ............................7
Figure 2: Structure fonctionnelle par ANSI/ISA-95.00.01-2000 (Scholten, 2007) ..............8
Figure 3: Niveaux d’architecture de contrôle commande (Process automation, 2013) ........9
Figure 4: Architecture opérationnelle ................................................................................. 10
Figure 5: Temps de réponse aller-retour entre station de travail et équipent terminaux.....11
Figure 6: Temps de remontée d’un événement au SCADA................................................ 11
Figure 7: Temps de réponse aller-retour entre PLC et équipements terminaux .................12
Figure 8: Etapes de traitement des tâches par le processeur d’un PLC ..............................13
Figure 9: Cycle de vie d’un projet d’automatisation........................................................... 14
Figure 10: Cahier des charges pour un outil d’évaluation de performances .......................19
Figure 11: Indicateurs de comparaison pour les méthodes d’évaluation de performances. 20
Figure 12: Spécification semi-formelle des composants d'une architecture de C/C ...........22
Figure 13 Spécification semi-formelle des performances à évaluer ................................... 23
Figure 14: Modèle d’un SCR mono client – multi serveur (Addad, et al., 2011b) ............. 30
Figure 15: Exemple d’une trajectoire extraite de (Bauer, et al., 2009) ...............................33
Figure 16: Modèle d'un système de contrôle et d'acquisition (Ben Hedia, et al., 2005) .....35
Figure 17: Modèle d’arbitrage (gauche), traitement (droite) par (Krakora & Zdenek, 2004).
.................................................................................................................................................. 35
Figure 18: : Automate observateur (Rodriguez-Navas, et al., 2006) .................................. 35
Figure 19: Evaluation de performances par vérification itérative de propriétés (Ruel, 2009)
.................................................................................................................................................. 36
Figure 20: RdP P-temporisé et son graphe de marquage pour M0 = (1,1) ..........................38
Figure 21: RdP T-temporel et son graphe de classes d’états (Berthomieu & Vernadat, 2006)
.................................................................................................................................................. 39
Figure 22: Exemple de RdP coloré ..................................................................................... 40
Figure 23: Exemple de pliage d’un RdPG vers un RdP coloré ........................................... 41
Figure 24: RdP hiérarchique (Gauche) et module hiérarchique (Droite)............................41
Figure 25: Modèle d'un scan des E/S par un automate selon (Marsal, 2006a) ...................44
Figure 26: Modèle RdPC d'un switch selon (Brahimi, 2007) ............................................. 44
Figure 27: Modélisation d’un routeur avec des CdM (Royer, 2006) .................................. 46
Figure 28: CdM modélisant l’algorithme BEB pour un réseau à deux nœuds (Ishak, et al.,
2016) ........................................................................................................................................ 47
Figure 29: Politique de sélection par compétition............................................................... 50
Figure 30: GSPN vs CPN.................................................................................................... 51
Figure 31: Modèle STPN et son graphe d’états probabilisé (Juanole & Gallo, 1995)........53
Figure 32 : Vue d’ensemble de la méthode proposée ......................................................... 61
Figure 33: Structure générique du modèle « constructeur » de topologies d’architecture . 63
Figure 34: Exemple de modèle « constructeur » de topologies d’architecture...................65
Figure 35: Scénario d’instanciation et de paramétrage d’une architecture .........................75
Figure 36: Modèle d’intégration d’un composant d’automatisation ................................... 77
Figure 37: Modèle buffer FIFO........................................................................................... 82
vii
Figure 38: Définition générale d'un commutateur réseau ................................................... 83
Figure 39: Exemple modèle de commutateur ..................................................................... 84
Figure 40: Modèle de la fabrique de commutation ............................................................. 86
Figure 41: Architecture fonctionnelle du prototype d’évaluation de performances .........102
Figure 42: Modèle « constructeur » de topologie pour le prototype ................................104
Figure 43: Interface de connexions des PLC .................................................................... 105
Figure 44: Modèle générique d’un PLC............................................................................ 106
Figure 45: Modèle de comportement et interface de communication PLC ......................107
Figure 46: Architecture du serveur de simulation ............................................................. 109
Figure 47: Architecture du Client ..................................................................................... 110
Figure 48: Interface de description et d'analyse des architectures .................................... 111
Figure 49: Affichage graphique des performances de l’architecture ................................112
Figure 50: Vue générale de l’architecture fonctionnelle du prototype .............................113
Figure 51: Usine de traitement des eaux usées ................................................................. 115
Figure 52: Architecture de C/C définie pour le 'traitement primaire' ...............................117
Figure 53: Architecture complexe de C/C ........................................................................ 124
viii
ix
x
Introduction gé né rale
Cette thèse a été réalisée dans le cadre d'une convention CIFRE (Convention Industrielle de
Formation par la Recherche) entre le Centre de Recherche en Automatique de Nancy (CRAN
– UMR n°7039 du CNRS et de l’Université de Lorraine) et le département ‘Process
Automation’ de la société Schneider Electric.
Pour garantir les performances d’une architecture, les pratiques actuelles reposent
essentiellement sur du surdimensionnement engendrant des coûts plus élevés que nécessaire et
donc un risque de perte du marché ou bien sur des procédures de tests en plateforme très
coûteuse et consommatrice de ressources (en temps et en hommes).
1
D’un point de vue scientifique, l’évaluation des performances temporelles des architectures
de contrôle-commande en réseau a fait l’objet de nombreux travaux. Parmi ceux-ci, trois
grandes familles émergent :
- les approches algébriques permettant notamment le calcul d’une borne maximale des
temps de réponse dans le pire des cas (Le Boudec & Thiran, 2001), (Cruz, 1991),
(Addad, 2011a), (Witsch, et al., 2006), (Clarke, et al., 1999), (Baier, et al., 2008),
- les approches basées sur des modèles à état temporisés dont les paramètres sont
déterministes qui permettent soit de réaliser des analyses formelles comme la
vérification formelle de propriétés soit des simulations de Monte-Carlo, (Ben Hedia, et
al., 2005), (Ruel, 2009), (Berthomieu, et al., 2004), (Marsal, 2006a), (Brahimi, 2007)
- les approches basées sur des modèles stochastiques, telles que les chaines de Markov,
les réseaux de file d’attente ou encore les réseaux de Petri stochastiques qui peuvent,
comme pour les approches déterministes, permettre l’évaluation de performances par
d’analyse formelle ou simulation de Monte-Carlo. (Royer, 2006), (Heindl & Reinhard,
2001).
Compte tenu du caractère incertain présent en phase d’avant-vente, nos travaux se sont
naturellement orientés vers des approches basées sur des simulations de Monte-Carlo. Parmi
les formalismes utilisés dans la littérature, les réseaux de Petri colorés et temporisés (CPN –
Coloured Petri Nets) définis par (Jensen, 1994) ont démontré à la fois leur pertinence par un
pouvoir d’expression parfaitement adapté à la nature de notre problème (modélisation du temps
au travers de transitions à durée fixe ou définie par une distribution de probabilité, compacité
des modèles grâce à l’utilisation des couleurs, …) et leur efficacité pour l’estimation de
performances (calculs de marquage moyen, de fréquences de franchissement, …).
L’originalité de notre proposition réside dans la définition d’un cadre formel de
modélisation autorisant la génération automatique des modèles servant de support à
l’évaluation des performances à partir d’une description informelle des architectures. Cette
proposition est justifiée par le fait qu’en phase d’avant-vente, les performances doivent être
évaluées pour un grand nombre d’architectures et dans un temps court, contraintes difficilement
compatibles avec une construction manuelle des modèles.
2
finis temporisés, réseaux de Petri et ses extensions temporisées, colorées et hiérarchiques).
Nous montrons néanmoins les limites de ces approches pour prendre en compte l’ensemble des
contraintes relatives au contexte incertain de l’avant-vente. La dernière section porte sur les
modèles stochastiques (chaîne de Markov, réseau de files d’attente, réseau de Petri
stochastique) qui permettent pour la plupart d’obtenir une estimation statistique des
performances moyennes, minimales et maximales. La synthèse de ces éléments
bibliographique et l’analyse de leur adéquation à notre problème nous permet de justifier le
choix du formalisme des réseaux de Petri temporisés, colorés et hiérarchiques proposés par
(Jensen, 1994).
Le troisième chapitre présente notre contribution. Elle porte sur la définition formelle, à
l’aide de réseaux de Petri colorés et temporisés, d’un modèle « constructeur » d’architectures
embarquant des mécanismes de configuration, d’instanciation et de paramétrage. Plusieurs
algorithmes sont proposés pour, d’une part, construire automatiquement le modèle d’une
architecture donnée, à partir d’une description informelle de sa topologie et d’une librairie de
modèles d’équipements de contrôle-commande, et, d’autre part, pour générer les observateurs
requis à partir d’une description informelle des performances à évaluer.
Le quatrième chapitre présente, dans une première partie, un prototype d’outil d’aide au
dimensionnement qui implante les différents algorithmes développés au chapitre 3. Ce
prototype est interfacé, d’une part avec l’outil utilisé par les ingénieurs en phase d’avant-vente
pour décrire les architectures, et, d’autre part avec le simulateur de l’outil CPN Tools (Jensen,
et al., 2007) qui permet une estimation des performances via des simulations de Monte-Carlo.
Notre contribution est ensuite illustrée, dans une seconde partie, sur quelques exemples
d’architectures types fournies par la société Schneider Electric. Nous nous attachons, en
particulier, à montrer que l’évaluation de plusieurs offres d’architecture ne nécessite aucun
effort de modélisation supplémentaire autre que la représentation graphique des différentes
architectures à évaluer.
3
4
Chapitre 1
Contexte et objectif
1 Introduction ........................................................................................................... 7
2 Architecture de contrôle-commande...................................................................... 7
2.1 Architecture fonctionnelle ......................................................................................... 7
2.2 Architecture matérielle .............................................................................................. 9
2.3 Architecture opérationnelle ..................................................................................... 10
5 Problématique ..................................................................................................... 17
5.1 Besoin industriel ...................................................................................................... 18
5.2 Formalisation du problème ...................................................................................... 20
5.2.1 Formalisation des données d’entrées .................................................................... 20
5.2.2 Exigences sur les formalismes de modélisation ..................................................... 24
6 Conclusion ........................................................................................................... 25
5
6
1 Introduction
2 Architecture de contrôle-commande
L’architecture fonctionnelle est définie pour un procédé que l'on suppose connu et a pour
objectif d'identifier l'ensemble des services de contrôle-commande nécessaires pour réaliser la
7
mission de l'installation et sa mise en sécurité et de structurer ces fonctions sous la forme d'un
réseau de fonctions hiérarchisées et interconnectées.
L'interconnexion des fonctions au sein d'un réseau a pour objectif d'identifier les échanges
d'informations entre fonctions, sous la forme de relations entre les entrées consommées par une
fonction donnée, les informations produites par d'autres fonctions, entre les fonctions et le
procédé, c'est-à-dire les informations émises (ou reçues) à destination (ou en provenance) du
procédé.
Ces informations, que nous appellerons par la suite les informations d'entrées/sorties, ont un
impact direct sur le dimensionnement de l'architecture de contrôle-commande puisqu'elles
induisent, pour chaque fonction, les caractéristiques d'interface avec le procédé (cartes
d'entrées/sorties) dont celles-ci auront besoin. Ces informations seront regroupées dans un
diagramme appelé dans la littérature P&ID (Piping & Instrumentation Diagram) (Smith, 2016)
(Béla, 2013).
8
2.2 Architecture matérielle
L'ensemble de ces fonctions est exécuté sur des matériels très divers tels que des cartes
électroniques, des Automates Programmables Industriels (API ou PLC), des systèmes de
supervision (SCADA), pouvant embarquer (ou non) du logiciel et pouvant communiquer à
l'aide de réseaux informatiques ou de liaisons filaires électriques. L’architecture matérielle
décrit l'organisation structurelle de ces différents équipements. De même que pour les
fonctions, l'architecture matérielle est généralement construite de manière hiérarchisée selon
les familles d’équipements et l’organisation des réseaux de communication. Les structures les
plus classiques font apparaître 4 niveaux représentés sur la Figure 3 (Scholten, 2007), des
équipements de pilotage de l’entreprise jusqu’aux équipements de terrain :
- Niveau 0 : regroupant l’ensemble des composants terminaux dédiés à l’exécution et au
traitement des différentes tâches du procédé industriel (e.g. variateur de vitesses, départ
moteurs, capteurs, actionneurs). L’évolution des technologies d’actionnement et de
mesure se traduit par le fait que ces équipements matériels embarquent de plus en plus
souvent des logiciels de traitement,
- Niveau 1, regroupant l’ensemble des composants dédiés à la commande du procédé
d’automatisation (e.g. les automates programmables industriel PLC). Il sert aussi de
lien entre l’unité de production et la salle de supervision du procédé en envoyant
périodiquement le statut du procédé industriel.
- Niveau 2, regroupant l’ensemble des composants dédiés à la supervision du procédé
d’automatisation (e.g. system de commande et d’acquisition de données SCADA). Ces
systèmes sont souvent embarqués sur des serveurs capables de récupérer et d’envoyer
des informations au procédé industriel et sont en interaction avec des opérateurs
humains.
- Niveau 3, regroupant l’ensemble des composants logiciels dédiés à la planification et à
l’optimisation du procédé d’automatisation (par exemple ERP).
Afin de réaliser les différentes tâches d’automatisation, les composants échangent des
informations via un réseau de communication. La fréquence et la taille de ces informations
dépendent de la nature du composant et des services qu’il exécute. Lors de ces échanges, un
délai est induit entre l’émission de l’information, sa réception et son traitement par le(s)
composant(s) récepteur(s). Ces délais sont liés aux temps de traitements et de transmission
ainsi qu’aux ressources disponibles.
9
2.3 Architecture opérationnelle
Les performances temporelles seront analysées selon deux critères : temps de réponse et
temps de cycle des automates programmables industriels (PLC).
Le temps de réponse dans les architectures de contrôle commande se définit comme étant le
temps aller et retour entre une requête émise par un équipement client vers un équipement
10
serveur qui traite la requête et qui renvoie une réponse ou un acquittement vers le client
(Jasperneite & Neumann, 2001). Cette communication client-serveur peut se faire entre
composants sur un même niveau hiérarchique, ou entre deux composants sur deux niveaux
hiérarchiques différents.
Concernant les performances pour les communications entre deux niveaux distincts, elles
se résument principalement à la communication entre le SCADA, les PLC et les dispositifs
terminaux. Les performances peuvent être identifiées, comme l’indique la Figure 5, par le
temps aller et retour de l’application qui correspond aux temps de réponse entre l’émission
d’une commande au niveau du SCADA, le traitement de la commande par l’automate et le
retour d’exécution de la commande.
A cela s’ajoute les performances liées aux temps de mise à jour du système. Comme
l’indique la Figure 6, il s’agit du temps entre l’activation d’un signal d’entrée au niveau des
E/S distant (Figure 6 gauche) ou le changement d’une valeur au niveau de l’automate (Figure
6 droite) et la notification visuelle de ce changement au niveau du SCADA.
Les PLC, en plus d’être des équipements « serveur », peuvent initier des communications,
c'est-à-dire être « client ». Dans ce cas comme l’indique la Figure 7, les performances se
définissent, par le délai entre une entrée physique sur un équipement jusqu'à la sortie physique
correspondante sur le même équipement ou sur un autre. Cette performance se caractérise par
la communication entre les PLC et les entrées et sorties déportées.
11
Figure 7: Temps de réponse aller-retour entre PLC et équipements terminaux
Le réseau n’est cependant pas le seul élément impactant les performances de temps de
réponse. En effet, l’augmentation des services non directement dédiés aux tâches de
commandes (service de messagerie, télémaintenance, service web etc.) dans les équipements
d’une architecture de contrôle-commande peuvent conduire à une surcharge de ces
équipements dont les ressources sont limitées. Ce problème concerne principalement les
automates programmables industriels PLC, ce qui justifie une analyse plus fine de leurs
performances qui fait l’objet du paragraphe suivant.
Les PLC possèdent des processeurs ayant des ressources limitées en termes de capacité de
traitement et de temps de traitement qui peuvent devenir critiques compte tenu de la multiplicité
des services qu’ils doivent assurer (gestion des entrées/sorties, messagerie, web, …). Une
12
information transmise au PLC doit donc attendre la disponibilité d’une ressource
« processeur » avant d’être traitée, ce qui engendrer des retards (Jasperneite & Neumann,
2001).
Ce temps de cycle (dans le cas d’un fonctionnement cyclique du PLC) n’est pas borné car
dépendant exclusivement du nombre de requêtes à traiter et des capacités techniques de
l’automate. Ainsi le temps de cycle n’est plus une valeur statique dans les architectures de
contrôle et de commande, mais variable dont l’influence dans les performances globales en
termes de temps de réponse est considérable.
L’activité d’évaluation des performances diffère selon les phases du processus d’ingénierie
où elle est effectuée et selon le type d’indicateurs que l’on cherche à mesurer. En effet, les
outils/méthodes permettant l’évaluation de performances dépendent fortement de ses objectifs
(notamment en termes de précisions), de ses contraintes (niveau de connaissance des
architectures) et des ressources qui lui sont allouées (en temps et en hommes).
13
- les spécifications fonctionnelles qui décrivent les services de commande, de
surveillance, ou de supervision à développer ainsi que les performances fonctionnelles
et non fonctionnelles attendues (Auroy, 2000).
Besoin Exploitation
Maintenance
Intégration globale
Spécification de la de la partie commande
Partie commande sur site
Intégration partielle
Materiel / Logiciel
hors site
Spécif. Spécif.
de la
Conception Partie matérielle logiciel
partie
Validation
opérative
Valid. Valid.
Concept. et tests et tests
Concept..
Concept tests
Concept. prélim. câblage
Schémas intégration Sous-Ens.
intégration
Détail. logiciel matériels sur site
implant.
Sous-ens.
Sous-ens. Concept. tests
et câblage
et
matériels
sur site détail. unitaires
logiciel
logiciel logiciel
logiciel
Codage
et réalisation
14
Situé en amont de ce cycle en V classique, la phase d’avant-vente présente des spécificités
qui auront un impact direct sur les approches mises en œuvre pour l’évaluation de
performances. Cette phase correspond à l’étape d’étude et de définition d’une proposition
commerciale pouvant satisfaire aux exigences clients définies dans le cahier des charges.
L’objectif est de proposer aux clients une ou plusieurs solutions techniques pouvant, d’une
part, satisfaire ses exigences et, d’autre part, créer de la valeur ajoutée à l’entreprise. Cette
solution technique se présente, dans la plupart des cas, sous la forme d’une architecture
matérielle dans la mesure où l’étude et la conception de l’architecture fonctionnelle ne peut et
n’a pas été réalisée durant cette phase.
15
Le contexte d’avant-vente est donc caractérisé par :
- une connaissance partielle des architectures due à des informations imprécises ou non
disponibles,
- des ressources en termes de temps et de personnels fortement limitées,
- la nécessité d’élaborer une offre commerciale pertinente constituée de plusieurs
solutions d’architectures correspondant, pour le client, à différents compromis coûts
/ satisfaction des exigences.
16
mineures de l’architecture de référence, espérant ainsi avoir des performances similaires.
L’avantage principal de cette méthode est, d’une part, le faible temps requis pour établir une
offre et, d’autre part, le peu de ressources. Cependant, chaque procédé nécessitant des fonctions
de contrôle-commande spécifiques, le système intégrateur s’expose au risque d’avoir des écarts
entre les performances espérées lors de la définition de l’architecture et celle constatées durant
la phase d’intégration et de validation. Dans certains cas, ces écarts peuvent entrainer des
modifications considérables de l’architecture ayant un impact financier important.
Le tableau 1 ci-dessus résume les avantages et les inconvénients de chaque méthode. Les
limites de ces différentes méthodes ont incité Schneider Electric à développer une
méthodologie d’évaluation des performances en phase d’avant-vente basée sur les modèles.
5 Problématique
Cette section présente la problématique industrielle centrée sur la mise à disposition aux
ingénieurs en avant-vente d’un outil d’aide à l’évaluation de performances des architectures et
de la problématique scientifique qui en découle.
17
5.1 Besoin industriel
Partant du constat que la validation d’une architecture doit se faire au plus tôt (Denis, 1994)
(Goodwin, et al., 2001), l’objectif est de fournir aux systèmes intégrateurs un outil leur
permettant de procéder à une estimation, la plus fiable possible, des performances d’une
architecture. Cet outil devra se baser sur une modélisation formelle de l’architecture intégrant
l’incertain du contexte avant-vente et proposer des mécanismes de calcul des performances.
Afin de fixer les besoins des futurs utilisateurs, une campagne d’interview a été réalisée.
Elle permet notamment d’identifier clairement les informations qui devront être fournies en
entrée de l’outil ainsi que les principales contraintes et exigences auxquelles celui-ci devra se
conformer. Les interviews réalisées auprès d’un panel représentatif des futurs utilisateurs de
Schneider Electric sont divisées en deux parties : la première a pour but de recueillir les
principaux problèmes auxquels ils sont confrontés pour fournir une offre commerciale,
notamment en termes de sécurisation de l’offre, la seconde a pour but de recueillir leurs
propositions relatives à une méthode d’évaluation de performances pouvant leur apporter une
aide.
L’analyse de la première partie des interviews a montré que la grande majorité des sondés
estime que la connaissance des performances de leurs architectures avant de faire une
proposition commerciale est primordiale dans la mesure où le fait de ne pas maitriser ces
performances peut avoir un impact très critique sur leur business. Le constat qu’ils dressent est
qu’ils ne disposent aujourd’hui d’aucun outil efficace leur permettant d’évaluer les
performances compte tenu des limites des 3 méthodes utilisées actuellement (voir section 4.3.).
L’analyse de la deuxième partie des interviews a mis en exergue le besoin d’un outil leur
permettant d’évaluer les performances de leurs architectures en avant-vente. Dans la vision
industrielle, cet outil est considéré comme une aide au dimensionnement des architectures en
permettant d’évaluer le comportement de l’architecture sans la déployer, d’anticiper les
possibles goulots d’étranglements par rapport aux performances évaluées et de redimensionner
si nécessaire cette architecture.
Cette réorientation de l’outil comme une aide au dimensionnement a une conséquence forte
en termes de besoins : l’outil développé ne devra pas permettre l’évaluation d’une seule et
unique architecture mais d’une multiplicité d’architectures élaborées par un jeu d’essais/erreurs
pour répondre aux exigences des clients. En effet, le nombre de solutions d’architectures
admissibles est souvent très grand. L’intégrateur système souhaite donc pourvoir en évaluer un
grand nombre afin de sélectionner celle ayant le meilleur compromis entre satisfaction des
exigences des clients et plus-value pour l’entreprise. Enfin, une exigence incontournable est
que la description des architectures en entrée de l’outil devra se faire à partir d’une interface
graphique ne nécessitant pas d’expertise particulière sur les formalismes sous-jacents aux
modèles d’évaluation de performances.
18
Sur la base de ces interviews, le cahier des charges de l’outil peut se synthétiser de la manière
suivante (Figure 10) :
- Entrées de l’outil :
o la description des architectures matérielles de contrôle-commande étant réalisée
de manière graphique par les utilisateurs, son interfaçage avec l’outil
d’évaluation nécessitera la définition formelle d’un format d’échange qui fera
l’objet de la section suivante ;
o la description des performances à évaluer sera également fournie de manière
graphique ou textuelle, ce qui nécessitera également la définition d’un format
d’échange pour son traitement par l’outil d’évaluation ;
- Fonctionnalités :
o l’outil devra permettre l’évaluation quantitative intégrant la marge d’erreur (par
exemple sous la forme d’un intervalle de confiance) des performances
suivantes : temps de réponse, temps de cycle PLC, performances de charges ;
o l’outil devra permettre d’effectuer de nombreuses itérations (propositions
d’architectures / évaluation des performances) jusqu’à l’obtention d’une
solution satisfaisante dans un temps court compatible avec les contraintes
d’avant-vente ; si les performances évaluées sont en adéquation avec celle
exigées par le client, alors l’architecture sera considérée comme admissible ;
dans le cas contraire, le système intégrateur pourra alors, après analyse des
résultats, modifier l’architecture et relancer une nouvelle campagne
d’évaluation de performances.
- Sorties de l’outil :
o les performances évaluées seront fournies aux utilisateurs sous forme graphique
ou textuelle.
19
Pour Schneider Electric, la valeur ajoutée au regard des méthodes utilisées aujourd’hui peut
se mesurer selon les trois critères : garantie de performances, sécurisation de l’offre et
ressources utilisées. La Figure 11 représente la valeur ajoutée attendue de l’outil d’évaluation
en considérant une échelle allant de 1 à 5 pour mesurer le degré croissant de satisfaction de ces
trois critères.
Le problème industriel posé porte sur l’évaluation quantitative des performances d’un
grand nombre d’architectures matérielles dans un contexte incertain où les informations
relatives à l’architecture fonctionnelle ainsi qu’aux scenarios d’exploitation sont imprécises ou
absentes. D’un point de vue scientifique, ce problème se traduit comme un problème
d’élaboration des modèles formels servant de support aux mécanismes de calcul des
performances dans un temps court compatible avec les contraintes de la phase d’avant-vente.
Dans l’idéal, les modèles d’évaluation de performances devraient donc pouvoir être obtenus de
manière automatique, à partir de la description non formelle des architectures et des
performances à mesurer.
La description non formelle se fait à partir de données d’entrées contenant l’ensemble des
informations relatives à l’architecture et ses performances. Ces données d’entrées sont
modélisées à travers deux modèles UML dont le premier représente une description de
l’architecture et le deuxième représente une description des performances à évaluer.
Ces modèles formalisent donc les deux grandes familles d’informations qui seront
supposées connues par l’outil d’aide au dimensionnement des architectures qui fait l’objet de
ce travail. En pratique, ces informations devront être saisies par les ingénieurs en charge
d’élaborer des propositions commerciales d’architecture sur des outils informatiques qui leur
sont propres. Elles seront exportées vers l’outil d’évaluation des performances, développé dans
20
le cadre de cette thèse et présenté au chapitre 4, à l’aide d’un fichier XML dont le format est
basé sur le standard SGML (Goldfarb & Rubinsky, 1990).
Comme l’indique la Figure 12, il y a 5 grandes familles dans les architectures de contrôle-
commande, dont 4 familles regroupant l’ensemble des composants assurant des fonctions de
mesure et d’actionnement, de commande, de supervision et de pilotage du procédé et une
famille « réseau » représentant l’ensemble des équipements de communications.
Chaque famille est représentée dans le modèle UML par une classe contenant des attributs.
Ceux-ci représentent des paramètres d’entrées inhérents à la famille de ces composants.
Certaines classes de familles possèdent une relation de composition avec des sous-classes
contenant aussi des attributs et représentant un sous-composant matériel dont les attributs
constituent également des paramètres d’entrées. L’ensemble des paramètres (attributs pour
classe de famille et sous-classes) constituent les données d’entrée de notre problème et sont
supposées être fournies par les ingénieurs en charge de l’élaboration d’une architecture.
La classe des PLC est composée de trois sous-classes représentant les trois sous-
composants constituant un PLC : le fond de panier, le processeur et le coupleur de
communication. La classe « PLC » possède un attribut unique caractérisant le type de PLC.
Les sous-classes « processeur » et « coupleurs de communication » ont une relation de
composition avec la classe « fond de panier » qui, à son tour, possède une relation de
composition avec la classe PLC. La sous-classe « coupleur de communication » possède deux
attributs qui sont le type de coupleur et la capacité de traitement des requêtes. La sous-classe
« fond de panier » ne possède qu’un seul attribut qui est le nombre de port de connections.
Enfin, la sous-classe « processeur » possède trois attributs qui sont la taille de son buffer, le
nombre de requêtes traitées par cycle et enfin la durée du programme automate. La valeur de
ces paramètres d’entrées dépend du type d’automate dont la valeur est fournie par l’attribut de
la classe « PLC ».
La classe « SCADA » est également composée de trois sous-classes représentant les trois
types de fonctions assurées un serveur de supervision et de commande : alarmes, affichage,
courbes de tendances. Cette classe est composée d’un seul attribut caractérisant le type de
serveur. L’ensemble des sous-classes possède 2 attributs qui sont le nombre de requêtes à
envoyer et la période d’envoi. Contrairement aux attributs des sous-composants des PLC, les
valeurs de ceux du SCADA sont renseignées par l’ingénieur configurant l’architecture.
La classe « Client » possède deux attributs qui sont relatifs au type de client et à la période
d’envoi de requêtes. Les valeurs des attributs sont déterminées par l’utilisateur. Ces clients sont
constitués d’applications tierces de pilotage et de gestion du procédé pouvant correspondre à
des fonctions de Niveau 3 (planification, ERP, …). Comme pour la classe « SCADA », les
attributs de la classe « Client » sont renseignés par les ingénieurs élaborant l’architecture.
21
Egulpme nt term.,aux:
i)enode de IO'UiaiiOn
·Type
I
node erwooe requêtes
Client
0 .
·Type
ArcNtac.ture de contrôle<ommande
-Type P<ocèdè
APl
La première sous-classe est composée de trois sous-classes représentant les trois grandes
familles de performances temporelles liées aux temps de réponses et présentées en section
3.1.1. Chacune de ces sous-classes possède deux attributs qui sont l’identifiant de l’équipement
émetteur de la requête et l’identifiant de l’équipement destinataire de la requête.
La deuxième sous-classe correspond aux performances liées au temps de cycle des
automates et présentées en section 3.1.2. Elle est composée d’un attribut unique qui est
l’identifiant du PLC.
L’ensemble des attributs de ces différentes classes et sous-classes est supposé connu et
renseigné lors de l’élaboration d’une architecture.
De même, la description des performances à évaluer devra expliciter les types d’indicateurs
à produire. Dans le cas des performances évaluées en phase d’avant-vente, les indicateurs à
produire seront de type « valeur moyenne ». Dans ce cas, ils devront être accompagnés d’une
indication relative au niveau de précision attendu. Celui-ci pourra revêtir différentes formes :
intervalle de confiance, nombre de scénarios et durée dans le cas de tests ou de simulations.
23
5.2.2 Exigences sur les formalismes de modélisation
Compte tenu des besoins industriels exprimés, le formalisme utilisé devra répondre à
différentes exigences permettant d’une part, de couvrir la structure et la hiérarchisation des
architectures à évaluer, et, d’autre part, de modéliser le comportement dynamique des
architectures dans un contexte incertain.
24
ou encore sur les types d’information à traiter (taille message, type de service etc..). A titre
d’exemple, le temps de cycle d’un PLC peut dépendre des fonctions qu’il supporte, des
incertitudes quant aux sollicitations que subira l’architecture de contrôle-commande. Ces
incertitudes peuvent être :
- temporelles, dans la mesure où la fréquence des flux apériodiques (stimuli capteurs ou
requêtes des opérateurs humains) n’est pas connue,
- spatiales, puisque l’absence d’information relatives à l’allocation des fonctions sur les
matériels de l’architecture engendre une incertitude sur les matériels qui devront
effectivement communiquer via le réseau.
Pour couvrir le premier point, le formalisme devra permettre la modélisation des incertitudes
comportementales des équipements sous la forme d’intervalles de temps ou encore de
distributions de probabilités uniformes (Seno, et al., 2009).
Pour couvrir le second point, le formalisme devra supporter la modélisation des incertitudes
relatives aux flux apériodiques sous la forme de distributions de probabilités quelconques,
potentiellement non exponentielles (Lois uniformes, Erlang, Weibull, …). En effet, les
sollicitations humaines (actions de supervision des opérateurs humains) ou en provenance des
capteurs (déclenchement d’un seuil, génération d’une alarme, occurrence d’une défaillance,
…) génèrent des flux aléatoires de nature imprédictible (Klir, 2005) (Gertler, 1988) (Zwick &
Walisten, 1989).
6 Conclusion
Ce chapitre a permis de fixer le contexte industriel de notre étude. L’objectif est de proposer
un outil d’aide au dimensionnement des architectures de contrôle-commande en réseau dans le
contexte de la phase d’avant-vente. Celui-ci induit deux grandes contraintes fondamentales,
l’une relative au nombre important d’architectures qui devront être évaluées au gré des
différentes offres élaborées, l’autre relative au contexte incertain de la phase-vente.
L’évaluation des performances d’architectures de contrôle-commande en réseau ayant fait
l’objet de nombreux travaux, le chapitre suivant dresse un état de l’art des approches
développées. L’analyse de leurs apports mais aussi de leurs limites, au regard des critères
mentionnés en section 5.2.2 permettra d’une part, de définir la problématique scientifique de
cette thèse, et, d’autre part, de procéder au choix d’un formalisme de modélisation.
25
26
Chapitre 2
Positionnement scientifique
1 Introduction ......................................................................................................... 29
2 Evaluation de performances à l’aide d’approches algébriques.............................. 29
2.1 L’algèbre Max,+ ....................................................................................................... 30
2.2 Évaluation de bornes déterministes par calcul réseau .............................................. 31
2.3 Évolution : approche par trajectoire ......................................................................... 33
5 Conclusions .......................................................................................................... 54
27
28
1 Introduction
Dans la littérature, les modèles dits déterministes sont généralement construits suivant une
géométrie tropicale, et plus spécifiquement suivant l’algèbre (max,+) (voire (min,+)). Ils
s’expliquent par la volonté d’exprimer des performances déterministes (de type enveloppe), et
pour cela visent à conduire une analyse elle-même déterministe. La modélisation du système
consiste ici à l’expression d’un système d’équations dont la résolution permettra par la suite
d’obtenir notamment des propriétés temporelles. Ces équations se singularisent par leur
écriture où l’addition et la multiplication sont respectivement redéfinies par le maximum (ou
le minimum) et l’addition. On parle ainsi de dioïde (max,+) ou (min,+). Cette technique a été
développée par de nombreux auteurs, néanmoins nous focaliserons dans cette section sur son
emploi pour des systèmes de contrôle/commande en réseau.
29
2.1 L’algèbre Max,+
L’algèbre (max,+) (Cohen, et al., 1996), (Davey & Priestley, 2002), (Hardouin, 2004),
(Cohen, 1993) et (Lotito, et al., 2005) est utilisé pour la modélisation et l’évaluation de
performance de systèmes à évènements discrets (réseaux de transport ou de télécom, systèmes
de production). Elle peut également être utilisée pour déterminer les temps de marquage dans
Chapitre 2. Fonctionnement & Modélisation des SCR
les réseaux de Petri. Elle a notamment été développée pour l’évaluation de performances avec
les travaux de (Baccelli, et al., 1992) puis (Amari, et al., 2012). L’évaluation des performances
passe par la résolution d’un système d’équations (max,+) linéaires. Ces équations peuvent être
0
directement posées ou dérivées d’un autre formalisme (comme les 0 réseaux de Petri) comme 0
dans le cas suivant. TReq_1 t6_1
t12 t4 0
(Addad, 2011a) propose une modélisation générique 0d’un système contrôlé en réseau
0 TEM_1 t7_1
(SCR) à base d’équations (max,+). La modélisation s’attache TCOM
à décrire l’ensemble des
TE/S_1
composants d’un tel système, à savoir les modulest3d’entrées/sortiest1 déportées, d’un contrôleur
t5_1
TReq_N t
(CPU et carte de communication), d’un MES et d’un réseau à base d’Ethernet commuté. Cette
6_N
modélisation est accomplie ici à l’aide de réseauxTCPU de Graphes d’Évènements TEM_N Temporisés Vers les
autres MES
(GET). Un graphe d’évènements temporisés (GET) est unτ2réseau de Petri (voir section 3.2)
t5_N TRep_1 t9_1 de 0
t10_1transition t8_1
ordinaire temporisé où chaque place n’admet qu’unet2 transition d’entrée et0 une
0
sortie au maximum. C’est ensuite la dynamique de ce GET qui est traduite en un système
d’équations (max,+) linéaires. On associe ainsi à chaque transition ti une variable x(k), appelée
0 t10_N TRep_N t9_N
ème Depuis les
dateur, qui représente la date de son franchissement pour la k fois. Le dateur associé à une autres MES
t11
transition d’entrée tuj est noté uj(k). La Figure 14 décrit ainsi le système d’équations proposé
CPU COM Réseau MES_1
par (Addad, et al., 2010) et (Addad, et al., 2011b) pour un système contrôlé en réseau ainsi les
Fig. 2.11 : Modèle d’un SCR mono client - multi serveur
délais obtenus.
Chapitre 2. Fonctionnement & Modélisation des SCR
Les équations (max,+) correspondantes sont :
ᆳt1 ( k ) e ナ t 2 (k 0 1)@ニ e ナ
@ t 3 ( k 0 1)
ᄚ
0 0 t
ᆴ 2 ( k ) T CAL ナ t 1 ( k )
0 ᄚt@( k ) T t1 ( k )
ᆵ 3 CPU ナ@
TReq_1 t6 _ 1
t12 t4 0
0 ᆳt 4 (l ) @ (t@ 11 (l 0 1) ナ e)@ニ (t @12 (l 0@ 1) ナ e)
0 TEM_1 t7_1 ᄚ Pour i @ 1,B , N
TCOM TE/S_1 ᄚ@
t3 t1 t5 _ 1 ᄚ@ t 5 _ i (l ) t 5 _( i01) (l ) ナ TEM_i // t 5 _ 0 (l ) @ t 4 (l ) pour l ' initialisation
TReq_N t6_N ᄚ@
ᄚ@ t 6 _ i (l ) t 5 _ i (l ) ナ TReq_i
TCPU Vers les ᄚ@
TEM_N autres MES
ᄚ@ t@7 _ i (l ) @ (t 6 _ i (l ) ナ e) ニ (t 8 _@i (l 0@1) ナ e) @
τ2 ᄚ@
t5_N t8_1
ᆴ@ t 8 _ i (l ) t 7 _ i (l ) ナ TE / S_i
t2 0 t10_1 TRep_1 t9 _ 1 0 ᄚ@
0 ᄚ@ t 9 _ i (l ) t 8 _ i (l ) ナ e
ᄚ t10 _ i (l ) t 9 _ i (l ) ナ TRep_i Fin
t10_N TRep_N t9_N ᄚ@
0 ᄚ@ ᆰ@
Depuis les
autres MES ᄚt@11 (l ) @ (t 5 _ N (l ) ナ e) ニ ニ@ (t @ (l ) ナ e) ᄎᄏ
ᆱᆲ1、 j 、 N@ 10 _ j
t11
ᄚ ᄐ
CPU COM Réseau MES_1 ᆵᄚt12 (l ) t 4 (l ) ナ TCOM
Fig. 2.11 : Modèle d’un SCR mono client - multi serveur
Figure 14: Modèle d’un SCR mono client – multi serveur (Addad, et al., 2011b)
Les équations (max,+) correspondantes sont :
ᆳt1 ( k ) e@ナ t 2 ( k 0 1) ニ e ナ t 3 ( k 0 1) 50
ᄚ Les paramètres de ces équations étant tous connus, il est ainsi possible d’évaluer
ᆴt 2 ( k ) TCAL@ナ t1 ( k )
ᄚt ( k ) T @ナ t ( k )
analytiquement des dates d’occurrences d’évènements remarquables dans le réseau. La
ᆵ 3 CPU 1
ᆳt (l ) (t (@0
4 l 1) ナ e ) ニ (t (l 0 1) ナ e )
11 12
ᄚ P o ur i @ 1,B , N
ᄚrésolution revient alors à traquer les messages et à partir des dates calculées, de développer une
ᄚ t (l ) t
5_i (l @ナ
) T
5 _( i 01) // t (l ) @ t (l ) pour l ' initialisatio n
EM_i 5_0 4
ᄚ
ᄚanalyset (l ) t (déterministe
6_i l @ナ
) T 5_i Req_i pour le calcul de bornes (maximales et/ou minimales) du temps de
ᄚ
ᄚᄚ t (l ) (t (l @ナ
7_i ) e ) ニ (t (l 0 1) ナ e )
6_i 8_i
ᆴréponse.
t (l ) t (l @ナ
8_i
(Ammour
) T 7_i E / S_i
& Amari, 2015) développent plus en détail l’approche algébrique pour la
ᄚ
ᄚ t (l ) t (l @ナ ) e
ᄚrésolution ) de ceFinsystème.
9_i 8_i
ᄚ t (l ) t (l @ナ
10 _ i T
9_i Rep_i
ᄚ
) e ) ニ ᆰ ニ (t10 _ j (l ) ナ e ) ᄎ
ᄚt11 (l ) (t 5 _ N (l @ナ
ᄚ ᆲᆱ1、 j 、 N ᄐᄏ
ᄚᆵt12 (l ) t 4 (l @ナ
) TCOM
30
50
En synthèse, l’algèbre (max,+) s’avère intéressante à l’évaluation de performances
d’architectures de contrôle/commande en réseau puisqu’elle permet d’obtenir de manière
déterministe des bornes (minimales et maximales) sur les temps de réponse. Cette
caractéristique de temps de réponse est d’autant plus intéressante puisqu’elle permet, à
contrario d’une analyse des seuls délais de traversée du réseau, de prendre en compte à la fois
la performance de la commande et du réseau de communication. Comme le montre (Addad,
2011a) cette algèbre peut également être couplée à une approche stochastique dans le but de
déterminer la distribution (fonction de densité de probabilité) du temps de réponse. Les temps
de franchissement sont exprimés par méthode combinatoire pour de petits réseaux ou par
heuristique (algorithmes génétiques) pour gérer l’explosion combinatoire.
Néanmoins, il s’agit là de performances extrêmes qui nécessitent une connaissance sur le(s)
scénario(s) qui n’est pas forcément disponible dans le contexte d’avant-vente. La complétude
de la modélisation et la recherche des cas critiques restent également limitées. Enfin, le système
d’équation de départ peut s’avérer difficile à exprimer (même en passant par une étape
préliminaire de modélisation par graphe).
2.2.1 Principe
La théorie du calcul réseau (ou network calculus dans la littérature anglophone) regroupe
un ensemble de résultats obtenus dans le dioïde (min,+) permettant d’exprimer des bornes sur
les délais et les arriérés de traitement (backlog). Cette théorie, formalisée par les travaux de (Le
Boudec & Thiran, 2001), (Chang, 2000) et (Cruz, 1991) se présente comme une analyse
déterministe des systèmes à files d’attente et a principalement été utilisée pour l’évaluation de
performances dans les réseaux. L’obtention de bornes maximales concourt ainsi à démontrer
la validité d’un système en réseau dans le pire des cas, que ce soit pour de grands réseaux
ouverts comme l’Internet (spécification de la réservation de ressources via RSVP (Le Boudec
& Thiran, 2001) ou encore pour des systèmes à contraintes temps-réel comme le contrôle-
commande en avionique (qualification du réseau Ethernet embarqué dans un A380 (Grieu,
2004)
Les courbes d’arrivée et de service correspondent aux hypothèses d’entrée du calcul réseau.
La courbe d’arrivée est une fonction croissante au sens large qui maximise à tout instant
l’arrivée réelle du trafic (ou travail). Cette fonction peut s’exprimer à partir des limites
capacitaires physiques et/ou logicielles (par exemple, (Grieu, 2004), (Charara, et al., 2006) et
(Charara, 2007) s’appuient sur les réservations de liens virtuels sur un réseau AFDX) ou sur
une connaissance de la génération du trafic (Georges, 2005) repose sur la connaissance de
l’algorithme de contrôle/commande notamment pour des flux périodiques). La courbe de
service est une fonction croissante au sens large qui minimise le service offert par le système
étudié. La caractérisation de cette fonction pour l’étude d’un système réel n’est pas simple ;
elle peut se faire par identification en approche boîte noire (Grieu, 2004) ou par composition
de fonctions élémentaires Pour un système unitaire (une file d’attente, un flux), l’évaluation
repose en calcul réseau sur la recherche pour le délai de traversée de la plus grande distance
horizontale entre la courbe d’arrivée et la courbe de service. Pour l’arriéré, on majorera la
31
performance par la plus grande distance verticale entre ces deux mêmes courbes. Chacune des
expressions est exprimée dans l’algèbre (min,+) et peut se faire en continu (Le Boudec &
Thiran, 2001) ou en discret (Chang, 2000). On notera que par définition, un conservatisme sur
l’identification des courbes entraîne un pessimisme des majorants obtenus par la suite.
Ces travaux ont ensuite été étendu pour le support de systèmes plus complexes. Pour
l’analyse de la traversée d’un ensemble de files (correspondant par exemple à un chemin
traversant plusieurs commutateurs), (Schmitt, et al., 2006b), (Le Boudec & Thiran, 2001) ont
ainsi mis en évidence le principe du « pay bursts only once » qui consiste à calculer une courbe
de service « du chemin » obtenue par convolution (min,+) des courbes de service de chaque
file traversée. Pour la prise en compte de la concurrence de plusieurs flux quant à l’accès à une
même ressource, il s’agit de prendre en compte l’ordonnancement opéré au niveau de la file.
(Le Boudec & Thiran, 2001) et (Schmitt, et al., 2008) définissent ainsi une courbe de service
propre à un flux donné et appelée service résiduel (ou blind multiplexing). Cette courbe revient
pour une politique FIFO à supposer que le flux considéré est traité comme dans le cas d’un
ordonnancement strict avec la priorité la plus basse. Cela peut sembler très conservateur, mais
correspond en fait à la seule hypothèse possible attendu que la date d’arrivée des paquets est
ici inconnue. Enfin pour des réseaux à multiples sauts, chemins et flux, (Lenzini, et al., 2008),
(Bouillard, et al., 2008) introduisent la notion de « pay multiplexing only once » qui permet
d’optimiser le recours à la composition de serveurs et au service résiduel.
2.2.2 Synthèse
L’obtention de bornes temporelles présente un intérêt indéniable pour l’étude des systèmes
contrôlés en réseau. En vérifiant que ces bornes soient inférieures à l’exigence du
contrôle/commande, il est ainsi possible de valider l’architecture. Le calcul réseau a ainsi
permis de démontrer que les délais calculés (là où il n’est pas possible de reproduire
expérimentalement l’ensemble des situations) resteraient inférieurs à ceux exigés pour
l’avionique d’un A380 (Grieu, et al., 2003) et qualifier ainsi l’architecture de
contrôle/commande. Il en va de même dans (Robert, 2012) concernant la qualification d’un
lanceur spatial basé sur un réseau Ethernet commuté. Dans (Georges, 2005) le calcul réseau est
employé pour déterminer à priori les limites de stabilité d’un système contrôlé en en réseau.
Outre la performance temporelle, le calcul réseau peut également être utilisé pour dimensionner
correctement une architecture pour qu’aucune information ne soit écartée du fait d’une
saturation des mémoires, pour spécifier les priorités/ordonnancements entre les différents flux
ou encore pour caractériser les possibilités d’évolutions capacitaires d’une architecture en
termes de passage à l’échelle. Moult outils de calcul sont aujourd’hui disponibles : on peut
ainsi citer RTAW-Pegase (Boyer, et al., 2010) ou Disco (Schmitt, et al., 2006a).
Toutefois, son utilisation nécessite une connaissance minimale sur la génération du trafic
qui ne peut tolérer un contexte incertain comme celui de l’avant-vente. Les majorants obtenus
peuvent également souffrir dans certains cas d’un conservatisme (pessimisme qui se réduit avec
les derniers résultats disponibles dans la littérature) qui pourrait engendrer un « sur chiffrage »
de la solution par un ingénieur en avant-vente. De plus, dans le cas de réseaux fortement
cyclique et pour réduire le pessimisme, les derniers travaux font appel à des heuristiques (type
32
programmation linéaire) pour la résolution des différentes équations pour des ordonnancements
de type FIFO, ce qui augmente de nouveau le temps d’analyse.
ve been e5 5 = f (e5)
e model aS3
3
aS3 S3 S3
1 = a4 = ap(e5)
ch gives S3 3 1 4 5 = p(e5)
ns). The busy period bpS3
0 40 80 120 160 t
Figure 15: Exemple d’une trajectoire extraite de (Bauer, et al., 2009)
Figure
À l’instar du calcul réseau,4. Feasible
l’approche worst
par trajectoire est case v5
foranalytique
une méthode qui permet
de calculer un majorant de délai de bout en bout. Pour un flux donné, il s’agit d’identifier les
paquets d’autres flux que le paquet en question rencontre sur sa trajectoire lors de la traversée
The delay of packet 5 is then 176µs, as computed by the
du réseau. Elle se base sur le concept de période active qui représente le délai d’attente
model checking
correspondant au traitementapproach.
des paquets préalablement arrivés. Avec un calcul récursif et en
In this
recherchant example,
les différentes the pessimism
trajectoires introduced
sur chaque composant depuisbyla the Trajec-
destination vers la
ds source, il est alors possible d’exprimer un majorant du délai de bout en bout.
tory approach is due to the fact that packets coming from
Si cette approche permet de réduire le pessimisme du calcul réseau, elle présente les mêmes
the
autres same link
inconvénients dansare already
le cadre serialized.
d’une utilisation When La
en avant-vente. recherche m
a packet ar- des
poussée
case for rivingtrajectoires
différentes in a switch from
peut même a given
ici s’avérer plus link competes
compliquée. Enfin, onwith
noterapackets
que toutes ces
5, it in- approches algébriques déterministes ne vont pas permettre de prendre en compte les différentes
arriving in the switch from more loaded links, the trajectory
ows that sources d’incertitudes, notamment sur la définition du trafic (inter arrivée, chemin, etc.).
approach computes a pessimistic worst case end-to-end de-
pproach 3 lay for m.
Evaluation Then, theà challenge
de performances is to
l’aide de modèles take
à états et àinto account
paramètres the
déterministes
ckets on serialization effect in the trajectory approach. This serial-
Les modèles de type états-transitions (automates à états finis, réseaux de Petri, …)
his seri- ization
constituent uneeffect
voie trèshas beenexplorée
largement taken pour
intoévaluer
account in the Network
les performances d’un système.
Lorsque l’on traiteapproach
Calculus de l’évaluation de performances
thanks temporelles, technique.
to the grouping ces modèles intègrent
Now une
représentation du temps, par exemple en associant une durée (temporisation ou intervalles de
we briefly show how it could be possible to do the same
temps) aux états ou aux transitions du modèle. Dans cette section, nous nous focalisons sur les
ializa- withdont
modèles thelesTrajectory approach.de We
durées sont déterminées manièreshow that it Dans
déterministe. leads ce to a
contexte,
feasible
l’évaluation scenario.
repose However,
sur une exploration totalewe do notd’état
de l’espace prove thatde the
à l’aide ob- de
techniques
vérification formelle ou bien sur une exploration partielle à l’aide de la simulation.
tained scenarios are worst cases.
he busy The main idea of our proposition 33 is to cut the packet
ket 5 in queue from the most loaded link at the length of the queue
for 5, as from the link through which the considered packet arrives.
3.1 Vérification formelle des performances par model-checking
La première méthode a été appliquée sur les systèmes de contrôle commande par (Ben
Hedia, et al., 2005) distribués où les paramètres temporels de synchronisations des procédés
ont été modélisés (Figure 16). Nous pouvons citer une autre application de cette approche par
(Krakora & Zdenek, 2004) pour vérifier les propriétés temporelles et logiques d’un système de
contrôle-commande dont le protocole réseau est de type CAN (Tindell, et al., 1994). Dans cette
étude, les auteurs considèrent que les systèmes de contrôle-commande possèdent deux types
de ressources partagées qui sont les processeurs des automates et le bus de communication. Le
traitement réalisé par les processeurs est complétement désynchronisé avec l’accès au bus de
communication pour la transmission de données. Dès lors, un arbitrage est réalisé afin de
déterminer le processeur pouvant accéder au bus de communication. Ainsi les temps impactant
les performances du système se situe au niveau de l’attente pour l’accès au bus de
communication, et aussi sur le temps de traitement des processeurs. Pour cela les auteurs ont
réalisé deux modèles représentés sur la Figure 17 afin de vérifier les propriétés du système et
ainsi avoir les performances de celui-ci.
34
Figure 16: Modèle d'un système de contrôle et d'acquisition (Ben Hedia, et al., 2005)
Figure 17: Modèle d’arbitrage (gauche), traitement (droite) par (Krakora & Zdenek, 2004).
La seconde approche a été mise en œuvre par (Bordbar & Anane, 2005) pour la gestion
automatique de la qualité de service pour des réseaux sans fil. Un état « défaut » est atteint si
le débit du réseau, ainsi que la latence et la gigue que subissent les trames sortent d’une plage
de valeur prédéfinie. De manière similaire, (Rodriguez-Navas, et al., 2006) traite du problème
de la synchronisation d'horloge entre maître et esclave dans un réseau CAN en se ramenant à
un problème de recherche d'atteignabilité d'un état « défaut » d'un automate observateur
(Figure 18). Enfin, cette technique a également été utilisée par (Limal, 2009) et (Mekki, 2012)
pour la validation d'architectures de contrôle-commande redondantes à base d'Ethernet
industriel.
35
Dans toutes ces approches, la performance temporelle à vérifier est supposée connue pour
être intégrée soit dans une propriété soit dans le modèle de système sous la forme d’un état
« défaut ». Les travaux développés au LURPA par (Ruel, 2009) étendent ces approches à
l’évaluation de performances (par nature inconnues) en appliquant une démarche itérative qui
consiste à partir d’une performance très surévaluée mais vérifiée sur le model-checker (lorsque
l’on mesure un temps de réponse par exemple) puis à réduire progressivement celle-ci jusqu’à
obtention d’un échec de preuve (Figure 19). Dans ce contexte, la dernière valeur de la
performance qui aura pu être vérifiée constitue une borne supérieure de la performance que
l’on cherche à évaluer.
Figure 19: Evaluation de performances par vérification itérative de propriétés (Ruel, 2009)
3.1.2 Synthèse
Même si ces approches ont donné d’excellents résultats, elles restent limitées par la taille
des systèmes que l’on peut évaluer. En effet, elles souffrent généralement d’un problème
classique d’explosion combinatoire qui peut conduire à un échec du processus de vérification
lorsque le nombre d’états à explorer est trop important. Malgré le fait que le model-checking
fournit des résultats précis, celui-ci souffre de l’explosion combinatoire liée à la taille des
modèles. Ainsi pour les systèmes d’automatisation où l’architecture peut être complexe avec
une nomenclature très importante une explosion combinatoire est fortement envisageable.
Malgré les travaux visant à réduire ce phénomène, comme par exemple par des techniques
d’abstraction ou de raisonnement compositionnel (Clarke, et al., 2001), il reste néanmoins un
frein pour l’évaluation de systèmes complexes de grande taille.
36
3.2 Evaluation de performances à l’aide de réseaux de Petri
Un Réseau de Petri généralisé (RdPG) (Murata, 1989) est un graphe orienté biparti, alternant
deux types de nœuds : les places et les transitions. Chaque place contient un nombre entier
(positif ou nul) de marques (ou jetons). Le marquage d’un réseau est défini par le vecteur des
marquages de ses places. Les arcs reliant une place Pi à une transition Tj (ou une transition à
une place) sont associés à un poids représenté par un entier NPiTi (ou NTjPi) qui, par défaut, est
égal à un. Une transition Tj est franchissable si pour chaque place d’entrée Pi de cette transition,
son marquage est supérieur ou égal au poids de l’arc les reliant. Le franchissement de la
transition consiste à retirer, dans chaque places d’entrée, un nombre de jetons égal au poids des
arcs reliant les places d’entrée à la transition et à déposer, dans chaque place de sortie, un
nombre de jetons égal au poids des arcs reliant la transition aux places de sortie.
L’analyse d’un réseau de Petri peut s’effectuer de manière analytique à l’aide de sa
formalisation dans une algèbre linéaire ou bien à l’aide du graphe de marquage. L’analyse de
ce graphe, dont les sommets sont les vecteurs de marquage et les arcs sont les transitions,
permet d’exhiber des propriétés classiques telles que la bornitude, la vivacité, la
réinitialisabilité ou encore le blocage. De plus, la détermination de P semi-flots ou de T semi-
flots permet d’identifier respectivement des invariants de marquage ou de transitions. Si ces
propriétés permettent, d’une certaine manière, d’évaluer qualitativement les performances d’un
système modélisé sous la forme d’un RdP, elles demeurent insuffisantes pour procéder à une
analyse quantitative des performances temporelles. Celles-ci imposent de prendre en compte
le temps dans les modèles, ce qui fera l’objet des extensions temporisées et temporelles des
RdP.
3.2.1.1 Le temps dans les modèles RdP
Les réseaux de Petri temporisés (Timed Petri Nets en anglais), introduits par
(Ramchandani, 1973) associent soit une durée de séjour aux places pour les réseaux P-
temporisés, soit une durée de franchissement aux transitions pour les réseaux T-temporisés
(Wang, 1998).
37
Un RdP P-temporisé est un doublet {R, τ} tel que R est un RdP marqué et τ est une
application � → ℚn /� �u = �u où ℚn est l’ensemble des rationnels positifs ou nuls et �u la
temporisation appliquée à la place �u . Un RdP T-temporisé est un doublet {R, τ} tel que R est
un RdP marqué et τ est une application � → ℚn /� �u = �u où ℚn est l’ensemble des
rationnels positifs ou nuls et �u la temporisation appliquée à la transition �u .
Dans un RdP P-temporisé, lorsqu’une marque est déposée dans une place, elle reste
indisponible dans celle-ci pour la durée associée à la place (i.e. durant ce laps de temps, la
marque ne pourra servir à sensibiliser une transition située en aval de la place). Dans les RdP
T-temporisé, le franchissement d’une transition conduit à réserver le nombre de marques
nécessaires dans les places situées en amont pendant la durée associée à la transition (i.e. les
jetons sont maintenus dans les places amont mais ne peuvent plus être utilisés pour d’autres
tirs) ; lorsque la durée est écoulée, les jetons déposés dans les places en aval sont
immédiatement disponibles.
Les durées associées aux places et aux transitions définissent donc des valeurs minimales
de temporisation. Ils constituent donc un formalisme parfaitement adapté pour l’évaluation de
performances des processus comportant des opérations dont l’exécution nécessite un certain
temps. L’analyse de ces réseaux, qu’elle soit basée sur le graphe de marquage ou bien effectuée
à l’aide de simulations, fait très souvent l’hypothèse qu’ils fonctionnent à vitesse maximale,
c’est à dire qu’une transition est franchie dès qu’elle devient franchissable. Dans ce cas, et sous
réserve qu’ils soient bornés, ces réseaux atteignent un régime stationnaire caractérisé par un
cycle sur le graphe de marquage qui permet assez aisément de déterminer des fréquences de
franchissement de transitions, représentatives des performances temporelles (Figure 20).
Les réseaux de Petri temporels (Time Petri Nets en anglais) (Merlin, 1974) sont obtenus
depuis les réseaux de Petri en associant deux dates min et max à chaque transition (pour les
RdP T-temporels, il existe également des RdP P-temporels (Khansa, 1997). Supposons que la
transition T soit devenue sensibilisée pour la dernière fois à la date d, alors elle ne peut être
tirée avant la date d – min et doit l’être au plus tard à la date d + max, sauf si le tir d’une autre
transition a désensibilisé T avant que celle-ci ne soit tirée. Le tir des transitions est de durée
nulle.
Par analogie au graphe de marquage des RdP généralisés ou temporisés, il est possible de
définir un graphe de classes d’états caractérisées par un marquage des places et des domaines
temporels associés aux tirs des transitions (Figure 21).
38
Figure 21: RdP T-temporel et son graphe de classes d’états (Berthomieu & Vernadat, 2006)
Ces réseaux sont donc particulièrement adaptés pour la modélisation de temps de séjour
exprimés sous la forme d’intervalles, comme par exemple pour des processus caractérisés par
des dates de début au plus tôt et fin au plus tard d’opérations. Même si leur cible d’application
d’origine concerne les systèmes de communication munis de time-out (Berthomieu & Diaz,
1991), les RdP temporels peuvent être utilisés dans des domaines très larges pour l’évaluation
de performance ou l’ordonnancement de tâches. Notons également que, même si d’autres
formalismes sont plus adaptés à la modélisation des incertitudes comme nous le verrons par la
suite, la modélisation du temps sous la forme d’intervalles dans les RdP t-temporels peut
traduire une incertitude sur la durée.
Les réseaux de Petri colorés, introduits par (Jensen, 1981), sont une classe de RdP dans
laquelle les jetons sont porteurs d’une information, appelée couleur. Cette couleur appartient à
un ensemble de couleurs d’un type simple (booléen, entier, réel, chaine de caractères) ou
complexe construit comme le produit cartésien d’ensembles de couleurs élémentaires. Chaque
39
place est associée à un ensemble de couleurs (simple ou complexe) et ne peut contenir que des
jetons dont les couleurs appartiennent à cet ensemble. De la même manière, chaque transition
est associée à un ensemble de couleurs, chacune de ces couleurs indiquant une possibilité
distincte de franchissement. Des fonctions d’incidence avant et arrière sont associés aux arcs
respectivement entrant et sortant des transitions et permettent de :
- définir les conditions de franchissement en termes de nombre de jetons colorés devant
être présents dans les places d’entrée de la transition (incidence avant ou PRE),
- définir le nombre et les couleurs des jetons déposés dans les places en sortie de la
transition (incidence arrière ou POST).
Soit C(Tj) l’ensemble des couleurs associées à la transition Tj. Cette transition peut être
franchie par une quelconque de ces couleurs. Soit Ck une couleur de C(Tj) et M un marquage
courant du RdP coloré. La transition Tj est validée par rapport à Ck pour le marquage M si et
seulement si : ∀ �u ∈ °�u , � �u ≥ ��� �u , �v /�w . Sur la Figure 22, la transition T1 sera
validée pour la couleur � si � �l ≥ ��� �l , �l � = � � = � . Une transition Tj
validée pour une couleur Ck peut être franchie. Son franchissement, noté Tj / Ck consiste à
retirer à toute place Pi en amont de Tj une quantité de marque égale à Pré(Pi, Tj/Ck) et à déposer
dans toute place Pi en aval de Tj une quantité de marque égale à Post(Pi, Tj/Ck). Sur la Figure
22, le franchissement de la transition T1 par rapport à la couleur � conduira à retirer de la
place P1 un jeton de couleur � et à déposer dans la place P2 un jeton de couleur � et un
jeton de couleur � .
P1
<a> <b>
<b> <c> f(<a>) = <b> + 2<a>
<b> <c> f(<b>) = <c>
C f(<c>) = <b> + <c>
f
T1 {<a>, <b> <c>}
C = {<a>, <b>, <c>}
g
P2 g(<a>) = 2<a>
g(<b>) = <b> + <a>
g(<c>) = <b> + <c>
C
Figure 22: Exemple de RdP coloré
Le principal intérêt de la coloration réside dans les opérations de pliage (et inversement de
dépliage) définissant une équivalence entre un RdP généralisé et un RdP coloré. En effet, un
choix judicieux de couleur doit permettre la représentation de plusieurs composants, décrits
chacun par un RdP identique, sous la forme d’un RdP coloré unique dans lequel les couleurs
identifieront les composants comme le montre l’exemple très simple de la Figure 23. Cette
caractéristique des RdP colorés présente un intérêt très significatif pour la modélisation de
systèmes impliquant plusieurs composants dont le comportement est similaire, ce qui est
évidemment le cas des architectures de contrôle-commande dont nous cherchons à évaluer les
performances.
40
RdP Chariot 1 RdP Chariot 2 RdP coloré équivalent
P1b Déplacement P1r Déplacement P1
r f(b) = b
2 chariots identiques (rouge, bleu) à gauche à gauche b f(r) = r
Arrivée à Arrivée à f
Gb Db T1b T1r T1 {r, b}
gauche gauche
f
P2b Déplacement P2r Déplacement
P2
Gr Dr à droite à droite
Arrivée à Arrivée à f
T2b T2r T2 {r, b}
droite droite
f
Les réseaux de Petri hiérarchiques, introduits par (Jensen, 1994), propose une
structuration modulaire des RdP dans laquelle des éléments du réseau, appelés transition de
substitution, sont eux-mêmes composés d'un réseau de Petri. Le modèle RdP associé à une
transition de substitution est appelé module RdP hiérarchique ; il peut contenir, à son tour,
d’autres transitions de substitution.
Un module RdP hiérarchique est un 9-uplet N = (P, T, E, S, M0 Tsub, Pport, PT) où :
- (P, T, E, S, M0) définissent un RdP
- Tsub est un ensemble de transitions de substitutions appartenant à l’ensemble fini des
transitions T d’un RdP. Tsub ⊆ T.
- Pport définit une place représentant l’ensemble des ports de connections d’un module.
Celles-ci appartenant à l’ensemble fini des places P. Pport ⊆ P.
- PT défini un attribut caractérisant le type de port de la place Pport. Cet attribut peut être
de type entrée (IN), sortie (OUT), ou d’entrée et de sortie (I/O). tel que PT : Pport →
{IN,OUT,I/O}.
Un RdP hiérarchique est un n-uplet N = (P, T, C, E, S, M0, Tsub, Pport, PT, S, SM, PS, FS) où :
- (P, T, C, E, S, M0) définissent un RdP coloré
- (Tsub, Pport, PT) définissent un module RdP hiérarchique.
- S définit un ensemble non vide de modules RdP hiérarchique
- SM : Tsub → S est la fonction qui assigne à chaque transition de substitution Tsub un
ensemble de module S.
- PS définit la fonction d’assignation des places Pport à une transition de substitution Tsub.
- FS est un ensemble non vide de P où tous les éléments on la même couleur et les mêmes
poids (nombre de jeton).
41
La Figure 24 représente un RdP hiérarchique comportant 3 places A, B et C ainsi qu’une
transition de substitution Module, associée réseau de droite sur la figure dont les places A, B et
C constituent respectivement les ports d’entrée(IN), d’entrées/sorties (I/O) et de sortie (OUT).
L’intérêt de cette extension est de permettre une description hiérarchique des systèmes mais
aussi modulaire dans la mesure où deux transitions de substitution du réseau hiérarchique
peuvent être associées à deux instances d’un même modèle RdP de module hiérarchique. Elle
offre donc à la fois une visualisation simplifiée par niveau d’un modèle RdP complexe mais
aussi la possibilité de mettre en œuvre une modélisation, sinon orientée objet au sens strict du
terme, tout au moins orientée « composants » au sens des approches Component-Based
Automation prônées par la norme IEC 61499 (Maffezzoni, et al., 1999), (Thramboulidis, 2004),
(Sünder, et al., 2006), (Estévez, et al., 2007).
Les extensions colorées et hiérarchiques sont donc tout à fait pertinentes pour la
modélisation d’architectures de contrôle-commande caractérisées par une structuration
hiérarchique et par la présence de composants dont les comportements sont similaires.
Le formalisme proposé par (Jensen, 1994) regroupe trois des extensions présentées
précédemment – RdP P-temporisé, RdP coloré et RdP hiérarchique – sous l’abréviation CPN
(pour Coloured Petri Nets) quelque peu trompeuse car réduite à la seule extension colorée.
Ce formalisme a servi de base au développement de l’outil CPN Tools1 (Jensen, et al., 2007)
qui complète les fondements théoriques de ces trois extensions par :
- le couplage des réseaux CPN à un langage de modélisation fonctionnelle (ML) qui
permet une manipulation plus aisée des trois extensions précédentes et la définition
de structures complexes telles que les listes par exemple,
- l’introduction de variables aléatoires pour caractériser la durée associée aux
temporisations des places.
Ces deux notions complémentaires contribuent, de manière indiscutable, à accroître le
pouvoir d’expression des réseaux CPN de Jensen mais peuvent réduire, en contrepartie, les
capacités de raisonnement formel associés aux RdP et ses extensions temporisés, colorés et
hiérarchiques. En effet, la manipulation au travers du langage ML de structures de données
complexes telles que les listes ou l’introduction de variables aléatoires définies par une
distribution de probabilité quelconque peuvent rendre difficile, voire impossible dans certains
cas, la construction et l’analyse formelle d’un graphe de marquage par exemple. Le recours à
la simulation de Monte-Carlo est donc d’un usage très fréquent dans les applications
développées à l’aide de CPN Tools, notamment pour l’évaluation de performances.
Nous reviendrons, en particulier, dans la section 4.3, sur la présence de variables aléatoires
dans les temporisations qui ne permet cependant pas de considérer les réseaux CPN comme un
modèle stochastique (c’est à dire caractérisant un processus stochastique), sauf sous certaines
hypothèses que nous détaillerons ultérieurement.
1
CPN Tools a été développé par le CPN Group à l’Université de Aarhus entre 2000 et 2010. Ses
principaux contributeurs sont K. Jensen, S. Christensen, L.M. Kristensen et M. Westergaard. Depuis
2010, CPN Tools est maintenu par le AIS group à l’Université de Technologie. Site web : cpntools.org
42
3.2.2 Evaluation de performances à l’aide des RdP
L’évaluation de performances à l’aide des réseaux de Petri et de ses extensions a fait l’objet
de nombreux travaux qui font apparaître deux grandes familles d’approches :
- la vérification formelle d’une propriété, par exemple exprimée dans une logique
temporelle, qui représente le respect d’une performance (ou inversement sa
violation),
- l’analyse du réseau temporisé au travers de trois indicateurs : les fréquences de
franchissement de transitions, les marquages des places ou encore les temps de
séjour dans les places. Ces trois indicateurs peuvent être mesurés par :
o des approches formelles basées sur une analyse des graphes d’accessibilité
par exemple,
o les approches basées sur la simulation de Monte-Carlo pour évaluer, de
manière statistique, les performances moyennes, minimum et maximum
ainsi que les indicateurs de confiance associés (écart type, intervalle de
confiance, …).
La vérification formelle repose sur des techniques analogues à celles mise en œuvre pour le
model-checking temporisé. Une performance temporelle est traduite sous la forme d’une
formule en logique temporelle, par exemple CTL ou LTL, qui exprime soit une propriété
d’accessibilité (on cherche dans ce cas à vérifier que la performance est atteignable), soit une
propriété de sûreté (on cherche dans ce cas à vérifier qu’une performance non acceptable ne
peut jamais être constatée). Dans cette catégorie d’approches, nous pouvons citer notamment
les travaux développés autour des réseaux de Petri temporels et de l’outil TINA (Berthomieu,
et al., 2004) . Cette approche permet donc de vérifier qu’une performance donnée est respectée
(ou non) ; en d’autres termes, elle est inefficace pour mesurer une performance supposée non
connue, excepté à l’aide d’une approche par vérification itérative de propriété qui permet par
ajustements successifs de s’approcher de la performance (Ruel, 2009).
L’utilisation la plus courante des RdP temporisés pour l’évaluation de performances repose
sur la détermination des indicateurs : marquage, fréquence de franchissement et temps de
séjour ainsi que toute autre combinaison de ces trois indicateurs de base. Ces indicateurs
(marquage moyen, temps de séjour, temps de traversée du réseau d’une place à une autre,
fréquences de franchissement, …) peuvent être évalués de manière formelle, en exploitant le
comportement cyclique du graphe de marquage en régime stationnaire, des systèmes
d’inéquations extraites des P et T semi-flots ou encore à l’aide de calculs symboliques (Sifakis,
1980).
Cependant, face à la complexité et la taille des modèles, l’approche par simulation est très
largement privilégiée dans la littérature, et notamment la simulation de Monte-Carlo. Cette
dernière a pour essence l’utilisation d’expériences répétées pour évaluer une quantité : la
répétition des expériences permet, en autres, de s’affranchir du déterminisme intrinsèque à
l’algorithme de simulation (par exemple dans le cas de transitions simultanément
franchissables ou en conflits) mais aussi d’intégrer les aspects aléatoires pouvant être présents
dans les modèles (par exemple, une durée de temporisation aléatoire dans les réseaux CPN
définis par Jensen).
43
A titre d’illustration, nous pouvons citer les travaux de (De Figueiredo & Kristensen, 1999)
pour l’évaluation de performances des protocoles TCP à l’aide de RdP colorés, hiérarchiques
et temporisés ou encore les travaux de pour l’évaluation des performances de service web à
l’aide des RdP temporels (Abdelli, et al., 2015). Ces approches utilisent une représentation du
temps déterministe, sous la forme de temporisation ou d’intervalles. D’autres approches, basées
sur les réseaux CPN définis par Jensen, exploite la modélisation du temps sous forme de
variables aléatoires pour représenter les sollicitations (par exemple, l’arrivée des requêtes
décrite par un processus de Poisson de taux λ). Toujours à titre d’illustration et dans le domaine
de l’évaluation de performances d’architectures de contrôle-commande, nous pouvons citer :
- des approches centrées sur la modélisation des dispositifs de commande, tels que des
automates programmables pour permettre l’évaluation de temps de réponse
(Meunier, 2006), (Marsal, 2006a), (Marsal, et al., 2006b),
Figure 25: Modèle d'un scan des E/S par un automate selon (Marsal, 2006a)
44
3.2.3 Synthèse
Ces quelques illustrations se sont pas exhaustives dans la mesure où de très nombreux
travaux reposent sur les réseaux de Petri colorés et temporisés pour l’évaluation de
performances. Ce foisonnement, tant au niveau académique, qu’industriel (dans des entreprises
telles que la SNCF (Lalouette, et al., 2010), Ericsson (Vanit-Anunchai, et al., 2006), Helwett-
Packard (De Figueiredo & Kristensen, 1999) ou encore PSA (Moncelet, et al., 1998) dénote de
la richesse de ce formalisme et de son adaptation au contexte de l’évaluation de performances.
Le champ d’application des réseaux CPN n’est, en outre, pas limité à l’évaluation de
performances temporelles puisqu’il est largement utilisé dans le domaine de la sûreté de
fonctionnement (Barger, 2003), (Pinna, et al., 2013), (Brinzei, et al., 2014), (Barger, et al.,
2009). En effet, ces modèles exploitent l’extension offerte par les réseaux CPN définis par
Jensen pour modéliser les durées sous une forme probabiliste et ainsi traduire l’occurrence de
défaillances. Même si une telle utilisation, comme nous le verrons à la section 4.3, doit se faire
avec quelques précautions d’usage pour conserver le cadre théorique des processus
stochastiques, elle offre néanmoins un réel potentiel pour la modélisation de comportements
ne pouvant être estimés qu’à l’aide de distributions de probabilités comme cela peut être le cas
en phase d’avant-vente.
En revanche, l’ensemble de ces approches laissent apparaître la complexité de la
modélisation au travers de modèles comprenant plusieurs centaines d’états et de transitions. On
ne peut donc qu’en déduire que la phase de modélisation est coûteuse en ressources humaines
et en temps. Ce constat est incompatible avec les besoins exprimés pour l’évaluation de
performance en phase d’avant-vente durant laquelle de multiples solutions d’architectures
doivent être évaluées avec le support de ressources limitées. Dans ce contexte, la définition de
modèles génériques (en exploitant les transitions de substitutions), voire l’automatisation de
l’élaboration des modèles constituera une étape indispensable pour lever cet écueil.
Les chaînes de Markov (CdM) correspondent à une première approche mathématique pour
modéliser des systèmes de contrôle/commande en réseau via l’étude des transitions entre
différents états à partir de probabilités bien définies. Une chaîne de Markov repose ainsi sur
une suite de variables aléatoires (Xn, n ∈ N) qui permet de modéliser l’évolution dynamique
45
d’un système aléatoire : Xn représente l’état discret du système à l’instant n. La propriété
fondamentale des chaînes de Markov, dite propriété de Markov, est qu’il y a plusieurs
évolutions possibles à partir d’une situation, chacune d’entre elles ayant une probabilité de se
réaliser – sans considérer l’histoire passée P(Xt+1=xj / Xt=xi, Xt−1=xk, Xt−2=xl, ...)=P(Xt+1=xj /
Xt=xi). C’est cette probabilité P(Xn+1=b | Xn=a) qui détermine la chance de passer d’un état Xn
à un nouvel état Xn+1 à l’instant suivant. C’est cette incertitude qui introduit la dynamique
aléatoire ou stochastique. Cela conduit également à un processus de décisions multiples,
usuellement représenté sous la forme de graphe. Les applications des chaînes de Markov sont
très nombreuses (réseaux, génétique des populations, mathématiques financières, gestion de
stock, algorithmes stochastiques d’optimisation, simulation, . . .).
Le recours aux chaînes de Markov a donné lieu à de nombreux travaux dans la littérature et
différentes classes : chaînes de Markov à temps discret, continu, hybrides, interactives, etc.
Dans le cadre des réseaux informatiques, les chaînes de Markov sont notamment utilisées pour
modéliser les pertes de propagation, notamment dans le cas inhérent des réseaux sans fil. En
ce qui concerne l’évaluation de performances temporelles, on mentionnera (Royer, 2006),
(Ghanaim, et al., 2009), et (Ishak, et al., 2016) parmi les différents travaux disponibles la
littérature. Le but est ici de déterminer des temps moyen, probabilité moyenne de séjour dans
un état. Dans (Royer, 2006), une chaîne de Markov est utilisée pour décrire le fonctionnement
d’un routeur qui est perçu comme un serveur ON/OFF comme le montre la Figure 27.
(a) Modèle mono buffer d’un routeur (b) Modèle chaine de Markov du buffer
Figure 27: Modélisation d’un routeur avec des CdM (Royer, 2006)
Ici les périodes disponibilités (et d’indisponibilités) suivent des lois exponentielles de
moyennes 1/�i (1/µi). Comme dans la plupart des utilisations. Dans (Ghanaim, et al., 2009) les
états et les probabilités associées correspondent à des valeurs discrètes de délais obtenus par
simulations CPN d’un système commandé via un réseau Ethernet. (Ishak, et al., 2016)
explicitent l’usage des chaînes de Markov quant à l’évaluation du temps moyen de tirage du
backoff des réseaux Ethernet, et ainsi des délais d’émission. L’arbre de recherche proposé est
décrit à la Figure 28. Comme le montre cette figure, le graphe devient rapidement étendu alors
qu’il ne s’attache qu’au plus petit des réseaux : deux émetteurs. Il est à noter aussi que les
probabilités nécessaires à l’étude sont ici le fruit d’une distribution uniforme, de par la nature
de l’algorithme.
46
Figure
Fig. 28: CdM
3. The modélisant
two nodes l’algorithme
transmitter system for BEB pour
identical un réseau
backoff à deux
time in nœuds
the Binary (Ishak, et Backoff
Exponential al., 2016)
scheme.
Pour conclure, les chaînes de Markov sont un outil intéressant pour appréhender les délais
Jitter
!"
2 P
στ 2 = moyens
(n s1 s1 de− τ̄bout
,f ,a ) (ns2
s1 2) en,f bout
n ,a · P(n
s2 s2 sur−1),.,f
s2 une, ·architecture
s2 s2
..... · P1,0,1 en réseau. Il reste néanmoins nécessaire de
4
Linear
connaître
This allows les probabilités
now for assessment of delay,dejitter
transition d’un état à un autre, ce qui n’est pas toujours évident,
and probability 3 BEB
plus spécifiquement
of transmission success for each dans of lethecadre
nodes.de l’avant-vente.
The finite Il n’est pas possible de prendre en compte
2
the three values τ̄i , σi , Psi for i = 1, 2, i.e. for each node.
invariantes. De même, le support de multiples lois de distribution n’est pas directement
0
1 Node
pris en 2
47
exponentielle, poisson), Déterministe (loi constante) ou Générique (loi quelconque). Parmi les
plus classiques, la file M/M/1 représente un système avec un processus d’arrivée et de sortie
de type Markovien et avec un seul serveur. Une telle file peut d’ailleurs se représenter selon
une chaîne de Markov. Pour une file d’attente et à partir de résultats comme la formule de
Little, on va alors chercher à évaluer un ensemble de caractéristiques dont le temps de réponse
moyen, le temps moyen d’attente des clients, le nombre moyen de clients en attente de service
ou le taux d’utilisation du serveur.
Les files d’attente sont utilisés pour l’étude d’un ensemble varié de domaines (la production,
la finance, etc.) et les télécommunications. Parmi les différents travaux d’application de la
théorie des files d’attente aux architectures de commande sur un réseau Ethernet, on évoquera
les travaux de (Song, et al., 2002) et (Song, 2004.). Dans leurs travaux, les auteurs cherchent à
établir le temps de mémorisation dans un commutateur Ethernet. Ces travaux sont établis pour
un ensemble de sources de trames périodiques et apériodiques. Plusieurs processus d’arrivées
sont étudiés : périodique, loi Binomiale (processus de Bernoulli) et loi de Poisson. Le service
est déterministe et ne repose ici que sur un serveur. La théorie des files d’attente leur permet
alors d’exprimer la distribution du délai d’attente liée à la traversée d’un commutateur.
Ces travaux mettent en évidence l’intérêt et les limites de cette approche. En effet,
l’estimation des délais moyens est aisée dans le cas d’un réseau de faible taille (ici, un seul
commutateur est modélisé) et la complexité du modèle devient très vite élevée pour des réseaux
de plus grande taille (et notamment multi classes et à capacité limitée), rendant son utilisation
difficilement envisageable pour des architectures de contrôle commande de grands systèmes.
Ceci serait d’autant plus avéré en incluant la modélisation des différents éléments de
commandes (carte d’E/S, PLC, SCADA, etc.).
Pour faire face à cette complexité tout en conservant le support de multiples lois de
distribution, une solution consiste à se tourner vers les outils de simulation.
48
Riverbed (ex Opnet) Modeler. D’une manière plus générale, on peut également citer l’outil
NS-2(/3) (Network Simulator) ou OmNet+.
Riverbed Modeler permet de décrire une architecture réseau à partir de modèles de
composants généralement fournis directement par les différents constructeurs (Cisco, 3Com,
etc.). Ces modèles sont décrits à partir d’un pseudo code C lui-même structuré selon des
machines à états finis. De multiples lois de distribution sont également disponibles, ce qui
permet de recouvrer des résultats similaires à une approche algébrique stochastique. Ce logiciel
a notamment été utilisé dans les travaux de (Brahimi, 2007). (Habib, 2010) a, quant à lui,
montrer les conditions de modélisation au sein de Modeler d’équipements « non réseaux » de
commande. (Haffar, 2011) a quant à lui utilisé Modeler pour la co-simulation d’architectures
de distributions électriques, le simulateur gérant la partie communications Modbus TCP/IP.
NS est un simulateur à évènements discrets qui sert à modéliser des réseaux de
communication en influant sur un grand nombre de paramètres (débit, taux d’erreur bit, etc). Il
est basé sur deux langages de programmation à savoir C++ et OTcl. Il concerne toutefois
principalement les cœurs de réseau, et ne dispose pas de modèles complets d’équipements de
commande.
Des travaux de simulation conjointe de la commande et du réseau Ethernet commuté ont été́
mené via la librairie TrueTime pour Matlab (Cervin, et al., 2003). Cette librairie a été
développée par l’Université de Lund en Suède. Elle permet de co-simuler l’exécution des
tâches temps-réels implantées dans le contrôleur et les transmissions via le réseau. L’utilisation
de TrueTime privilégie l’utilisation du logiciel Matlab/Simulink. Les blocs « réseau » ajoutés
par la librairie ne correspondent toutefois qu’à une modélisation macroscopique des protocoles
de communication. De plus, (Habib, 2010) a pu montrer les autres limites de modélisation,
notamment par rapport à Modeler.
Comme mentionné ci-avant, d’autres simulateurs existent. Néanmoins, ils partagent de la
même manière les limites des logiciels précédemment présentés, notamment la capacité à
modéliser dans un même environnement les équipements de commande et d’interconnexion
réseau. De plus, pour obtenir des résultats corrects, il est nécessaire d’exécuter un grand nombre
de simulations qui nécessitent chacune des ressources (CPU, mémoire). Enfin, pour chaque
nouvelle architecture, il est nécessaire de redéfinir un nouveau fichier modèle et relancer
l’ensemble des expériences.
4.3.1 Principes
Les réseaux de Petri stochastiques sont une extension des réseaux de Petri temporisés pour
laquelle l’ensemble des trajectoires temporisées est muni d’une mesure de probabilité de telle
sorte à ce que le couple (marquage, date d’entrée dans le marquage) soit un processus
stochastique. D’un point de vue du formalisme, cela se traduit d’une part, par l’association, à
toute transition tk, d’une variable temporelle aléatoire �k caractérisée par une distribution de
probabilité, et d’autre part, par la définition d’une politique d’exécution permettant de définir
le processus stochastique.
49
La politique d’exécution comprend deux éléments principaux :
- la politique de sélection qui permet de définir la transition devant être tirée en cas de
transitions simultanément sensibilisées depuis un marquage (Figure 29) ; deux
techniques sont distinguées :
o la présélection qui consiste d’abord à choisir une transition à l’aide de
probabilités de franchissement puis à effectuer le tirage aléatoire correspondant
à la transition sélectionnée,
o la compétition qui consiste à effectuer tous les tirages aléatoires puis de
sélectionner la transition ayant la variable temporelle la plus faible ;
- la politique de mémorisation qui définit la prise en compte du passé, lors de l’entrée
dans un marquage, de trois manières :
o avec réinitialisation qui, lors du franchissement d’une transition tk consiste à ne
pas conserver les valeurs temporelles des tirages effectués sur toutes les
transitions sensibilisées simultanément à tk ; un nouveau choix de
franchissement conduira donc à un nouveau tirage ;
o avec mémoire de la dernière période (enabling memory) qui considère que la
mémoire des tirages se maintient tant que les transitions restent sensibilisées
(par exemple, sur la Figure 29, un nouveau tirage sera effectué lorsque t2 sera à
nouveau franchissable tandis que le tirage sera conservé et décrémenté pour t3) ;
o avec mémoire de toutes les périodes (age memory) même si les transitions sont
désensibilisées.
Le modèle à la base des réseaux de Petri colorés, hiérarchiques et temporisés définis par
Jensen n’est donc conforme à aucun de ces modèles. En effet, il autorise des transitions à durée
aléatoire sans restriction sur les distributions de probabilités (qui peuvent de type exponentielle,
Weibull, Erlang, uniforme ou autre) à l’instar des ESPN mais également des transitions
immédiates ou à durée fixe (comme pour les DSPN). La conséquence immédiate est que, sauf
à émettre des restrictions importantes sur les modèles élaborés, l’analyse de ces réseaux
imposera, dans la plupart des cas, le recours à la simulation.
Ce constat est renforcé par une autre différence majeure relative à la gestion du temps. Dans
les réseaux de Petri stochastiques, les durées sont affectées aux transitions alors qu’elles le sont
aux places sur les réseaux CPN de Jensen. Prenons, par exemple, le cas du réseau représenté
par la Figure 30-a. Si on le considère comme un GSPN, la politique de compétition entre
transitions temporisées (transitions t1 et t2) conduira à sélectionner la transition pour laquelle
la variable temporelle aléatoire sera la plus faible ; dans tous les cas, le jeton sera maintenu
dans la place P conformément à la durée sélectionnée.
P2 P3
51
temporelle, également appelée time stamp, qui caractérise la valeur globale de l’horloge à partir
de laquelle le jeton est disponible pour sensibiliser une transition. Lorsqu'une transition est
sensibilisée, elle est immédiatement tirée et dépose dans ses places de sortie un jeton dont le
time stamp prend la valeur de la date de franchissement augmentée de la durée aléatoire
associée à la transition. Le jeton ainsi déposé reste donc indisponible dans les places de sortie
jusqu’à jusqu'à ce que le temps courant de l’horloge globale soit supérieur ou égal à son time
stamp. Ce comportement correspond donc bien à une P-temporisation des places de sortie
fonctionnant à sa vitesse maximale. Pour les transitions immédiates, cette différence
d’interprétation ne conduit à aucun écart de comportement entre GSPN et CPN mais ce n’est
malheureusement pas le cas pour les transitions stochastiques. En effet, si le réseau de Petri de
la Figure 30-a est un CPN, dès que le jeton arrive dans la place P1, il est affecté à l'une des
deux transitions t1 ou t2 (de manière aléatoire) et cette transition est immédiatement tirée. Le
jeton déposé dans la place P2 ou P3 est alors affecté d’une durée de séjour égale à la durée
correspondant au taux de la transition t1 ou t2 et il séjourne dans la place P2 ou P3 aussi
longtemps que requis par son time stamp.
Pour résoudre ce problème et assurer un comportement équivalent à un GSPN avec
mémorisation de la dernière période (sous réserve de n’utiliser que des distributions
exponentielles ou des transitions immédiates), deux approches sont envisageables (Pinna, et
al., 2013) :
- interdire dans les modèles CPN la compétition entre deux transitions à durée aléatoire,
- introduire une place supplémentaire P0 (Figure 30-b) permettant de traiter le choix
stochastique de la concurrence avant d'autoriser les transitions t1 et t2. Les tirages
aléatoires associés aux transitions t1 et t2 sont tous deux effectués lors du
franchissement de la transition d’entrée de cette place intermédiaire, le jeton déposé
dans la place intermédiaire séjourne dans cette place pendant une durée égale à la plus
petite valeur des variables aléatoires tirées et seule la transition correspondant à cette
valeur peut être tirée en lui ajoutant une garde ; ces différents traitements peuvent être
réalisés à l’aide des fonctions ML disponibles dans les modèles CPN de Jensen.
2
http://www.di.unito.it/~greatspn/index.html
52
graphe d’états probabilisé (Figure 31) ; (Labadi, 2005) utilise l’analyse de graphes pour
déterminer les performances d’un système logistique modélisé avec un réseau de Petri
stochastique enrichi par la notion de lots ; dans le domaine de la gestion de production,
l’analyse de GSPN permet d’évaluer des taux moyens de production ou de stocks (Al-
Jaar & Desrochers, 1990), (Itsuo, et al., 1991);
- basées sur la simulation de Monte-Carlo, notamment pour les réseaux comportant des
distributions de probabilités non exponentielles et combinant des transitions
temporisées aléatoires, à durée fixe et/ou immédiates ; des outils de simulation, tels que
TimeNET3, (Zimmermann, 2012) et dans une certaine mesure CPN Tools (avec les
précautions d’usage mentionnées à la section précédente) facilitent la mise en œuvre de
ces approches basées sur la simulation. A titre d’illustration, (Heindl & Reinhard, 2001)
utilise la simulation de réseaux de Petri stochastiques pour évaluer la procédure de
backoff et l’espace inter-trames sur des réseaux WiFi.
Figure 31: Modèle STPN et son graphe d’états probabilisé (Juanole & Gallo, 1995)
3
https://www.tu-ilmenau.de/sse/timenet/
53
5 Conclusions
Dans ce chapitre, nous avons cherché à évaluer l’adéquation à notre étude des différents
formalismes de modélisation utilisés pour l’évaluation de performances. Nous avons ainsi
organisé un état de l’art suivant trois grandes approches. Pour chaque formalisme, nous avons
cherché à expliciter les éventuelles limites par rapport aux différentes exigences permettant
d’une part, de couvrir la structure et la hiérarchisation des architectures à évaluer et, d’autre
part, de modéliser le comportement dynamique des architectures dans un contexte incertain.
Nous rappelons ainsi les points clés des éléments de synthèse mis en avant.
Pour les modèles algébriques déterministes, ils nécessitent des paramètres d’entrée
déterministes pas simple à identifier en phase d’avant-vente et qui ne supportent pas
explicitement une prise en compte de l’incertitude. De plus, les expressions de type bornes
(minimales et/ou maximales) peuvent souffrir d’un conservatisme, qui en phase d’avant-vente,
peut engendrer une forte surestimation de l’architecture. La recherche des cas critiques peut
s’avérer fastidieuse et doit être intégralement relancée à chaque fois que l’architecture est
modifiée, ce qui ne permettra pas de tester un large nombre de solutions. Enfin, ces approches
algébriques n’intègrent pas de structuration hiérarchique.
En ce qui concerne les modèles à états à paramètres déterministes, les solutions à base de
model-checking souffrent généralement d’un problème classique d’explosion combinatoire qui
peut conduire à un échec du processus de vérification lorsque le nombre d’états à explorer est
trop important et reste un frein pour l’évaluation de systèmes complexes de grande taille. De
plus, ces techniques ne sont pas adaptées au contexte particulier de l’avant-vente où il reste très
difficile de caractériser le comportement de l’architecture de contrôle-commande de manière
déterministe avec des durées ou des plages de durée fixes. Quant aux réseaux de Petri et les
extensions colorés et hiérarchique, ils présentent un intérêt très significatif puisque la
modélisation du temps sous la forme d’intervalles dans les RdP t-temporels peut traduire une
incertitude sur la durée et permettent la modélisation d’architectures de contrôle-commande
caractérisées par une structuration hiérarchique et par la présence de composants dont les
comportements sont similaires. En revanche, l’ensemble de ces approches laissent apparaître
la complexité de la modélisation au travers de modèles comprenant plusieurs centaines d’états
et de transitions. On ne peut donc qu’en déduire que la phase de modélisation est coûteuse en
ressources humaines et en temps. Ce constat est incompatible avec les besoins exprimés pour
l’évaluation de performance en phase d’avant-vente durant laquelle de multiples solutions
d’architectures doivent être évaluées avec le support de ressources limitées.
Pour les modèles stochastiques de type chaînes de Markov, il reste néanmoins nécessaire de
connaître les probabilités de transition d’un état à un autre, ce qui n’est pas toujours évident,
plus spécifiquement dans le cadre de l’avant-vente. De plus, le support de multiples lois de
distribution (autres qu’exponentielle) n’est pas directement pris en compte. Enfin, nous
noterons qu’un large nombre de décisions (correspondant chacune à un état différent) peut
conduire à un très large arbre de recherche. Pour la théorie des files d’attente, la complexité du
modèle devient très vite élevée pour des réseaux de plus grande taille (et notamment multi
54
classes et à capacité limitée), rendant son utilisation difficilement envisageable pour des
architectures de contrôle commande de grands systèmes. Et les simulateurs supportant la
théorie des files d’attente ne proposent pas de structuration générique et hiérarchique, de sorte
qu’il ne soit pas possible de réduire les temps d’exécution. Les réseaux de Petri stochastique
permettent quant à eux la modélisation des tâches d’un système dont la durée d’exécution ne
peut être modélisée qu’à travers une durée non déterministe. En cela, ils répondent parfaitement
aux besoins exprimés pour l’évaluation de performances en phase d’avant-vente. En revanche,
des phénomènes d’explosion combinatoire pour des modèles de grande taille sont probables et
imposent, dans la plupart des cas, le recours à des distributions de probabilités exponentielles
permettant de se ramener dans un cadre markovien ou semi-markovien.
55
56
Chapitre 3
Génération automatique de modèles
pour l’évaluation de performances
1 Introduction ......................................................................................................... 59
2 Vue d’ensemble de la méthode proposée ............................................................ 59
2.1 Données d’entrée .................................................................................................... 59
2.2 Génération des modèles d’architecture ................................................................... 59
2.3 Génération des observateurs de performances ........................................................ 60
4 Conclusion ........................................................................................................... 97
57
58
1 Introduction
L’objectif de ce travail est de définir un cadre formel de modélisation, basé sur les réseaux
de Petri colorés et temporisés, permettant la génération automatique de modèles servant de
support à l’évaluation de performances des architectures de contrôle-commande en réseau.
Cette évaluation, réalisée à l’aide de simulation de Monte-Carlo, doit pouvoir être effectuée
pour n’importe quel type d’architecture quel que soit sa complexité, dans le contexte incertain
d’avant-vente. Notre contribution se décline en trois points principaux : la définition d’un
réseau de Petri « constructeur » qui coordonne la génération automatique des modèles, la
définition d’une bibliothèque de modèles de composants élémentaires et enfin la génération
d’observateurs permettant l’évaluation des performances. Avant d’aborder successivement ces
trois points, la première section de ce chapitre présente une vue d’ensemble de la démarche.
La Figure 32 présente une vue d’ensemble de la démarche suivie : les éléments pleins de
cette figure constituent nos contributions majeures et feront l’objet des différentes sections de
ce chapitre (numérotations sur la figure).
D’autre part, la description des architectures doit également contenir une description
exhaustive des performances qui devront être évaluées. Cette description des performances
attendues sera accompagnée d’indicateurs de niveau de confiance qui permettront de construire
les paramètres des simulations de Monte-Carlo (nombre d’histoire, critères d’arrêt, …).
Le raisonnement suivi pour proposer notre méthode de génération automatique des modèles,
supports à l’évaluation de performances, s’inscrit dans une logique basée sur l’assemblage de
modèles d’équipements présents au catalogue constructeur (COTS – Components On The
Shelves (McKinney, 2001)). Ce raisonnement est justifié si l’on considère qu’une architecture
de contrôle-commande contient un grand nombre d’équipements identiques ou de la même
famille dont le comportement peut être décrit à l’aide de modèles génériques et instanciables.
59
La mise en œuvre de ce raisonnement impose la définition :
- d’une bibliothèque de modèles élémentaires dont les interfaces doivent être
standardisées afin de pouvoir les assembler dans une logique « plug and play » et
respecter leurs contraintes d’interopérabilité (Mezini & Karl, 1998)
- d’un modèle « constructeur » décrivant des structures topologiques génériques pour les
architectures mais aussi permettant d’instancier et de paramétrer les modèles de la
bibliothèque, notamment à l’aide de fonctions d’incidence arrière « post » associées
aux arcs de sortie des transitions ainsi qu’aux couleurs des jetons.
Enfin, il est clair que les définitions de la bibliothèque de modèles d’équipements ainsi que
du modèle « constructeur » sont intimement liées puisque les fonctions d’instanciation et de
paramétrage supportées par le modèle « constructeur » auront un impact sur le comportement
des modèles d’équipements. Autrement dit, si certaines couleurs seront spécifiques aux
modèles d’équipements, certaines couleurs complexes devront être partagées et communes
pour l’ensemble des modèles (équipements et « constructeur »). Dans la suite de ce chapitre,
nous avons pris le parti de présenter successivement le modèle « constructeur » (Ndiaye, et al.,
2016) puis les modèles d’équipements même si les effets de certains mécanismes de
paramétrage du modèle « constructeur » ne pourront être observés qu’ultérieurement sur les
modèles d’équipement.
A partir de la description des performances qui doivent être évaluées, l’objectif est de
générer automatiquement les observateurs requis et de définir leur insertion dans le modèle
CPN de l’architecture. Dans le formalisme défini par (Jensen, et al., 2007), ces observateurs
sont appelés « moniteurs ». Ces indicateurs de performances attendus ne pouvant, par
60
hypothèse, être anticipés, la définition des moniteurs ne peut être réalisée de manière statique
sur les modèles génériques d’équipement. Dès lors, la génération des moniteurs repose sur :
- la définition d’une structure générique de moniteurs pour chaque familles de
performances définies en section 3 et leur intégration, a priori, sur des places et
transitions dédiées dans les modèles d’équipements,
- le développement d’un algorithme permettant le relevé automatique des valeurs
statistiques observées lors de la simulation et de leur traitement en fonction des
performances à évaluer.
Enfin, l’indice de confiance souhaité par les ingénieurs en charge de l’élaboration des offres
d’architectures sera pris en compte pour déterminer les paramètres d’arrêt de la simulation et
le nombre d’histoires à simuler.
Comme indiqué dans la section précédente, la génération d’un modèle CPN de l’architecture
à évaluer est réalisée, d’une part, à partir d’un modèle générique décrivant une topologie type
d’architecture et embarquant des mécanismes d’instanciation et de paramétrage, et, d’autre
part, à partir d’une bibliothèque de composants génériques. Sur cette base, un algorithme de
génération procède à l’instanciation et au paramétrage du modèle de haut niveau en fonction
61
des spécifications d’architecture pour obtenir, de manière automatique, le modèle CPN d’une
architecture à évaluer.
Le modèle « constructeur », dont les principes sont présentés en Figure 33, peut être
caractérisé par trois éléments principaux :
- sa structure en termes de places et de transitions,
- un ensemble de couleurs associées aux jetons composant les marquages du réseau,
- un ensemble de fonctions d’incidence arrière (« post »).
Remarque
Dans le cadre de cette étude, nous ferons l’hypothèse que la famille des équipements de
communication est toujours présente dans le modèle « constructeur », qu’il n’existe
qu’un seul type de composant dans cette famille – le commutateur – et que les
architectures ne contiennent qu’une seule instance de commutateur. Cette hypothèse,
certes restrictive, ne modifie pas fondamentalement les principes d’instanciation et de
paramétrage supporté par le modèle « constructeur » et qu’elle est suffisamment
représentative à la fois de la démarche proposée et des besoins exprimés par Schneider
Electric.
Dans la suite du mémoire, la famille « réseaux » sera identifiée par l’indice i = 1 mais
sera associée à la couleur nommée Famille_Réseaux dans les modèles pour des raisons
de lisibilité. Les autres familles porteront donc des indices croissants à partir de i = 2
pour leur indentification et Famille_i avec � ≥ 2 pour la couleur associée. De même, le
commutateur, seul composant, par hypothèse, de la famille « réseaux », sera identifié par
composant_1_1 et sera associée à la couleur Composant_Reseaux dans les modèles.
62
Exemple
Familles : Automates Programmables Industriels (PLC), systèmes de supervision
(SCADA), postes clients, boitiers d’entrées/sorties déportés (I/O devices).
Composant : dans la famille PLC, il existe plusieurs offres dont le M340 ou le M580.
Paramètre : le PLC M580 possède deux variantes ayant chacune un nombre de requêtes
traitées par cycle qui diffère (12 requêtes pour la variante M580 20/20 et 50 requêtes
pour la variante M580 40/40).
init_Parameters_i_j () Tx_i_j
F_i
Init Famille_i
Architecture
init_Famille_i()
init_Archi()
famille_reseaux init_Parametres_reseaux()
init_Famille_reseaux()
architecture Init
Init
A F_1 parametres P_1_1 Reseaux
Familles
Reseaux
Architecture Famille_Reseaux Composant_Reseaux
Reseaux
63
Deux types de transitions de substitutions peuvent donc être distingués :
- les transitions de substitution décrivant les équipements de contrôle-commande,
- une transition de substitution décrivant les équipements de communication auxquels
sont connectés les équipements de contrôle-commande ; contrairement aux
équipements de contrôle-commande, cette transition de substitution est unique puisque
nous avons fait l’hypothèse d’un composant unique dans la famille des équipements de
communication.
Pour rappel, une transition de substitution fait référence à un modèle CPN de niveau
hiérarchique inférieur par l’intermédiaire d’une relation de correspondance entre les places
d’entrées et de sorties de la transition de substitution et celles du modèle CPN (port) auquel
elle fait appel. Il s’ensuit qu’une transition de substitution du modèle « constructeur »
(composant i_j) sera associée à un et un seul modèle CPN stocké en bibliothèque. Elle
représentera alors le comportement d’un type de composant présent dans l’architecture mais
nécessitera un traitement complémentaire pour représenter le comportement de plusieurs
équipements appartenant au même type de composant (et donc à la même famille). Ce point
est pris en charge par le sous-ensemble dédié à l’instanciation et au paramétrage.
Enfin, comme indiqué en début de chapitre, le modèle « constructeur » est défini pour une
classe d’architecture dont les familles et composants sont supposés connus. L’ajout de
nouvelles familles ou de nouveaux composants imposera, bien entendu, la redéfinition d’un
modèle « constructeur » approprié. A titre d’exemple, la Figure 34 présente un modèle
« constructeur » proposant trois familles : famille réseaux (place F_1), une deuxième famille
(place F_2) et une troisième famille (place F_3). Les couleurs associées aux places de ces
familles se définissent respectivement par Famille_Reseaux, Famille_2 et Famille_3. La
Famille_2 comporte deux composants nommés C_2_1 et C_2_2 dont leurs couleurs sont
respectivement Composant_2_1 et Composant_2_2 et la Famille_3 comporte un composant
unique appelé C_ 3_1 dont la couleur est Composant_3_1.
Notons que, même s’ils figurent dans le modèle « constructeur », les couleurs des
Composants 2_2 et 3_1 ne sont pas nécessairement présents dans l’architecture dont on
souhaite évaluer les performances. En effet, les mécanismes d’instanciation, qui seront détaillés
par la suite, permettent de choisir, parmi les familles et composants proposés par le modèle
« constructeur », quels sont ceux qui seront réellement utilisés dans une proposition
d’architecture.
64
Tx_2_1
composant_2_1 init_Parameters_2_1 ()
init_Composant_2_1() Init
Composant
C_2_1 parameters P_2_1
2_1
2_1 Rx_2_1
Composant_2_1
1 Composant_2_1
Init Composant_2_1
Composant_2_1
famille_2
Initialisation composant
2
Tx_2_2
composant_2_2 init_Parameters_2_2 ()
Init
Composant
C_2_2 parameters P_2_2
F_2 init_Composant_2_2() 2_2
2_2
Rx_2_2
Init Composant_2_2 Composant_2_2
Famille_2
Architecture Composant_2_2
Composant_2_2
init_Famille_2()
init_Archi()
init_Famille_reseaux() famille_reseaux
65
architecture Init init_Parametres_reseaux()
Init
A F_1 parametres P_1_1 Reseaux
Familles
Reseau
Architecture Famille_Reseaux Composant_Reseaux
Reseaux
init_Famille_3()
F_3
Famille_3
Remarque
La séquence d’instanciation de la famille « réseaux » diffère légèrement des autres
familles d’équipements. En effet, compte tenu de l’hypothèse de composant unique, la
transition init_composant_reseaux n’est plus nécessaire et la transition
init_parametres_reseaux ne dépose qu’un seul jeton dans la place C_r.
Si cette hypothèse devait être levée, le modèle « constructeur » devrait être modifié de
la façon suivante. Une transition init_composant_réseau ainsi que n places C_r en sortie
de cette transition devraient être ajoutées dans le modèle « constructeur » avec n
correspondant au nombre des types de composants « réseau » présents dans la famille
« réseau ». De plus, les places Rx et Tx devraient être reliées aux composants réseaux
auxquels les équipements sont reliés.
Le marquage initial du modèle « constructeur » est constitué d’un jeton unique non coloré
présent dans la place nommée Initialisation. L’instanciation et le paramétrage du réseau CPN
correspondant à l’architecture, dont on souhaite évaluer les performances, repose sur :
- la définition d’un ensemble de couleurs caractérisant les architectures, les familles, les
composants ainsi que leurs paramètres,
- un ensemble de fonctions d’incidence arrière permettant, depuis le franchissement de
la première transition située en amont de la place Initialisation d’effectuer les
traitements nécessaires à la transformation des couleurs selon les niveaux, la création
de jetons ou encore l’affectation de valeurs aux paramètres des composants.
Les deux sections suivantes détaillent ces deux points relatifs aux couleurs et aux fonctions
d’incidence arrière.
66
Convention de notation
Les ensembles de couleurs sont désignés par une lettre grecque majuscule alors que les
éléments de ces ensembles (les couleurs), représentés par une variable, sont désignés par
une lettre grecque minuscule. Le marquage d’une place associée à un ensemble de
couleur � sera défini, selon les notations utilisées par (Jensen, et al., 2007), par : � �
où x est le nombre de jeton présents dans la place et � une couleur appartenant à �.
Au niveau le plus bas de la hiérarchie, un ensemble de couleurs est définie pour chaque
paramètre associé à un équipement. Ces couleurs élémentaires possèdent un type (comme par
exemple un entier, un booléen, une chaine de caractère, …).
Définition 1
Soit �u_v_w un ensemble de couleurs caractérisant un paramètre k d’un composant i_j, de
type �w . Les éléments de l’ensemble �u_v_w sont les couleurs �u_v_w ; ces dernières
peuvent prendre toutes les valeurs admissibles, de type �w , du paramètre k.
Remarque
Dans l’outil CPN Tools, utilisé pour le développement du prototype présenté au chapitre
4, la primitive Colset du langage ML permet l’association d’un type de donnée à un
ensemble de couleurs.
L’ensemble de couleurs associé aux jetons présents dans la place C_i_j de la Figure 33 est
identique à celle des jetons présents dans la place P_i_j. Cet ensemble est construit comme le
produit cartésien entre les ensembles élémentaires de couleurs associées aux paramètres d’un
composant i_j.
Définition 2
L’ensemble de couleurs associé à un composant i_j, noté Δi_j, est défini par :
Color Δu_v = �u_v_l × �u_v_m × … × �u_v_sÅÇ
où Kij est le nombre de paramètres du composant i_j.
Les éléments de cet ensemble sont les variables δu_v qui caractériseront les jetons en
sortie des transitions init_composant_i et init_parametres_i_j. La variable δu_v est un
Kij-uplet {�u_v_l , �u_v_m … , �u_v_sÅÇ } constituée des valeurs du jeu de paramètres associés à
un composant.
Remarque
Dans l’outil CPN Tools, la primitive Record du langage ML permet de construire un
ensemble de couleurs comme un produit cartésien d’ensemble de couleurs élémentaires.
Color Δu_v = ������ �u_v_l : �u_v_l ∗ �u_v_m : �u_v_m ∗ … ∗ �u_v_sÅÇ : �u_v_sÅÇ
67
La différence entre les jetons des places C_i_j et P_i_j est relative à l’affectation des valeurs
des variables �w qui n’est pas encore réalisée pour la place C_i_j, alors qu’elle l’est pour les
jetons de la place P_i_j.
Exemple
Le composant M580 de la famille des PLC possèdent entre autre 2 paramètres : le premier,
de type entier caractérisant le type de PLC, et le second, de type entier, caractérise le temps
de traitement de la logique automate. Ces paramètres sont codés dans deux ensembles de
couleurs contenant deux couleurs : 20 ou 40 pour l’ensemble de couleurs de la gamme, 50
ou 100 pour l’ensemble de couleurs temps de traitement.
L’ensemble de couleurs des jetons de la place composant_M580 est un ensemble
complexe �������� × ��������. Un jeton présent dans cette place est donc défini par :
� ���: ��������, ���: �������� .
L’ensemble de couleurs caractérisant les jetons de la place instance_paramétrée_M580 est
identique à celui des jetons de la place composant_M580. En revanche, les variables
associées aux couleurs sont affectées : un jeton pourra par exemple être défini par :
1 20: �����, 50: �������_�������� ou 1 40: �����, 100: �����_�������� .
L’ensemble de couleurs associé aux familles de composants, c’est à dire caractérisant les
jetons présents dans la place F_i de la Figure 33, est également un ensemble complexe. A la
différence de l’ensemble de couleurs associé aux composants construit comme un produit
cartésien de couleurs élémentaires, celui-ci est construit comme l’agrégation des ensembles de
couleurs associés à chacun des composants d’une même famille. En effet, le jeton de la place
F_i porte l’ensemble des informations relatives à chaque composant de cette famille. Il est donc
défini comme une liste de Kij-uplets, chaque Kij-uplet étant associé un composant donné.
Définition 3
L’ensemble de couleurs associé à une famille i, noté Ωi, est défini par :
Color Ωu = �u_l ∪ �u_m ∪ … ∪ �u_qÅ
Remarque
Dans l’outil CPN Tools, la primitive Union du langage ML permet de construire les
couleurs complexes comme des unions de couleurs élémentaires.
Color Ωu = ����� δu_l : �u_l + δu_m : �u_m + … + δu_qÅ : �u_qÅ
68
Enfin, au niveau le plus haut, l’ensemble de couleur associée à l’architecture est construit
comme une agrégation des couleurs caractérisant les différentes familles présentes en son sein.
Définition 4
L’ensemble de couleurs associé à une architecture, noté Γ, est définie par :
Color Γ = �l ∪ �m ∪ … ∪ �r
où Ωu est la couleur complexe associée à la famille i et F le nombre de familles
différentes présentes au sein d’une architecture.
Une variable γ, portée par le jeton en sortie de la transition nommée init_archi, est
associée à la couleur Γ. Cette variable est une liste (�l , �m , … , �r ) de longueur F
constitué des couleurs associées aux familles de l’architecture.
L’affectation des couleurs caractérisant l’architecture, les familles, les composants et enfin
les paramètres dépend bien sûr de la topologie de l’architecture dont on souhaite évaluer les
performances. Nous faisons donc l’hypothèse que les informations suivantes sont connues (par
exemple importées depuis un outil dédié à l’élaboration d’offre commerciale comme nous le
verrons au chapitre 4) :
- les variables �u_v , �u , � caractérisant une architecture « type », c’est-à-dire la
déclaration des familles et des composants qui peuvent la composer,
- le nombre d’instances de chaque composant présents dans l’architecture, défini par
la fonction instance (composant_i_j) qui associe à chaque composant une valeur
entière,
- les valeurs des variables �u_v_w , fournies sous la forme d’une liste ordonnée des jeux
de paramètres �u_v = (�u_v_l , �u_v_m , … , �u_v_w ) associés à chaque instance de
composant. Cette liste de variables �u_v est notée param_i_j.
Exemple
Reprenons le modèle « constructeur » de la Figure 34 pour lequel nous supposons que
chaque composant est caractérisé par 2 paramètres à valeur entière. Considérons une
architecture, dont on souhaite générer le modèle, constituée d’une instance du
composant_1_1 (composant réseau) – dont les paramètres ont pour valeur (�l , �l ) – et
de deux instances du composants 2_1 – dont les paramètres ont pour valeur (�l , �l ) et
(�m , �m ). Aucune instance du composant_2_2 ni aucune instance de composant de la
famille_3 ne sont utilisées dans l’architecture.
69
Ces données, supposées connues et utilisées comme paramètres d’entrée des fonctions,
correspondent aux variables suivantes :
Variables associées aux couleurs
γ = (�l , �m , ���), �l = (δl_l ), �m = (δm_l , ���),
δl_l = {�l_l_l , �l_l_m }, δm_l = {�m_l_l , �m_l_m },
Déclaration des instances
instance(composant_1_1) = 1, instance(composant_2_1) = 2,
instance(composant_2_2) = instance(composant_3_1) = 0
Paramètres
�����_1_1 = {�l_l_l = �l , �l_l_m = �l }
�����_2_1 = ( {�m_l_l = �l , �m_l_m = �l }, {�m_l_l = �m , �m_l_m = �m } )
Cette fonction est placée sur l’arc sortant de la transition init_archi. Cette transition a pour
place d’entrée une place unique – la place initialisation – et pour place de sortie une place
unique – la place architecture. Dans le marquage initial, la place initialisation contient un jeton
unique non coloré. Le franchissement de la transition init_archi provoque le dépôt d’un jeton
coloré unique dans la place architecture en lui affectant la couleur γ.
Définition 5
La fonction init_archi() est définie par :
init_archi () = 1 (γ: Γ) = 1 (�l : �l , �m : �m , … , �r : �r )
Définition 6
La fonction init_famille_i() est définie par :
init_famille_i () = 1 (����u �l , �m , … , �r ) = 1 (δu_l : �l , δu_m : �m , … , δu_qÅ : �u_qÅ ) où
proji est la fonction de projection sur le ième terme.
70
Remarque
Si une famille_i, proposée dans le modèle « constructeur », n’est pas utilisée dans une
architecture donnée soumise à évaluation, alors la variable �u qui lui est associée sera
égale à nil. En conséquence, l’exécution de la fonction init_famille_i() aura pour effet de
déposer dans la place F_i un jeton caractérisé une liste vide qui ne validera pas le
franchissement des transitions placées en aval de cette place. En d’autres termes, cela
revient à forcer le marquage de la place F_i à zéro.
Définition 7
Remarques
a) L’affectation des valeurs des paramètres n’étant pas réalisée à cette étape, les
variables �u_v_w seront affectées de la valeur nil.
b) Pour la famille « réseaux », la transition init_composant_1 (ou
init_composant_réseaux) n’existe pas dans le modèle « constructeur » dans la
mesure où nous n’avons considéré qu’un composant unique, le commutateur. Par
71
conséquent, la fonction init_composant_1 (ou init_composant_réseaux) n’est pas
définie.
Le rôle de cette place est d’affecter, à chaque jeton déposé dans la place P_i_j, les variables
�u_v_w avec les valeurs extraites de la liste de jeux de paramètres param_i_j. Conformément aux
définitions précédentes, cette liste est de longueur instance(composant_i_j).
Définition 8
La fonction init_parametres_i_j() est définie de la manière suivante :
init_parametres_i_j() = 1 (�����_�_� :: δu_v )
où δu_v = (�u_v_l , �u_v_m , … , �u_v_w ) et liste :: item désigne la fonction d’extraction (et de
suppression) du dernier élément de la liste liste.
Remarque
Dans le cas particulier de la famille réseau, param_1_1 est une liste composée d’un seul
élément (puisque nous avons fait l’hypothèse d’une seule instance de commutateur), la
valeur �l_l_l sera définie comme une liste de couples composée de l’identifiant unique
d’un composant et du port de communication auquel il est associé. Ce point sera plus
amplement détaillé dans la section 3.2.2.
72
l’ensemble des informations relatives aux familles présentes dans l’architecture dont on
cherche à générer le modèle.
c) Franchissement de la transition init_familles : un jeton, de couleur �l = (δl_l ) est
déposé dans la place F_1 (famille_reseaux) et un jeton de couleur �m = (δm_l , ���) est
déposé dans la place F_2 (Figure 35-c). Aucun jeton n’est déposé dans la place F_3.
d) Franchissement des transitions init_composant_i : la transition init_composant_2
provoque le dépôt de deux jetons de couleur δm_l = {�m_l_l = ���, �m_l_m = ���} dans la
place C_2_1 alors qu’aucun jeton n’est déposé dans la place C_2_2 (Figure 35-d). La
transition init_composant_3 n’est pas franchissable. Dans cet exemple la variable �u_v_w
est nommée parametre_i_j_k.
e) Franchissement des transitions init_parametres_i_j : la transition init_parametres_1_1
provoque le dépôt d’un jeton de couleur {�l_l_l = �l , �l_l_m = �l } dans la place P_1_1
tandis que la transition init_parametres_2_1 dépose deux jetons de couleur respective
{�m_l_l = �l , �m_l_m = �l } et {�m_l_l = �m , �m_l_m = �m } dans la place P_2_1. Les
transitions init_parametres_3_1 et init_parametres_2_2 ne sont pas franchissables, il
n’y a donc pas de composant de ce type dans l’architecture à évaluer (Figure 35-e).
Remarques
Les franchissements des transitions décrites dans le scénario ci-dessus s’effectuent à
temps nul. Cette propriété est exploitée pour s’assurer que le cycle d’instanciation et de
paramétrage soit terminé – c’est à dire que toutes ses transitions validées soient tirées –
avant toute évolution des modèles génériques de composant associés aux transitions de
substitutions. La solution adoptée est d’associer aux premières transitions des modèles
génériques de composant une temporisation minimale d’une unité de temps.
1
Iitialisation
1
Iitialisation 1 1`()
Init
Architecture
F_2
architecture Init
A 1 F_1
Famille
init_Famille_3 ()
F_3
Architecture Famille_3
73
init_Composant_2_1()
C_2_1
1
Composant_2_1
Iitialisation
famille_2 Init
composant
2
C_2_2
Init 1`(Composant__2__1,null)
init_Composant_2_2()
Architecture 1
Composant_2_2
F_2
1`Composant__Reseaux
init_Famille_reseaux()
1
architecture famille_Reseaux Init
Init
A F_1 composant
Famille
Reseau
Architecture Famille_Reseaux
init_Famille_3 ()
F_3
Famille_3
init_Composant_3_1 ()
Init
composant C_3_1
famille_3 3
Composant_3_1
1`{parametre_2_1_1=null,parametre
_2_1_2=null}
init_Famille_reseaux() init_Parametres_reseaux()
1`{parametre_1_1_1=20,parametre
architecture famille_Reseaux Init
Init _1_1_2=10}++
A F_1 composant P_1_1 2
Famille 1`{parametre_1_1_1=40,parametre
Reseau
_1_1_2=10}
Architecture Famille_Reseaux Composant_Reseaux
init_Famille_3 ()
F_3
Famille_3
init_Composant_3_1 () composant_3_1
74
1`{parametre_2_1_1=21,parametre
init_Composant_2_1() composant_2_1 Init init_Paramete_2_1() _2_1_2=50}++
C_2_1 parameters P_2_1 2
1`{parametre_2_1_1=22,parametre
1 2_1
_2_1_2=100}
Composant_2_1 Composant__2_1
Iitialisation
famille_2 Init
composant
2
init_Famille_reseaux() init_Parametres_reseaux()
1`{parametre_1_1_1=20,parametre
architecture famille_Reseaux Init
Init _1_1_2=10}++
A F_1 composant P_1_1 2
Famille 1`{parametre_1_1_1=40,parametre
Reseau
_1_1_2=10}
Architecture Famille_Reseaux Composant_Reseaux
init_Famille_3 ()
F_3
Famille_3
init_Composant_3_1 () composant_3_1
75
Les paramètres des composants peuvent se décomposer en deux grandes familles :
- les paramètres associés à des caractéristiques techniques intrinsèques à chacun des
composants qui traduisent essentiellement les capacités du composant (par exemple,
une taille mémoire, un nombre de requêtes traitées par cycle, …) ;
- les paramètres associés à l’intégration du composant au sein d’une architecture
donnée (par exemple, les flux de messages émis ou reçus par le composant, ses liens
de connexion avec les autres éléments de l’architecture, …).
Comme nous l’avons indiqué précédemment, les composants seront traités de manière
différente selon qu’ils appartiennent à une famille d’équipements supportant un service
d’automatisation ou à une famille d’équipements de communication. Les deux sections
suivantes abordent la présentation des modèles génériques associés à ces deux classes.
76
Dans le contexte avant-vente, les modèles comportementaux des composants contiendront
des incertitudes relatives notamment à leurs performances. En effet, celles-ci peuvent être
sujettes au contexte d’utilisation du composant (notamment de sa charge). Certaines places des
modèles comportementaux seront donc P-temporisées avec une durée de temporisation
déterminée par une distribution de probabilité dépendant de la nature de l’incertitude. A titre
d’exemple, le temps de traitement d’une requête par le processeur d’un automate
programmable sera déterminé à l’aide d’une loi uniforme.
Enfin, pour des motifs relatifs à la lisibilité, la maintenabilité et la réutilisabilité des modèles,
les modèles génériques pourront éventuellement être structurés hiérarchiquement à l’aide de
transitions de substitution encapsulant différents niveaux de modélisation et d’abstraction.
Ces modèles étant spécifiques pour chaque composant, ils ne seront pas décrits de manière
plus détaillées dans le cadre de ce chapitre, mais plutôt dans le chapitre suivant.
message_aperiodique()@+temps_demerrage()
message_periodique ()@+temps_demerrage()
Parametre Parametre
message message
periodique aperiodique
Message Message
message@+Frequence message message message@+Loi_distribution ()
parameter_i_j distrib
P_i_j Generateur Generateur
parametres
message message
In
periodique aperiodique
Composant
message
message
Envoi
Envoi
message
message
aperiodique
caracteristique_techniques () periodique
Message
Message
attribut_composant Comportement
Comportement composan
composantt
Paquet Paquet
Envoi Reception
paquet paquet
Parametre
interface Interface communication
communiction
Interface
Interface de commun
communication
ication
attribut_communication
Tx_i_j Rx_i_j
Outt
Ou In
Paquet Paquet
77
Parametre_attribut_composant en entrée de la transition de substitution nommée
comportement_composant. Ces paramètres sont exploités dans les modèles comportementaux
des équipements.
Les places Rx_i_j et Tx_i_j sont les mêmes que sur le modèle « constructeur » (RdP
hiérarchique selon (Jensen, et al., 2007))
Dans le cadre de ce mémoire, tous les composants sont considérés comme des clients ou des
serveurs : un client émet des messages à destination d’un serveur qui les reçoit, les traite et
envoie une réponse au client initiateur de la requête. En mode client, l’émission de messages
peut être réalisée selon deux modes :
- un mode périodique où les dates d’émission des messages suivent une temporisation
périodique ; ce mode est utilisé pour l’exécution périodique de services tels que la
mise à jours et le rafraichissement des valeurs du procédé à partir du système
d’acquisition et de commande SCADA ;
- un mode apériodique où les émissions des messages peuvent survenir à une date
quelconque donc aléatoire; ce mode est utilisé dans le cas de services apériodiques
tels qu’une sollicitation émanant d’un opérateur de conduite ou encore une
acquisition de variable lors du changement d’état d’un capteur.
Ces flux de messages sont caractérisés par un ensemble de couleurs, permettant d’identifier
notamment les typologies de flux et leurs destinataires, associé aux places nommées
parametre_message_apériodique, envoi_message_apériodique, envoi_message_périodique et
parametre_message_périodique.
Définition 9
L’ensemble de couleurs associé à un jeton de couleur message, est définie par :
Color ������� = ������ × ����������� × ����������� × ������������
où :
- source est un ensemble de couleurs (de type entier) caractérisant l’identifiant
unique de l’émetteur du message,
- destination est un ensemble de couleurs (de type entier) caractérisant
l’identifiant unique du destinateur du message,
- typeMessage est un ensemble de couleur (de type énumération) caractérisant
le type de message envoyé
- interArrivee est un ensemble de couleurs (de type entier) qui définit la durée
entre l’émission de deux messages. Cette durée peut être fixe (communication
périodique) ou aléatoire (communication apériodique).
Exemple
Les composants de type SCADA génèrent de manière périodique 3 types de message
(Alarms, Display, Trend) à destination des automates afin de récupérer les différents
états du système. Ces messages sont envoyés suivant des périodes différentes en fonction
78
de la criticité du groupe. Par exemple les messages du groupe Alarms dont le rôle est de
remonter au niveau du SCADA les alarmes et les défaillances du système sont envoyés
plus fréquemment que ceux du Display dont le rôle est de fournir le statut d’un
équipement (On, Off, Running, etc…).
79
En accord avec la notation de Jensen (voir chapitre 2), les paramètres de temporisation sont
portés par les arcs entrant sur ces places depuis les transitions générateur_message_périodique
et générateur_message_apériodique selon les principes suivants :
- en mode périodique, l’émission de messages est cadencée par l’introduction d’une
temporisation à durée fixe correspondant à la période d’émission ; cette
temporisation est définie par la primitive message@+Frequence portée par l’arc
reliant la transition generateur_message_periodique et la place
paramètre_message_periodique ; cette primitive a pour effet de ne rendre disponible
un jeton déposé dans cette place qu’à la date correspondant à la date de dépôt
incrémentée de la fréquence. La valeur de Frequence découle de la valeur de la
couleur interArrivee contenue dans le jeton message ;
- en mode apériodique, les principes restent les mêmes en remplaçant la durée fixe par
une durée dont les valeurs est obtenue par un tirage aléatoire selon une distribution
de probabilité donnée sous la forme : generation_message@+Loi_distribution(). La
valeur de la distribution de probabilité Loi_distribution() est contenue dans la
couleur interArrivée contenue dans le jeton message.
Les jetons ainsi générés et déposés dans les places envoi_message_periodique et
envoi_message_aperiodique sont ensuite traités par le modèle comportemental.
Définition 10
L’ensemble de couleur paquet est défini de la manière suivante :
Color ������ = ������ × ����������� × ����������� × �������� × ������
× ���������
où :
- Source et destination définissent les identifiants uniques du composant émetteur
et du composant récepteur découlant du jeton de couleur message.
- typeService est le type de service demandé par l’émetteur du message ; il résulte
du type de message émis.
80
- Séquence définit le numéro de séquence du paquet afin de permettre son
identification ultérieure (notamment lorsqu’il transitera sur le réseau).
- Taille définit la taille du paquet, la valeur de celle-ci dépend du type de service.
- TimeStamp définit l’heure et la date auquel le paquet a été émis.
Exemple
Les messages envoyés par le SCADA correspondent à des services fournis par les
automates programmables. Lors de l’envoi du paquet vers le réseau, le modèle
comportemental du SCADA transforme l’information relative au type de message (par
exemple Alarm, Display, Trend) vers un type de service requis (par exemple Messaging
fast ou Messaging Low). La table de conversion est fixe et définie pour chaque
composant. Par exemple, les messages de type « Alarm » ou « Display » correspondent
à un type de service « Messaging Fast » alors que les messages de type « Trend » seront
associés à un type de service « Messaging Low ».
Remarque
La couleur horodatage est un attribut nécessaire pour calculer la durée entre une date
d’émission et une date de réception, et qui sera donc très utile pour l’évaluation des temps
de réponse. La valeur de celle-ci est obtenue grâce à la fonction Time(), qui une fonction
native dans (Jensen, et al., 2007).
81
de type paquet dans la queue de la liste grâce à la primitive buffer^^[paquet]. Le franchissement
de la transition ‘Sortie Buffer’ induit à l’extraction du premier élément de la liste grâce à la
primitive paquet::Buffer.
buffer 1`[]
1 1`[ ]
buffer
Envoie paquet Entree Buffer Sortie paquet
Tx_i_j
message Buffer FIFO Buffer
Buffer^^[paquet] (paquet)::Buffer
In Out
BUFFER
Paquet
Paquet
La section 4 de ce chapitre détaille la définition des observateurs et leur placement sur les
composants de l’architecture.
Le modèle du composant réseau se base sur une modélisation d’un commutateur réseau dont
le nombre de port correspond au nombre de composants génériques dont dispose le modèle
« constructeur ». Le rôle de ce composant est d’aiguiller (commutation) l’ensemble des jetons
82
envoyés/reçus vers les interfaces de communication des composants génériques. Le modèle du
composant réseau est englobé au sein de la transition de substitution réseaux dans le modèle
« constructeur » (Figure 34).
Le modèle général en RdP du composant réseau peut être défini comme l’indique la Figure
38. Celle-ci représente un composant réseau ne comportant qu’un seul port de connexion
associé au jème composant appartenant à l’ième famille de composant. Ce port est représenté par
une transition de substitution. Celle-ci est connectée avec les deux ports de transmission et de
réception de ce composant respectivement Tx_i_j et Rx_i_j ainsi qu’en sortie à une place ‘buffer
commutateur’ qui constitue le buffer interne d’un commutateur où les jetons sont stockés avant
d’être commutés vers le port approprié. La place ‘table de commutation’ contient l’ensemble
de jetons permettant la commutation. Ceux-ci sont générés et paramétrés lors du
franchissement de la transition ‘init table_commutation’.
Parametrage
composant
parameter_1_1
Init
table commutation
init_Tables ()
Table
commutation
Tx_i_j
Rx_i_j
In
Out
Port_i_j
Port_i_j
Port_i_j
Buffer
commutateur
Cette création de jetons se fait à travers la fonction init_Tables () qui récupère sur la place
nommée ‘Parametrage composant’ l’ensemble des informations liées à la topologie de
l’architecture. Les jetons contenus sur cette place découle de la fonction d’instance arrière
‘init_Parametres_reseaux()’ présente sur le modèle de constructeur de la Figure 33 dont le rôle
est le paramétrage du composant réseau.
83
Les jetons résultants générés par la fonction init_Tables () sont composés de l’identifiant du
j composant appartenant à l’ième famille ainsi que de l’identifiant unique du port (Ndiaye,
ème
et al., 2016) reliant le jème composant appartenant à l’ième famille au modèle générique du réseau.
En définitive, la fonction init_Tables() est une fonction dédiée au composant réseau qui :
- dépose dans la place Table commutation autant de jetons qu’il y a d’instances de
composants de toutes les familles d’équipements d’automatisation (c’est à dire exceptée
la famille réseau) dans une architecture donnée,
- associe à chaque jeton déposé une couleur constituée d’un couple (identifiant du
composant, identifiant de son port de connexion).
Définition 11
La fonction init_table() est définie de la manière suivante :
init_table()
upr vpqÅ
Parametrage
composant
parameter_1_1
Init
table commutation
init_tables ()
Table
commutation
Port composant_2_1
composant_2_1 Port component_2_2
component_2_2 Port component
component_3_1
_3_1
Buffer
commutateur
84
Ce modèle est composé de 3 transitions de substitutions appelées ‘port_2_1’, ‘port_2_2’,
‘port_3_1’ représentant les connexions entre les composants génériques ‘composant_2_1’,
‘composant_2_2’, ‘composant_2_1’ et le modèle générique du commutateur. Cette connexion
se fait à travers leurs places respectives Tx_2_1 et Rx_2_1, Tx_2_2 et Rx_2_2 et Tx_3_1 et
Rx_3_1 qui représentent l’interface de communication des différents composants génériques.
Chacun de ces ports est relié à la place ‘buffer commutation’ représentant le buffer interne du
commutateur. Ainsi, pour chaque composant générique modélisé, un port lui est associé dans
le modèle générique de composant. Chaque port possède un numéro unique permettant son
identification dont la valeur est affectée lors de la construction du modèle de constructeur.
La commutation des jetons vers le port de destination se fait dans le modèle de fabrique de
commutation auquel fait appel la transition de substitution Port_i_j. Comme indiqué dans la
section précédente, ce modèle est associé à un et un seul type de composant i_j. Le modèle de
fabrique de commutation, présenté sur la Figure 40, est composé de cinq places :
- une place d’entrée Tx_i_j et une place de sortie Rx_i_j, associées à l’ensemble de
couleurs paquet,
- une place Buffer commutateur, associée à une couleur de type Liste contenant une liste
ordonnée de jetons de couleur paquet transmis par un composant,
- une place ‘Table commutation’ où sont stockés les jetons contenant les informations de
commutation obtenu par exécution de la fonction init_table () ; les couleurs de ces jetons
sont des couples (identifiant du composant, identifiant du port)
- une place id Port i_j qui contient le jeton portant comme couleur, de type entier,
l’identifiant unique du port associé aux jème composant de la ième famille. La valeur de
cet identifiant unique est définie de manière statique lors de l’élaboration du modèle de
constructeur pour l’ensemble des composants génériques.
La transition Entree_buffer a pour rôle de stocker dans un buffer, selon une logique FIFO,
les messages émis par les composants et en attente de commutation.
La transition Sortie_buffer réalise l’aiguillage des jetons de couleurs paquet. Elle ne sera
franchissable que pour les jetons contenus dans la place Buffer commutateur à destination d’un
composant IDcomposant ayant comme identifiant de port IDport (association définie dans la
table de commutation), et dont celui-ci équivaut au numéro de port numeroPort auquel le
composant est connecté dans la topologie de l’architecture instanciée. Cette condition de
franchissement est matérialisée par la garde [IDPort = numeroPort] portée par la transition
Sortie_Buffer. En d’autres termes, cette garde permet le franchissement de la transition
Sortie_Buffer par les jetons paquet par rapport aux valeurs des couleurs destinations, de
l’identifiant du port et du numéro de port. C’est à dire les jetons contenus dans la place
Table_commutation ayant, pour identifiant de port, la valeur du numéro du port auquel le
composant est connecté dans la topologie.
85
Tx_i_ j Table
In In
commutation
(source,destination,type,data,sequence)
Entree
Buffer
(IDcomposant,IDport)
Buffer
Buffer^^[(source,destination,type,data,sequence)]
Buffer
commutateur
In/Out
Buffer
[IDport = numeroPort]
CommutationJeton((IDcomposant,IDPort),numeroPort,Buffer)@+TempsCommutation ()
Rx_i_ j
Out
A partir d’un modèle « constructeur » tel que défini en section 3.1 et d’une bibliothèque de
composants génériques telles que définie en section 3.2, la génération automatique d’un modèle
CPN représentant le comportement d’une architecture donnée repose sur les phases suivantes :
- Sélection et adaptation d’un modèle « constructeur » : pour rappel, un modèle
« constructeur » est construit pour un ensemble d’architectures dont les familles et
composants sont connus ; par construction, un modèle « constructeur » intégrant la
86
totalité des équipements d’un fournisseur sera donc adapté pour toute architecture
faisant appel (ou non) à ces composants. Si toutefois, le découpage en familles /
composants devait ne pas convenir, il serait alors nécessaire d’élaborer un nouveau
modèle « constructeur » en suivant les mêmes principes que ceux indiqués
précédemment.
- Importation de la description semi-formelle d’une architecture : l’import consiste à
mettre les données issues de la conception d’architectures en avant-vente (composants,
topologie, paramètres, flux de communication) sous le format des ensembles de couleurs
associés aux places du modèle « constructeur » (et par conséquence aux places d’entrée
des modèles de composant).
- Tir des transitions du modèle « constructeur » : les fonctions d’incidence arrière
présentes dans ce modèle contribuent, lors du tir des transitions, à l’instanciation et au
paramétrage des composants via l’affectation de couleurs aux jetons.
- Tir des transitions d’initialisation dans les modèles génériques de composant : le
paramétrage des composants est poursuivi par le tir de ces transitions qui contribuent à
distribuer aux places des modèles de composant les éléments de paramétrage, sous
forme de couleurs, dont celles-ci ont besoin.
Comme indiqué précédemment l’effort pour la génération d’une architecture une fois que le
modèle de constructeur, les composants génériques ainsi que l’ensemble des couleurs ont été
définis se situe donc sur cette assignation de valeurs. Celle-ci se fait automatiquement à travers
l’algorithme défini ci-dessous.
87
- la phase 1 peut nécessiter l’intervention d’un expert pour ajuster le modèle CPN
« constructeur » si celui-ci ne correspond pas à une topologie standard évaluée en phase
d’avant-vente (notamment si de nouvelles familles ou de nouveaux types de
composants sont considérés).
L’effort de modélisation peut donc être considéré comme négligeable en phase d’avant-
vente dans la mesure où il se limite à la description informelle d’une architecture selon un
format prédéfini compatible avec la définition du modèle CPN « constructeur ». Ce format
correspond, en fait, aux modèles UML présentés en fin de chapitre 1 et fera l’objet d’une
modélisation XML dans le chapitre 4. Cette automatisation de la phase de construction des
modèles supportant l’évaluation des performances présente donc un potentiel significatif en
termes de ratio entre le nombre d’architectures évaluables et l’effort de modélisation (en temps
et en coût).
Comme défini dans le chapitre 1, les performances à évaluer dans les architectures de
contrôle-commande sont les temps de réponses entre un émetteur et un récepteur et le temps
cycle des composants.
88
3.4.2.1 Temps de réponse
Pour chaque flux de messages dont il souhaite évaluer le temps de réponse, le système
intégrateur devra indiquer : le mode à évaluer (aller simple pour les messages de type alarme
ou aller-retour pour les messages de type commande), l’identifiant de l’émetteur et l’identifiant
du récepteur.
Dans tous les cas, l’ingénieur en avant-vente devra indiquer les identifiants des composants
dont il souhaite évaluer les temps de cycle ainsi que le mode de fonctionnement.
L'analyse de performance utilisant les réseaux de Petri colorés et temporisés définis par
(Jensen, et al., 2007) s'appuie notamment sur la simulation. Au cours de celle-ci, le réseau peut
contenir et générer beaucoup d'informations quantitatives sur la performance d'un système,
89
telles que la longueur de file d'attente, le temps de réponse, le débit, etc. Ces informations
peuvent être extraites du modèle en examinant les marquages ou les tirs des transitions puis
enregistrées à l’aide de moniteurs (Jensen, et al., 2007).
Un moniteur est chargé de collecter des données statistiques lors de la simulation Il constitue
un mécanisme utilisé pour observer, inspecter, contrôler ou modifier une simulation d'un réseau
de Petri coloré et temporisé. De nombreux moniteurs différents peuvent être définis pour un
réseau de Petri donné.
Les moniteurs peuvent inspecter à la fois les marques des places et les tirs de transitions lors
d'une simulation. La collecte des informations peut s’effectuer périodiquement ou bien sur
occurrence d’un événement particulier (tir d’une transition par exemple).
Sur la base des informations collectées, les moniteurs peuvent également effectuer des
traitements ayant un intérêt vis à vis de la performance à évaluer.
Par exemple, un collecteur de données qui mesure la longueur d'une file d'attente de paquets
peut calculer à la fois la longueur moyenne de la file d'attente ainsi que la longueur maximale
de la file d'attente. Parmi les traitements réalisables par un moniteur, nous pouvons citer, à titre
d’exemple :
- arrêter une simulation lorsqu'un endroit particulier est vide,
- compter le nombre de fois qu'une transition se produit,
- mettre à jour un fichier lors du franchissement d'une transition avec une variable liée à
une valeur spécifique à observer,
- calculer le nombre moyen de jetons dans une place.
(Jensen, et al., 2007) ont défini dans leur outil CPN-Tools des moniteurs natifs dont les
fonctions ont été prédéfinies, qui sont:
- Breakpoint monitor : sont utilisés pour arrêter une simulation,
- Marking size : enregistre le marquage d’une place,
- Count transition : compte le nombre de tir d’une transition,
- List lenght : mesure la longueur d’une liste,
- Generic data collector : traitement spécifique défini par le modélisateur.
Il est également possible de définir des moniteurs personnalisables en fonction des besoins
de l’utilisateur final, qui sont :
- Data collector monitor pour les lesquels les conditions d’extraction (predicate) et les
traitements (observer) doivent être précisés en fonction du contexte,
- User define monitor qui enrichit les moniteurs de type Data collector par des fonctions
dédiées aux post-traitements comme par exemple l’enregistrement personnalisé des
observations dans des fichiers.
90
En revanche, tous les moniteurs partagent le mode de fonctionnement commun suivant :
Moniteur
Répéter jusque fin simulation
Examiner périodiquement certaines marques et/ou les transitions en cours,
Vérifier si une condition particulière est remplie
Si la condition est remplie
alors
Effectuer un ou plusieurs traitements à partir des informations
observées (informations contenues dans le marquage et/ou les
éléments de liaison)
Effectuer un enregistrement
Sinon ne rien faire
Fin_si
Fin Répéter
Fonctionnement général d'un moniteur
Dans le cadre de cette étude, le type de moniteur utilisé est User define monitor. En effet,
d’une part les moniteurs prédéfinis nécessite de renseigner de manière statique l’ensemble des
informations permettant le relevé statistique. Ce qui entraine une modification manuelle de
ceux-ci à chaque nouvelle architecture, ce qui en contraire à nos exigences définie dans le
chapitre 1. D’autre part les User define monitors qui offrent le plus de latitudes pour spécifier
précisément la performance à évaluer et surtout définir automatiquement les données
enregistrées modulo de définir l’ensemble de ses fonctions.
En effet ce moniteur est défini par un 5-uplet de fonctions (init, predicat, observer, action,
stop) où :
- Init, est la fonction fournissant une action déterminée lors du début de la simulation.
- Predicat est une fonction qui fixe les conditions dans lesquelles une observation doit
être réalisée (ce qui conditionne notamment les instants où la valeur surveillée doit être
relevée),
- Observer est une fonction qui permet d’effectuer la relevée de la valeur désirée,
- Action est une fonction déterminant des post-traitements à effectuer avec la valeur
relevée et sur les enregistrements,
- Stop est la fonction définissant l’action à réaliser à la fin de la simulation.
Les données numériques enregistrées sont ensuite utilisées pour calculer des statistiques et
produire les différents indicateurs de performances.
Dans le modèle d’architecture, le temps de réponse d’un aller simple entre un émetteur et
un récepteur sera défini comme la différence entre la date d’émission d’un message et sa date
de réception par le destinataire. Lors de l’émission d’un message, nous avons indiqué dans les
91
sections précédentes que les jetons de couleur paquet déposés dans la place envoi_paquet
étaient horodatés.
Le moniteur permettant l’évaluation du temps de réponse pour un aller simple doit donc être
en mesure de collecter la date de réception des messages par les destinataires. Par hypothèse,
cette date de réception correspond au franchissement de la transition nommée
transition_evaluation_performance et le dépôt d’un jeton dans la place fin_traitement_paquet
de la Figure 36.
Le type de service concerné par une évaluation du temps de réponse en mode aller simple
est le service alarm. Ce service correspond à une remontée d’alarme, de type défaillance, en
provenance d’un équipement à des fins d’informations et de surveillance.
Init : création fichier moniteur /* Création du fichier pour les relevés statistiques du moniteur
lors du démarrage de la simulation (action réalisée une seule et
unique fois). Puis ouverture de celui-ci pour l’écriture des
relevés statistiques. */
Predicat : typeService = alarm /* typeService est une couleur qui est un élément du produit
cartésien de l’ensemble de couleur paquet. La transition ne sera
observée que si et seulement si la valeur contenue dans cette
couleur est égale à alarm. */
Observer :
id_s = source /* TimeStamp, Source, destination sont des couleurs associées
id_d = destination au jeton ayant provoqué le franchissement de la transition
Taller =CurrentTime – TimeStamp observée (TimeStamp correspond à l’horodatage du message
émis, source au composant émetteur et destination au
composant récepteur). CurrentTime est la date de
franchissement de la transition observée qui est fournie par la
fonction ML native Time().*/
Par définition, ce moniteur enregistre dans un fichier externe au fil de l’eau tous les
messages de type alarm reçus par un composant donné.
92
Pour obtenir les temps de réponse souhaités par les ingénieurs en avant-vente, l’algorithme
suivant sera exécuté :
Ce type de performance est évalué pour les messages de type commande et correspond au
temps de réponse entre l’émission d’une requête et la réception d’un accusé de réception. Dans
le modèle d’architecture, le message aller/retour est porté par un jeton unique de couleur
paquet. Ce message étant horodaté lors de son émission par le composant en mode client, le
moniteur associé à la mesure de temps de réponse aller/retour sera donc similaire à celui associé
au temps de réponse en mode aller simple. La seule différence portera sur le prédicat qui, dans
le cas d’un temps de réponse aller/retour, sélectionnera les messages de type commande (par
exemple requête entre un système SCADA et un I/O device, requête entre un PLC et un I/O
device ou encore requête entre deux PLC).
93
De la même manière, l’algorithme d’évaluation des temps de réponse en mode aller/retour
sera similaire à celui en mode aller simple, excepté pour le moniteur sélectionné qui devra,
dans ce cas, être le moniteur associé au composant source.
La performance relative au temps de cycle des composants se définit comment étant le temps
mis par le processeur du composant pour réaliser l’ensemble des tâches qui lui sont allouées.
La réalisation de ces tâches suit un processus cyclique de durée fixe et prédéterminée ou bien
de durée variable en fonction des tâches à traiter (par exemple pour un automate programmable
industriel, lecture des entrées, traitements, écriture des sorties).
L’évaluation de ces performances nécessite une modélisation des composants telle qu’elle
puisse faire apparaître explicitement la représentation des différentes étapes d’un cycle à l’aide
d’un ensemble de places Pcycle constituant une composante conservative :
tÅ ∈t~Ö~ÉÄ � �u = 1.
L’ensemble de couleur associé à l’ensemble de places Pcycle est l’ensemble paquet de telle
sorte à ce qu’il soit compatible avec l’ensemble de couleur de la place fin_traitement_paquet.
Parmi les ensembles de couleurs entrant dans le produit cartésien de l’ensemble paquet, seules
deux couleurs seront renseignées pour les jetons modélisant le cycle de traitement d’un
composant :
- TimeStamp : lors du dépôt d’un jeton dans la place initiale du cycle, la couleur prend la
valeur tcurrent correspondant au temps courant de la simulation,
- typeService : lors du dépôt d’un jeton dans la place initiale du cycle, la couleur prend
la valeur Cycle_composant, ce qui permettra l’identification de ce type de jeton par le
moniteur associé au temps de cycle.
La transition associée à l’événement « fin de cycle » dépose un jeton dans la place initiale
du début de cycle (pour en débuter un suivant) et en dépose également un dans la place
fin_traitement_paquet. Ce dépôt permet le franchissement de la transition
fin_evaluation_performance et enclenche le traitement nécessaire à l’évaluation du temps de
94
cycle à l’aide d’un moniteur construit sur les mêmes bases que ceux utilisés pour les évaluations
des temps de réponse.
L’algorithme d’évaluation du temps de cycle sera basé sur la sélection du moniteur associé
au composant dont on veut évaluer le temps de cycle et sur l’exécution d’un post-traitement
permettant de différencier les résultats selon que le composant est dans un mode cycle de durée
fixe ou de durée variable.
95
Par ailleurs, les simulations de Monte-Carlo sont basées sur la simulation d’un ensemble
d’histoires (que l’on appellera réplications), chacune d’entre elles ayant une durée bornée à
l’aide d’un critère d’arrêt. Compte tenu du fait que les histoires sont indépendantes et
identiquement distribuées, les résultats obtenus pour chaque scénario seront différents.
Ces trois éléments (traitements statistiques à réaliser, nombre d’histoires et critère d’arrêt)
dépendent fortement du type et de la précision des performances que l’on souhaite évaluer.
Elles sont donc spécifiques à chaque étude d’avant-vente.
Dans le cadre de cette étude, et compte tenu du besoin exprimé par la société Schneider
Electric, nous avons fait le choix de présenter chaque mesure de performance à l’aide de quatre
indicateurs :
- Valeur moyenne sur l’ensemble des histoires,
- Valeur maximale sur l’ensemble des histoires,
- Valeur minimale sur l’ensemble des histoires,
- Intervalle de confiance à 95%
x
upl �u
�=
�
Il est alors possible d’obtenir un intervalle de confiance (dans notre cas fixé à 95%) par :
�y �y
� − �z , � + �z
� �
où t� est le paramètre associé au degré de confiance � = 0.05. Dans notre cas, l’information
transmise aux ingénieurs d’avant-vente sera la demi-longueur de l’intervalle de confiance à
95%.
96
interface dédiée à la description des architectures. Une évolution vers la prise en charge de ces
deux paramètres au sein de ce prototype, par exemple à partir d’une information de précision
fournie par les ingénieurs d’avant-vente, ne présente aucune difficulté majeure et pourra être
intégrée dans nos perspectives de transfert technologique.
4 Conclusion
Notre contribution, dans le cadre de ce chapitre, porte sur la définition d’un modèle
« constructeur » dans le formalisme des réseaux de Petri colorés et temporisés définis par
Jensen. Ce modèle décrit une architecture de contrôle-commande de manière générique,
hiérarchique et structurée et embarque des fonctions d’instanciation et de paramétrage. Cet
ensemble, associé à une bibliothèque de modèles de composants, constitue le socle de la
génération automatique des modèles d’architecture. Le principal intérêt réside dans une
réduction très significative de l’effort de modélisation requis pour élaborer les modèles des
nombreuses architectures évaluées en phase d’avant-vente. Enfin, pour que ce modèle soit
utilisable pour l’évaluation de performances, il a été nécessaire de définir des observateurs que
nous avons souhaités aussi génériques que possible afin de rendre leur élaboration transparente
pour les ingénieurs d’avant-vente.
Le chapitre suivant est consacré au développement d’un prototype, basé sur l’outil CPN
Tools, et sur l’illustration de notre contribution au travers de différents cas d’étude.
97
98
Chapitre 4
Application sur un cas d’étude
1 Introduction ....................................................................................................... 101
2 Développement d’un prototype pour l’évaluation de performances .................. 101
2.1 Le Serveur de Simulation ....................................................................................... 102
2.1.1 Configuration et personnalisation du prototype à l’aide de Design CPN.............103
2.1.1.1 Modèle constructeur.................................................................................................... 103
2.1.1.2 Bibliothèque de composants génériques : exemple du PLC ........................................ 104
2.1.2 Gestion des simulations à l’aide de Server CPN ................................................... 108
2.2 Le Client ................................................................................................................. 110
2.3 L’interface de communication entre Client et Serveur de simulation ...................... 113
99
100
1 Introduction
4
PSX builder est un outil de cotation de matériel développé par Schneider-Electric
5
CPN Tools est développé et distribué par Eindhoven University of Technology
101
Figure 41: Architecture fonctionnelle du prototype d’évaluation de performances
102
Les différents éléments de l’outil CPN Tools sont utilisés par le prototype d’évaluation de
performance de la manière suivante :
- l’éditeur ‘Design CPN’ (Christensen, et al., 1997) est utilisé pour définir la bibliothèque
de modèles de composants génériques ainsi que le modèle « constructeur » ; cette phase
de définition peut être considérée comme une phase de personnalisation du prototype
tenant compte des spécificités et de l’offre catalogue du fournisseur de composants
d’automatismes ; par conséquent, cette phase doit être prise en charge par un expert
impliqué dans le développement du prototype et doit être totalement transparente pour
les utilisateurs finaux (ingénieurs en avant-vente) ;
- le simulateur ‘Server CPN’ (Jensen, et al., 2007) est utilisé pour effectuer les différentes
simulations de Monte-Carlo et enregistrer les résultats obtenus par les différents
moniteurs pour l’évaluation de performances.
Celui-ci est composé des 4 grandes familles de composants présentes généralement dans les
architectures de C/C de Schneider Electric et 1 famille réseau. Celles-ci se décrivent à travers :
- La famille SCADA regroupe l’ensemble des composants dédié à l’acquisition et à la
commande opérateur ainsi que les IHM,
- La famille client regroupe l’ensemble des composants de type station de travail,
- La famille device regroupe l’ensemble des équipements terminaux,
- La famille réseau qui regroupe l’ensemble des commutateurs Ethernet,
- La famille PLC qui regroupe l’ensemble des automates programmables.
Nous pouvons remarquer que le modèle « constructeur » ne contient qu’un seul type de
composant par famille (un seul arc en sortie des transitions init_composant). Cette restriction
est un choix délibéré de Schneider Electric motivé par le fait que le prototype doit permettre
de démontrer la faisabilité de l’approche et que le modèle « constructeur » peut aisément être
enrichi dans les versions ultérieures en phase d’industrialisation. Par ailleurs, il correspond à
une réalité industrielle à l’exception de la famille des PLC. En effet, l’offre PLC contient des
automates programmables ayant des comportements similaires aux paramètres de
performances près (comme par exemple les M340 et M580) mais également des automates
ayant des comportements très différents et non modélisables de manière générique. Pour ce cas
particulier, le choix d’un seul type de composant pour la famille des PLC (en l’occurrence les
PLC de type M340 ou M580) a été justifié par le fait que ces automates sont au cœur de l’offre
Schneider alors que d’autres (comme par exemple le Premium) sont considérés en fin de vie.
Par ailleurs, rappelons que le modèle « constructeur » contient la définition des différents
ensembles de couleurs définis au chapitre 3 ainsi que la définition des fonctions d’incidence
arrière utilisées sur les arcs sortants des transitions du modèle « constructeur ». Néanmoins,
les valeurs des couleurs assignées aux variables caractérisant les jetons circulant dans le réseau
103
du modèle « constructeur » ne sont bien sûr pas définies à stade. Elles correspondent en effet
aux différents paramètres d’instanciation des architectures et de paramétrage des composants
et dépendront de la topologie et des caractéristiques de l’architecture à évaluer. Ces différents
paramètres devront être importés depuis la partie Client et faire l’objet d’un traitement
particulier par le serveur CPN lors de la simulation, comme nous le verrons par la suite.
Enfin, chacune des familles de composants contient un modèle générique CPN représentant
le comportant des équipements de cette famille. Chacun de ces modèles de composants
génériques est connecté à la famille réseau à travers leurs places de transmission (Tx) et de
réception (Rx). Afin d’illustrer la démarche, la section suivante présente un exemple de
composant générique associé à la famille des PLC.
Tx
init_parameters_Scada() Scada
init_Famille_Scada() famille_scada init_Scada() Scada Init
Famille Init
Scada parameters Scada SCADA
SCADA Scada
Scada
Scada
Famille_scada SCADA SCADA Rx
Scada
1
Initialisation
Tx
init_parameters_Client()
Client
init_Famille_Client() famille_client init_Client() Client Init
Famille Init
Client parameters Client Client
Client Client
Client
Client
Init Famille_client CLIENT CLIENT RX
Architecture CLient
init_Archi()
init_Famille_Reseau()
architecture Init Famille famille_network Init init_network()
Architeture Reseau Reseaux
Famille Rseaux Reseaux
Reseaux
Famille_network
Architecture
TX
init_parameters_Plc() PLC
init_Famille_PLC() famille_plc init_PLC() Plc Init
Famille Init
PLC parameters PLC PLC
PLC PLC
PLC
PLC
Famille_PLC PLC PLC RX
PLC
TX
init_parameters_Device() Device
init_Device()
init_Famille_Device() Famille famille_Device Device Init
Init
Device parameters Device Device
Device Device
Device
Device
Famille_Device DEVICE DEVICE Rx
Device
Les PLC compris dans l’offre de Schneider-Electric sont des équipements complexes offrant
de multiples services : client, serveur et passerelle de communication.
En effet l’automate fonctionne en model serveur lorsqu’il traite l’ensemble des requêtes
envoyé par le SCADA et les clients. Le traitement de ces requêtes est réalisé par un processeur
de manière cyclique ou périodique. Le nombre de requêtes que le processeur est capable de
traiter par cycle est limité et dépend de la gamme du PLC. Les requêtes non traitées durant un
cycle ou une période sont stockées dans un buffer dont la capacité de stockage dépend aussi de
la gamme.
Un PLC peut également fonctionner en mode client lorsqu’il envoie des requêtes de mise à
jour aux équipements auxquels il est connecté (les I/O devices) ou de synchronisation aux
autres PLC présents dans l’architecture.
104
Enfin les PLC possèdent différentes interfaces de communication, comme indiqué sur la
Figure 43 ; ils peuvent donc être connectés à différents réseaux.
Concernant son architecture technique, un PLC est composé d’un processeur et d’un ou
plusieurs coupleurs de communications. Ces deux types d’éléments sont reliés et
communiquent à travers un bus de communication.
Le processeur et le(s) coupleur(s) de communication possèdent également un ensemble de
ports de communication Ethernet. Ainsi, les requêtes peuvent être reçues et envoyées via les
ports de réseau embarqué directement sur le processeur ; dans ce cas, ces requêtes ne sont pas
affectées par le temps de traversée du bus de communication. Dans le cas où les requêtes sont
envoyées et reçues via les coupleurs de communication, le temps de traversée du bus de
communication devra être pris en compte. Par ailleurs, il faut noter que le processeur d’un
automate peut aussi recevoir des requêtes à traiter à partir d’un équipement connecté en USB
(e.g. un HMI) ; dans ce cas, les requêtes envoyées et reçues n’ont aucun lien avec le réseau car
ne le traversant pas. Cette fonctionnalité de communication est donc liée au comportement
intrinsèque du composant.
Dès lors le modèle générique d’un automate est représenté sur la Figure 44. Ce modèle suit
la définition d’un composant générique (voir chapitre 3, section 3.2.1) où l’on retrouve :
- une transition de substitution nommée ‘Comportement PLC’ qui représente le modèle
comportemental de l’automate,
- une transition de substitution nommée ‘Interface communication’ qui représente le
modèle de l’interface de communication,
- des fonctions d’incidences arrières message_periodique(), message_aperiodique (),
caracteritiques_techniques () et interface_Communication () qui représentent
respectivement les fonctions de paramétrage de la communication périodique, de la
communication apériodique, des spécifications techniques de l’automate et enfin des
propriétés relatives à la communication du composant. Comme indiqué au chapitre 3,
ces quatre fonctions réalisent une extraction des couleurs définies lors de l’exécution
de la fonction init_parametres() du modèle « constructeur ».
105
message_aperiodique()@+temps_demerrage()
message_periodique ()@+temps_demerrage()
Parametre Parametre
message message
Periodique Periodique
Message Message
message message
@+Frequence message message @+Loi_distribution ()
Parametres_PLC
Generateur Generateur
Distribution
PLC message message
parametres
periodique aperiodique
PLC
Envoi Envoi
caracteristique_techniques () message message
periodique aperiodique
Message Message
Envoi Reception
paquet paquet
Interface_Communication ()
Paquet Paquet
parametre
communication Interface communication
PLC
Interface communication
attribut_communication
Tx
Rx
PLC
PLC
Out
In
Paquet
Paquet
106
reçus à partir du réseau vers le bon port de communication de l’automate. En ce qui concerne
les paquets envoyés par l’automate vers le réseau ceux-ci sont aiguillés vers la place de
transmission nommée Tx_PLC par les différentes transitions de substitution des ports.
La transition de substitution interface_USB représente le modèle de l’interface USB d’un
automate. Contrairement aux deux autres transitions de substitutions des ports, l’interface USB
n’est pas connectée au réseau donc non connectée aux places de transmission et de réception.
Pour des raisons de confidentialité, les modèles détaillés de ces différentes transitions de
substitution (processeur_automate, Traitement_reception, Traitement_envoi,
port_coupleur_communication, port_embarque, et interface_USB) ne sont pas fournies dans
le cadre de ce mémoire.
Envoi Envoi
message message
periodique aperiodique
In In
Message
Message
attribut_composant Buffer_PLC
Traitement Traitement
envoi reception
Envoi paquet Reception paquet
Envoi Reception
paquet paquet
Out In
Paquet Paquet
Init_USB() paramertre
Interface
communication
USB
USB
Interface USB
Attribut_USB
Init_Coupleur() paramertre
Port Coupleur
communication
communication
Port coupleur
Coupleur communication
attribut_Coupleur
parametre parametre_communication
communication
PLC
Envoi Tx
attribut_communication
paquet PLC Rx Reception
In Out PLC paquet
Paquet Paquet In Out
Paquet Paquet
Init_Port_embarque()
paramertre
Port
communication
embarque
Port embarque
Port embarque
attribut_Port_embarque
107
Lors de la définition des modèles de composant, la définition des ensembles de couleurs
caractérisant l’ensemble de leurs paramètres doit être précisée. A des fins d’illustration,
l’ensemble des déclarations relatives à l’instanciation et au paramétrage du processeur PLC a
été présentées ci-dessous.
Dans notre cas, un traitement préalable est nécessaire afin d’intégrer au modèle
« constructeur » et à la bibliothèque de composants, les informations relatives à l’instanciation
des composants au sein de l’architecture à évaluer, à leurs différents paramètres ainsi qu’aux
performances à mesurer (moniteurs et paramètres de simulation). Pour l’instant, nous faisons
l’hypothèse que l’ensemble de ces informations peut être fourni par la partie Client de notre
prototype sous la forme d’un fichier XML. Pour prendre en compte ces informations
d’instanciation et de paramétrage, il est nécessaire de modifier le flot de tâches réalisées de
manière native par CPN Tools de telle sorte à adapter le processus de compilation.
108
Dans un premier temps, à l’issue de la phase de configuration et de personnalisation de notre
prototype, le modèle « constructeur » et la bibliothèque de composants sont exportés de Design
CPN dans un fichier au format ML (extension .nj). Ce fichier constituera une base unique pour
toutes les simulations réalisées quel que soit l’architecture et les performances à évaluer.
Par la suite, pour chaque nouvelle architecture à évaluer, notre serveur de simulation, dont
l’architecture fonctionnelle est donnée par la Figure 46, suivra le processus suivant :
- le fichier XML, contenant les données d’instanciation et de paramétrage des
composants ainsi que les performances à évaluer, est transformé au format ML (avec
une extension .ml) intelligible par le compilateur ; cette phase est nommée
encodage/décodage dans la Figure 46 ; le fichier ML ainsi généré devra contenir
l’assignation des couleurs (variables) pour les fonctions d’incidences arrière pour ainsi
que l’assignation des paramètres des moniteurs ; à titre d’exemple, le Tableau 2 donne
un exemple d’assignation en langage ML pour la fonction d’incidence arrière
init_parametres() associée au composant PLC ;
- le compilateur SML procède à la compilation de deux fichiers au format ML (un
contenant le modèle « constructeur » et la bibliothèque de composants, l’autre
contenant les paramètres) pour générer un exécutable ;
- le simulateur du Server CPN exécute le fichier issu de la compilation et réalise les
simulations requises.
109
Variables et fonction d’incidence arrière du processeur
/*déclaration variable d’instanciation et de paramétrage d’un PLC avec ses valeurs */
Val var _PLC =
ref [ PlcCommPeriodique({idPLC=10, idDevice=100, typeMessage= scanning,
interArrivee= 50}), PlcCommNoPeriodique({idPLC=10, destPlc=11, typeMessage=
PLC_request, interArrivee = sendRate}),
PLCProcesseur ({idPLC=10, app_Logic=50, usb_Scan=4, Coupleur_Scan =8,
serveur_Scan = 8, buffer=16}),
PlcInterfaceCommunication ({idComposant=11, idPort=1}) ];
/*Paramètres de la fonction init_parametres pour le PLC */
Fun init_parametres () = (! var_PLC)
Tableau 2 : Assignation des paramètres de la fonction init_parametres() pour le PLC
2.2 Le Client
PSX vie we r
Composants
architectures
PSX builder
XM L configuration XM L performances
110
A titre d’exemple, la Figure 48 présente (a) l’interface de visualisation de la proposition
d’architecture élaborée par les ingénieurs en avant-vente, (b) l’interface de définition des
paramètres de fonctionnement (exemple avec le composant SCADA), (c) l’interface de
définition des performances à évaluer (enable pour les communications apériodiques que l’on
souhaite évaluer, disable pour les autres), (d) l’interface de définition des paramètres de
simulation. A noter que l’interface de définition des performances à évaluer sert également à
saisir les caractéristiques des flux de communication apériodiques aléatoires selon trois niveaux
de fréquence (low, medium, high).
111
Le deuxième rôle de l’interface de description et d’analyse est l’affichage des résultats de
simulation. En effet une fois que la configuration de l’architecture a été simulée par le serveur
de simulation et que les relevés statistiques des moniteurs renvoyés au format XML ont été
traités, alors l’interface affiche les résultats de simulation afin qu’ils puissent être analysés et
interprétés par l’ingénieur en avant-vente. Cet affichage se fait sous la forme de tableau avec
les valeurs minimales, maximales et moyenne (Figure 49 a), et sous la forme de courbe de
tendance en fonction du temps de simulation (Figure 49 b).
112
types, topologies, paramètres d’entrées, moniteurs, temps de simulation etc..). Le deuxième
rôle est la transformation de modèles XML contenant les performances vers une représentation
graphique. Cette transformation s’effectue toujours via un parseur et éventuellement via des
fonctions de post-traitement.
Le choix d’une implémentation en TCP/IP pour gérer les échanges entre Client et Serveur
de simulation a été motivé, d’une part, par le fait que la transmission de données entre ces deux
entités doit être robuste et fiable afin d’éviter les éventuelles pertes de connections et de
données (le protocole TCP/IP de manière native intègre un mécanisme de contrôle de données
et de détection d’erreur) et, d’autre part, par le fait qu’un grand nombre d’applications et
d’équipements intègrent de manière native ce protocole. En cas d’évolution ou de changement
des choix techniques pour la définition des architectures au niveau du client, aucun effort
supplémentaire n’est à fournir pour permettre la communication entre le serveur et le client,
tant que l’application client intègre le protocole TCP.
113
Conformément au protocole TCP/IP, deux couches dédiées à la gestion de la connexion et
de la communication sont déployées sur le Client et le Serveur de simulation. La couche de
gestion de la connexion initie la communication à la demande du Client, maintient la
communication suivant les échanges client-serveur et fermera la connexion à l’initiative du
client ou du serveur. La couche gestion de la communication a pour rôle de gérer l’émission et
la réception des paquets échangés entre Client et Serveur de simulation.
Le cas d’étude porte sur la définition d’une architecture de C/C pour une usine de traitement
d’eaux usées pour une ville de 20000 habitants comme l’indique la Figure 51. Le
fonctionnement de cette usine met en œuvre 3 procédés principaux :
- le « Primary Treatment» : pré-traitement des eaux usagées,
- le « Secondary Treatment» dont le but est de faire un traitement biologique des eaux
usées,
- le « Chemical Treatment » dont le but est de faire un traitement chimique.
Dans le cadre de ce cas d’étude, nous nous focalisons sur le procédé du « primary clarifier »
qui se décompose à son tour en 3 sous-procédés :
114
- Le « lifting/screening » (Pompage et extraction) dont le rôle est de pomper les eaux
usées et d’extraire les déchets solides lourds,
- Le « grease & sand removal » (suppression de la graisse et du sable) pour le traitement
des déchets solides légers et de la boue,
- Le « primary clarifier » (traitement primaire) l’unité de prétraitement des eaux usées.
Les principales exigences « client » exprimées en termes de performances sont les temps de
réponse aller/retour entre une action réalisée par un opérateur sur un poste de supervision à
destination d’un équipement de terrain et la réponse de ce dernier. Les temps de cycle des
dispositifs présents au niveau « contrôle-commande » constituent également un indicateur que
le client souhaite observer.
115
3.2 Illustration de la démarche proposée sur le cas d’étude
L’objectif de cette section est d’illustrer les différentes étapes de notre approche :
- description des données d’entrée (architecture proposée et performances à évaluer),
- instanciation et paramétrage du modèle d’architecture,
- évaluation des performances.
Comme définit précédemment, les données d’entrées sont constituées, d’une part, par la
définition de l’architecture de contrôle-commande, de ses paramètres de fonctionnement ainsi
que des flux de communications et, d’autre part, par les performances attendues ainsi que les
paramètres relatifs à la simulation. La définition de ces données d’entrée est à la charge des
ingénieurs en avant-vente et repose sur leur retour d’expérience.
Caractéristiques de fonctionnement
En ce qui concerne le SCADA, ses caractéristiques techniques sont relatives d’une part, à la
mise à jour des informations du procédé et, d’autre part à la génération d’actions et de
commande à destination du procédé.
Pour la mise à jour des informations de procédé, un serveur de supervision SCADA possède
3 groupes de services dont chacun a un rôle spécifique pour la gestion et la supervision de
l’architecture :
- le groupe Alarm gère les remontées d’alarmes déclenchées par les équipements
terminaux (franchissement de seuil) ; attention, ce service correspond à des alertes, par
exemple relatives à un franchissement de seuil et n’aucun rapport avec les messages
apériodiques de type alarm correspondant, par exemple, à des défaillances et surveillées
dans les moniteurs du chapitre 3 ;
- le groupe Display gère la visualisation des états des composants,
- le groupe Trend gère l’ensemble des courbes de tendances de l’architecture.
Deux paramètres caractérisent le fonctionnement de ces services. Il s’agit, d’une part, de la
période de rafraichissement (associée à l’émission périodique de requêtes permettant de
collecter l’information auprès des automates) et d’autre part, à un ordonnanceur de requêtes
qui regroupe les requêtes à émettre en fonction des capacités des automates.
117
Les paramètres des systèmes SCADA, renseignés via une interface telle que celle présentée
en Figure 48 b, sont donnés dans les deux tableaux suivants.
Les commandes émises depuis le SCADA vers le procédé sont émises au fil de l’eau de
manière apériodique et sont non affectées par le Max Pending. Elles sont représentées dans le
modèle CPN du composant SCADA par une distribution uniforme de probabilité avec trois
valeurs de paramètres possibles correspondant à trois niveaux de fréquence : low, medium et
high. L’ingénieur en avant-vente doit donc définir les niveaux souhaités via l’interface
présentée sur la Figure 48-d.
Les principaux paramètres caractérisant les automates programmables sont donnés dans le
tableau suivant. Le temps alloué à l’application correspond au temps mis par l’automate durant
son cycle pour traiter le programme utilisateur d’automatisation (section 3.1.2 chapitre 1). Ce
temps est grossièrement évalué par l’ingénieur en avant-vente sur la base d’un calcul simple
tenant compte du type de traitement à effectuer (traitement de variables logiques ou traitement
de variables analogiques) et du nombre d’entrées/sorties associés au traitement. L’ingénieur en
avant-vente fixe également les temps de scrutation (temps de scan) des équipements terminaux
associés à un automate. Les paramètres correspondant au cas d’étude sont fournis dans le
tableau suivant.
118
A noter que le temps de cycle de l’automate inclut, en supplément de ces temps relatifs au
scan des équipements et au traitement de l’application, les temps nécessaires pour exécuter des
tâches de lecture des entrées, d’écriture des sorties ou de services exécutés en mode serveur.
Ces temps, inconnus, dépendront du contexte applicatif et seront donc évalués via la simulation
du modèle d’architecture et les moniteurs de temps de cycle.
Enfin, chaque gamme d’automate possède des caractéristiques techniques, telles que le
nombre de requêtes pouvant être traitées par cycle en fonction de leur provenance. Sur
l’exemple de l’architecture de commande du traitement des eaux usées, les automates peuvent
recevoir des requêtes en provenance du port serveur envoyées par le SCADA, du port USB en
provenance des interfaces HMI et du coupleur Ethernet en provenance des équipements
terminaux. Les requêtes ne pouvant être traitées dans un cycle automate, Si le nombre de
requêtes dépasse les capacités de traitement définis pour un automate donné, les requêtes non
traitées sont stockées dans un buffer ayant une capacité limitée. Ainsi, le traitement de certaines
requêtes peut être différé au cycle suivant, ou, dans le pire des cas, certaines requêtes peuvent
être perdues. Ces paramètres, donnés dans le tableau le Tableau 6 pour notre cas d’étude,
influent donc de manière significative sur les performances.
A noter que ces différents paramètres sont directement dépendant de la gamme d’automate
sélectionnée. Ils sont stockés dans l’outil PSX builder et ne peuvent donc être modifiés par les
ingénieurs en avant-vente.
En ce qui concerne les équipements de terrain, nous avons fait l’hypothèse, dans le cadre de
cette étude, qu’ils ne disposent d’aucun paramètre de fonctionnement. En d’autres termes,
l’ensemble de leurs caractéristiques comportementales sont directement intégrées dans les
modèles CPN de chaque équipement et ne sont pas paramétrables.
119
donc de filtrer les résultats de simulation pour ne fournir sur l’interface de visualisation des
performances que les performances ayant un intérêt.
Pour notre cas d’étude, les performances à mesurer sont données dans le tableau suivant et
définies sur notre prototype d’évaluation des performances via l’interface présentée en Figure
48-d (en déclarant les communications que l’on veut mesurer comme enable et les autres
comme disable).
De manière similaire, les temps de cycle automate sont systématiquement observés par les
moniteurs « temps de cycle » définis au chapitre 3. L’ingénieur en avant-vente a la possibilité
de demander (ou pas) l’affichage de ces performances sur son interface de visualisation. Dans
notre cas d’étude, tous les temps de cycle sont remontés sur cette interface.
La première étape consiste donc à compiler le fichier de paramètres définissant les variables
(couleurs) avec le modèle « constructeur » présenté en section 2.1.1.1 de ce chapitre. Les
valeurs des paramètres permettront d’instancier et de paramétrer, via l’ensemble des fonctions
d’incidence arrière définies au chapitre 3, le modèle CPN correspondant à l’architecture de
commande du traitement primaire des eaux usées.
Le tir des transitions du modèle « constructeur » aboutira au dépôt :
- d’un jeton dans la place située en amont de la transition de substitution SCADA (un
seul équipement de type SCADA dans l’architecture de la Figure 52;
- de deux jetons dans la place située en amont de la transition de substitution CLIENT
(correspondant aux deux HMI de l’architecture de la de la Figure 52;
120
- de trois jetons dans la place située en amont de la transition de substitution PLC
(correspondant aux trois automates de l’architecture de la de la Figure 52;
- de vingt-six jetons dans la place située en amont de la transition de substitution
DEVICE (correspondant à l’ensemble des équipements terminaux de l’architecture de
la Figure 52;
Pour rappel, le modèle « constructeur » implanté dans une première version de notre
prototype ne présente, par hypothèse, qu’un seul type d’équipement par famille (seule la
transition init_famille présente plusieurs arcs en sortie).
Les valeurs des couleurs associés à ces différents jetons sont définies par les différentes
fonctions d’incidence arrière en fonction des paramètres renseignés à l’aide de variables CPN
conformément à la méthode d’assignation proposée sur le Tableau 2. Cette phase
d’instanciation et de paramétrage suit en tout point le scénario présenté au chapitre 3 par la
Figure 35.
La simulation peut alors se poursuivre en accord avec les paramètres relatifs au nombre de
réplication (nombre d’histoires simulées, dans notre cas 10) et les critères d’arrêt relatifs à la
durée de chaque histoire (dans notre cas 15 minutes). Ces paramètres de simulation permettent
d’obtenir des résultats avec un niveau de précision suffisant (mesuré notamment via l’intervalle
de confiance à 95%).
Les moniteurs définis au chapitre 3 permettent alors d’obtenir les performances brutes
(temps minimum, temps maximum, valeur moyenne, intervalle de confiance à 95%). A titre
indicatif, mes valeurs obtenues sont données dans les colonnes 4 à 7 du Tableau 8 (la colonne
8 intitulée CI fournit l’intervalle de confiance à 95%) mais n’ont pas d’intérêt intrinsèque dans
le cadre de ce mémoire. Elles ne seront donc discutées qu’à des fins de validation de nos
modèles dans la section suivante.
Afin de valider les principes fondateurs de notre proposition ainsi que les modèles CPN
intégrés dans notre prototype (modèle « constructeur » et bibliothèque de composants), une
comparaison est effectuée entre :
- les résultats en termes de performances évalués par notre prototype sur la base d’un
modèle CPN de l’architecture de la Figure 52,
- les résultats en termes de performances mesurées sur une plate-forme expérimentale
reproduisant l’architecture de la Figure 52;
Pour que ces résultats soient comparables, les tests en plate-forme ont été réalisés avec des
paramètres identiques : 10 campagnes de test ayant chacune une durée de 15 minutes. Dans le
même ordre d’idée, les sollicitations réalisées manuellement sur le système SCADA l’ont été
avec une fréquence compatible avec les distributions uniformes implantées sur le simulateur.
121
Le Tableau 8 ci-dessous reprend les résultats obtenus pour les trois performances évaluées :
les colonnes 4 à 7 correspondent aux résultats évalués sur le simulateur tandis que les colonnes
8 à 10 fournissent les résultats mesurés lors des tests en plate-forme.
La comparaison des résultats entre les valeurs fournies par le simulateur et ceux fournis par
les mesures en laboratoire montre que pour les automates d’entrée de gamme de type M340 et
M580-20, les résultats fournis par le simulateur sont tout à fait comparables à ceux obtenus en
plate-forme. En effet, le simulateur fournit une valeur moyenne des temps de réponse
légèrement plus optimiste que celle obtenue en plate-forme avec toutefois un écart inférieur à
5%. La valeur maximale des temps de réponse présente, quant à elle, un écart inférieur à 2%.
Ces écarts minimes peuvent s’expliquer par le paramétrage de nos modèles CPN de
composants, et en particulier des temps de traitement des requêtes au niveau du modèle des
automates. En effet, les paramètres de la distribution uniforme retenus dans nos modèles
représentent un temps de traitement compris entre 1 et 3 millisecondes alors que, lors des tests
effectués, cet intervalle se situe plutôt entre 1 et 5 millisecondes. Ce résultat montre que
l’ensemble des paramètres de fonctionnement intégrés dans nos différents modèles CPN de
composants devra peut-être être affiné lors de l’industrialisation de notre prototype sur la base
de nouveaux tests en plate-forme.
Pour l’automate haut de gamme M580-40, l’écart entre performances évaluées par le
simulateur et performances mesurées en plate-forme est plus important puisqu’il peut atteindre
7,5% pour les valeurs moyennes et 8,2% pour les valeurs maximales. Cet écart s’explique par
une évolution entre les automates utilisés en fin de thèse pour les tests en plate-forme et ceux
décrits dans les documentations techniques à notre disposition en début de thèse. En effet, dans
les nouvelles versions du M580-40, un deuxième cœur vient suppléer le cœur principal lors de
fortes charges, ce qui améliore de manière significative les performances dans ce cas de figure.
En présence d’une charge moyenne, le deuxième cœur est inutilisé et n’a donc aucune
incidence sur les temps de traitement des requêtes.
122
Cet écart met en exergue un point particulièrement important de notre approche. Dans les
modèles CPN des composants de type PLC, le mécanisme de décharge sur un deuxième cœur
en présence de fortes charges n’a pas été modélisé. Ce comportement complexe étant très
différent de ceux mis en œuvre pour les M340 et M580-20, le M580-40 devra faire l’objet d’un
modèle CPN spécifique. L’impact en termes d’évolution de notre prototype serait le suivant :
- ajout d’un modèle CPN dédié au M580-40 dans la bibliothèque de composants
- modification du modèle « constructeur » pour y intégrer deux types de composants pour
la famille PLC (deux arcs en sortie de la transitions init_PLC du modèle
« constructeur ».
Même si quelques écarts ont pu être constatés (qui pourront être réduits par un réglage plus
fins des paramètres de nos modèles), ils restent néanmoins relativement faibles, ce qui constitue
un argument en faveur de l’approche proposée et des modèles CPN développés.
A titre d’exemple, faisons l’hypothèse que les ingénieurs en avant-vente souhaitent évaluer
une seconde architecture, beaucoup plus complexe, pour répondre au cahier des charges du
traitement primaire des eaux usées. Cette seconde architecture est définie sur l’interface Client
de notre prototype et présentée sur la Figure 53. Elle fait apparaître un découpage en unité
fonctionnelle différent de la première version, conserve le découpage en trois niveaux
(conduite, contrôle-commande et équipements de terrain) mais les équipements présents dans
ces trois niveaux sont beaucoup plus nombreux.
Pour évaluer cette nouvelle architecture l’ingénieur en avant-vente devra renseigner les
informations suivantes sur son interface graphique (de manière identique à la démarche
présentée dans les sections précédentes) : description de l’architecture, de ses paramètres, des
flux de communications, des performances à évaluer et des paramètres de simulation.
Cet effort de modélisation est le seul qui sera déployé par les ingénieurs en avant-vente
puisque la procédure de simulation et d’évaluation des performances est ensuite complètement
automatisée :
- transformation du modèle de données graphiques au format XML,
- connexion du client au serveur de simulation et envoi des paramètres au serveur de
simulation,
- compilation des modèles CPN munis de leurs paramètres,
- exécution en simulation des modèles CPN (et notamment de la phase d’instanciation et
paramétrage),
123
- relevés statiques des moniteurs et génération des résultats au format XML,
- envoi au Client et présentation des résultats de simulation.
Cette procédure est identique à celle mise en œuvre précédemment puisque le modèle
« constructeur » demeurera inchangé et seuls les paramètres d’instanciation et de paramétrage
contenus dans le fichier XML issu de l’interface Client seront différents. A titre d’exemple, le
tir des transitions du modèle « constructeur » conduira au dépôt de deux jetons dans la place
située en amont de la transition de substitution SCADA (puisque cette architecture contient
deux SCADA) dont les paramètres correspondront à ceux définis par les ingénieurs en avant-
vente. Le même raisonnement peut être appliqué pour les composants CLIENT, PLC et
DEVICE.
124
4 Conclusion
De manière générale, les résultats obtenus confortent les principes de notre proposition
(notamment de notre stratégie d’instanciation et de paramétrage d’un modèle d’architecture via
un modèle « constructeur ») et constituent une base scientifique solide pour l’industrialisation
de notre prototype. Ils ont néanmoins montré que les modèles CPN que nous avons développés
devraient certainement être affinés ultérieurement, notamment au niveau des paramètres
associés aux distributions de probabilités, pour mieux prendre en compte la réalité des
applications industrielles.
125
126
Conclusion & perspectives
L’évaluation des performances des architectures de contrôle-commande en phase d’avant-
vente représente un enjeu important pour dimensionner des solutions au plus juste des besoins
des utilisateurs. Le compromis entre niveau de garantie des performances et coût de
l’architecture est en effet un vecteur essentiel pour le gain de certains marchés ou appels
d’offre.
Dans ce contexte, l’entreprise Schneider Electric, fournisseur et intégrateur de solutions
d’automatismes a souhaité se doter d’un outil d’aide au dimensionnement des architectures et
notamment d’évaluation de leurs performances temporelles. L’objectif était clair : fournir un
outil permettant d’évaluer rapidement les performances d’une architecture de contrôle-
commande dans un laps très court et en mobilisant le minimum de ressources tant humaines
que financières. Dans le contexte particulier de l’avant-vente, cet objectif a rapidement fait
émerger trois corolaires :
- l’évaluation de performances devait pouvoir être réalisée par un personnel ayant la
maîtrise des solutions d’architecture sans être toutefois être expert dans les outils et
modèles nécessaires à sa mise en œuvre,
- un grand nombre d’architectures devaient pouvoir être évaluées dans un temps court
afin de trouver les meilleures réponses aux exigences client tout en générant le
maximum de plus-value pour l’entreprise,
- la connaissance nécessaire pour réaliser les évaluations devait bien sûr comprendre une
description de l’architecture matérielle (composants, réseaux, …) mais également
contenir de l’information, même très succincte et entachée d’incertitudes, relative à
l’architecture fonctionnelle (listes des fonctions de contrôle-commande, listes des
entrées/sorties en termes d’actionneurs/capteurs, …) et à son contexte d’usage
(notamment des flux de communication, des sollicitations externes, …).
L’étude de la littérature a montré que de nombreux travaux ont été réalisés dans le domaine
de l’évaluation des performances à l’aide de techniques d’analyse formelle ou bien par
simulation de Monte-Carlo. Pour un certain nombre d’entre eux, les informations nécessaires
à l’élaboration des modèles ou à la vérification des performances n’étaient pas disponibles en
phase d’avant-vente. Pour d’autres, la complexité des modèles à construire pour des
architectures de taille significative nous est apparue comme un frein à leur acceptation en phase
d’avant-vente. Notre choix s’est donc porté sur les Réseau de Pétri colorés, temporisés et
hiérarchiques (CPN) définis par (Jensen, 1994) qui allient pouvoir d’expression avec
modularité (hiérarchique) et compacité (couleurs) des modèles. L’analyse de la littérature
abondante, consacrée à l’usage des CPN en milieu industriel, montre néanmoins que
l’élaboration des modèles CPN reste une tâche peu compatible avec les contraintes de la phase
avant-vente puisque couteuse en temps et nécessitant le recours à un expert.
127
Dans ce contexte, notre contribution principale a donc porté sur la génération automatique
des modèles CPN représentant le comportement d’une architecture de contrôle-commande
ainsi que les observateurs permettant l’évaluation de ses performances. La démarche proposée
repose sur trois éléments principaux :
- une bibliothèque de modèles CPN génériques et standardisés représentant le
comportement des composants présents dans une architecture,
- un modèle « constructeur de topologie » qui structure les architectures selon différents
niveaux hiérarchiques et qui met en œuvre un ensemble de fonctions permettant
l’instanciation et la paramétrage du modèle CPN,
- un ensemble d’observateurs génériques permettant l’évaluation de temps de réponse
aller-retour, de temps de réponse aller simple ou de temps de cycle PLC.
Le développement d’un prototype implantant cette démarche, et son application à quelques
exemples d’architectures fournis par Schneider Electric, ont permis de mettre en évidence
l’intérêt de notre contribution pour les ingénieurs en avant-vente. Car, l’évaluation d’une
architecture est réalisée de manière complètement transparente pour les utilisateurs finaux. En
effet, une interface graphique permet à ces derniers de saisir la description de l’architecture
matérielle, des paramètres de fonctionnement connus et des performances à évaluer. Ces
informations sont automatiquement traitées par le prototype (au travers des fonctions
d’instanciation et de paramétrage du modèle « constructeur ») pour lancer des simulations de
Monte-Carlo et fournir aux utilisateurs finaux une estimation statistique des performances.
128
Au-delà des développements nécessaires à l’industrialisation de notre prototype, plusieurs
perspectives de recherche permettraient d’enrichir notre contribution.
129
130
Refe
́ ́ rences bibliographiques
Abdelli, A., Serrai, W., Mokdad, L. & Hammal, Y., 2015. Time Petri Nets for performance
evaluation of composite web services architectures. IEEE Symposium on Computers and
Communication (ISCC), pp. 122-127.
Addad, B., 2011a. Évaluation analytique du temps de réponse des systèmes de commande
en réseau en utilisant l’algèbre (Max,+), Cachan: École normale supérieure de Cachan.
Addad, B., 2011a. Évaluation analytique du temps de réponse des systèmes de commande
en réseau en utilisant l’algèbre (Max,+), Cachan: École normale supérieure de Cachan.
Addad, B., Amari, S. & Lesage, J.-J., 2010. Analytic Calculus of Response Time in
Networked Automation Systems. IEEE Transactions on Automation Science and Engineering,
7(4), pp. 858 - 869.
Addad, B., Amari, S. & Lesage, J.-J., 2011b. Client-Server Networked Automation Systems
Reactivity: Deterministic and Probabilistic Analysis. IEEE Transactions on Automation
Science and Engineering, 8(3), pp. 540 - 548.
Al-Jaar, R. & Desrochers, A., 1990. Performance evaluation of automated manufacturing
systems using generalized stochastic Petri nets. IEEE Transactions on Robotics and
Automation, 6(6), pp. 621-639.
Amari, S., Demongodin, I., Loiseau, J. J. & Martinez, C., 2012. Max-Plus Control Design
for Temporal Constraints Meeting in Timed Event Graphs. IEEE Transactions on Automatic
Control, 57(2), pp. 462-467.
Ammour, R. & Amari, S., 2015. Modelling and temporal performances evaluation of
networked control systems using (max,+) algebra. International Journal of Systems Science,
46(1), pp. 18-30.
Anderson, E. & Richard, L. O., 1987. Perspectives on behavior-based versus outcome-based
salesforce control systems. The Journal of Marketing, pp. 76-88.
Auroy, M., 2000. Elabortaion des Schémas de Procedes Industriels. 1 éd. Paris: Société
Française du Génie des procédés.
Baarir, S. et al., 2009. The GreatSPN tool: recent enhancements. CM SIGMETRICS
Performance Evaluation Review, 36(4), pp. 4-9.
Baccelli, F., Cohen, G., Olsder, G. J. & Quadrat, J.-P., 1992. Synchronization and Linearity
An Algebra for Discrete Event Systems. New York: Wiley & Sons.
Baier, C., Katoen, J.-P. & Larsen, K. G., 2008. Principles of model checking. Cambridge:
MIT press.
Barger, P., 2003. Evaluation et validation de la fiabilité et de la disponibilité des systèmes
d'automatisation à intelligence distribuée, Nancy: Université de Nancy 1.
Barger, P., Schön, W. & Bouali, M., 2009. A study of railway ERTMS safety with colored
Petri nets. The European Safety and Reliability Conference (ESREL'09), Volume 2, pp. 1303-
1309.
131
Bauer, H., Scharbarg, J.-L. & Fraboul, C., 2009. Applying and optimizing trajectory
approach for performance evaluation of AFDX avionics network. IEEE Conference on
Emerging Technologies & Factory Automation, pp. 1-8.
Bauer, H., Scharbarg, J.-L. & Fraboul, C., 2010. Improving the worst-case delay analysis of
an AFDX network using an optimized trajectory approach. IEEE Transactions on Industrial
informatics, 6(4), pp. 521-533.
Béla, L., 2013. Process Control: Instrument Engineers' Handbook. Oxford: Butterworth-
Heinemann.
Ben Hedia, B., Jumel, F. & Babau, J.-P., 2005. Formal evaluation of quality of service for
data acquisition systems. Proc. of FDL 05.
Berthomieu, B. & Diaz, M., 1991. Modeling and verification of time dependent systems
using time Petri nets. IEEE transactions on software engineering, 17(3), p. 259.
Berthomieu, B., Ribet, P.-O. & Vernadat, F., 2004. The tool TINA–construction of abstract
state spaces for Petri nets and time Petri nets. International Journal of Production Research,
42(14), pp. 2741-2756.
Berthomieu, B. & Vernadat, F., 2006. Réseaux de Petri temporels: méthodes d’analyse et
vérification avec TINA. Traité IC2 Système temps réel.
Bordbar, B. & Anane, R., 2005. An architecture for automated QoS resolution in wireless
systems. 19th International Conference on Advanced Information Networking and
Applications (AINA'05), pp. 774 - 779.
Bouillard, A., Gaujal, B., Lagrange, S. & Eric, T., 2008. Optimal routing for end-to-end
guarantees using Network Calculus. Performance Evaluation. Performance Evaluation,
65(11), pp. 883-906.
Boyer, M., Navet, N., Olive, X. & Thierry, E., 2010. The PEGASE project: precise and
scalable temporal analysis for aerospace communication systems with Network Calculus.
International Symposium On Leveraging Applications of Formal Methods, Verification and
Validation, pp. 122-136.
Bozga, M. et al., 1998. Kronos: A Model-Checking Tool for Real-Time Systems.
International Symposium on Formal Techniques in Real-Time and Fault-Tolerant Systems, pp.
298 - 302.
Brahimi, B., 2007. Proposition d’une approche intégrée basée sur les réseaux de Petri de
Haut Niveau pour simuler et évaluer les systèmes contrôlés en réseau, Nancy: Université Henri
Poincaré-Nancy I.
Brinzei, N., Deleuze, G., Villaume, N. & Pétin, J.-F., 2014. Common cause failures
modelling by means of coloured Petri nets for dependability assessment of a control system of
nuclear power plant. European Safety and Reliability Conference ESREL, pp. 2121-2129.
Cervin, A. et al., 2003. How does control timing affect performance?. Control Systems
Magazine, 23(3), pp. 16-30.
Chang, C.-S., 2000. Performance guarantees in communication networks. 1 éd. Berlin:
Springer Science & Business Media.
Charara, H., 2007. Évaluation des performances temps réel de réseaux embarqués
avioniques, Toulouse: Institut National Polytechnique de Toulouse.
Charara, H., 2007. Évaluation des performances temps réel de réseaux embarqués
avioniques, Toulouse: institut national polytechnique de toulouse.
132
Charara, H., Scharbarg, J.-L., Ermont, J. & Fraboul, C., 2006. Methods for bounding end-
to-end delays on an AFDX network. 18th Euromicro Conference on Real-Time Systems
(ECRTS'06).
Christensen, S., Jørgensen, J. B. & Lars, M. K., 1997. Design/CPN—A computer tool for
coloured Petri nets. International Workshop on Tools and Algorithms for the Construction and
Analysis of Systems, pp. 209-223.
Clarke, A., Grumberg, O. & Peled, D., 1999. Model Checking. 1 éd. Boston: MIT press.
Clarke, E. et al., 2001. Progress on the state explosion problem in model checking.
Informatics, pp. 176 - 194.
Cohen, G., 1993. Two-dimensional domain representation of timed event graphs, Belgique:
Summer School on Discrete Event Systems.
Cohen, G., Gaubert, S. & Quadrat, J.-P., 1996. Kernels, images and projections in dioids.
Proceedings of WODES’96, pp. 151-158.
Cottet, F. & Grolleau, E., 2005. Systemes temps réel de contrôle-commande-Conception et
implémentation: Conception et implémentation. 1 éd. Paris: Dunod.
Cruz, R., 1991. A calculus for network delay part 1 Network elements in isolation. IEEE
Transactions on information theory, 37(1), pp. 114-131.
Davey, B. & Priestley, H., 2002. Introduction to lattices and order. 1 éd. Cambridge:
Cambridge university press.
De Figueiredo, J. C. & Kristensen, L., 1999. Using coloured Petri nets to investigate
behavioural and performance issues of TCP protocol, Aarhus: Department of Computer
Science Aarhus University.
Denis, B., 1994. Aide à la conception d'architectures de conduite des systèmes de
production, NANCY: Université Henri Poincaré-Nancy I.
Dugan, J., Trivedi, K., Geist, R. & Nicola, V., 1984. Extended Stochastic Petri Nets:
Applications and Analysis, Wisconsin: Wisconsin Univ-Madison Motor Behavior.
Estévez, E., Marcos, M. & Orive, D., 2007. Automatic generation of PLC automation
projects from component-based models. The International Journal of Advanced Manufacturing
Technology, 35(6), pp. 527-540.
Fall, K. & Stevens, R., 2011. TCP/IP illustrated, volume 1: The protocols. 1 éd. Boston:
addison-Wesley.
Felser, M., 2005. Real-time ethernet-industry prospective. Proceedings of the IEEE, 93(6),
pp. 1118-1129.
Gallasch, G. & Kristensen, L. M., 2001. Comms/CPN: A Communication Infrastructure for
External Communication with Design/CPN. 3rd Workshop on Practical Use of Coloured Petri
Nets and the CPN Tools., pp. 79-93.
Georges, J.-P., 2005. Systèmes contrôlés en réseau: évaluation de performances
d'architectures Ethernet commutées, Nancy: Université Henri Poincaré-Nancy.
Gertler, J., 1988. Survey of model-based failure detection and isolation in complex plants.
Control Systems Magazine, 8(6), pp. 3-11.
Ghanaim, A., Borges, G. & Georg, F., 2009. Estimating delays in networked control systems
using colored Petri nets and Markov chain models. IEEE Conference on Emerging
Technologies & Factory Automation, pp. 1-6.
Goldfarb, C. & Rubinsky, Y., 1990. The SGML handbook. Oxford: Oxford University Press.
133
Goodwin, G. C., Graebe, S. & Salgado, M., 2001. Control system design. New Jersey:
Prentice Hall.
Greifeneder, J. & Frey, G., 2007. Probabilistic timed automata for modeling networked
automation systems. IFAC Proceedings Volumes , 40(6), pp. 1-6.
Grieu, J., 2004. Analyse et évaluation de techniques de commutation Ethernet pour
l’interconnexion des systèmes avioniques, Toulouse: Institut National Polytechnique de
Toulouse.
Grieu, J., Frances, F. & Fraboul, C., 2003. Preuve de déterminisme d’un réseau embarqué
avionique. 10ème Colloque Francophone sur l'Ingénierie des Protocoles (CFIP'03), pp. 287-
303.
Habib, G., 2010. Qualité de service et qualité de contrôle d'un Système Discret Contrôlé en
Réseau Sans Fil: proposition d'une approche de co-conception appliquée au standard IEEE
802.11, Nancy: Université Henty Poincaré, Nancy 1.
Haffar, M., 2011. Approche de Co-Simulation en vue de la validation et de l'évaluation de
performance des systèmes de communication: Application à des architectures de distribution
électriques, Grenoble: Université de Grenoble.
Hardouin, L., 2004. Sur la commande linéaire de systèmes à événements discrets dans
l'algèbre (max,+), Angers: Université Angers .
Hatley, D. & Pirbhai, I., 2013. Strategies for real-time system specification. 2 éd. Boston:
Addison-Wesley.
Havelund, K. & Thomas, P., 2000. Model checking java programs using java pathfinder.
International Journal on Software Tools for Technology Transfer, 2(4), pp. 366-381.
Heindl, A. & Reinhard, G., 2001. Performance modeling of IEEE 802.11 wireless LANs
with stochastic Petri nets. Performance Evaluation, 44(1), pp. 139 - 164.
Hirel, C., Tuffin, B. & Trived, K. S., 2000. Spnp: Stochastic petri nets. version 6.0.
International Conference on Modelling Techniques and Tools for Computer Performance
Evaluation, pp. 354-357.
Ishak, M. K., Herrmann, G. & Pearson, M., 2016. Performance evaluation using Markov
model for a novel approach in Ethernet based embedded networked control communication.
Systems Conference (SysCon), 2016.
Itsuo, H., Yamagata, K. & Tamura, H., 1991. Modeling and online scheduling of flexible
manufacturing systems using stochastic Petri nets. IEEE Transactions on Software
Engineering , 17(2), pp. 126-132.
Jasperneite, J. & Neumann, P., 2001. Performance evaluation of switched ethernet in
realtime applications. Fourth international conference on Fieldbus systems and their
applications, pp. 144-151.
Jasperneite, J. & Neumann, P., 2001. Switched Ethernet for Factory Communication.
Emerging Technologies and Factory Automation, pp. 205-212.
Jensen, K., 1981. Coloured Petri nets and the invariant-method. Theoretical computer
science, 14(3), pp. 317-336.
Jensen, K., 1994. An Introduction to the Theoretical Aspects of Coloured Petri Nets.
Workshop/School/Symposium of the REX Project (Research and Education in Concurrent
Systems), pp. 230-272.
134
Jensen, K., Lars, M. K. & Wells, L., 2007. Coloured Petri Nets and CPN Tools for modelling
and validation of concurrent systems. International Journal on Software Tools for Technology
Transfer, 9(4), pp. 213-254.
Juanole, G. & Gallo, L., 1995. Formal modelling and analysis of a critical time
communication protocol. Proceedings of the lSt IEEE workshop on factory communication
system WFCS, Volume 95, pp. 107-I.
Khansa, W., 1997. Reseaux de Petri p-temporels contribution a l'etude des systemes A
evenements discrets, Annecy: Université de Savoie.
Kleinrock, L., 1976. Queueing Systems Volume 2: Computer Applications. 1 éd. New York:
John Wiley.
Klir, G. J., 2005. Uncertainty and information: foundations of generalized information
theory. 1 éd. New York: John Wiley & Sons.
Krakora, J. & Zdenek, H., 2004. Timed automata approach to CAN verification. 11th IFAC
Symposium on Information Control Problems in Manufacturing, April.Volume 1.
Kwiatkowska, M., Norman, G. & Parker, D., 2011. PRISM 4.0: Verification of probabilistic
real-time systems. International Conference on Computer Aided Verification, pp. 585-591.
Labadi, K., 2005. Contribution à la modélisation et à l'analyse de performances des
systèmes logistiques à l'aide d'un nouveau modèle de réseaux de Petri stochastiques, Troyes:
Université de Troyes.
Lalouette, J. et al., 2010. Evaluation des performances du systeme de signalisation
ferroviaire européen superpose au systeme français, en présence de défaillances. 17e Congrès
de Maîtrise des Risques et de Sûreté de Fonctionnement Lambda-Mu'2010.
Le Boudec, J.-Y. & Thiran, P., 2001. Network calculus: a theory of deterministic queuing
systems for the internet. 1 éd. Berlin: Springer Science & Business Media.
Lee, K.-C. & Lee, S., 2002. Performance evaluation of switched Ethernet for real-time
industrial communications. Computer standards & interfaces, 24(5), pp. 411 - 423.
Lenzini, L., Mingozzi, E. & Stea, G., 2008. A methodology for computing end-to-end delay
bounds in FIFO-multiplexing tandems. Performance Evaluation, 65(11), pp. 922-943.
Limal, S., 2009. Architectures de contrôle-commande redondantes à base d'Ethernet
Industriel: modélisation et validation par model-checking temporisé, Cachan: École normale
supérieure de Cachan.
Li, X., Cros, O. & George, L., 2014. The Trajectory approach for AFDX FIFO networks
revisited and corrected. IEEE 20th International Conference on Embedded and Real-Time
Computing Systems and Applications, pp. 1-10.
Lotito, P., Mancinelli, E. & Quadrat, J.-P., 2005. A Minplus Derivation of the Fundamental
Car-Traffic Law. IEEE Transactions on Automatic Control, 50(5), pp. 699 - 705.
Maffezzoni, C., Ferrarini, L. & Carpanzano, E., 1999. Object-oriented models for advanced
automation engineering. Control Engineering Practice, 7(8), pp. 957-968.
Marsal, G., 2006a. Evaluation of time performances of Ethernet-based automation systems
by simulation of high-level petri nets., Cachan: Ecole normale supérieure Cachan.
Marsal, G., Denis, B., Faure, J.-M. & Frey, G., 2006b. Evaluation of response time in
Ethernet-based automation systems. IEEE Conference on Emerging Technologies and Factory
Automation, pp. 380 - 387.
135
Marsan, A., Gianni Conte, M. & Balbo, G., 1984. A class of generalized stochastic Petri
nets for the performance evaluation of multiprocessor systems. ACM Transactions on
Computer Systems (TOCS), 2(2), pp. 93-122.
Marsan, M. A. & Chiola, G., 1986. On Petri nets with deterministic and exponentially
distributed firing times. European Workshop on Applications and Theory in Petri Nets, pp.
132-145.
Martin, S. & Minet, P., 2006a. Schedulability analysis of flows scheduled with FIFO:
application to the expedited forwarding class. Proceedings 20th IEEE International Parallel
& Distributed Processing Symposium.
Martin, S. & Minet, P., 2006b. Worst case end-to-end response times of flows scheduled
with FP/FIFO. International Conference on Networking, International Conference on Systems
and International Conference on Mobile Communications and Learning Technologies
(ICNICONSMCL'06), pp. 54-61.
McKinney, D., 2001. Impact of Commercial Off-The-Shelf (COTS) Software and
Technology on Systems Engineering, Melbourne: Presentation to INCOSE.
Mekki, A., 2012. Contribution à la Spécification et à la Vérification des Exigences
Temporelles: Proposition d’une extension des SRS d’ERTMS niveau 2, Lille: Ecole Centrale
de Lille.
Mekki, A., Ghazel, M. & Toguyeni, A., 2010. Time-constrained systems validation using
MDA model transformation. A railway case study. Proceedings of the 8th International
Conference of Modeling and Simulation (MOSIM’10).
Merlin, P. M., 1974. A study of the recoverability of computing systems, Irvine: University
of California.
Meunier, P., 2006. Evaluation de performance d'architectures de commande de systèmes
automatisés industriels, Cachan: École normale supérieure de Cachan.
Mezini, M. & Karl, L., 1998. Adaptive plug-and-play components for evolutionary software
development. ACM Sigplan Notices, 33(10), pp. 97-116.
Migge, J., 1999. L'ordonnancement sous contraintes temps-réel: un modèle à base de
trajectoires, Sophia Antipolis : INRIA .
Moncelet, G. et al., 1998. Analysing a mechatronic system with coloured Petri nets.
International Journal on Software Tools for Technology Transfer (STTT), 2(2), pp. 160-167.
Muller, P.-A. & Gaertner, N., 2000. Modélisation objet avec UML. 2 éd. Paris: Eyrolles.
Murata, T., 1989. Petri nets: Properties, analysis and applications. Proceedings of the IEEE,
77(4), pp. 541 - 580.
Natkin, S. O., 1980. Les reseaux de Petri stochastiques et leur application a l'evaluation
des systemes informatiques, Paris: Conservatoire National des Arts et Metiers.
Ndiaye, M., Petin, J.-F. & Camerini, J. G. J.-P., 2016. Performance assessment of industrial
control system during pre-sales uncertain context using automatic Colored Petri Nets model
generation. Control, Decision and Information Technologies (CoDIT), pp. 671-676.
Ndiaye, M., Petin, J.-F., Georges, J.-P. & Camerini, J., 2016. Practical use of coloured Petri
nets for the design and performance assessment of distributed automation architectures.
International Workshop on Petri Nets and Software Engineering, 1591(1), pp. 113-131.
Pinna, B., Babykina, G., Brinzei, N. & Pétin, J.-F., 2013. Using Coloured Petri Nets for
integrated reliability and safety evaluations. IFAC, 43(22), pp. 19-24.
136
Process automation, 2013. Select PlantStruxure reference architectures, Carros: Schneider
Electric.
Ramchandani, C., 1973. Performance evaluation of asynchronous concurrent systems by
timed Petri nets, Cambridge: Massachusetts Institute of Technology.
Robert, J., 2012. De l'usage d'architectures Ethernet commutées embarquées dans les
lanceurs spatiaux, Nancy: Université de Lorraine.
Rodriguez-Navas, G., Proenza, J. & Hansson, H., 2006. An Uppaal model for formal
verification of master/slave clock synchronization over the controller area network. 6th IEEE
International Workshop on Factory Communication Systems, pp. 3-12.
Rony, G., Thiriet, J.-M. & Aubry, J.-F., 2013. Dependability evaluation of networked
control systems under transmission faults. IFAC Proceedings Volumes, 39(13), pp. 1068 -
1073.
Rossi, O., 2003. Validation formelle de programmes Ladder Diagram pour Automates
Programmables industriels, Cachan : Ecole normale supérieure Cachan.
Royer, A., 2006. Evaluation de performances de réseaux de communication à l'aide de
chaînes de Markov hybrides, Grenoble: Institut National Polytechnique de Grenoble-INPG.
Ruel, S., 2009. Évaluation des bornes des performances temporelles des Architectures
d'Automatisation en Réseau par preuves itératives de propriétés logiques, Cachan: École
normale supérieure de Cachan.
Sünder, C. et al., 2006. Usability and Interoperability of IEC 61499 based distributed
automation systems. 4th IEEE International Conference on Industrial Informatics, pp. 31-37.
Schmitt, J., Zdarsky, F. & Fidler, M., 2008. Delay Bounds under Arbitrary Multiplexing:
When Network Calculus Leaves You in the Lurch.... The 27th Conference on Computer
Communications INFOCOM 2008, pp. 1669-1677.
Schmitt, J., Zdarsky, F. & Martinovic, I., 2006a. The disco network calculator: a toolbox for
worst case analysis. Proceedings of the 1st international conference on Performance
evaluation methodolgies and tools, Volume 180, p. 8.
Schmitt, J., Zdarsky, F. & Martinovic, I., 2006b. Performance bounds in feed-forward
networks under blind multiplexing, Kaiserslautern: University of Kaiserslautern.
Scholten, B., 2007. Integrating ISA-88 and ISA-95, Rosmalen: Ordina ISA-95 & MES
competence centre.
Seno, L., Vitturi, S. & Zunino, C., 2009. Real Time Ethernet Networks Evaluation Using
Performance Indicators. IEEE Conference on Emerging Technologies & Factory Automation,
pp. 1-8.
Sifakis, J., 1980. Use of Petri nets for performance evaluation. Acta Cybernetica, 4(1978),
pp. 185-202.
Smith, R., 2016. Chemical process design and integration. 2 éd. New York: John Wiley &
Sons.
Song, Y., 2004.. Qualité de service dans les réseaux et systèmes temps réel distribués :
contributions à l’évaluation de performances temporelles et à l’ordonnancement, Nancy:
Université Henri Poincaré Nancy 1, LORIA.
Song, Y., Koubaa, A. & Simonot, F., 2002. Switched Ethernet for real-time industrial
communication: Modelling and message Buffering delay evaluation. 4th IEEE International
Workshop on Factory Communication Systems, pp. 27-35.
137
Thramboulidis, K., 2004. Using UML in control and automation: a model driven approach.
Industrial Informatics, INDIN'04, pp. 587-593.
Tindell, K. W., Hansson, H. & Wellings, A., 1994. Analysing real-time communications:
controller area network (CAN). Real-Time Systems Symposium, pp. 259 - 263.
Van Deursen, A., Klint, P. & Visser, J., 2000. Domain-Specific Languages: An Annotated
Bibliography. Sigplan Notices, 35(6), pp. 26-36.
Vanit-Anunchai, S., Billington, J. & Gallasch, G. E., 2006. Sweep-line analysis of DCCP
connection management. Seventh workshop and tutorial on practical use of coloured petri nets
and the CPN tools, pp. 157-175.
Walsh, G., Ye, H. & BushNell, L., 2001. Stability analysis of networked control systems.
Control Systems Technology, IEEE Transactions, 10(3), pp. 438-446.
Wang, J., 1998. Timed Petri nets: Theory and application. 1 éd. New York: Springer
Science & Business Media.
Ward, P., 1986. Structured Development for Real-Time Systems: Vol. I: Introduction and
Tools. 1 éd. New Jersey: Pearson Education.
Wheels, J., 1993. Process control communications: Token bus, CSMA/CD, or token ring?.
ISA transactions, 32(2), pp. 193-198.
Witsch, D., Vogel-Heuser, B., Faure, J. & Marsal, G., 2006. Performance analysis of
industrial Ethernet networks by means of timed model-checking. IFAC Proceedings Volumes,
39(3), pp. 101-106.
Zhang, W., Branicky, M. & Phillips, S., 2001. Stability of networked control systems. IEEE
Control Systems, 21(1), pp. 84 - 99.
Zimmermann, A., 2012. Modeling and evaluation of stochastic Petri nets with TimeNET
4.1. Performance Evaluation Methodologies and Tools (VALUETOOLS), pp. 54-63.
Zwick, R. & Walisten, T., 1989. Combining stochastic uncertainty and linguistic
inexactness: theory and experimental evaluation of four fuzzy probability models.
International Journal of Man-Machine Studies, 30(1), pp. 69-111.
138
Resume
́ ́
Ce mémoire, réalisé dans le cadre d’une thèse sous convention CIFRE avec la société Schneider-
Electric et l’Université de Lorraine à travers le laboratoire du CRAN, porte sur l’évaluation des
performances temporelles des architectures de contrôle-commande distribuées sur un réseau de
communication. Le besoin industriel s’exprime sous la forme d’un outil d’aide au dimensionnement
des architectures en phase d’avant-vente caractérisée par une connaissance partielle de ces dernières.
Le problème scientifique sous-jacent est relatif à la génération automatique des modèles servant de
support à l’évaluation. En effet, l’évaluation des performances doit être réalisée pour un ensemble
important d’architectures, dans un temps court, difficilement compatible avec une construction
manuelle des modèles. Notre contribution porte sur la définition formelle, à l’aide de réseaux de Petri
colorés et temporisés, d’un modèle « constructeur » d’architectures embarquant des mécanismes de
configuration, d’instanciation et de paramétrage. Plusieurs algorithmes sont proposés pour, d’une part,
construire automatiquement le modèle d’une architecture donnée, à partir d’une description formelle de
sa topologie et d’une librairie de modèles d’équipements de contrôle-commande, et, d’autre part, pour
générer les observateurs requis à partir d’une description formelle des performances à évaluer. Ces
différents algorithmes ont été implantés dans un outil interfacé, d’une part avec l’outil Schneider de
description des architectures, et, d’autre part avec le simulateur de l’outil CPN Tools qui fournit une
estimation des performances via des simulations de Monte-Carlo. L’intérêt de cette approche a été
illustrée sur la base de quelques architectures types fournies par la société Schneider-Electric.
Abstract
This PhD dissertation, supported by CIFRE convention between the company Schneider-Electric
and the University of Lorraine through the CRAN laboratory, deals with the assessment of temporal
performances for a networked distributed control system. The industrial need was the development of
a quotation and sizing tool of industrial control architecture during pre-sales stage. This stage is
characterized by limited information about the process and the customers’ needs. The underlying
scientific problematic was the ability to generate automatically models serving as support for the
evaluation. In fact, performance assessment is realized for a wide range of architecture during a small
amount of time, which is not compliant with a manual definition of the models. Our contribution is
mainly based on a formal definition of a “builder” model with Colored and Timed Petri Nets which
embeds mechanisms for configuration, instantiation and parameters setting of the architecture models.
Several algorithms have been proposed for firstly build automatically the architecture Petri Nets model
from a formal description of the topology and from a component model library and, secondly, for
generating performance observers. Theses algorithms have been implemented on a tool gathering a user
interface developed by Schneider –Electric and the Petri Nets simulator called CPN Tools which
provides the performance assessment through Monte-Carlo simulation. The added value of this
approach has been illustrated through case studies provided by Schneider-Electric.
Keywords : Performance assessment, industrial networked control system, Colored and Timed Petri
Nets, Monte-Carlo simulation.