La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les systèmes à évènements discrets SED V2.0 Norme UML 2.5 (sept 2013)

Présentations similaires


Présentation au sujet: "Les systèmes à évènements discrets SED V2.0 Norme UML 2.5 (sept 2013)"— Transcription de la présentation:

1 Les systèmes à évènements discrets SED V2.0 Norme UML 2.5 (sept 2013)

2 Signaux logiques Signaux logiques : Quantité physique qui représente une variable logique dans l'un ou l'autre de ses deux états possibles. Ex : signal électrique continu compris entre 0 et 0,6V pour 0 Variable logique : Variable binaire qui peut prendre deux états associés au caractère vrai ou faux dun événement. Ex : interrupteur ouvert ou fermé, tige vérin rentrée ou sortie,… Variable binaire : Variable qui ne peut prendre que deux et seulement deux valeurs. (par convention 0 et1) 2

3 Systèmes logiques Systèmes logiques : Ensemble de composants qui effectuent des fonctions sur des signaux logiques dans le but de stocker, communiquer ou de transformer de l'information. Il existe 2 grandes catégories de systèmes logiques : - systèmes combinatoires - systèmes séquentiels (appelés aussi systèmes à évènements discrets) 3

4 Système Combinatoire Un système logique, dont l'évolution future de la sortie ne dépend que des entrées qui lui sont appliquées, est un système combinatoire. 4 Voir cours sur les portes logiques et lalgèbre de Boole

5 5 Exemple : Création du câblage de la mise en service dune machine électrique Cahier des charges : Le pupitre comporte : -un bouton poussoir monostable nommé « réarmement » ; -un bouton bistable à verrouillage darrêt durgence ; -un voyant vert de mise en service.

6 6 Exemple : Création du câblage de la mise en service dune machine électrique Cahier des charges : Le pupitre comporte : -un bouton poussoir monostable nommé « réarmement » ; -un bouton bistable à verrouillage darrêt durgence ; -un voyant vert de mise en service. A la mise sous tension de la machine (interrupteur général non géré par notre étude), tout est éteint (conditions initiales de repos). Sur impulsion du bouton « réarmement », le voyant vert sallume. Si on relâche le bouton ou si lon appuie à nouveau, rien nest modifié. Pour stopper la mise en service de la machine, il faut appuyer sur le bouton darrêt durgence. Tant que le bouton darrêt durgence reste enfoncé (1 logique), le voyant ne sallume pas, la machine ne peut pas se mettre en tension.

7 Questions 1 : recenser les entrées/ sorties du système logique. 2 : écrire sous forme de table de vérité le cahier des charges. Ce système logique est-il combinatoire ? 3 : introduire une nouvelle entrée binaire x1 équivalent à « système mis sous tension » et réécrire la table de vérité. Le nouveau système logique est-il combinatoire ? 4 : quelle est la procédure pour réactiver la mise en service après un arrêt durgence ? 5 : écrire la ou les équations logiques de V (voyant) 6 : introduire une nouvelle sortie X1 correspondant à « METTRE sous tension ». Dessiner le câblage électrique correspondant en utilisant un contacteur x1 lié logiquement au relais X1.

8 8 Fonctionnement dun relais La bobine 1 est alimentée, la partie métallique (ou aimant) est déplacée ; Une partie mécanique déplace 3 et ferme le circuit électrique de puissance. Borniers commande Borniers puissance

9 9 Fonctionnement dun relais Voir simulation automgen

10 Relais Relais électromécanique Contacteurs associés

11 Système séquentiel (ou SED) Un système logique, dont l'évolution future de la sortie dépend à la fois des entrées qui lui sont appliquées et des évolutions passées, est un système séquentiel. Système combinatoire Système Système séquentiel X X S E 11

12 SED en SysML 12

13 Diagrammes de comportement en SysML Diagrammes des cas dutilisation (uc): diagramme qui fixe la frontière détude du système, le (les) acteur(s) et le (les) service(s) rendu(s) par le système pour le (les) acteur(s). – Ces diagrammes peuvent contenir des cas dutilisations associés aux différents services attendus à différents moments de lusage du système. – Ces diagrammes peuvent aussi préciser les différentes phases de vie du système. – Il ny a ni évènements et ni chronologie dans ces diagrammes. 13

14 Capsuleuse de bocaux 14 Pupitre Voyant mise sous énergie Interrupteur général

15 Diagrammes de comportement en SysML 15 Exemple indexa

16 Pupitre INDEXA 16 Boutons bistables Potentiomètre Bouton bistable coup de poing Boutons monostables avec voyant Boutons monostables Voyant

17 Diagrammes de comportement en SysML Diagrammes de séquences (sd): diagramme décrivant un scénario possible dun cas dutilisation. Ce scénario peut inclure aussi des gestions de problèmes ou de mise en route. On se limite aux messages et ordres entre lacteur et le système (interactions) décrit séquentiellement. 17

18 Diagrammes de séquence 18 Acteur (voir uc) Bloc (voir bdd) Ligne de vie temps Bande dactivation Initialisation INDEXA

19 Diagrammes de séquence (sd) 19 Message aller synchrone Elément de communication unidirectionnel entre lignes de vie. La réception dun message provoque un évènement chez le récepteur. Lémetteur est en attente dune réponse. Message retour Message résultat direct dun message aller synchrone. Message aller asynchrone Similaire au message aller synchrone mais lémetteur nattend pas de réponse du récepteur. Message réflexif Message bouclant sur une même ligne vie pour représenter un fonctionnement interne. AB 1 : message synchrone A B 2 : message asynchrone A B

20 Diagrammes de séquence (sd) 20 Fragments combinés boucle Le contenu du cadre fonctionne en boucle jusquà la condition de garde. Fragments combinés optionnels Le contenu du cadre sexécute si condition de garde vraie. Fragments combinés alternatifs Seul le fragment dont la condition est vraie sexécutera. Le mot clé « else » peut être utilisé. On peut représenter des tests à laide de « fragments combinés ». loop [Condition de garde] opt [Condition de garde] alt [Condition de garde 1] [Condition de garde 2] On peut représenter des appels à dautres diagrammes de séquence avec le cadre référence. Cadre référence Ce cadre représente de manière compacte un autre diagramme de séquence. ref Nom du diagramme appelé Remarque : il existe dautres outils pour ces diagrammes. Ils seront décrits à loccasion de TD.

21 Diagrammes de séquence (sd) 21 INDEXA Décrit dans le diagramme de séquence initialisation. Décrire par le texte le diagramme de séquence précédent. A quoi correspond-il ?

22 Diagrammes de séquence (sd) 22 Ecrire le diagramme de séquence de la phase dinitialisation. En suivant le texte suivant : -Si pas de flacon en entrée et appuie sur le bouton Initialisation, alors rotation dun tour du maneton (rotation dun 1/4 de tour du plateau), -Puis allumage voyant Machine prête.

23 Diagramme de séquence Ecrire le diagramme de séquence du domoticc 23

24 Synthèse diagramme de séquence Le diagramme de séquence permet de représenter les interactions (messages) entre le ou les acteurs et le système. On ne cherche pas à décrire le fonctionnement interne du système. Pour décrire finement le comportement interne séquentiel du système on peut utiliser : – Les diagrammes dactivités – Les diagrammes détats 24

25 Définitions SysML Bloc : classification qui représente un ensemble dobjets partageant les mêmes spécificités.(classe en informatique). Il sagit de la brique de base structurelle en SysML. Instance de bloc : élément de type définit à partir dun bloc avec un comportement et un état. État : situation durant la vie du bloc pendant laquelle : – Il satisfait une certaine condition ; – Il exécute une certaine activité (et non une action) ; – Il attend un certain évènement. Transition : décrit la réaction dun bloc lorsqu'un évènement se produit. En général, une transition possède un évènement déclencheur, une condition de garde et parfois un effet. Condition (de garde) (condition guard) : expression booléenne qui est vraie lorsque lévènement associé apparait (occurrence de lévènement). Elle se note entre crochets. Evénement : Phénomène considéré comme localisé et instantané (discret), cest-à-dire survenant en un point de lespace et à un instant bien déterminé (appui sur un bouton). Occurrence : Apparition dun évènement. Action : représente le comportement élémentaire. Elle ne peut pas être interrompue. (ex : affectation de variable, incrémentation compteur, envoi signal…). Elle est présente dans les diagrammes dactivités. Activité : représente le comportement complexe dun bloc. Elle est décrite dans un diagramme dactivité qui contient les actions et leur séquencement. Elle modélise aussi le lien entre les flux (signaux, matière, énergie) et les actions. De plus, il est possible de renseigner sur les blocs réalisant les différentes actions. Elle peut être interrompue. 25

26 Définitions complémentaires Evénement : Phénomène considéré comme localisé et instantané (discret), cest-à-dire survenant en un point de lespace et à un instant bien déterminé (ex : appui sur un bouton). Action : représente un comportement élémentaire du système. Elle ne peut pas être interrompue. (ex : affectation de variable, incrémentation compteur, « envoi signal »…). Elles apparaissent dans les diagrammes dactivités et dans certains cas dans les diagrammes détats. Activité : séquencement dactions pouvant être décrit dans un diagramme dactivité. Elle peut être interrompue. Elles apparaissent dans les diagrammes détats. État : situation durant la vie dun bloc pendant laquelle : – il satisfait une certaine condition ; – il exécute une certaine activité ; – il attend un certain évènement. 26

27 Définitions complémentaires Lapparition dun évènement (occurrence) est appelé déclencheur (trigger). 27 t a 0 Front montant de a noté a Front descendant de a noté a Lapparition de lévènement a est appelé front montant. (si booléen passage de 0 à 1). La disparition de lévènement a est appelé front descendant. (si booléen passage de 1 à 0) Qualités d'un système de décision Attentif : réceptif à tout événement externe quel que soit l'instant où il se produit. Efficace : capable de traiter les conséquences de tout événement externe auquel il est réceptif. Déterminé : à circonstances identiques, comportement identique. Conséquence : Tous les déclencheurs sont asynchrones (distincts dans le temps). Le booléen ( a. b) est donc toujours faux (nul) !

28 Diagramme détats Diagramme détats : Cest un graphe, où les nœuds (sommets) représentent les états du bloc et les arcs orientés les transitions : cest un automate à nombre détats finis (ou machine à états finis) Il permet de modéliser le comportement dynamique (« cycle de vie ») dun bloc (ou instance de bloc) selon des scénarii définis au préalable. Il contient : – un état initial – un ensemble de déclencheurs – un ensemble détats – un ensemble dactivités et/ou actions Des règles de comportement permettent de modéliser lévolution détat en état à partir doccurrence (apparition) dévènements. 28

29 Diagramme détats 29 Bloc ayant plusieurs états intéressants à décrire : -état1 -état 2 évènement 1 évènement 2 évènements : fronts montantsactivités activité 1 activité 2 En fonction des apparitions des évènements (occurrence) et de lunique état actif du bloc, le diagramme détats évolue : létat courant devient inactif et un autre devient actif pouvant ainsi exécuter une activité. Remarque 1 : la description des activités se fait dans un diagramme dactivité (sorte dorganigramme de programmation). Remarque 2 : on verra quil est possible de quitter et dactiver le même état sur le même évènement.

30 Diagramme détats Nom du diagramme : stm (state machine) : machine à nombre fini détats ou automate fini. 30 Pseudo état initial : lautomate fini démarre Etat : Tant quil est actif, lactivité1 est exécutée. Transition Exemple générique de base Trigger : lorsque celui-ci apparaît alors létat 1 est désactivé et létat 2 est activé. Pseudo état final : lautomate fini sarrête. Transition automatique : létat2 est désactivé dès que lactivité2 est terminée. Létat2 est « désactivable » si à linstant où lévènement2 apparaît, la condition de garde [condition1] est vraie. Lorsque létat2 est activé, lactivité2 est exécutée une fois.

31 Evènements Un évènement est par nature instantané et est traité immédiatement. Il existe plusieurs types dévènements : – lévènement de signal (signal event) : un signal asynchrone est arrivé (ex : appui sur un bouton); – lévènement de changement (change event) : une valeur interne au modèle a changé de telle sorte que la transition est franchie (« when N=10 ») (ex : compteur atteint) ; – lévènement temporel (time event) : Relatif : after (90s) passe à vrai 90s après lentrée dans létat courant. Absolu : at (11:00) passe à vrai (toutes les 11h) sur une base de temps absolue. 31 when, after, at sont des mots clés.

32 Etats Un état est représenté par un rectangle aux coins arrondis. Un état possède un titre informant du nom de létat du bloc (ex : Système sous tension). Ce titre est unique dans le diagramme. Il nest pas possible dincorporer des états prélevés de dautres diagrammes sauf états sous-machine. Un état sans titre est un état anonyme. Chaque état possède 3 lignes optionnelles dexécution : – entry / activité1 => lactivité1 est exécutée en priorité au moment où létat sactive; – do / activité2 => lactivité2 sexécute tant que létat est actif après lactivité1 ; – exit / activité3 => lactivité3 sexécute lorsque létat est désactivé en interrompant lactivité2 si elle est en cours dexécution. 32 Exceptionnellement, les activités associées à entry et exit ne peuvent pas être interrompues comme des actions.

33 Pseudo-Etats Pseudo-état initial Il sagit dun état activé au lancement de la machine à état. Le diagramme doit en posséder au moins un. Il na donc aucune transition entrante. Pseudo-état final Lorsque cet état est activé lautomate fini sarrête. Il est optionnel. Il na donc aucune transition sortante. 33 Un pseudo-état est un état anonyme qui ne contient aucune ligne dexécution dactivité et qui possède un comportement spécifique.

34 Transitions Transition : arc orienté qui relie deux états (source vers cible). La transition est franchie lorsque les conditions de franchissement associées sont vraies : Chaque terme est optionnel. La condition de garde est un booléen. Si lévénement apparaît (déclencheur) et si la condition de garde est vraie à ce moment alors la transition est franchissable : si létat1 était actif alors il se désactive et létat2 sactive. Lactivité, si elle existe, est exécutée avant celles situées dans létat2.(Je déconseille lutilisation de cette fonctionnalité - machine de Mealy) Important : la condition de garde nest prise en compte quau moment de loccurrence de lévènement. Si aucun évènement est écrit alors il est toujours vrai. Si aucune condition de garde est écrite alors elle est toujours vraie. Une transition qui ne contient aucune condition de franchissement est dite automatique. 34 état2état1 évènement [condition de garde] / activité

35 Transitions Transition réflexive : arc orienté qui relie le même état (source = cible). Cela permet dexécuter à nouveau les activités associées à exit et à entry de nouveau. 35 Si létat9 est actif, il est sensé exécuter lactivité2 sauf si celle-ci cest terminée delle-même. Si évènement1 apparait, létat9 reste actif, mais lactivité3 est exécutée puis lorsquelle est terminée, lactivité1 se réalise et enfin de nouveau lactivité2. Rappel : les activités associées à entry et exit ne peuvent pas être interrompues à linstar des actions.

36 Transitions internes Il est possible de placer des activités dans un état associées à un évènement et éventuellement une garde. Ces activités sont prioritaires sur lactivité associée à un do/ 36 Lorsque létat1 est actif, lactivité1 est exécutée. Dès que lévènement4 apparaît avec la condition de garde test1 vraie, alors lactivité 1 est interrompue au détriment de lactivité3.(?)

37 Evénements référencés Il est possible de créer une liste de déclencheurs (triggers) de différents évènements pouvant apparaître lorsquun état est actif mais utiles dans une transition ou un autre état. Pour mettre en file dattente ces déclencheurs il faut utiliser laction mot clé /defer. 37 A lactivation de la machine détats, létat2 est activé (via le pseudo-état initial et la transition automatique) ; Dès que loccurrence de lévénement1 apparaît, on désactive létat2 et on active létat3. Les états 2 et 3 contiennent une action /defer associée à lévénement3 : si cet événement3 apparaît pendant que soit létat2 soit létat3 est actif, alors il est référencé (trigger pool) et en attente de consommation ! Par exemple si événement2 apparaît, létat3 se désactive et létat4 sactive, mais comme événement3 était référencé, alors on désactive létat4 et on atteint le pseudo-état final. Si létat4 contient des actions/activités associées à entry et/ou exit, elles sont exécutées (mais pas lactivité associée à do). Si événement3/defer nétait pas dans état3, alors lévénement3 serait perdu au cas ou il apparaît pendant lactivation de état2.

38 Exemple Ecrire le diagramme détats de la mise sous tension du domoticc. 38

39 Etats composites Lactivation de létat composite entraîne lactivation du pseudo-état initial. (rond noir) La désactivation de létat composite (ici évènement stop) entraîne la désactivation de létat actif (ici état4 ou état5): létat composite est donc hiérarchiquement supérieur à lautomate fini quil contient. Chaque sous-état peut aussi être un état composite et ainsi de suite… Lautomate fini contenu est appelée région. Un état composite peut contenir des activités associées à entry, do et exit. entry et do sont traités avant lactivation du pseudo-état initial de la région, exit est traité au moment de la désactivation de létat composite. Je déconseille dutiliser ces fonctionnalités. 39 Etat composite : état contenant un automate fini détaillant son fonctionnement séquentiel. Région

40 Sous machine à états Le diagramme détats dun état sous machine est dessiné dans un autre diagramme détat : une icône représentant 2 états + une transition permet de le signaler. 40 Etat sous machine : état instance dun automate fini (diagramme détats). Ces diagrammes sont équivalents à lexemple de la page précédente.

41 Sous machine à états Il est possible dutiliser la même machine à états dans dautres états sous-machine : dans ce cas le nom devient Nom de létat sous machine : diagramme2 On peut donc voir le diagramme2 comme « un sous programme ». 41 Etat sous machine 2

42 Sous machine à états Lorsque plusieurs points dentrée et/ou sortie sont utiles dans une sous machine, il faut placer des pseudo-états correspondants : 42 Pseudo-états dentrée et de sortie Pseudo-état dentrée Pseudo-état de sortie Points de connexion Transitions automatiques conseillées ici Cest le nom (entrée1) du point de référence qui fait le lien avec le pseudo-état point dentrée de la sous machine.

43 Etats composites Des droites en traits pointillés dans létat créent des régions. Il est déconseillé de relier des états de deux régions distinctes (dun même état composite) 43 Etat orthogonal : état contenant plusieurs automates finis (régions) fonctionnant en parallèle. Magicdraw impose des régions horizontales, mais la norme autorise aussi une écriture verticale. Région 1 Région 2

44 Etats composites 44 Si stop devient vrai, létat composite2 se désactive ; tous les états le composant se désactivent. Si des activités sont en exit, elles sont exécutées dans lordre inverse hiérarchique cest-à-dire en premier celles des états des régions puis celle de létat composite, puis létat2 est activé. Si létat8 devient actif, [in état8] devient vrai et donc létat composite2 se désactive (et les activités exit des état8 et de létat courant de la région 1 sexécutent) puis létat9 sactive. Si les activités de létat7 et de létat8 sont terminées, létat composite2 se désactive et létat composite:diagramme2 sactive (transition automatique). 3 cas indépendants possibles : Mot clé in Transition automatique région1 région2

45 Etats composites 45 Pseudo états : divergence de flux (fork) et convergence (join) Permet de représenter graphiquement le parallélisme entre deux régions. Fork nodeJoin node Les deux transitions automatiques sont franchies de manière synchrone. Dès lapparition de événement2, les état4 et état6 sont désactivés.

46 Pseudo-Etats de choix 46 Dès que lévénement1 apparaît, létat3 est désactivé. Puis les autres termes des transitions sortantes du pseudo-état choix sont évalués. SysML/UML impose un choix exclusif entre les transitions pour obtenir un unique état actif par automate fini (ou par niveau hiérarchique), mais un automate fini peut contenir dautres automates finis en parallèles (états orthogonaux). Il est donc conseillé de placer une condition de garde [else] pour ne pas bloquer lévolution de lautomate fini. (on ne doit pas rester bloqué dans le pseudo-état de choix (losange)). Pseudo-état de choix

47 Pseudo-Etat de jonction 47 état7=stop.(événement1.état3+événement2.état6) État7 actif si : Stop doit être vrai au moment où état3 ou état6 se désactive. Pseudo-état de jonction

48 Pseudo-Etats historiques Pseudo-état historique (shallow history) Cet état est associé à un état composite. Il permet de mémoriser létat qui était actif au même niveau hiérarchique au moment où létat composite a été désactivé. Lorsque ce pseudo-état devient actif, on reprend donc là où on en était dans létat composite. Pseudo-état historique profond (deep history) Similaire au précédent, mais réactive les états qui étaient actifs quelque soit leur niveau hiérarchique. 48 H H* Lorsque stop devient vrai, létat composite2 se désactive et lautomate fini mémorise létat courant (par exemple létat6). Après 5min dactivation de létat2, létat composite2 est à nouveau activé, mais par le biais du pseudo-état historique : cest donc létat6 (mémorisé) qui sactive. Une région ne peut avoir quun seul pseudo-état initial et/ou historique à la fois. événement4

49 Conseils diagrammes détats Dautres outils en stm existent mais pas adaptés à SysML, Bien vérifier quun unique état est actif à la fois par machine détat, Il faut éviter de placer des activités dans la ligne exit, Il faut éviter les transitions automatiques sauf pour certains pseudo états (join, fork et initial pseudostates), Il faut éviter lutilisation des pseudo-états de choix et de jonction, Il faut éviter de placer des activités dans les étiquettes de transition (machine de Mealy), Normalement il ny a jamais un très grand nombre détats par automate, ne pas hésiter à utiliser les états composites, Les états des machines de production au niveau hiérarchique supérieur se limite à des états du type : système en attente, système en production, système en phase de réglage etc… Les diagrammes dactivité peuvent être utilisés pour détailler les séquences dactions élémentaires… (voir cours dinformatique) 49

50 Les diagrammes dactivités 50


Télécharger ppt "Les systèmes à évènements discrets SED V2.0 Norme UML 2.5 (sept 2013)"

Présentations similaires


Annonces Google