Pré. | Proc. |
Modélisation pour Stateflows
Vous disposez de plusieurs options lors de la création d'un diagramme Statemachine destiné à être rendu sous forme de diagramme Stateflow . Ceux-ci incluent quels éléments et connecteurs peuvent être utilisés, le placement de la Statemachine , où le code peut être défini dans le modèle et quel format de code peut être utilisé.
Statemachine
Lors de la création d'un modèle à générer en tant que diagramme Stateflow , le diagramme Statemachine doit être placé sous un Bloc SysML et avoir un élément Statemachine enfant, avec un diagramme Statemachine sous cet élément Statemachine .
Par exemple, dans ce cas, le Bloc 'Control' a une Statemachine enfant nommée 'ControlStateMachine', qui a un diagramme Statemachine enfant 'ControlStateMachine' :
Note que le Bloc ne doit contenir qu'un diagramme Statemachine ; il ne doit pas contenir d'autres diagrammes .
Code de définition
Il existe un certain nombre d'options pour placer un script dans un modèle Statemachine . Les considérations clés pour cela sont : quel est le format du script et où peut-il être placé ?
Format de code
Lorsque vous écrivez un code SysML valide, il sera traduit en code Stateflow valide. La spécification SysPhS définit le langage mathématique Modelica comme le "standard", c'est-à-dire ce qu'Enterprise Enterprise Architect accepte comme extraits de code dans le diagramme Statemachine , et les traduit en équivalent MATLAB/Stateflow. Pour plus de détails, reportez-vous à la section 10 de la spécification OMG SysPhS .
Emplacement du code
Interne à un State et conforme à la spécification UML , Stateflow supporte les trois Operations standards :
- Entrée
- Sortir
- Fais
Sur Transitions, il existe trois options clés pour utiliser le code :
- Garde de transition
- Effet de transition
- Gâchette
Utilisation de Bloc Propriétés
Pour le code, les Bloc Propriétés telles que les constantes et les Ports peuvent être référencés dans le script. Dans le cas des ports, les détails entrés dans le Bloc sont dérivés à l'aide du nom du port d'entrée et, de la même manière, des valeurs peuvent être attribuées à une variable du même nom que le port de sortie.
Par exemple:
Notes
Ces fonctionnalités SysML Statemachine ne sont pas disponibles dans Stateflow :
- État de l'historique approfondi
- Les états d'historique qui ont des transitions sortantes (c'est-à-dire des States initiaux) à utiliser sur toutes les entrées par défaut
- Bifurquer/Joindre
- Synchroniser
- Junction (uniquement Choice - Junction sera remplacé par Choice si possible)
- Points d'entrée/sortie
- Références à d'autres Statemachines ; Stateflow peut faire des Statemachines enfants mais ils ne peuvent pas être référencés à nouveau
- Un seul Statemachine par Bloc SysML