咖啡机
以下应用示例说明了咖啡机的状态图。它完整地描述了它的流程,确定了机器在运行时的行为方式。
查看示例项目 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;
然后将动作分配给状态和转换,如下所示。

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