Contenido principal

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

Flow chart that shows the steps for evaluating a transition.

Orden de evaluación de una transición

Cuando se originan múltiples 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 de salida 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 de salida 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 el paso de tiempo actual. En este ejemplo, la transición del estado B conduce inmediatamente a la transición predeterminada al estado A.

Chart that shows a transition to the inner edge of a state.

Si existen transiciones predeterminadas, Stateflow ejecuta inmediatamente esas rutas. En caso contrario, y si no existen elementos secundarios, ese es el final de el paso 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 un paso de tiempo nuevo y el gráfico se activa. Si sigue Flujo de trabajo de ejecución de gráficos de Stateflow, Stateflow encuentra múltiples rutas de transición externa desde StateA. En este paso de tiempo, x = 1, y = 1 y z = 1.

Stateflow chart with states called StateA, StateC, StateD, and StateE.

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:

  1. La transición 1 de StateA se marca para la evaluación.

  2. La transición 1 de StateA tiene una condición.

  3. La condición es verdadera.

  4. El destino de la transición 1 de StateA no es un estado.

  5. La intersección tiene transiciones de salida.

  6. La transición 1 de la intersección se marca para la evaluación.

  7. La transición 1 de la intersección tiene una condición.

  8. La condición es falsa.

  9. La transición 2 de la intersección se marca para la evaluación.

  10. La transición 2 de la intersección no tiene una condición.

  11. El destino de la transición 2 de la intersección es un estado (StateD).

  12. StateD se marca para entry y StateA se marca para exit.

Para completar el paso 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 de salida de un origen no son válidas o no terminan con una intersección final, pero existen 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 un paso de tiempo nuevo y el gráfico se activa. Si sigue Flujo de trabajo de ejecución de gráficos de Stateflow, Stateflow encuentra múltiples rutas de transición externa desde StateA. En este paso de tiempo, x = 1, y = 1 y z = 1.

Stateflow chart with states called StateA, StateC, StateD, and StateE.

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:

  1. La transición 1 de StateA se marca para la evaluación.

  2. La transición 1 de StateA tiene una condición.

  3. La condición es verdadera.

  4. El destino de la transición 1 de StateA no es un estado.

  5. La intersección tiene transiciones de salida.

  6. La transición 1 de la intersección se marca para la evaluación.

  7. La transición 1 de la intersección tiene una condición.

  8. La condición es falsa.

  9. La transición 2 de la intersección se marca para la evaluación.

  10. La transición 2 de la intersección tiene una condición.

  11. La condición es falsa.

  12. La transición 2 de StateA se marca para la evaluación.

  13. La transición 2 de StateA no tiene una condición.

  14. El destino de la transición 2 de StateA es un estado (StateE).

  15. StateE se marca para entry y StateA se marca para exit.

Para completar el paso 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 un paso de tiempo nuevo y el gráfico se activa. Si sigue Flujo de trabajo de ejecución de gráficos de Stateflow, Stateflow encuentra múltiples rutas de transición externa desde StateA. En este paso de tiempo, x = 1, y = 1 y z = 1.

Stateflow chart with states called StateA, StateC, StateD, and StateE.

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:

  1. La transición 1 de StateA se marca para la evaluación.

  2. La transición 1 de StateA tiene una condición.

  3. La condición es verdadera.

  4. El destino de la transición 1 de StateA no es un estado.

  5. La intersección tiene transiciones de salida.

  6. La transición 1 de la intersección se marca para la evaluación.

  7. La transición 1 de la intersección tiene una condición.

  8. La condición es falsa.

  9. La transición 2 de la intersección se marca para la evaluación.

  10. La transición 2 de la intersección tiene una condición.

  11. La condición es falsa.

  12. La transición 3 de la intersección se marca para la evaluación.

  13. La transición 3 de la intersección no tiene una condición.

  14. El destino no es un estado y no tiene transiciones de salida.

  15. Regreso a Flujo de trabajo de ejecución de gráficos de Stateflow.

Para completar el paso 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 un paso de tiempo nuevo y el gráfico se activa. Hay múltiples rutas de transición externa de StateA. En este paso de tiempo, x = 1, y = 1 y z = 1.

Stateflow chart with states called StateA, StateC, StateD, and StateE.

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:

  1. La transición 1 de StateA se marca para la evaluación.

  2. La transición 1 de StateA tiene una condición ([y >= 1]).

  3. La condición es verdadera.

  4. No existen acciones de condición.

  5. El destino de la transición 1 de StateA no es un estado.

  6. La intersección tiene transiciones de salida.

  7. La transición 1 de la intersección se marca para la evaluación.

  8. La transición 1 de la intersección tiene una condición ([x > 2]).

  9. La condición es falsa.

  10. La transición 2 de la intersección se marca para la evaluación.

  11. La transición 2 de la intersección tiene una condición ([x >= 1]).

  12. La condición es verdadera.

  13. Hay una acción de condición ({y = 0;}). Ahora, y = 0.

  14. La intersección tiene transiciones de salida.

  15. La transición de la intersección se marca para la evaluación.

  16. La transición 1 de la intersección tiene una condición ([z > 5]).

  17. La condición es falsa.

  18. La transición 2 de StateA se marca para la evaluación.

  19. La transición 2 de StateA no tiene una condición.

  20. El destino de la transición 2 de StateA es un estado (StateD).

  21. StateD se marca para entry y StateA se marca para exit. Ejecute la acción de transición para esta ruta válida (/{z = 5}). Ahora, z = 5.

Para completar el paso 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.

Consulte también

Temas