Skip to main content

简单状态机

一个简单的状态机由状态、控制状态转换的转换以及动作或方法组成。这允许您设计和实现有限机器的行为。

使用状态图创建应用程序

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

    项目已创建。

  2. 在设备树中,选择应用程序并单击 添加对象 → POU 在上下文菜单中。

  3. 创建一个名为 FB_Simple_Machine 在里面 UML 状态图 (SC) 实现语言。

    _uml_img_sc_simple_device_tree.png
  4. 在程序中实例化功能块 PLC_PRG 并实现功能块实例的调用。

    PROGRAM PLC_PRG
    VAR
        fb_Simple_Machine_A : FB_Simple_Machine;
    END_VAR
    fb_Simple_Machine_A();
  5. 将项目另存为 SimpleMachine.project.

将流逻辑设计为状态图

对机器的要求示例:

  • 机器处于状态 Idle 在初始化阶段之后。

  • 当事件发生时,机器切换到状态 DoIt.

  • 当所有动作和方法都处理完后,触发完成事件,机器返回空闲状态。

  • 机器可以从空闲状态切换到状态 Exit 然后到结束状态。

在这种情况下,机器的设计如下。

_uml_img_sc_simple_machine_design.png

该设计尚不包含任何控制流逻辑的保护条件。此外,还没有调用任何动作或方法,因此机器仍然无法运行。

在设备树中,双击功能块 FB_Simple_Machine 打开编辑器并创建上图所示的图表。

为保护条件声明变量

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

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

_uml_img_sc_simple_machine_control.png

添加方法和动作

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

您可以通过选择其中一个向状态添加操作 _uml_icon_sc_action_entry.png, _uml_icon_sc_action_do.png, 要么 _uml_icon_sc_action_exit.png 符号。您可以点击 _uml_icon_sc_transition_action.png 向过渡添加动作的符号。

_uml_img_sc_simple_machine_function.png

如果您为转换分配一个动作,那么您可以设计一个类似的逻辑,该逻辑在时间行为上仅略有不同。

_uml_img_sc_simple_machine_function_as_well.png

在里面 设备 查看,您可以跟踪操作和方法的分配。动作和方法是在 英石 实现语言。

_uml_img_sc_simple_machine_devices.png