Skip to main content

Máquina de estado simple

Una máquina de estado simple consta de estados, transiciones que controlan la transición de estado y acciones o métodos. Esto le permite diseñar e implementar el comportamiento de máquinas finitas.

Creación de una aplicación con un gráfico de estado

  1. Crear un nuevo proyecto con el Proyecto estándar plantilla. Para PLC_PRG en, Selecciona el Gráfico de estado UML lenguaje de implementación.

    Se crea el proyecto.

  2. En el árbol de dispositivos, seleccione la aplicación y haga clic en Agregar objeto → POU en el menú contextual.

  3. Cree un bloque de funciones llamado FB_Simple_Machine en el Diagrama de estado UML (SC) lenguaje de implementación.

    _uml_img_sc_simple_device_tree.png
  4. Crear una instancia del bloque de función en el programa PLC_PRG e implementar la llamada de la instancia del bloque de funciones.

    PROGRAM PLC_PRG
    VAR
        fb_Simple_Machine_A : FB_Simple_Machine;
    END_VAR
    fb_Simple_Machine_A();
  5. Guardar el proyecto como SimpleMachine.project.

Diseño de lógica de flujo como un diagrama de estado

Ejemplo de requisitos en la máquina:

  • La máquina está en el estado Idle después de la fase de inicialización.

  • Cuando ocurren eventos, la máquina cambia al estado DoIt.

  • Cuando se han procesado todas las acciones y métodos, se activa el evento de finalización y la máquina vuelve al estado inactivo.

  • La máquina se puede cambiar del estado inactivo al estado Exit y luego al estado final.

En este caso, el diseño de la máquina es el siguiente.

_uml_img_sc_simple_machine_design.png

El diseño aún no contiene ninguna condición de protección que controle la lógica de flujo. Además, todavía no se llama a ninguna acción o método, por lo que la máquina sigue sin funcionar.

En el árbol de dispositivos, haga doble clic en el bloque de funciones FB_Simple_Machine para abrir el editor y crear el diagrama ilustrado arriba.

Declaración de variables para condiciones de protección

PROGRAM FB_Simple_Machine
VAR
    bInitDone : BOOL := FALSE;
    bShutDown : BOOL := FALSE;
    bDoSomething : BOOL := FALSE;
    bDoFinished : BOOL := FALSE;
END_VAR

La entrada del usuario se asigna a variables booleanas que, por lo general, un usuario configura externamente a través de una interfaz de usuario. Cuando asigna la variable como una condición de protección en el gráfico de estado, la lógica de flujo se vuelve conmutable. Las variables actúan como variables de control.

_uml_img_sc_simple_machine_control.png

Agregar métodos y acciones

Cuando haya implementado la lógica de flujo como un gráfico de estado, agregue funcionalidad a los estados y transiciones. Al hacerlo, extiende los estados con ENTRY, DO, y EXIT acciones o métodos. También puede agregar una acción o método a una transición, que luego se llama una vez en la transición de estado.

Puede agregar acciones a un estado seleccionando una de las _uml_icon_sc_action_entry.png, _uml_icon_sc_action_do.png, o _uml_icon_sc_action_exit.png simbolos Puede hacer clic en el _uml_icon_sc_transition_action.png símbolo para agregar acciones a una transición.

_uml_img_sc_simple_machine_function.png

Si asigna una acción a las transiciones, puede diseñar una lógica similar que difiera solo ligeramente en el comportamiento del tiempo.

_uml_img_sc_simple_machine_function_as_well.png

En el Dispositivos vista, puede rastrear la asignación de acciones y métodos. Las acciones y métodos fueron creados en el S T lenguaje de implementación.

_uml_img_sc_simple_machine_devices.png