Skip to main content

Maquina de cafe

El siguiente ejemplo de aplicación ilustra el diagrama de estado de una máquina de café. Describe completamente el flujo de su proceso, determinando cómo se comporta la máquina en tiempo de ejecución.

Ver el proyecto de muestra UML_SC_CoffeeMachine.project en el subdirectorio de instalación Projects.

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

  1. En CODESYS , cree 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, haga clic en el programa PLC_PRG.

    El editor consta de una ventana para la declaración y una ventana para la implementación gráfica. En el Caja de herramientas vista, se enumeran los elementos que puede usar para crear un gráfico de estado.

  3. Rebautizar PLC_PRG como CoffeeMachine.

    _uml_img_sc_coffee_maker_create_app.png

Declaración de variables para condiciones de protección

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. Aquí no se describe una visualización como interfaz de usuario.

PROGRAM CoffeeMachine
VAR
    bMakeCoffee : BOOL := FALSE;
    bShutDown : BOOL := FALSE;
    bPowerUp : BOOL := FALSE;
END_VAR

Implementando la lógica de flujo como un diagrama de estado

Mientras no se elabore café, la máquina de café se encuentra en el estado Idle. La solicitud de preparación de café saca a la máquina del estado de inactividad. La elaboración de café recorre los estados Grind, Boil, Heat, Foam (leche) cuasi-paralelo en el estado ortogonal CreateCoffee. Luego se elabora y se sirve la bebida caliente (Pour). Luego, la máquina vuelve al estado inactivo.

El estado inactivo se alcanza después del encendido y la fase de inicialización Init. La máquina se apaga desde el estado inactivo (Shutdown).

_uml_img_sc_coffee_maker_design.png

El estado CreateCoffee es un estado ortogonal que comprende múltiples regiones ortogonales. En tiempo de ejecución, las regiones se ejecutan casi en paralelo según su prioridad. El gráfico de estado ilustra el término "estado ortogonal".

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

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, agrega ENTRY, DO, y EXIT acciones o métodos para los estados. 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.

A continuación, verá las acciones que deben insertarse debajo del bloque de función de diagrama de estado (programa Maquina de cafe) para la máquina de café en el árbol de dispositivos. El código que se muestra aquí es solo un código de marcador de posición que se ampliará más adelante para evaluar las E/S asignadas en variables, por ejemplo.

ActGrind

nGrind := nGrind + 10;

ActFoam

nFoam := nFoam + 5;;

ActFoam

nFoam := nFoam + 5;;

ActHeat

nFoam := nFoam + 5;;

ActShutdown

bShutDown := FALSE;
bPowerUp := FALSE;

CoffeeReady

bMakeCoffee := FALSE;
iGrind := 0;
iHeat := 20;
iFoam := 0;

Luego asigne las acciones a los estados y transiciones de la siguiente manera.

_uml_img_sc_coffee_maker.png

Para agregar una acción a un estado, haga clic en uno de los _uml_icon_sc_action_entry.png, _uml_icon_sc_action_do.png, o _uml_icon_sc_action_exit.pngsimbolos Para agregar una acción a una transición, haga clic en el _uml_icon_sc_transition_action.png símbolo.