Contenu principal

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

at

Exécuter le diagramme lors de la diffusion d’un événement ou à un moment précis

Description

at(n,E) renvoie true si l’événement E s’est produit exactement n fois depuis l’activation de l’état associé. Sinon, l’opérateur renvoie false.

exemple

at(n,tick) renvoie true si le diagramme s’est mis en activité exactement n fois depuis l’activation de l’état associé. Sinon, l’opérateur renvoie false.

L’événement implicite tick n’est pas supporté lorsqu’un diagramme Stateflow® dans un modèle Simulink® possède des événements en entrée.

exemple

at(n,sec) renvoie true si exactement n secondes se sont écoulées depuis l’activation de l’état associé. Sinon, l’opérateur renvoie false.

Dans les diagrammes autonomes de MATLAB®, définissez n avec une valeur supérieure ou égale à 0.001. L’opérateur crée un objet MATLAB timer qui génère un événement implicite pour mettre en activité le diagramme. Les objets MATLAB timer sont limités à une précision de 1 milliseconde. Pour plus d’informations, veuillez consulter Events in Standalone Charts.

  • L’objet timer est créé lorsque le diagramme finit d’exécuter les actions entry de l’état associé et de ses sous-états. Si vous spécifiez n sous la forme d’une expression dont la valeur change pendant l’exécution du diagramme, ce dernier n’ajuste pas le délai temporel de l’objet timer.

  • L’exécution de l’objet timer commence à la fin de l’étape du diagramme où l’état associé devient actif. Cette étape peut inclure l’exécution d’autres états parallèles dans le diagramme.

  • Si le diagramme est en train de traiter une autre opération lorsqu’il reçoit l’événement implicite de l’objet timer, il met l’événement en file d’attente. Une fois l’étape en cours terminée, le diagramme traite l’événement.

  • Si l’état associé à l’opérateur de logique temporelle devient inactif avant que le diagramme ne traite l’événement implicite, ce dernier ne met pas en activité le diagramme.

Remarque

Cette syntaxe n’est supportée que dans les diagrammes autonomes dans MATLAB. Dans les diagrammes des modèles Simulink, utilisez plutôt l’opérateur after. Pour plus d’informations, veuillez consulter Do Not Use at for Absolute-Time Temporal Logic in Charts in Simulink Models.

exemple

Exemples

développer tout

Affiche un message de statut lorsque le diagramme traite la troisième diffusion de l’événement E à compter de l’activation de l’état.

on at(3,E):
   disp("ON");

Stateflow chart that uses the at operator in a state.

Effectue une transition hors de l’état associé lorsque le diagramme traite la cinquième diffusion de l’événement E à compter de l’activation de l’état.

at(5,E)

Stateflow chart that uses the at operator in a transition.

Effectue une transition hors de l’état associé si exactement cinq diffusions de l’événement E ont eu lieu depuis que cet état est actif.

Dans les diagrammes d’un modèle Simulink, saisissez :

[at(5,E)]

Stateflow chart that uses the at operator in a transition.

La notation conditionnelle pour les opérateurs de logique temporelle n’est pas supportée dans les diagrammes autonomes de MATLAB.

Effectue une transition hors de l’état associé lorsque le diagramme se met en activité pour la septième fois depuis l’activation de l’état, mais seulement si la variable temp est supérieure à 98,6.

at(7,tick)[temp > 98.6]

Stateflow chart that uses the at operator in a transition.

Définit la variable temp à HIGH si l’état est actif depuis exactement 12,3 secondes.

Dans les diagrammes autonomes dans MATLAB, saisissez :

on at(12.3,sec):
   temp = HIGH;

Stateflow chart that uses the at operator in a state.

L’utilisation de every en tant qu’opérateur de logique temporelle en durée absolue n’est pas prise en charge dans les modèles Simulink.

Conseils

  • Vous pouvez utiliser des guillemets autour des mots-clés 'tick' et 'sec'. Par exemple, at(5,'tick') équivaut à at(5,tick).

  • Le diagramme Stateflow réinitialise le compteur utilisé par l’opérateur at chaque fois que l’état associé est réactivé.

  • Les diagrammes autonomes de MATLAB définissent la logique temporelle en durée absolue en termes de temps d’horloge, lequel est limité à une précision de 1 milliseconde.

Historique des versions

Introduit dans R2014b