操作模式

概述

PackML 准则定义以标准化方式演示包装机基本行为的标准化状态模型。

根据 PackML 准则,每台包装机可能支持多种操作模式。

每种操作模式最多可包括 17 种状态(已中止正在中止正在清除完成正在完成执行已保持正在保持空闲正在复位正在启动已停止正在停止已挂起正在挂起正在取消保持正在取消挂起)。

要从一种状态移到另一种状态,状态之间存在转换。每个转换由状态转换命令或者 SC(状态完成)条件触发。

PackML 库的实现侧重于 ANSI/ISA TR88.00.02-2022 标准中所述的设备控制模式。在任何情况下,当本文档提到操作模式时,均特指装置控制模式。

使用状态模型

PackML 库中的状态模型基于具有 17 个状态的状态模型,如 ANSI/ISA TR88.00.02-2022 中所定义,请参考后面的示意图。状态模型必须包含这些状态或这些状态的子集。

定义状态模型的方式是指定操作模式存在哪些状态。状态之间的转换根据选定的状态自动隐性地进行创建。

ST_UnitModeDefinition 是代表操作模式状态模型的结构。功能块 FB_ModeManager 的实现需要此结构。此结构可以使用功能 FC_InitStateModelExistingStates()FC_InitStateModelChangeStates() 进行初始化。

使用功能块 FB_UnitModeManager2 时,所需的操作模式利用方法 DefineUnitMode()DefineUnitModeWithHandler() 定义。ST_UnitModeDefinition 结构由 GetDefinedUnitModes() 方法提供。

功能块 FB_ModeManagerFB_UnitModeManager2 验证状态模型的一致性,并验证是否能在当前状态下更改操作模式。

FC_CheckCmd2 验证状态转换命令是否有效,并返回产生的目标状态。

视图框架和 FB_VisController 用于显示状态模型,并为它提供调试接口。

您负责根据状态模型中明确规定的转换在状态模型中执行正确的流程,以及完成操作模式的更改。库中提供的 POU 可帮助实现此逻辑(FB_ModeManagerFC_CheckCmdFC_CheckCmd2 组合,或 FB_UnitModeManager2 使用它的方法)。

实现对状态和操作模式的跟踪,并负责实现对应于状态、转换和操作模式的机器行为。

状态模型示意图

下面示意图描述具有 17 种状态的操作模式的状态模型:

状态类型

在状态模型中分为三种不同类型的状态:

状态类型

ANSI/ISA TR88.00.02-2022 中的描述

示例

等待状态

用于指示机器的一组预定义条件已被激活的状态。在此状态下,在切换到正在执行状态之前,机器一直保持一种状态。

正在执行状态

指示某种处理活动的状态。它隐含以逻辑顺序对处理步骤进行单次执行或反复执行,这种执行持续某个限定的时间或者持续至达到特定条件时为止。

界线

下面列表描述根据状态模型定义操作模式的界线:

  • 状态的最大数量:17

    操作模式的状态可从状态模型中的预定义状态中选择。每种状态只能出现一次,其位置由状态模型指定。您不能添加额外的状态,也不能更改状态的顺序。

  • 状态模型是单向的。

  • 等待状态之后的状态必须是正在执行状态

  • 在每种状态下可执行逻辑。

注: 使用 PackML 库创建操作模式还有更多的规则需要遵守。请参阅 FB_ModeManagerFB_UnitModeManager2