PackML 从会到不会——命令标签(4)
最近又重新在想起标准化的东西。在工控行业要说设备标准化哪个最成功的——当属 PackML。所以开此坑,用于记录学习(啃标准文档 ANSI/ISA 88.00.02)的过程.
命令标签(Command Tags)
命令标签用于控制设备的操作。<br/>命令标签包括控制基本状态模型中的状态转换的命令、控制设备运行方式的参数和过程变量。<br/>命令标签通常来自设备用户或远程系统。
Command.UnitMode
数据类型: DINT (32bit)
标签描述: 设备模式设置值
该值由用户/OEM 预定义,是设备运行所需的模式。UnitMode 标签是命令模式的数字表示。可以有任意数量的单元模式,并且对于每个单元模式都有一个伴随的状态模型(状态机)。 示例单元模式有生产、维护、手动、清理、空运行、设置等。
Command.UnitModeChangeRequest
数据类型: BOOL (1bit)
标签描述: 模式修改请求
当 UnitModeChangeRequest 发生时,Command.UnitMode 标记中必须存在一个数值以更改单元模式。为了接受、拒绝或调节更改请求的时间,需要对所请求的模式更改进行本地处理和调节。
Command.MachSpeed
数据类型: REAL (32bit)
计量单位: 单位/分钟
标签描述: 设备运行速度设定值
这定义了每分钟初级包装中机器当前速度的设定点。将速度保持在初级包装计量单位 (UOM) 中,可以更轻松地进行控制集成。主包 UOM 是机器的标准化费率,标准化为在线选择的值。以下示例适用于以 1000 包/分钟的平衡线速度运行的瓶线。 选择的 UOM 相当于填充机或贴标机的实际计数。
Command.MaterialInterlock
数据类型: DWORD (32 位长度的 Bool 结构)
标签描述: 生产来料的状态。
表示来料是否准备好进行处理。它由一系列 0 和 1 组成,1 表示准备就绪或不低,0 表示未准备好或低。每个位代表不同的材料。<br/>该变量可以被定义为所有消耗品,例如产品、纸箱、标签、实用工具和胶水;<br/>也可以指示关键材料或工艺参数何时可以使用的位;<br/>也可用于生产条件的指示。 <br/>随着联锁信息的变化,该信息可以随时发送到单元设备。
Command.CntrlCmd
数据类型: DINT (32bit)
标签描述: 状态转换的控制命令设置值
标签保存提供状态命令以驱动基本状态模型中的状态转换的命令的值,该标签通常在本地操作。本地处理这个标签对应的设备条件状态。该标签可以由本地或远程设置。下表中的所有值均为保留值。
Command.CmdChangeRequest
数据类型: BOOL (1bit)
标签描述: 状态修改请求
该 CmdChangeRequest 命令将设备当前状态更改为目标状态。该标签可用于调节状态何时发生变化。目标状态将是基本状态模型中的状态之一。
Command.RemoteInterface[#]
数据类型: 接口数组 (Interface Array)
标签描述: 上游或者下游的设备
这种结构体数组用于在多单元机器的单元中协调上游或下游机器。选择的数组长度等于将发送命令的机器数量。如果一台机器能够从多个上游和/或下游机器接收材料,从而接收多个命令和参数,则可以对数据长度进行扩展。这可用于在没有监督控制的情况下实现机器之间的协调,或用于监督控制下的严格控制单元。这些标签通常用于单元设备运行过程中。具体而言,如果主控设备正在发出命令,则该命令将被该标签读取并在单元设备中使用。
Command.RemoteInterface[#].Number
数据类型: DINT (32bit)
标签描述: 上游或者下游的设备识别号
这是使用公共标签结构作为单元设备的下游/上游单元中的唯一编号。该编号应对应于通信网络上的编号,例如网络 ID 或 IP 地址等。该编号指示出 RemoteInterface[#] 命令数据的“信息发送者(即单元设备)”。
Command.RemoteInterface[#].ControlCmdNumber
数据类型: DINT (32bit)
标签描述: 上游或者下游设备的控制命令
由用户定义的命令编号,具体命令控制内容也由用户定义。该数字从网络上的一个节点发送到另一个节点。该值可以与单元模式更改请求、速度更改请求、状态更改请求等相关的命令。
Command.RemoteInterface[#].CmdValue
数据类型: DINT (32bit)
标签描述: 与控制命令(ControlCmdNumber)相关联的值
这是与上述 ControlCmdNumber 关联的命令值。命令值可以是请求的速度、状态变化等。
例子:
对于指定为 #2 的上游机器,控制命令编号 5 用于修改机器的速度。 值 400 可用于修改远程设备的速度。
对于指定为 #4 的下游机器,控制命令编号 0 可用于远程命令机器的状态转换。2 的值是启动的命令值。
Command.RemoteInterface[#].Parameter[#]
数据类型: 描述符结构数组 (Descriptor Structure Array)
与命令远程接口相关联的参数标签通常用于从远程机器提供给单元机器的命令参数。<br/>通常需要这些参数来协调单元机器或生产与其他机器。参数值可以是从机器限制参数到温度和计数器预设的任何内容。<br/>这些参数通常仅限于机器参数,因为产品和工艺参数在后面的标签中进行了描述。
Command.RemoteInterface[#].Parameter[#].ID
数据类型: DINT (32bit)
标签描述: 参数的 ID
这是分配给参数的任意(用户定义)ID 值。这是可用于用户标签要求的非描述性值。
Command.RemoteInterface[#].Parameter[#].Name
数据类型: String
标签描述: 参数的名称
参数名称用于描述参数变量编号及其来自远程接口的关联值。
Command.RemoteInterface[#].Parameter[#].Unit
数据类型: String[5]
标签描述: 参数的度量单位
Unit 是一个字符串,用于描述与参数值相关的度量单位,即 sec、deg、rpm、ppm 等。此标签描述与从远程接口发送的以下标签值相关的度量单位。
Command.RemoteInterface[#].Parameter[#].Value
数据类型: REAL (32bit)
标签描述: 参数的数值
该值由 Parameter[#].ID、Parameter[#].Name 描述,测量单位由 Parameter[#].Unit 描述,由远程接口作为命令发送到单元机器。
Command.Parameter[#]
数据类型: 描述符结构数组 (Descriptor Structure Array)
参数标签与最终用户监控界面相关联,通常用于由最终用户的监控 HMI 提供给设备的命令参数。运行单元机器通常需要这些参数。参数值可以是从机器限制参数到温度和计数器预设的任何内容。参数通常仅限于机器参数,因为产品和工艺参数在后面的标签中描述。
Command.Parameter[#].ID
数据类型: DINT (32bit)
标签描述: 参数的 ID
这是分配给参数的任意(用户定义)ID 值。这是可用于用户标签要求的非描述性值。
Command.Parameter[#].Name
数据类型: String
标签描述: 参数的名称
参数名称用于描述参数变量编号及其来自远程接口的关联值。
Command.Parameter[#].Unit
数据类型: String[5]
标签描述: 参数的度量单位
Unit 是一个字符串,用于描述与参数值相关的度量单位,即 sec、deg、rpm、ppm 等。此标签描述与从远程接口发送的以下标签值相关的度量单位。
Command.Parameter[#].Value
数据类型: REAL (32bit)
标签描述: 参数的数值
该值由 Parameter[#].ID、Parameter[#].Name 描述,测量单位由 Parameter[#].Unit 描述,由远程接口作为命令发送到单元机器。
例子:机器单元过程变量的示例
这定义了将所有产品的 #1 轴承的轴承过热警报的温度设置为 350.0 摄氏度。
Command.Product[#]
数据类型: 产品结构数组 (Product Structure Array)
产品数据类型可用于定义产品和产品加工参数变量。命令标签可以来自本地 HMI 或远程系统,用于处理单元机器上的产品。运行多个产品的机器通常需要该数组。
Command.Product[#].ProductID
数据类型: DINT (32bit)
标签描述: 产品的 ID
此产品 ID 用于向机器指示其可用于生产的产品(即 SKU 或 UPC)。
Command.Product[#].ProcessVariables[#]
数据类型: 描述符结构数组 (Descriptor Structure Array)
ProcessVaribles 结构体数组可用于单元机器处理特定产品所需的特定过程变量。过程变量包括在单元机器上生产特定产品所需的设定点、限制、质量参数等。该数组的标签数将是单元机器上定义的任何特定产品所需的最大过程变量数。
Command.Product[#].ProcessVariables[#].ID
数据类型: DINT (32bit)
标签描述: 参数的 ID
这是分配给参数的任意(用户定义)ID 值。这是可用于用户标签要求的非描述性值。
Command.Product[#].ProcessVariables[#].Name
数据类型: String
标签描述: 参数的名称
参数名称用于描述参数变量编号及其来自远程接口的关联值。
Command.Product[#].ProcessVariables[#].Unit
数据类型: String[5]
标签描述: 参数的度量单位
Unit 是一个字符串,用于描述与参数值相关的度量单位,即 sec、deg、rpm、ppm 等。此标签描述与从远程接口发送的以下标签值相关的度量单位。
Command.Product[#].ProcessVariables[#].Value
数据类型: REAL (32bit)
标签描述: 参数的数值
该值由 Product[#].ProcessVariables[#].ID、Product[#].ProcessVariables[#].Name 描述,单位由 Product[#].ProcessVariables[#].Unit 描述。
例子:机器单元过程变量的示例
这定义了将所有产品的 #1 轴承的轴承过热警报的温度设置为 350.0 摄氏度。
Command.Product[#].Ingredients[#]
数据类型: 成分数组 (Ingredients Array)
该数组用于保存单元机器在加工特定产品时使用的原材料所需的信息。此数组的范围将是任何特定产品加工中使用的最大成分数。
Command.Product[#].IngredientsID
数据类型: DINT (32bit)
标签描述: 产品的 ID
IngredientID 是与原材料或特定产品编号的成分相关联的任意数字。用户将定义与在特定产品的机器操作中使用的成分 ID 相关联的值。每个成分都应该有一个不同的 ID(SKU 或 UPC)。
Command.Product[#].Ingredients[#].Parameter[#]
数据类型: 描述符结构数组 (Descriptor Structure Array)
该数组或结构用于与用于加工特定产品编号的特定成分或原材料相关联的参数。该命令标签通常由“信息发送器”设置到单元机器控制器。该数组的范围是与单元机器上定义的任何产品中的任何成分相关的参数的最大数量。
Command.Product[#].Ingredients[#].Parameter[#].ID
数据类型: DINT (32bit)
标签描述: 参数的 ID
这是分配给参数的任意(用户定义)ID 值。这是可用于用户标签要求的非描述性值。
Command.Product[#].Ingredients[#].Parameter[#].Name
数据类型: String
标签描述: 参数的名称
参数名称用于描述参数变量编号及其来自远程接口的关联值。
Command.Product[#].Ingredients[#].Parameter[#].Unit
数据类型: String[5]
标签描述: 参数的度量单位
Unit 是一个字符串,用于描述与参数值相关的度量单位,即 sec、deg、rpm、ppm 等。此标签描述与从远程接口发送的以下标签值相关的度量单位。
Command.Product[#].Ingredients[#].Parameter[#].Value
数据类型: REAL (32bit)
标签描述: 参数的数值
成分参数值用于指定用于过程控制的参数变量。该数组通常用于运行具有多种加工参数的多种成分的多种产品的单元机器。
以成分编号 1 为例:产品编号 1:
结合其他产品示例[#]
这意味着对于参数变量 1,在产品编号 1 的成分 1 上,刀具的偏移应控制在 3.564 度。
本文作者: Jacob Chen
本文链接: https://jacobcj.gitee.io/2021/12/02/04PackMLCommandTags/
版权声明: 本博客所有文章除特别声明外,均采用 BY-SA 许可协议。转载请注明出处!
版权声明: 本文为 InfoQ 作者【陈的错题集】的原创文章。
原文链接:【http://xie.infoq.cn/article/f185cf3ee865ebd395f5073a6】。
本文遵守【CC BY-SA】协议,转载请保留原文出处及本版权声明。
评论