Main Content

at

Ejecutar el gráfico durante la transmisión del evento o en una unidad de tiempo específica

Descripción

at(n,E) devuelve true si el evento E se ha producido exactamente n veces desde que el estado asociado se convirtió en activo. De lo contrario, el operador devuelve false.

ejemplo

at(n,tick) devuelve true si el gráfico se ha activado exactamente n veces desde que el estado asociado se convirtió en activo. De lo contrario, el operador devuelve false.

El evento implícito tick no está admitido cuando un gráfico de Stateflow® de un modelo de Simulink® cuenta con eventos de entrada.

ejemplo

at(n,sec) devuelve true si han transcurrido exactamente n segundos desde que el estado asociado se convirtió en activo. De lo contrario, el operador devuelve false.

En los gráficos independientes de MATLAB®, especifique n con un valor mayor que o igual a 0.001. El operador crea un objeto timer de MATLAB que genera un evento implícito para activar el gráfico. Los objetos timer de MATLAB están limitados a una precisión de 1 milisegundo. Para obtener más información, consulte Events in Standalone Charts.

  • El objeto timer se crea cuando el gráfico termina de ejecutar las acciones entry del estado asociado y sus subestados. Si especifica n como una expresión cuyo valor cambia durante la ejecución del gráfico, dicho gráfico no ajusta el retardo temporal del objeto timer.

  • El objeto timer comienza a ejecutarse al final del paso del gráfico cuando el estado asociado se convierte en activo. Este paso puede incluir la ejecución de otros estados paralelos del gráfico.

  • Si el gráfico está procesando otra operación cuando recibe el evento implícito del objeto timer, el gráfico pone el evento en cola. Cuando el paso en curso se completa, el gráfico procesa el evento.

  • Si el estado asociado con el operador de lógica temporal se convierte en inactivo antes de que el gráfico procese el evento implícito, el evento no activa el gráfico.

Nota

Esta sintaxis solo se admite en gráficos independientes en MATLAB. Para los gráficos de modelos de Simulink, utilice el operador after en su lugar. Para obtener más información, consulte No utilice at para la lógica temporal en tiempo absoluto en los gráficos de modelos de Simulink.

ejemplo

Ejemplos

expandir todo

Muestra un mensaje de estado cuando el gráfico procesa la tercera transmisión del evento E después de que el estado se convirtió en activo.

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

Stateflow chart that uses the at operator in a state.

Realiza una transición de salida del estado asociado cuando el gráfico procesa la quinta transmisión del evento E después de que el estado se convirtió en activo.

at(5,E)

Stateflow chart that uses the at operator in a transition.

Realiza una transición de salida del estado asociado si el estado ha permanecido activo durante exactamente cinco transmisiones del evento E.

En gráficos de un modelo de Simulink, escriba:

[at(5,E)]

Stateflow chart that uses the at operator in a transition.

La notación condicional para operadores de lógica temporal no se admite con gráficos independientes en MATLAB.

Realiza una transición de salida del estado asociado cuando el gráfico se activa por séptima vez desde que el estado se convirtió en activo, pero solo si la variable temp es mayor que 98,6.

at(7,tick)[temp > 98.6]

Stateflow chart that uses the at operator in a transition.

Establece la variable temp en HIGH si el estado ha permanecido activo durante exactamente 12,3 segundos.

En los gráficos independientes de MATLAB, introduzca:

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

Stateflow chart that uses the at operator in a state.

No se admite el uso de every como operador de lógica temporal de tiempo absoluto en gráficos de los modelos de Simulink.

Sugerencias

  • Puede encerrar entre comillas las palabras clave 'tick' y 'sec'. Por ejemplo, at(5,'tick') equivale a at(5,tick).

  • El gráfico de Stateflow restablece el contador utilizado por el operador at cada vez que se reactive el estado asociado.

  • Los gráficos independientes de MATLAB definen la lógica temporal de tiempo absoluto en términos de tiempo de reloj, que está limitado a una precisión de 1 milisegundo.

Historial de versiones

Introducido en R2014b