咖啡机
以下应用示例说明了咖啡机的状态图。它完整地描述了它的流程,确定了机器在运行时的行为方式。
查看示例项目 UML_SC_CoffeeMachine.project 在安装子目录中 Projects.
使用状态图创建应用程序
在 CODESYS , 创建一个新项目 标准项目 模板。为了 PLC_PRG 输入, 选择 UML 状态图 实现语言。
项目已创建。
在设备树中,单击程序
PLC_PRG.编辑器由一个声明窗口和一个图形实现窗口组成。在里面 工具箱 查看,列出了可用于创建状态图的元素。
改名
PLC_PRG作为CoffeeMachine.
为保护条件声明变量
用户输入被映射到通常由用户通过用户界面在外部设置的布尔变量。当您将变量分配为状态图中的保护条件时,流逻辑变得可切换。这些变量充当控制变量。此处不描述作为用户界面的可视化。
PROGRAM CoffeeMachine
VAR
bMakeCoffee : BOOL := FALSE;
bShutDown : BOOL := FALSE;
bPowerUp : BOOL := FALSE;
END_VAR将流逻辑实现为状态图
只要没有冲泡咖啡,咖啡机就处于状态 Idle.制作咖啡的请求使机器脱离空闲状态。咖啡酿造贯穿各州 Grind, Boil, Heat, Foam (乳)正交态准平行 CreateCoffee.然后将热饮冲泡并上桌(Pour)。然后机器返回空闲状态。
上电和初始化阶段后达到空闲状态 Init.机器从空闲状态关闭(Shutdown)。

国家 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;
然后将动作分配给状态和转换,如下所示。

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