PackML 从会到不会——状态、管理标签(5)
最近又重新在想起标准化的东西。在工控行业要说设备标准化哪个最成功的——当属 PackML。所以开此坑,用于记录学习(啃标准文档 ANSI/ISA 88.00.02)的过程.
状态标签(Status Tags)
命令标签用于控制设备的操作。
命令标签包括控制基本状态模型中的状态转换的命令、控制设备运行方式的参数和过程变量。
命令标签通常来自设备用户或远程系统。
Status.UnitModeCurrent
数据类型: DINT (32bit)
标签描述: 当前使用的设备模式
该值由用户/OEM 预定义,是设备运行所需的模式。UnitMode 标签是命令模式的数字表示。可以有任意数量的单元模式,并且对于每个单元模式都有一个伴随的状态模型(状态机)。 示例单元模式有生产、维护、手动、清理、空运行、设置等。
Status.UnitModeRequested
数据类型: BOOL (1bit)
标签描述: 模式修改请求
当 UnitModeChangeRequest 发生时,Command.UnitMode 标记中必须存在一个数值以更改单元模式。为了接受、拒绝或调节更改请求的时间,需要对所请求的模式更改进行本地处理和调节。如果接受修改请求则将 Status.UnitModeRequested 置 True。
Status.UnitModeChangeInProcess
数据类型: BOOL (1bit)
标签描述: 模式修改请求正在执行中
当模式修改请求发生时,此标记反映状态模型的状态。如果机器的状态需要时间来改变模式,这个位将跟踪请求并在改变完成时复位。
Status.StateCurrent
数据类型: DINT (32bit)
标签描述: 当前状态值
StateCurrent 状态标记指定设备当前模式下的当前状态。下表中的数值为保留值。
Status.MachSpeed
数据类型: REAL (32bit)
标签描述: 设备当前设定的运行速度
Status.CurMachSpeed
数据类型: REAL (32bit)
标签描述: 设备当前实际的运行速度
Status.MaterialInterlock
数据类型: DWORD (32 位长度的 Bool 结构)
标签描述: 生产来料的状态。
表示来料是否准备好进行处理。它由一系列 0 和 1 组成,1 表示准备就绪或不低,0 表示未准备好或低。每个位代表不同的材料。<br/>该变量可以被定义为所有消耗品,例如产品、纸箱、标签、实用工具和胶水;<br/>也可以指示关键材料或工艺参数何时可以使用的位;<br/>也可用于生产条件的指示。 <br/>随着联锁信息的变化,该信息可以随时发送到单元设备。
Status.Status.EquipmentInterlock.Blocked
数据类型: BOOL
该位设置为 1 时,表示下游系统无法接受产品。在这种情况下,设备能够生产产品,但由于下游系统而处于暂停状态。此标签是外部设备监控所必需的,以便可以识别机器处于暂停状态的原因。
Status.Status.EquipmentInterlock.Starved
数据类型: BOOL
该位设置为 1 时,表示上游系统无法供应产品。在这种情况下,设备能够生产产品,但由于上游系统而处于暂停状态。此标签是外部设备监控所必需的,以便可以识别机器处于暂停状态的原因。
完整的状态标签还包括 RemoteInterface、Product 等,数据格式与命令标签一致,详情请参考 命令标签
管理标签(Administration Tags)
管理标签用于描述单元机的质量和报警信息。管理标签包括描述基本状态模型内条件的警报参数,通常用于生产数据采集 (PDA) 系统。管理标签还包括可以描述机器运行情况的参数,或机器生产的产品质量的具体信息。管理标签通常来自单元机器,可用于 HMI 或远程系统。
Admin.Alarm[#]
数据类型: Alarm 结构体
标签描述: 设备报警数组。
与本地接口关联的报警标签通常用作在单元本地显示或使用的参数,例如来自 HMI。这些警报参数可用于显示系统中当前发生的任何警报或机器停机原因。警报通常仅限于机器单元。数组的范围是需要发出的最大警报数。
Admin.Alarm[#].Trigger
数据类型: BOOL
标签描述: 报警信息的触发
只有当警报当前处于活动状态时才应打开警报触发器。
Admin.Alarm[#].ID
数据类型: DINT
标签描述: 报警信息的 ID
警报 ID 号。分配给每个警报的唯一值。
Admin.Alarm[#].Value
数据类型: DINT
标签描述: 报警信息的值
警报消息编号是与警报相关联的值,允许提供用户特定的详细信息或将警报 ID 分解为更详细的信息。
Admin.Alarm[#].Message
数据类型: STRING
标签描述: 报警信息的值
警报消息是那些能够提供字符串信息的机器的实际警报文本。
Admin.Alarm[#].Category
数据类型: DINT
标签描述: 报警信息的类别
警报类别用于识别发生了何种类型的警报。(例如电气、机械、材料、公用事业等)
Admin.Alarm[#].DateTime[#]
数据类型: Date-Time 数组
标签描述: 报警出现的时间
与时间和日期相关的数据元素应采用 ISO 8601 的年:月:日:时:分:秒:微妙 格式。数据类型应为 32 位整数数组。
Admin.Alarm[#].AckDateTime[#]
数据类型: Date-Time 数组
标签描述: 确认报警的时间
与时间和日期相关的数据元素应采用 ISO 8601 的年:月:日:时:分:秒:微妙 格式。数据类型应为 32 位整数数组。
Admin.AlarmExtent
数据类型: DINT
标签描述: 报警队列
警报范围与设备所需的警报的最大数量相关联。本地或远程机器可以使用此标签来了解设备警报的信息。
Admin.AlarmHistroy、Admin.Warning、Admin.StopReason 参考 Admin.Alarm 标签
Admin.ModeCurrentTime[#]
数据类型: DINT
计量单位: 秒
标签描述: 模式当前时间
此标签表示在任何定义的模式下的当前时间量(以秒为单位)。数组索引等于单元机器模式值的指定 - 在 Status.UnitModeCurrent 中定义。这些值范围为 0 ~ 2,147,483,647 。
Admin.ModeCumulativeTime[#]
数据类型: DINT
计量单位: 秒
标签描述: 模式累计时间
此标签表示在任何定义的模式下的累积时间量(以秒为单位)。数组索引等于单元机器模式值的指定 - 在 Status.UnitModeCurrent 中定义。该值是机器在每种模式下花费的累计时间,因为它的计时器和计数器被重置。这些值范围为 0 ~ 2,147,483,647 。
Admin.StateCurrentTime[#,#]
数据类型: DINT
计量单位: 秒
标签描述: 状态当前时间
此标签表示在任何特定模式下任何定义状态下的当前时间量(以秒为单位)。数组索引等于 Status.UnitModeCurrent 中定义的单元机器模式值和 Status.StateCurrent 中定义的状态值的指定;这样数组索引是 [Status.UnitModeCurrent, Status.StateCurrent]。这些值范围为 0 ~ 2,147,483,647 。
Admin.StateCumulativeTime[#,#]
数据类型: DINT
计量单位: 秒
标签描述: 状态累积时间
此标签表示在任何特定模式下任何定义状态下的累积时间量(以秒为单位)。数组索引等于 Status.UnitModeCurrent 中定义的单元机器模式值和 Status.StateCurrent 中定义的状态值的指定;这样数组索引是 [Status.UnitModeCurrent, Status.StateCurrent]。这些值范围为 0 ~ 2,147,483,647 。
Admin.ProdConsumedCount[#]
数据类型: ProdCount 结构体数组
该标签代表生产机器中使用/消耗的材料。标签使用的一个例子是在灌装机或装袋机包装机中消耗的袋子数量,或使用的线性长度量,或使用的瓶盖数量。 如果需要,可以在本地或远程使用此标签。阵列的范围通常限于需要计数的原材料数量。该阵列通常用于运行多种原材料的单元机。此数组还可用于跟踪进入机器进行处理的未完成产品的数量,但通常使用 Admin.ProdProcessedCount[#] 来实现此目的。
Admin.ProdConsumedCount[#].ID
数据类型: DINT
标签描述: ID
这是消耗的生产材料的任意(用户定义)ID 值。这是可用于任何用户标签要求的非描述性值。ID 值可以是 SKU 或用户特定的材料标识符。
Admin.ProdConsumedCount[#].Name
数据类型: STRING
标签描述: 名称
该名称用于逐字描述材质 ID 及其关联的材质。示例参数名称可以是 PRODUCT A BAGS、XYZ CAPS FOR ABC PRODUCT 等。这也可以显示在 HMI 屏幕上。该数组通常用于具有质量报告或 PDA(生产数据采集)需求的机器。
Admin.ProdConsumedCount[#].Count
数据类型: DINT
标签描述: 值
计数值用作显示有关已消耗生产材料数量的信息的变量。该值根据机器消耗由 ID 和 NAME 定义的单位材料编制索引。这可以显示在 HMI 屏幕或更高级别的 PDA 系统上。这些值范围为 0 ~ 2,147,483,647 。
Admin.ProdConsumedCount[#].AccCount
数据类型: DINT
标签描述: 值
累计计数值用作显示有关已消耗生产材料总量的信息的变量。该值根据机器消耗由 ID 和 NAME 定义的单位材料编制索引。这可以显示在 HMI 屏幕或更高级别的 PDA 系统上。该计数器为用户提供了一个可用于 OEE 计算的非复位计数器。这些值范围为 0 ~ 2,147,483,647 。
例子:
上面描述了机器用于产品 XYZ 的消耗标签自上次操作员复位以来为 2305,自上次累计计数器复位以来为 14,995,100。
Admin.ProdProcessedCount[#]
数据类型: ProdCount 结构体数组
该标签代表生产机器加工的产品数量。标签使用的一个例子是制造的产品数量,包括所有好的和有缺陷的产品。如果需要,可以在本地或远程使用此标签。阵列的范围通常限于需要计数的产品数量。加工的产品数量减去次品数量就是机器生产的产品数量。# = 0 的数组索引可以保留用于计算来自主要生产流的单位数量。
具体 ProdProcessedCount 可以参考 ProdConsumedCount
Admin.ProdDefectiveCount[#]
数据类型: ProdCount 结构体数组
该标签代表在生产机器中被标记为有缺陷的产品,如果适用,将被使用。标签使用的一个例子是被拒绝的产品或被称为有缺陷的产品的数量。如果需要,可以在本地或远程使用此标签。阵列的范围通常限于需要计为有缺陷的产品数量。当此标签与 Admin.ProdProcessedCount[#] 一起使用时,可以计算出机器制造的合格产品/成型良好的周期数。# = 0 的数组索引可以保留用于来自主要生产流的总累积拒绝单元。
具体 ProdDefectiveCount 可以参考 ProdConsumedCount
Admin.AccTimeSinceReset
数据类型: DINT
计量单位: 秒
标签描述: 自上次复位以来的累计时间
该标签表示自重置被触发以来的时间量。 当触发重置时,所有可重置标签都将被重置,其中包括:
该值范围为 0 ~ 2,147,483,648。该标签可用于简单的 OEE 计算,作为“计划生产时间”的定义。简单的 OEE 计算是好的产品总量除以单位时间内可生产的产品总量,时间单位为预定生产时间。
Admin.MachDesignSpeed
数据类型: REAL
计量单位: 包/分钟
标签描述: 设备设计的速度
此标签表示机器在每分钟初级包装中的最大设计速度,用于运行包装配置。此速度不是制造商指定的最大速度,而是机器设计在其安装环境中运行的速度。请注意,在实践中,用于效率计算的机器的最大速度将取决于它的设置方式和生产的产品。
Admin.StatesDisabled
数据类型: DINT
PackML 状态模型的状态 1 到 17 可以通过打开 INT 中的相应位来禁用。请注意,某些状态转换规则可能会覆盖禁用位。例如,如果未禁用 HOLDING,则无法禁用 HELD。
Admin.PLCDateTime
数据类型: Date-Time 数组
标签描述: PLC 的当前日期和时间
与时间和日期相关的数据元素应采用 ISO 8601 的年:月:日:时:分:秒:微妙 格式。数据类型应为 32 位整数数组。
ISA 88.00.02 分享链接: https://pan.baidu.com/s/1Yw0hEy28ASwaeoUXW27Apw 提取码: knai
本文作者: Jacob Chen
本文链接: https://jacobcj.gitee.io/2021/12/09/05PackMLStatusAndAdminTags/
版权声明: 本博客所有文章除特别声明外,均采用 BY-SA 许可协议。转载请注明出处!
版权声明: 本文为 InfoQ 作者【陈的错题集】的原创文章。
原文链接:【http://xie.infoq.cn/article/f2989e9ea69da9ce81f07e576】。
本文遵守【CC BY-SA】协议,转载请保留原文出处及本版权声明。
评论