Skip to main content

Elemento: Estado compuesto

Puede usar este elemento para agrupar varios estados.

. Un estado compuesto puede ser ortogonal o no ortogonal.
  • Estado ortogonal: Estado compuesto con dos o más regiones. En un estado ortogonal, los estados internos se agrupan en regiones y las regiones se priorizan. Controlan el orden de procesamiento en tiempo de ejecución. Los estados de las regiones se ejecutan en pseudo-paralelo de acuerdo con su secuencia interna.

  • Estado no ortogonal: Estado compuesto con exactamente una región. En un estado no ortogonal, los estados internos se ejecutan secuencialmente en tiempo de ejecución. Un estado interno también puede ser un estado compuesto. El anidamiento de estados no ortogonales puede tener cualquier profundidad, por lo que ninguno de los estados puede tener múltiples regiones, excepto el estado más interno.

Los estados ortogonales y no ortogonales también pueden llamar a un ENTRADA acción, un HACER acción, y un SALIDA acción. Cuando una transición de excepción está activa, el SALIDA se ejecuta la acción de cada estado activo de cada región del estado ortogonal.

_uml_img_orthogonal_state.png

El nombre del estado compuesto se muestra en la esquina superior izquierda del rectángulo. Las regiones están divididas por una línea discontinua. La prioridad de la región se muestra en la esquina superior derecha de la región.

Normas

. Normas
  • No se permite una transición entre estados en diferentes regiones.

  • Un estado compuesto puede tener una o más transiciones de excepción salientes. Puede implementar el manejo de errores de manera eficiente, por ejemplo, con una transición de excepción.

  • Un estado compuesto tiene como máximo una transición de finalización. Por lo tanto, cada región incluye un estado inicial y un estado final. El estado compuesto alcanza su estado final cuando todas las regiones han alcanzado sus estados finales. Si un estado compuesto no tiene una transición de finalización saliente, es posible que las regiones no tengan un estado inicial o un estado final.

  • Una transición a un estado dentro de un estado ortogonal solo se permite desde una bifurcación y siempre es incondicional.

  • Un estado no ortogonal puede contener otro estado compuesto. En este caso, los estados están anidados.

  • Un estado compuesto no ortogonal puede tener un asignado ENTRADA acción y/o HACER acción y/o SALIDA acción.

Propiedades

Propiedad

Descripción

identificador

Nombre del estado compuesto

Ejemplo: DoorAutomaton

Color

Color del elemento. Puede cambiar el color mediante un cuadro de diálogo de selección de color. Predeterminado: Amarillo

Permitir acciones de ENTRADA / HACER / SALIR

Requisito: El estado compuesto seleccionado tiene exactamente una región.

Las acciones ENTRY, DO y EXIT también se pueden asignar para los siguientes casos de uso:

  • Estados compuestos anidados

  • Estados sin estados iniciales o finales internos

  • Estados sin finalización saliente interna o transiciones de excepción

_cds_icon_checked.png: Puede asignar uno de cada ENTRY, DO, y EXIT acciones al estado.

Ejecutar acciones DO incluso si los estados compuestos internos están activos

La opción está disponible solo para el estado compuesto más externo y es heredada por los internos.

_cds_icon_checked.png: La acción DO se ejecuta continuamente en tiempo de ejecución, incluso si uno de los estados compuestos internos está activo al mismo tiempo. los {ejecutado también para compuestos internos} La nota se muestra en el editor junto a la acción DO para señalar el comportamiento de esta acción.

_cds_icon_option_deactivated.png: Tan pronto como uno de los estados compuestos internos está activo, la acción DO del estado externo se detiene.

Entrada del usuario

Acción

Descripción

  1. Seleccione un estado compuesto vacío.

  2. Haga clic en el _uml_icon_transition_completion.png símbolo.

    Se genera una transición de finalización saliente.

  3. 3. Haga clic en un elemento existente (escriba: Estado, estado compuesto, Bifurcación/Unirse, o Elección).

    Se inserta una transición de finalización entre los dos elementos.

Nota: Si no hace clic en un elemento existente, sino en un área en blanco, se crea un nuevo estado.

agregas un _uml_icon_transition_exception.png transición de excepción de la misma manera.

  1. Mueva el puntero del mouse a un estado compuesto vacío.

  2. Haga clic en el _uml_icon_sc_area_add.png símbolo.

    El estado se subdivide y se agrega otra región.

    _uml_state_orthogonal.png

La prioridad se muestra a la derecha en la región. Las regiones con una prioridad más baja se procesan primero. Puede cambiar la prioridad. CODESYS adapta las prioridades de las otras regiones automáticamente.

  1. Seleccione un estado compuesto con varias regiones.

  2. Mueva la línea de separación.

  3. Seleccione la línea de separación haciendo doble clic en ella.

    La línea se muestra en azul.

  4. presione el Supr llave.

    La línea se elimina.

Después de eliminar la línea de separación, las dos regiones (separadas por el borde) se fusionan en una sola región.

  1. Seleccione un estado compuesto con varias regiones.

  2. Haga clic en la prioridad en una región dos veces.

Ahora se puede cambiar la prioridad.

Cuando se cambia la prioridad, las otras prioridades se adaptan automáticamente.

  1. Mueva el puntero del mouse a un estado compuesto vacío.

    Se muestran las acciones del estado.

    _uml_img_composite_state_with_acitvated_actions.png

  2. 2. 2. Haga clic en uno de los tres _uml_icon_actions_vertical.png simbolos

  3. Haga clic en el _uml_icon_sc_action_do.png símbolo.

    El estado se amplía mediante una acción/método DO.

  4. Pase el cursor sobre un estado con una acción DO asignada.

  5. Haga clic en el _uml_icon_sc_action_add.png símbolo.

    los Nuevo objeto de acción se abre el cuadro de diálogo.

  6. Selecciona el Acción objeto.

  7. Especifique un nombre y un idioma de implementación.

    Se inserta una nueva acción debajo de la POU del gráfico de estado.

  8. Haga clic en el _uml_icon_sc_action_open.png símbolo.

    Se abre el editor de la acción o método correspondiente.

Requisito: El Permitir acciones de ENTRADA / HACER / SALIR se selecciona la propiedad.

El objeto de acción puede ser una acción o un método. Si la acción es un método, también debe definir el tipo de devolución y el tipo de acceso en el Nuevo objeto de acción diálogo. La asignación al objeto de acción se puede cambiar en las propiedades del elemento.

Un estado puede tener una acción de ENTRADA, una acción de HACER y una acción de SALIDA:

  • Una acción/método de ENTRADA puede inicializar el estado. Se ejecuta una vez cuando todas las transiciones entrantes están configuradas para TRUE.

  • La acción/método DO se ejecuta mientras el estado esté activo. La acción se puede programar en cualquier lenguaje de implementación. cuando usas Gráfico de estado, se crea una estructura jerárquica.

  • La acción/método EXIT debe asegurarse de que se sale del estado en un estado válido. La acción EXIT se ejecuta una vez cuando todas las transiciones salientes del estado están TRUE.

Sugerencia

También puede agregar o cambiar las acciones o métodos en las propiedades del elemento.

Ejemplos

ejemplo 22. Estado compuesto con transición de excepción y transición de finalización
_uml_img_composite_state_example.png


ejemplo 23. Estado compuesto sin transición de finalización
_uml_img_composite_state_without_completion.png


ejemplo 24. Estados compuestos anidados
_uml_img_nested_composite_states.png


ejemplo 25. Estado ortogonal con horquilla
_uml_img_fork_join_example.png


Ejemplo: Ascensor Ascensor

ejemplo 26. Estado ortogonal con transición de finalización y transición de excepción
_uml_img_orthogonal_state_lift.png