Main Content

La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.

Chart

Implémenter une logique de contrôle avec une machine à états finis

  • Chart block

Bibliothèques :
Stateflow

Description

Le bloc Chart est une représentation graphique d’une machine à états finis basée sur un diagramme de transition d’état. Dans un diagramme Stateflow®, les états et les transitions sont les blocs de base d’un système de logique séquentielle. Les états correspondent aux modes de fonctionnement et les transitions représentent les chemins entre les états. Pour plus d’informations, veuillez consulter Model Finite State Machines by Using Stateflow Charts.

Pour implémenter une logique de contrôle, les diagrammes Stateflow peuvent utiliser MATLAB® ou C comme langage d’action. Pour plus d’informations, veuillez consulter Differences Between MATLAB and C as Action Language Syntax.

Les propriétés du diagramme Stateflow spécifient la manière dont il s’interface avec le modèle Simulink®. Vous pouvez modifier les propriétés du diagramme dans Property Inspector, le Model Explorer ou la boîte de dialogue « Chart properties ». Pour plus d’informations, veuillez consulter Specify Properties for Stateflow Charts. Vous pouvez également modifier les propriétés du diagramme de manière programmatique en utilisant les objets Stateflow.Chart. Pour plus d’informations sur l’interface programmatique de Stateflow, consultez Overview of the Stateflow API.

Ports

Entrée

développer tout

Lorsque vous créez des données d'entrée dans le volet Symbols, Stateflow crée des ports d’entrée. Les données d’entrée ont un port d’entrée correspondant qui s’affiche une fois que vous les avez créées.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

Sortie

développer tout

Lorsque vous créez des données de sortie dans le volet Symbols, Stateflow crée des ports de sortie. Les données de sortie ont un port de sortie correspondant qui s’affiche une fois que vous les avez créées.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

Paramètres

développer tout

Les paramètres de l’onglet « Code Generation » nécessitent Simulink Coder™ ou Embedded Coder®.

Paramètres principaux

Sélectionnez la manière d’afficher les étiquettes des ports sur l’icône du bloc Chart.

none

N’affiche pas les étiquettes des ports.

FromPortIcon

Si l’icône du port correspondant indique le nom d’un signal, cette option affiche le nom du signal sur le bloc Chart. Sinon, elle affiche le nom du bloc du port.

FromPortBlockName

Affiche le nom du bloc de port correspondant sur le bloc Chart.

SignalName

Si le nom du signal existe, affiche le nom du signal connecté au port sur le bloc Chart. Sinon, affiche le nom du bloc de port correspondant.

Utilisation programmatique

Paramètre : ShowPortLabels
Type : string scalar ou vecteur de caractères
Valeur : "none""FromPortIcon" | "FromPortBlockName" | "SignalName"
Valeur par défaut : "FromPortIcon"

Contrôlez l’accès des utilisateurs au contenu du diagramme.

ReadWrite

Permet d’ouvrir et de modifier le contenu du diagramme.

ReadOnly

Permet d’ouvrir le diagramme mais pas de le modifier. Si le diagramme réside dans une bibliothèque de blocs, vous pouvez créer et ouvrir des liens vers celui-ci et en créer et modifier des copies locales, mais vous ne pouvez pas modifier les autorisations ni le contenu de l’instance de bibliothèque d’origine.

NoReadOrWrite

Désactive l’ouverture et la modification du diagramme. Si le diagramme réside dans une bibliothèque, vous pouvez créer des liens vers celui-ci dans un modèle mais vous ne pouvez pas l’ouvrir, le modifier, en créer des copies locales ni modifier les autorisations.

Utilisation programmatique

Paramètre : Permissions
Type : string scalar ou vecteur de caractères
Valeur : "ReadWrite" | "ReadOnly" | "NoReadOrWrite"
Valeur par défaut : "ReadWrite"
off

N’essaie pas d’éliminer les éventuelles boucles algébriques artificielles qui contiennent le sous-diagramme atomique.

on

Essaie d’éliminer les éventuelles boucles algébriques artificielles qui contiennent le sous-diagramme atomique.

Utilisation programmatique

Paramètre : MinAlgLoopOccurrences
Type : string scalar ou vecteur de caractères
Valeur : "off" | "on"
Valeur par défaut : "off"

Spécifiez si tous les blocs de ce diagramme doivent s’exécuter à la même fréquence ou s’ils peuvent s’exécuter à des fréquences différentes.

  • Si les blocs du diagramme peuvent s’exécuter à des fréquences différentes, spécifiez le pas d’échantillonnage du diagramme comme étant hérité (-1).

  • Si tous les blocs doivent s’exécuter à la même fréquence, spécifiez le pas d’échantillonnage correspondant à cette fréquence en tant que valeur du paramètre Sample time.

  • Si l’un des blocs du diagramme indique un pas d’échantillonnage différent (autre que -1 ou inf), Simulink affiche un message d’erreur lorsque vous mettez à jour ou simulez le modèle. Supposons par exemple que tous les blocs du diagramme doivent s’exécuter 5 fois par seconde. Pour garantir cette fréquence, définissez le pas d’échantillonnage du diagramme à 0.2. Dans cet exemple, si l’un des blocs du diagramme indique un pas d’échantillonnage autre que 0.2, -1 ou inf, Simulink affiche une erreur lorsque vous mettez à jour ou simulez le modèle.

-1

Spécifie un pas d’échantillonnage hérité. Si les blocs du diagramme peuvent s’exécuter à des fréquences différentes, utilisez ce pas d’échantillonnage.

[Ts 0]

Spécifie un pas d’échantillonnage périodique.

Utilisation programmatique

Paramètre : SystemSampleTime
Type : string scalar ou vecteur de caractères
Valeur : "-1" | "[Ts 0]"
Valeur par défaut : "-1"

Génération de code

Sélectionnez le format du code généré pour un sous-diagramme atomique (non virtuel).

Auto

Simulink Coder choisit le format optimal pour votre système selon le type et le nombre d’instances de diagramme existant dans le modèle.

Inline

Simulink Coder intègre directement le diagramme dans le code de manière inconditionnelle.

Nonreusable function

Simulink Coder génère explicitement une fonction distincte dans un fichier séparé. Les diagrammes configurés avec ce paramètre génèrent des fonctions pouvant contenir des arguments qui dépendent du paramètre Function interface de Code Generation (Simulink). Vous pouvez nommer la fonction et le fichier générés en utilisant respectivement les paramètres Function name et File name (no extension) de Code Generation (Simulink). Ces fonctions ne sont pas réentrantes.

Reusable function

Simulink Coder génère une fonction avec des arguments permettant de réutiliser le code du diagramme lorsqu’un modèle contient plusieurs instances de ce dernier.

Cette option génère une fonction avec des arguments permettant de réutiliser le code du diagramme dans le code généré par une hiérarchie de références de modèles contenant plusieurs instances d’un diagramme dans les modèles référencés. Dans ce cas, le diagramme doit se trouver dans une bibliothèque.

Conseils

  • Si vous souhaitez représenter plusieurs instances d’un diagramme sous la forme d’une seule fonction réutilisable, vous pouvez attribuer la désignation Auto ou Reusable function à chacune d’elles. Il est préférable d’utiliser une seule de ces désignations car l’utilisation des deux entraîne la création de deux fonctions réutilisables : une pour chaque désignation. Les conséquences de ces choix ne sont différentes que si la réutilisation est impossible. La sélection de l’option Auto ne permet pas de contrôler le nom de la fonction ou du fichier pour le code du diagramme.

  • Les options Reusable function et Auto permettent toutes les deux de déterminer s’il existe plusieurs instances d’un diagramme et si le code peut être réutilisé. Les options se comportent différemment lorsqu’il est impossible de réutiliser le code. Dans ce cas, le réglage Auto intègre directement le code ou, si les circonstances ne permettent pas l’intégration directe, génère des fonctions distinctes pour chaque instance du diagramme.

  • Si vous sélectionnez Reusable function alors que le code généré est soumis à la gestion de version, définissez File name options sur Use subsystem name, Use function name ou User specified. Sinon, le nom des fichiers de code change chaque fois que vous modifiez le modèle, ce qui empêche la gestion de version de ces fichiers.

Dépendance

  • Ce paramètre nécessite Simulink Coder.

  • La définition de ce paramètre sur Nonreusable function ou Reusable function active les paramètres suivants :

    • Function name options

    • File name options

    • Section de mémoire pour les fonctions d’initialisation/d’arrêt (nécessite Embedded Coder et un fichier cible système basé sur ERT)

    • Section de mémoire pour les fonctions d’exécution (nécessite Embedded Coder et un fichier cible système basé sur ERT)

  • La définition de ce paramètre sur Nonreusable function active Function with separate data (nécessite une licence Embedded Coder et un fichier cible système basé sur ERT).

Utilisation programmatique

Paramètre : RTWSystemCode
Type : string scalar ou vecteur de caractères
Valeur : "Auto" | "Inline" | "Nonreusable function" | "Reusable function"
Valeur par défaut : "Auto"

Capacités étendues

Génération de code C/C++
Générez du code C et C++ avec Simulink® Coder™.

Génération de code PLC
Générez du texte structuré avec Simulink® PLC Coder™.

Conversion en virgule fixe
Concevez et simulez des systèmes en virgule fixe avec Fixed-Point Designer™.

Historique des versions

Introduit avant R2006a

développer tout