Réserver une Démo
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. Celles-ci incluent les éléments et les connecteurs pouvant être utilisés, le placement du Statemachine , l'emplacement du code pouvant être défini dans le modèle et le format de code pouvant être utilisé.

Placement Statemachine

Lors de la création d'un modèle à générer sous forme de 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 .

Définition du code

Il existe plusieurs options pour placer un script dans un modèle Statemachine . Les principales considérations à prendre en compte sont les suivantes : 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 « standard », ce 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 .

Placement du code

Interne à un State et conformément à la spécification UML , Stateflow supporte les trois opérations standard :

  • Entrée
  • Sortie
  • Faire
Chacun d'entre eux peut contenir du code, qui est défini dans l'opération de State sous Comportement. Par exemple, voici un extrait de code pour une entrée :

Dans Transitions, il existe trois options clés pour utiliser le code :

  • Garde de transition
  • Effet de transition
  • Déclencheur
Par exemple, il s’agit d’une déclaration de condition telle que définie dans une garde de transition :

Utilisation Bloc Propriétés

Pour le code, les Propriétés Bloc telles que les constantes et les ports peuvent être référencées dans le script. Dans le cas des ports, les détails saisis 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'histoire profonde
  • États d'historique qui ont des transitions sortantes (c'est-à-dire States initiaux) à utiliser sur toutes les entrées par défaut
  • Fourche/Jointure
  • Synchroniser
  • Jonction (uniquement Choix - Jonction sera remplacée par Choix lorsque cela est possible)
  • Points d'entrée/sortie
  • Références à d'autres Statemachines ; Stateflow peut faire Statemachines enfants mais elles ne peuvent pas être référencées à nouveau
  • Une seule Statemachine par Bloc SysML

Apprendre encore plus