3. 设备状态监测数据模型设计

在PI System中,PI Data Archive负责存储海量时序数据,但它本身只认识“位号”(PI Point),并不理解“位号属于哪台设备、哪台设备属于哪条产线”。要让状态监测与运维分析真正落地,必须借助PI Asset Framework(PI AF)建立一层语义化的资产模型,把散落的位号组织成有层级、有类型、有关系的资产对象。本节围绕资产层级、设备模板、属性映射与关系定义四个核心环节,说明如何设计一套可支撑状态监测的数据模型。

一、资产层级:从企业到部件的骨架

资产层级是模型的骨架,决定了后续模板继承和关系定义的作用范围。设计时应遵循“物理包含关系”原则,即父节点在物理上真实包含子节点。一个典型的制造企业层级可以设计为:企业 → 工厂 → 车间/产线 → 工艺单元 → 设备 → 部件。例如某汽车零部件工厂的层级为:华东工厂 → 冲压车间 → 冲压线A → 压机单元 → 液压泵组 → 主泵。

层级深度不宜过深,一般控制在5~7层。过深会导致属性继承链复杂、查询性能下降;过浅则无法表达设备内部的部件级监测需求。对于状态监测而言,设备层和部件层是重点:设备层承载振动、温度、电流等整体状态量,部件层承载轴承温度、密封泄漏等局部状态量。层级命名建议统一采用“类型+编号”格式,如“冲压线A”“液压泵组-01”,避免使用“1号”“大泵”这类无法被程序解析的名称。

二、设备模板:把同类设备的属性固化下来

设备模板(Element Template)是PI AF实现批量建模的关键。同一型号的设备,其监测属性、计算逻辑、报警阈值往往一致,把这些共性抽取为模板,新设备只需套用模板并绑定位号即可,避免逐台重复配置。

以“离心泵”模板为例,可定义以下属性:

  • 运行状态(RunStatus):枚举型,取值运行/停机/故障,由电机电流位号经分析计算得出;
  • 轴承温度(BearingTemp):Float32,直接映射到PI Point;
  • 振动烈度(VibrationRMS):Float32,映射到振动位号;
  • 累计运行小时(RunHours):Float64,由运行状态积分计算;
  • 健康指数(HealthIndex):Float32,由温度、振动加权计算,0~100。

模板中还应配置属性数据类型、UOM(单位)、默认值、是否只读等元数据。例如轴承温度UOM设为“°C”,振动烈度设为“mm/s”。模板设计完成后,在AF中创建模板实例时,只需为每个属性指定对应的PI Point或计算表达式,即可完成一台设备的建模。

模板应遵循“最小完备”原则:只放入同类设备共有的属性。某台设备特有的属性,应在实例上单独添加,而不是塞进模板造成冗余。

三、属性映射:把PI Point接到资产属性上

属性映射是模型与实时数据的连接点。PI AF支持多种数据引用方式,状态监测中最常用的是PI Point Data Reference和Formula Data Reference。

PI Point Data Reference直接将属性绑定到某个PI Point,适用于原始测点,如“轴承温度”绑定到位号PMP01_BRG_TEMP。Formula Data Reference则基于其他属性做计算,适用于派生量。例如健康指数可定义为:

HealthIndex = 100 - (BearingTemp - 60) * 1.5 - (VibrationRMS - 4.5) * 8

该公式表示:轴承温度超过60°C后每升高1°C扣1.5分,振动烈度超过4.5 mm/s后每升高1 mm/s扣8分。公式中的系数应结合设备厂家标准和历史故障数据标定,此处为示例假设值。映射完成后,AF会自动从PI Data Archive拉取数据,无需额外采集程序。

映射时需注意三点:一是位号命名要与资产属性语义一致,避免“张冠李戴”;二是计算属性的依赖关系不能成环;三是对于多测点设备(如一台泵有驱动端和非驱动端两个轴承温度),应分别建立独立属性,而不是合并为一个。

四、关系定义:让资产之间可追溯、可分析

仅有层级还不够。状态监测中经常需要回答“这台泵给哪条线供油”“这个传感器装在哪台设备上”“哪台电机驱动这台泵”。这些跨层级的关联,需要通过AF关系(Relationship)来表达。

PI AF支持两种关系:父子关系(由层级自动产生)和自定义关系。自定义关系需要先定义关系规则(Relationship Rule),指定源模板、目标模板和关系名称。例如定义“驱动”关系:源模板为“电机”,目标模板为“泵”,关系名称为“Drives”。建立后,即可在电机资产上看到它驱动的泵,反之亦然。

对于状态监测,推荐建立以下关系:设备与传感器之间的“监测”关系、设备与工艺单元之间的“属于”关系、备用设备之间的“冗余”关系。这些关系在故障根因分析时非常有用:当某台泵振动超标时,可沿“驱动”关系检查电机电流是否异常,沿“监测”关系确认传感器是否正常,从而快速缩小排查范围。

PI AF 设备状态监测数据模型结构 资产层级(Element Hierarchy) 华东工厂 冲压车间 冲压线A 液压泵组-01(设备层) 主泵(部件层) 驱动端轴承 / 非驱动端轴承 设备模板(Element Template) 离心泵模板 ● 运行状态 RunStatus(枚举) ● 轴承温度 BearingTemp(Float32, °C) ● 振动烈度 VibrationRMS(Float32, mm/s) ● 健康指数 HealthIndex(Float32, 0~100) ● 累计运行小时 RunHours(Float64, h) 属性映射(Attribute Mapping) PI Point 引用 PMP01_BRG_TEMP → BearingTemp Formula 引用 HealthIndex = 100-(T-60)*1.5-... 关系定义(Relationship) 电机 —[Drives]→ 泵 传感器 —[Monitors]→ 设备 套用模板 绑定位号

五、模型落地时的关键检查点

模型建好后,不能只看“能不能显示”,而要通过几个检查点验证其可用性。第一,层级完整性:从企业到部件是否连续,有无断链;第二,模板一致性:同类设备是否都套用了同一模板,属性是否齐全;第三,映射有效性:每个属性是否都能取到实时值,计算属性是否报错;第四,关系可追溯:从任意设备能否沿关系找到其上下游对象。

实际项目中,建议先用一台典型设备做样板,验证模板、映射和关系全部正确后,再批量复制到同类设备。批量建模时可借助AF SDK或PI System Explorer的导入功能,将设备清单和位号对照表整理为CSV,一次性生成资产实例,大幅减少手工配置量。

属性映射时若位号不存在或权限不足,AF会显示“Bad”质量码。建模阶段应逐条核对位号拼写和PI Data Archive的访问权限,避免上线后才发现数据取不到。

综上,基于PI AF的设备状态监测数据模型,本质是用层级表达“设备在哪里”,用模板表达“设备是什么”,用属性映射表达“设备状态从哪来”,用关系表达“设备与谁相关”。四者配合,才能让PI System从“存数据”升级为“懂设备”,为后续的状态评估、故障预警和运维决策提供结构化基础。