Evaluar transiciones
Stateflow® utiliza transiciones en gráficos para pasar de un estado exclusivo (OR) a otro estado exclusivo (OR). Para los flujos de trabajo entry y execution de ejecución del gráfico, Stateflow evalúa transiciones para determinar si son válidas. AUna transición válida es una transición cuyas etiquetas de condición son verdaderas y cuya ruta termina en un estado. Si una transición es válida, Stateflow sale del estado de origen y entra en el estado de destino. Para obtener información sobre cuándo se produce la evaluación durante los flujos de trabajo execution y entry, consulte Ejecutar un gráfico de Stateflow y Acceder a un gráfico o un estado.
Flujo de trabajo de evaluación de transiciones

Orden de evaluación de una transición
Cuando se originan varias transiciones en un solo origen, como un estado o intersección, Stateflow usa el orden de evaluación para determinar cuándo probar cada transición. El número cerca del origen de la transición es el orden de transición.
Las transiciones salientes de un origen se numeran automáticamente en el orden en que se crean. El orden comienza con 1 y continúa hasta el siguiente número disponible para el origen.
Para cambiar el orden de ejecución de una transición, haga clic con el botón secundario en la transición, haga clic en Execution Order y seleccione el orden en el que desea que se ejecute la transición. Cuando cambia un número de transición, el gráfico de Stateflow vuelve a numerar automáticamente las otras transiciones salientes para el origen conservando su orden relativo.
Transición al flanco interno de un estado principal
Las transiciones que terminan en el flanco interno de un estado principal son un acceso directo de vuelta a la ruta de transición predeterminada, y la ruta predeterminada se evalúa durante la unidad de tiempo actual. En este ejemplo, la transición del estado B conduce inmediatamente a la transición predeterminada al estado A.

Si hay transiciones predeterminadas, Stateflow ejecuta inmediatamente esas rutas. En caso contrario, y si no hay elementos secundarios, ese es el final de la unidad de tiempo. En ambos casos, el elemento principal permanece activo, y las acciones exit y entry del elemento principal no se ejecutan.
Evaluar una transición externa
En este ejemplo, el gráfico de Stateflow se inicializa y las acciones entry se ejecutan para StateA. Se produce una unidad de tiempo nueva y el gráfico se activa. Si sigue Flujo de trabajo de ejecución de gráficos de Stateflow, Stateflow encuentra varias rutas de transición externa desde StateA. En esta unidad de tiempo, x = 1, y = 1 y z = 1.

Si sigue Flujo de trabajo de evaluación de transiciones, los pasos para evaluar las transiciones de este gráfico están en este orden:
La transición 1 de
StateAse marca para la evaluación.La transición 1 de
StateAtiene una condición.La condición es verdadera.
El destino de la transición 1 de
StateAno es un estado.La intersección tiene transiciones salientes.
La transición 1 de la intersección se marca para la evaluación.
La transición 1 de la intersección tiene una condición.
La condición es falsa.
La transición 2 de la intersección se marca para la evaluación.
La transición 2 de la intersección no tiene una condición.
El destino de la transición 2 de la intersección es un estado (
StateD).StateDse marca paraentryyStateAse marca paraexit.
Para completar la unidad de tiempo, siga Flujo de trabajo para salir de un estado para StateA y Flujo de trabajo para acceder a un gráfico o un estado para StateE.
Evaluar una transición externa con retroceso
Cuando todas las transiciones salientes de un origen no son válidas o no terminan con una intersección final, pero hay transiciones sin evaluar previamente, Stateflow vuelve al estado o intersección anterior para evaluar todas las rutas posibles.
En este ejemplo, el gráfico de Stateflow se inicializa y las acciones entry se ejecutan para StateA. Se produce una unidad de tiempo nueva y el gráfico se activa. Si sigue Flujo de trabajo de ejecución de gráficos de Stateflow, Stateflow encuentra varias rutas de transición externa desde StateA. En esta unidad de tiempo, x = 1, y = 1 y z = 1.
![]()
Si sigue Flujo de trabajo de evaluación de transiciones, los pasos para evaluar las transiciones de este gráfico están en este orden:
La transición 1 de
StateAse marca para la evaluación.La transición 1 de
StateAtiene una condición.La condición es verdadera.
El destino de la transición 1 de
StateAno es un estado.La intersección tiene transiciones salientes.
La transición 1 de la intersección se marca para la evaluación.
La transición 1 de la intersección tiene una condición.
La condición es falsa.
La transición 2 de la intersección se marca para la evaluación.
La transición 2 de la intersección tiene una condición.
La condición es falsa.
La transición 2 de
StateAse marca para la evaluación.La transición 2 de
StateAno tiene una condición.El destino de la transición 2 de
StateAes un estado (StateE).StateEse marca paraentryyStateAse marca paraexit.
Para completar la unidad de tiempo, siga Flujo de trabajo para salir de un estado para StateA y Flujo de trabajo para acceder a un gráfico o un estado para StateE.
Evitar retrocesos
En este ejemplo, una intersección final evita retrocesos. El gráfico de Stateflow se inicializa y las acciones entry se ejecutan para StateA. Se produce una unidad de tiempo nueva y el gráfico se activa. Si sigue Flujo de trabajo de ejecución de gráficos de Stateflow, Stateflow encuentra varias rutas de transición externa desde StateA. En esta unidad de tiempo, x = 1, y = 1 y z = 1.
![]()
Si sigue Flujo de trabajo de evaluación de transiciones, los pasos para evaluar las transiciones de este gráfico están en este orden:
La transición 1 de
StateAse marca para la evaluación.La transición 1 de
StateAtiene una condición.La condición es verdadera.
El destino de la transición 1 de
StateAno es un estado.La intersección tiene transiciones salientes.
La transición 1 de la intersección se marca para la evaluación.
La transición 1 de la intersección tiene una condición.
La condición es falsa.
La transición 2 de la intersección se marca para la evaluación.
La transición 2 de la intersección tiene una condición.
La condición es falsa.
La transición 3 de la intersección se marca para la evaluación.
La transición 3 de la intersección no tiene una condición.
El destino no es un estado y no tiene transiciones salientes.
Regreso a Flujo de trabajo de ejecución de gráficos de Stateflow.
Para completar la unidad de tiempo, siga Flujo de trabajo de ejecución de gráficos de Stateflow para StateA, a partir de donde lo dejó.
Evaluar transiciones externas con acciones de condición y transición
Este ejemplo contiene tanto acciones de condición como acciones de transición:
En la sintaxis de etiquetas de transición, las acciones de condición siguen la condición de transición y se encierran entre llaves (
{}). Las acciones de condición se ejecutan cuando la condición se evalúa como verdadera, pero antes de que se haya determinado que la ruta de transición es válida.En la sintaxis de etiquetas de transición, las acciones de transición están precedidas por una barra diagonal (
/) y se encierran entre llaves ({}). Las acciones de transición solo se ejecutan después de que se determine que la ruta de transición es válida.
El gráfico de Stateflow se inicializa y las acciones entry se ejecutan para StateA. Se produce una unidad de tiempo nueva y el gráfico se activa. Hay varias rutas de transición externa de StateA. En esta unidad de tiempo, x = 1, y = 1 y z = 1.

Si sigue Flujo de trabajo de evaluación de transiciones, los pasos para evaluar las transiciones de este gráfico están en este orden:
La transición 1 de
StateAse marca para la evaluación.La transición 1 de
StateAtiene una condición ([y >= 1]).La condición es verdadera.
No hay acciones de condición.
El destino de la transición 1 de
StateAno es un estado.La intersección tiene transiciones salientes.
La transición 1 de la intersección se marca para la evaluación.
La transición 1 de la intersección tiene una condición (
[x > 2]).La condición es falsa.
La transición 2 de la intersección se marca para la evaluación.
La transición 2 de la intersección tiene una condición (
[x >= 1]).La condición es verdadera.
Hay una acción de condición (
{y = 0;}). Ahora,y = 0.La intersección tiene transiciones salientes.
La transición de la intersección se marca para la evaluación.
La transición 1 de la intersección tiene una condición (
[z > 5]).La condición es falsa.
La transición 2 de
StateAse marca para la evaluación.La transición 2 de
StateAno tiene una condición.El destino de la transición 2 de
StateAes un estado (StateD).StateDse marca paraentryyStateAse marca paraexit. Ejecute la acción de transición para esta ruta válida (/{z = 5}). Ahora,z = 5.
Para completar la unidad de tiempo, siga Flujo de trabajo para salir de un estado para StateA y Flujo de trabajo para acceder a un gráfico o un estado para StateE.