Main Content

Ejecutar un gráfico de Stateflow

Cuando se activa un gráfico de Stateflow®, el gráfico sigue un flujo de trabajo y ejecuta acciones. Un gráfico de Stateflow se activa:

  • En cada unidad de tiempo, según el solver de Simulink®.

  • Cuando el gráfico de Stateflow recibe un evento.

Cuando un gráfico se activa por primera vez, el gráfico se inicializa y se activa. Consulte Chart Entry. Una vez que el gráfico esté activo, pero no tenga más acciones pendientes que realizar, se desactiva hasta que una unidad de tiempo nueva o un evento vuelva a activarlo.

Flujo de trabajo de ejecución de gráficos de Stateflow

Este diagrama de flujo muestra la progresión de los eventos que Stateflow toma para ejecutar un gráfico o estado. En este diagrama de flujo, el estado actual se refiere al estado en el que se desarrolla una decisión o un proceso.

Acciones during

Las acciones during de un estado se ejecutan cuando:

  • El estado está activo, se produce una unidad de tiempo nueva y no hay disponible ninguna transición válida a otro estado.

  • El estado está activo, se produce un evento y no hay disponible ninguna transición válida a otro estado.

Las acciones during están precedidas por el prefijo during o du y seguidas por dos puntos obligatorios (:), seguidos de una o más acciones. Separe las distintas acciones con un retorno de carro, un punto y coma (;) o una coma (,). Si no especifica el tipo de acción de estado de forma explícita con respecto a una instrucción, el gráfico trata dicha instrucción como una acción entry,during.

Un estado ejecuta sus acciones during (si así se ha especificado) cuando el gráfico se activa. El diagrama de flujo anterior representa el proceso de ejecución de un estado y muestra cuándo se producen las acciones during.

Si el gráfico de Stateflow no contiene estados, cada vez que se ejecute el gráfico, Stateflow evalúa la ruta de transición predeterminada.

Transiciones salientes

Stateflow marca las transiciones salientes para evaluarlas como parte de la ejecución de un gráfico de Stateflow. Una vez que se marque una transición saliente a su evaluación, siga el Workflow for Evaluating Transitions. Para obtener más información sobre cómo Stateflow evalúa las transiciones salientes, consulte Evaluate Transitions.

Transiciones interiores

Stateflow marca las transiciones interiores para evaluarlas como parte de la ejecución de un gráfico de Stateflow. Una vez que se marque una transición interna para su evaluación, siga el Workflow for Evaluating Transitions. Para obtener más información sobre cómo Stateflow evalúa las transiciones interiores, consulte Evaluate Transitions.

Ejecución de gráfico con una transición válida

En este ejemplo, el gráfico de Stateflow se inicializa y las acciones entry se ejecutan para StateA y StateA1. Se produce una unidad de tiempo nueva y el gráfico se activa.

En esta unidad de tiempo, x = 5, y = 2 y z = 0.

Si sigue Flujo de trabajo de ejecución de gráficos de Stateflow, los pasos de ejecución para ejecutar el gráfico siguen este orden:

  1. El gráfico tiene un subestado activo, StateA.

  2. StateA tiene una transición saliente a StateB. Si sigue Workflow for Evaluating Transitions, se determina que la transición es válida.

  3. StateB se marca para entrada entry y StateA se marca para salida exit.

Para completar la unidad de tiempo, siga Workflow for Exiting a State para StateA y Workflow for Entering a Chart or State para StateB.

Ejecución de un gráfico sin una transición válida

En este ejemplo, el gráfico de Stateflow se inicializa y las acciones entry se ejecutan para StateA y StateA1. Se produce una unidad de tiempo nueva y el gráfico se activa.

En esta unidad de tiempo, x = 3, y = 0 y z = 0.

Si sigue Flujo de trabajo de ejecución de gráficos de Stateflow hasta que el gráfico se desactive, los pasos de ejecución para ejecutar el gráfico siguen este orden:

  1. El gráfico tiene un subestado activo, StateA.

  2. StateA tiene una transición saliente a StateB. Si sigue Workflow for Evaluating Transitions, se determina que la transición no es válida.

  3. Ejecute las acciones during para StateA. Ahora, y = 1.

  4. StateA no tiene ninguna transición interna.

  5. El subestado activo de StateA es StateA1.

  6. StateA1 tiene una transición saliente a StateA2. Si sigue Workflow for Evaluating Transitions, se determina que la transición no es válida.

  7. Ejecute las acciones during para StateA1. Ahora, x = 4.

  8. StateA1 no tiene ningún subestado activo.

  9. El gráfico se desactiva.

Los pasos 1 a 9 se realizan durante la segunda unidad de tiempo.

Temas relacionados