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_ModeManager 或 FB_UnitModeManager2 验证状态模型的一致性,并验证是否能在当前状态下更改操作模式。
FC_CheckCmd2 验证状态转换命令是否有效,并返回产生的目标状态。
视图框架和 FB_VisController 用于显示状态模型,并为它提供调试接口。
您负责根据状态模型中明确规定的转换在状态模型中执行正确的流程,以及完成操作模式的更改。库中提供的 POU 可帮助实现此逻辑(FB_ModeManager 与 FC_CheckCmd 或 FC_CheckCmd2 组合,或 FB_UnitModeManager2 使用它的方法)。
实现对状态和操作模式的跟踪,并负责实现对应于状态、转换和操作模式的机器行为。
在状态模型中分为三种不同类型的状态:
|
状态类型 |
ANSI/ISA TR88.00.02-2022 中的描述 |
示例 |
|---|---|---|
|
等待状态 |
用于指示机器的一组预定义条件已被激活的状态。在此状态下,在切换到正在执行状态之前,机器一直保持一种状态。 |
|
|
正在执行状态 |
指示某种处理活动的状态。它隐含以逻辑顺序对处理步骤进行单次执行或反复执行,这种执行持续某个限定的时间或者持续至达到特定条件时为止。 |
|