Skip to main content

示例:OMAC PackML 状态机

产品CODESYS Development System

该库包含一个基于 OMACPackML 标准的包装行业控制器状态机。

描述

PackML 代表包装机器语言,定义了包装行业自动化机器的通用方法或机器语言。 PackML的首要目标是标准化操作和实施行业创新。这 OMAC_PackML_State_Machine 包中包含的库包含 OMAC PackML 状态机的实现。示例项目展示了如何使用该库。有关 OMAC 和 PackML 的更多信息,请参阅: www.omac.org/

附加信息

PackML 状态机定义机器状态和相应的状态转换。一组机器状态称为“单元模式”。一个单元模式最多可以包含 17 个机器状态。下图显示了所有机器状态以及相应的状态转换。

_example_img_omac_state_machine1.png

机器状态分为三种类型:

  • Acting States (绿色):活动处理状态(示例: ABORTING 或者 HOLDING

  • Wait States (橄榄绿):活动处理状态完成后到达的状态,正在等待事件。例子: ABORTED 或者 HELD

  • Dual States (蓝色):机器状态 Acting StateWait State 类型。 PackML 中仅定义了这种类型的一种状态: EXECUTE

状态转换由一个动作执行,例如 Start 或者 Stop

PackML 还允许定义自定义单位模式。例如,可以创建自定义单元模式以进行设置或维护。所包含的机器状态是最大机器状态的子集。

一次只能激活一种单位模式,但可以在单位模式之间切换。该任务由单元模式管理器处理。单元模式管理器检查当前机器状态是否允许离开以及目标状态是否允许进入。

_example_img_omac_state_machine2.png

库:OMAC_PackML_State_Machine

OMAC_PackML_State_Machine 包中包含的库包含所有必需的组件,包括构建基于 PackML 的状态机的可视化。

UnitMode 功能块可用于定义您自己的单元模式以及相应的机器状态(dwSupportedStates 输入)。单位模式之间切换的权限由两者处理 dwAllowsLeavingFromStatesdwAllowsEnteringIntoStates 输入。可以通过调用中的方法来更改机器状态 Commands 文件夹 (Start, Stop, Abort, ETC。)。

UnitModeManager 功能块可实现单元模式的切换。该功能块用于查询当前状态。

示例项目:PackML_Example

示例项目 PackML_Example 包括两个应用程序来说明该库的使用。

应用程序:PackMLUnitModeManager

在里面 PackMLUnitModeManager 应用程序,三种单元模式(Production, Semi Auto, 和 Setup)被定义并注册 UnitModeManager 功能块。可视化显示相应单元模式的当前状态,并允许执行命令和切换单元模式。

_example_img_omac_state_machine3.png

应用程序:PackMLAxisControl

在示例中,虚拟 SoftMotion 轴的状态通过 PackML 状态机显示和控制。单位模式被定义并且状态被分配在 AxisControl 功能块。

_example_img_omac_state_machine4.png

系统要求和限制

编程系统

CODESYS Development System (版本3.5.10.0或更高版本)

运行时系统

CODESYS Control Win (版本3.5.10.0)

附加组件

-

注意

_example_icon.png 下载 项目

安装 OMAC PackML State Machine 软件包后,你会在 C:\Users\<user>\CODESYS Examples\OMAC PackML State Machine 目录中找到示例项目。