Skip to main content

咖啡机

以下应用示例说明了咖啡机的状态图。它完整地描述了它的流程,确定了机器在运行时的行为方式。

查看示例项目 UML_SC_CoffeeMachine.project 在安装子目录中 Projects.

使用状态图创建应用程序

  1. CODESYS , 创建一个新项目 标准项目 模板。为了 PLC_PRG 输入, 选择 UML 状态图 实现语言。

    项目已创建。

  2. 在设备树中,单击程序 PLC_PRG.

    编辑器由一个声明窗口和一个图形实现窗口组成。在里面 工具箱 查看,列出了可用于创建状态图的元素。

  3. 改名 PLC_PRG 作为 CoffeeMachine.

    _uml_img_sc_coffee_maker_create_app.png

为保护条件声明变量

用户输入被映射到通常由用户通过用户界面在外部设置的布尔变量。当您将变量分配为状态图中的保护条件时,流逻辑变得可切换。这些变量充当控制变量。此处不描述作为用户界面的可视化。

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

将流逻辑实现为状态图

只要没有冲泡咖啡,咖啡机就处于状态 Idle.制作咖啡的请求使机器脱离空闲状态。咖啡酿造贯穿各州 Grind, Boil, Heat, Foam (乳)正交态准平行 CreateCoffee.然后将热饮冲泡并上桌(Pour)。然后机器返回空闲状态。

上电和初始化阶段后达到空闲状态 Init.机器从空闲状态关闭(Shutdown)。

_uml_img_sc_coffee_maker_design.png

国家 CreateCoffee 是包含多个正交区域的正交状态。在运行时,这些区域根据它们的优先级准并行执行。状态图说明了术语“正交状态”。

在设备树中,双击程序 CoffeeMachine 打开编辑器并创建上图所示的图表。

添加方法和动作

当您将流逻辑实现为状态图时,您可以向状态和转换添加功能。在这样做时,您添加 ENTRY, DO, 和 EXIT 国家的行动或方法。您还可以向转换添加操作或方法,然后在状态转换时调用一次。

在下面您可以看到必须在状态图功能块下方插入的操作(程序 咖啡机) 用于设备树中的咖啡机。例如,此处列出的代码只是占位符代码,稍后将对其进行扩展以评估映射到变量中的 I/O。

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;

然后将动作分配给状态和转换,如下所示。

_uml_img_sc_coffee_maker.png

要将操作添加到状态,请单击其中一个 _uml_icon_sc_action_entry.png, _uml_icon_sc_action_do.png, 要么 _uml_icon_sc_action_exit.png符号。要将动作添加到过渡,请单击 _uml_icon_sc_transition_action.png 象征。