Contenu principal

Détection des erreurs de modélisation en cours d’édition

Lorsque le contrôle en cours d'édition est activé, l'éditeur Stateflow® détecte les erreurs potentielles et les avertissements alors que vous élaborez votre diagramme. En éliminant ces problèmes tôt dans le processus de design, vous éviterez les avertissements et erreurs au moment de la compilation ou de l'exécution.

L'éditeur Stateflow met en évidence en rouge (pour les erreurs) ou en orange (pour les avertissements) les objets qui enfreignent les contrôles en cours d'édition. Lorsque vous pointez le curseur de votre souris sur un objet mis en évidence et que vous cliquez sur le badge d'erreur ou d'avertissement, une info-bulle affiche des détails et des solutions possibles.

Gestion des contrôles en cours d’édition

Par défaut, le contrôle en cours d’édition et la mise en évidence des erreurs syntaxiques sont activés. Pour désactiver les contrôles en cours d’édition, dans l’onglet Debug, désactivez la case à cocher Diagnostics > Edit-Time Errors & Warnings. Il est également possible de désactiver les contrôles en cours d’édition avec edittime.setDisplayIssues (Simulink).

Ce tableau répertorie les contrôles en cours d'édition auxquels est associé un paramètre de configuration de diagnostic sur le volet Diagnostics > Stateflow de la boîte de dialogue Configuration Parameters.

Vous pouvez contrôler le niveau de l'action de diagnostic pour ces contrôles en cours d’édition en définissant la valeur de leur paramètre de configuration sur error, warning ou none. Lorsque vous modifiez le réglage d'un paramètre de configuration, le niveau de diagnostic des contrôles en cours d’édition correspondants change également. Par exemple, si vous définissez le paramètre de configuration Unreachable execution path sur none, l'éditeur Stateflow ne met pas en évidence les transitions pendantes, les masquages de transitions ou les états inaccessibles.

Contrôles en cours d’édition réalisés sur des états et des sous-diagrammes

Atomic subchart contains state actions

  • Problème : les actions d'état ne sont pas prises en charge par les sous-diagrammes atomiques.

  • Niveau de diagnostic : erreur.

  • Solution : effacez les actions d'état ou déplacez-les dans un sous-état du sous-diagramme atomique.

    Atomic subchart that contains state actions.

Default transition is missing

  • Problème : dans un diagramme ou un état avec décomposition exclusive (OR) et au moins deux sous-états ou jonctions, une transition par défaut est nécessaire pour indiquer où débute l'exécution.

  • Niveau de diagnostic : erreur.

  • Solution : spécifiez un état initial en ajoutant une transition par défaut. Pour plus d’informations, veuillez consulter Use Default Transitions to Specify Initial Substate Activity.

    Chart with no default transition.

Graphical function contains a state

  • Problème : comme les fonctions graphiques s'exécutent entièrement en un seul pas de temps, elles ne doivent pas contenir d'états.

  • Niveau de diagnostic : erreur.

  • Solution : remplacez les états par des jonctions. Pour plus d’informations, veuillez consulter Reuse Logic Patterns by Defining Graphical Functions.

    Graphical function that contains a state.

Invalid intersection

  • Problème : Les états et les jonctions ne doivent pas se chevaucher

  • Niveau de diagnostic : erreur.

  • Solution : évitez les intersections en séparant les états des jonctions.

    Invalid intersection between states.

Monitoring leaf or child state activity of parallel states

  • Problème : les diagrammes et états à décomposition parallèle (AND) ne prennent pas en charge la surveillance de l'activité des états feuille ou enfant car les sous-états parallèles sont actifs simultanément.

  • Niveau de diagnostic : avertissement.

  • Solution : ouvrez le Property Inspector ou le Model Explorer. Désactivez la case à cocher Create output for monitoring ou sélectionnez Self activity dans la liste déroulante. Pour plus d’informations, veuillez consulter Monitor State Activity Through Active State Data.

    Parallel substates in a state that monitors child state activity.

State contains a syntax error

  • Problème : une action d'état ne respecte pas les règles syntaxiques Stateflow. L’éditeur Stateflow souligne les erreurs syntaxiques d’une vaguelette rouge. Consultez également Transition Contains a Syntax Error.

  • Niveau de diagnostic : erreur.

  • Solution : corrigez l’erreur syntaxique présente dans l’action d’état. Pour plus d’informations, veuillez consulter Définir les actions dans un état.

    State that contains a syntax error.

    Remarque

    Dans le diagramme parent, les sous-diagrammes contenant des erreurs syntaxiques sont mis en évidence en rouge et un badge d'erreur indique le problème syntaxique. Dans l'éditeur de sous-diagrammes, l'erreur syntaxique est soulignée en rouge, mais aucun badge n’indique le problème.

Unreachable state

  • Problème : un état est inaccessible lorsqu'aucune trajectoire d'exécution valide ne permet d’y accéder.

  • Niveau de diagnostic : dépend du paramètre de configuration Unreachable execution path (Simulink).

  • Solution : connectez l’état inaccessible à une transition provenant d’une source accessible.

    Chart that contains an unreachable state.

Contrôles en cours d’édition réalisés sur des transitions

Dangling transition

Default transition path does not terminate in a state

  • Problème : dans les diagrammes ou les états avec décomposition exclusive (OR) et au moins un sous-état :

    • Chaque branche de la trajectoire de transition par défaut doit mener à un sous-état.

    • Il doit exister une branche de la trajectoire de transition par défaut qui n'est pas protégée par une condition ou déclenchée par un événement.

  • Niveau de diagnostic : dépend du paramètre de configuration No unconditional default transitions (Simulink).

  • Solution : terminez chaque branche de la trajectoire de transition par défaut dans un sous-état. Veillez à ce qu’une branche de la trajectoire de transition par défaut ne soit pas protégée par une condition ou déclenchée par un événement.

    Chart without an unconditional default transition branch to a state.

Trajectoire de transition par défaut ou d’entrée invalide

  • Problème : Une trajectoire de transition par défaut ou un port d’entrée ne doivent pas sortir de l’état parent ni terminer à la limite de l’état ou à une jonction d’historisation.

  • Niveau de diagnostic : erreur.

  • Solution : Modifiez la trajectoire de transition par défaut pour rester à l’intérieur de l’état parent ou pour qu’elle ne termine pas à la limite de l’état ou à une jonction d’historisation.

    Transition that contains an invalid entry transition.

Transition contains a syntax error

  • Problème : dans une transition, une condition ou une action ne respecte pas les règles syntaxiques Stateflow. L’éditeur Stateflow souligne les erreurs syntaxiques d’une vaguelette rouge. Consultez également State Contains a Syntax Error.

  • Niveau de diagnostic : erreur.

  • Solution : corrigez l’erreur syntaxique présente dans la condition ou l’action de transition. Pour plus d’informations, veuillez consulter Définir les actions dans une transition.

    Transition that contains a syntax error.

Transition action precedes a condition action along this path

  • Problème : lorsqu'une transition avec une action de transition est suivie d'une transition avec une action conditionnelle, les actions ne sont pas exécutées dans l'ordre des transitions. Les diagrammes Stateflow exécutent les actions conditionnelles lorsque la condition associée est évaluée comme étant vraie. En revanche, les diagrammes n'exécutent les actions de transition que lorsque la trajectoire de transition est entièrement exécutée. Par conséquent, un diagramme adopte une trajectoire de transition. Les actions conditionnelles se produisent avant les actions de transition.

  • Niveau de diagnostic : dépend du paramètre de configuration Transition action specified before condition action (Simulink).

  • Solution : placez l'action de transition après la dernière action conditionnelle sur la trajectoire.

    Transition path in which a transition action precedes a condition action.

Transition begins or ends in a parallel state

  • Problème : dans les diagrammes et les états à décomposition parallèle (AND), tous les sous-états frères sont actifs ou inactifs en même temps.

  • Niveau de diagnostic : avertissement.

  • Solution : supprimez les transitions or faites passer la décomposition de l’état parent à exclusive (OR).

    Transitions that begin or end in a parallel states.

Transition connects to a box

  • Problème : les transitions ne doivent être connectées qu’à des états et à des jonctions.

  • Niveau de diagnostic : erreur.

  • Solution : déplacez ou supprimez les transitions liées à la boîte.

    Chart with a transition that connects to a box.

Transition enters or exits graphical function

  • Problème : les transitions ne doivent pas entrer dans une fonction graphique ou en sortir. Les diagrammes de flux des fonctions graphiques doivent être entièrement contenus dans la fonction.

  • Niveau de diagnostic : erreur.

  • Solution : supprimez la transition qui entre dans la fonction graphique ou en sort.

    Chart containing transitions that enter and exit a graphical function.

Transition is not connected to entry/exit port

  • Problème : la transition n’est pas connectée au port d’entrée ou de sortie à côté de sa source ou de sa destination.

  • Niveau de diagnostic : avertissement.

  • Solution : connectez la transition au port ou déplacez à un autre endroit la source ou la destination de la transition.

    Entry port that is located near the destination point of a default transition.

Transition loops outside natural parent

  • Problème : si une transition sort de l'état parent entre la source et la destination, le diagramme exécute les actions exit et entry de l'état parent avant que l'état de destination ne devienne actif.

  • Niveau de diagnostic : dépend du paramètre de configuration Transition outside natural parent (Simulink).

  • Solution : déplacez la transition de manière à ce qu’elle figure au sein de l’état parent.

    Transition between substates that goes outside the boundary of the parent state.

Transition shadowing

  • Problème : lorsqu'une transition inconditionnelle s'exécute avant d'autres transitions sortantes de la même source, elle empêche les autres transitions de s'exécuter.

  • Niveau de diagnostic : dépend du paramètre de configuration Unreachable execution path (Simulink).

  • Solution : ne créez pas plus d'une transition inconditionnelle à partir de chaque état ou jonction. Spécifiez explicitement que la transition inconditionnelle s'exécute après toutes les transitions dotées de conditions. Pour plus d’informations, veuillez consulter Transition Evaluation Order.

    Chart with an unconditional transition that shadows a conditional transition.

Unconditional path out of state with during actions or child states

  • Problème : les transitions inconditionnelles sortant d'un état empêchent l'exécution des actions during dans l'état et les transitions entre les états enfant.

  • Niveau de diagnostic : dépend du paramètre de configuration Transition outside natural parent (Simulink).

  • Solution : ajoutez une condition à la transition ou supprimez les actions en cours et les états enfant de l'état.

    Chart with one transition out of a state with during actions and another transition out of a state with child states.

Contrôles en cours d’édition réalisés sur des jonctions

Cycle contains transitions with transition actions

  • Problème : les cycles ne doivent pas contenir de transitions avec des actions de transition.

  • Niveau de diagnostic : erreur.

  • Solution : supprimez l'action de transition ou le cycle en supprimant une transition.

    Flow chart with a transition action in a cycle.

Invalid history junction

  • Problème : une jonction d'historisation est non valide dans les cas suivants :

    • La jonction d’historisation figure au niveau diagramme de la hiérarchie.

    • La jonction d’historisation est contenue dans un état à décomposition parallèle (AND).

    • La jonction d’historisation est intégrée à une fonction graphique.

    • Plusieurs jonctions d'historisation sont contenues dans le même état.

    • La jonction d’historisation est la source d'une transition.

  • Niveau de diagnostic : erreur.

  • Solution : supprimez la jonction d'historisation du niveau diagramme de la hiérarchie, d'un état à décomposition parallèle (AND) ou d'une fonction graphique. Supprimez toutes les jonctions d'historisation de l'état en laissant qu’une. Déplacez la source de la transition vers une jonction de connexion ou un état. Pour plus d’informations, veuillez consulter Resume Prior Substate Activity by Using History Junctions.

    Chart that contains an invalid history junction.

Invalid intersection

  • Problème : les jonctions et états ne doivent pas se chevaucher

  • Niveau de diagnostic : erreur.

  • Solution : évitez les intersections en séparant les jonctions des états.

    Invalid intersection between junctions.

Junction has no unconditional escape from cycle

  • Problème : une jonction ne doit pas présenter de trajectoire d’échappement inconditionnelle d’un cycle vers un état ou une jonction de terminaison.

  • Niveau de diagnostic : erreur.

  • Solution : créez une trajectoire inconditionnelle entre la jonction et un état ou une jonction de terminaison.

    Junction with no unconditional escape from a cycle.

Transition paths from same source have different parents

  • Problème : les trajectoires de transition partent du même état source mais présentent des parents différents.

  • Niveau de diagnostic : erreur.

  • Solution : modifiez les trajectoires de transition de manière à ce qu'elles aient le même parent.

    Junction with two incoming transition paths from the same source but with different parents.

Unexpected backtracking

  • Problème : un retour en arrière inattendu du flux de contrôle peut se produire lorsque plusieurs trajectoires de transition issues de la même source mènent à une jonction et que cette jonction ne présente pas de trajectoire inconditionnelle vers un état ou une jonction de terminaison.

  • Niveau de diagnostic : dépend du paramètre de configuration Unexpected backtracking (Simulink).

  • Solution : créez une trajectoire inconditionnelle entre la jonction et un état ou une jonction de terminaison. Pour plus d’informations, veuillez consulter Backtrack in Flow Charts.

    Par exemple, la jonction mise en évidence dans ce diagramme ne présente pas de trajectoire inconditionnelle vers l'état A. Si ConditionA et ConditionB sont vraies et que ConditionC est fausse, le diagramme revient plusieurs fois à la première jonction de la trajectoire. Par conséquent, le diagramme exécute les trois actions conditionnelles.

    Chart with unexpected backtracking.

    Pour éviter les retours en arrière, combinez les conditions et créez une trajectoire inconditionnelle de la deuxième jonction à l'état de destination. Après le changement, le diagramme n'exécute qu'une seule action conditionnelle.

    Chart with no unexpected backtracking.

Unreachable junction

  • Problème : une jonction est inaccessible lorsqu'aucune trajectoire d'exécution valide ne permet d’y accéder.

  • Niveau de diagnostic : dépend du paramètre de configuration Unreachable execution path (Simulink).

  • Solution : connectez la jonction inaccessible à une transition provenant d’une source accessible.

    Chart that contains an unreachable junction.

Contrôles en cours d’édition réalisés sur des fonctions

Function is unused

  • Problème : une fonction est inutilisée lorsqu'un diagramme est dépourvu d’instructions qui appellent la fonction.

  • Niveau de diagnostic : avertissement.

  • Solution : appelez la fonction à partir d'une action d'état ou de transition ou à partir d'une autre fonction.

    Chart containing an unused function.

Invalid use of keywords as function arguments

  • Problème : une définition de fonction utilise un mot-clé réservé en tant qu’argument.

  • Niveau de diagnostic : erreur.

  • Solution : renommez l'argument de la fonction. Pour obtenir la liste des mots-clés réservés, consultez Consignes concernant le nommage des objets Stateflow.

    Function that uses a reserved keyword as an argument.

Contrôles en cours d’édition réalisés sur des ports d’entrée et de sortie

Entry junctions must have an unconditional path to a state

  • Problème : une jonction d’entrée doit présenter une trajectoire de transition qui n'est pas protégée par une condition ou déclenchée par un événement.

  • Niveau de diagnostic : erreur.

  • Solution : ajoutez une trajectoire inconditionnelle entre la jonction d’entrée et un état.

    Entry junction that connects to a single conditional path to a state.

Entry junctions must have outgoing transitions

  • Problème : une jonction d'entrée n'est pas connectée à une trajectoire de transition sortante.

  • Niveau de diagnostic : erreur.

  • Solution : reliez les transitions à la jonction d'entrée ou supprimez la jonction.

    Entry junction that does not connect to a transition path.

Exit ports must have an unconditional path to a state

  • Problème : un port de sortie doit présenter une trajectoire de transition qui n'est pas protégée par une condition ou déclenchée par un événement.

  • Niveau de diagnostic : erreur.

  • Solution : ajoutez une trajectoire inconditionnelle entre le port de sortie et un état.

    Exit port that connects to a single conditional path to a state.

Exit ports must have outgoing transitions

  • Problème : un port de sortie n'est pas connecté à une trajectoire de transition sortante.

  • Niveau de diagnostic : erreur.

  • Solution : reliez les transitions au port de sortie ou supprimez le port.

    Exit port that does not connect to a transition path.

Invalid entry or exit junction

  • Problème : les jonctions d'entrée et de sortie ne sont prises en charge que dans les états exclusifs (OR) et les sous-diagrammes atomiques.

  • Niveau de diagnostic : erreur.

  • Solution : déplacez la jonction vers un état exclusif (OR) ou un sous-diagramme atomique, ou supprimez la jonction.

    Entry and exit junctions in parallel (AND) states.

Missing entry or exit junction

  • Problème : un port d'entrée ou de sortie doit correspondre à une jonction d'entrée ou de sortie.

  • Niveau de diagnostic : erreur.

  • Solution : supprimez le port ou créez une jonction correspondante présentant le même libellé.

    Entry and exit ports that do not have a matching junction.

Multiple entry or exit junctions with same label

  • Problème : les jonctions d'entrée et de sortie du même parent doivent présenter des libellés uniques.

  • Niveau de diagnostic : erreur.

  • Solution : supprimez l’une des jonctions ou modifiez l’un des libellés.

    Two entry junctions that have the same label in1.

Path from entry junction contains a terminal junction

  • Problème : chaque trajectoire provenant d’une jonction d’entrée doit mener à un état.

  • Niveau de diagnostic : erreur.

  • Solution : remplacez la jonction terminale par un état.

    Entry junction that connects to a terminal junction.

Path from exit port contains a terminal junction

  • Problème : chaque trajectoire provenant d’un port de sortie doit mener à un état.

  • Niveau de diagnostic : erreur.

  • Solution : remplacez la jonction terminale par un état.

    Exit port that connects to a terminal junction.

Transition path from an inner transition to an exit junction

  • Problème : les trajectoires de transition internes ne doivent pas être connectées à une jonction de sortie.

  • Niveau de diagnostic : erreur.

  • Solution : supprimez la trajectoire entre la transition interne et la jonction de sortie.

    State that contains an inner transition to an exit port.

Transition path from entry junction or to exit junction must be contained in parent

  • Problème : les trajectoires de transition qui débutent au niveau des jonctions d'entrée ou se terminent au niveau des jonctions de sortie doivent être contenues dans l'état parent.

  • Niveau de diagnostic : erreur.

  • Solution : modifiez la trajectoire de transition qui doit être contenue dans l’état parent.

    Transition path that exits and re-enters a state before connecting to an exit junction.

Unreachable port or junction

  • Problème : un port ou une jonction est inaccessible lorsqu'aucune trajectoire d'exécution valide ne permet d’y accéder.

  • Niveau de diagnostic : dépend du paramètre de configuration Unreachable execution path (Simulink).

  • Solution : connectez le port d’entrée ou la jonction de sortie inaccessible à une transition provenant d’une source accessible.

    Chart that contains an unreachable entry junction and port.

Voir aussi

Rubriques