2. 工业历史数据模型与AVEVA资产框架

在工业现场,历史数据并不是“一张大表”那么简单。一个反应釜的温度、一台泵的振动、一条产线的能耗,背后都对应着明确的设备对象、层级位置和工程属性。如果只把数据按时间戳堆进数据库,后续做趋势分析、批次追溯或KPI计算时,就会陷入“知道有数、不知道数属于谁”的困境。AVEVA的工业历史数据体系正是为解决这一问题而设计:它把时间序列数据与资产模型绑定,让每个数值都有明确的归属和上下文。

时间序列数据的基本结构

时间序列数据由“时间戳 + 数值 + 质量码”三要素构成。以PI System为例,一个典型的PI Point(位号)记录如下:

Tag: REACTOR101.TEMP
Timestamp: 2024-06-15 08:30:00
Value: 152.3
Quality: Good
UOM: °C

其中质量码用于标识数据可信度,常见状态包括Good、Bad、Questionable、Substituted等。当现场仪表故障或通信中断时,质量码会变为Bad,后续计算必须据此过滤,否则会污染统计结果。时间戳通常采用UTC或本地时间,工程中需统一约定,避免跨时区产线对比时出现偏差。

历史数据按存储方式可分为三类:原始归档数据(按采集周期逐点存储)、压缩数据(如旋转门压缩,只保留趋势变化点)、汇总数据(按小时/班次/批次计算的平均值、最大值、累计值)。理解这三类数据的区别,是后续选择查询方式的基础。

资产层级:从企业到设备

AVEVA PI Asset Framework(AF)用层级结构组织物理资产。典型层级为:企业 → 工厂 → 区域 → 产线 → 设备 → 部件。例如:

  • 企业:华东化工集团
  • 工厂:南京一厂
  • 区域:反应车间
  • 产线:A线
  • 设备:反应釜R101
  • 部件:搅拌电机、温度传感器、压力变送器

每个层级节点称为一个Element,Element可以挂载属性(Attribute)。属性分为静态属性(如设备型号、安装日期)和动态属性(如温度、压力、流量)。动态属性通过数据引用(Data Reference)关联到PI Point或计算表达式,从而实现“资产模型驱动数据访问”。

属性模板与继承机制

属性模板(Attribute Template)是AF的核心复用机制。假设车间有20台同型号反应釜,每台都需要温度、压力、液位、搅拌转速四个属性。如果逐台手工创建,不仅耗时且容易遗漏。正确做法是:

  1. 创建一个名为“反应釜模板”的Element Template;
  2. 在模板中定义四个Attribute,并设置默认数据引用格式,如\\%Element%.TEMP;
  3. 将模板实例化到20台反应釜Element上,系统自动生成对应属性;
  4. 实例化后,各Element可覆盖默认引用,指向各自实际的PI Point。

模板还支持继承:子模板可继承父模板属性,再追加特有属性。例如“带夹套反应釜模板”继承“反应釜模板”,额外增加夹套温度属性。这种机制让资产模型既统一又灵活。

事件帧:把时间序列切成业务片段

事件帧(Event Frame)是AF中用于描述“有始有终”业务事件的容器。它不同于普通时间序列的连续记录,而是标记一段特定时间区间,并附带上下文属性。典型应用包括:

  • 批次生产:从投料到出料为一个Event Frame,关联批次号、配方、操作员;
  • 设备停机:从停机信号触发到恢复运行为一个Event Frame,关联停机原因、影响产量;
  • 报警事件:从报警产生到确认消除为一个Event Frame,关联报警级别、处理人。

Event Frame可以嵌套,也可以与Element关联。例如“批次B20240615-03”Event Frame关联到“反应釜R101”Element,其时间区间内所有温度、压力数据自动归属该批次。这样,做批次追溯时只需查询该Event Frame,即可拉取完整过程数据,无需手工拼接时间范围。

AVEVA Historian数据模型的组织方式

AVEVA Historian(原Wonderware Historian)采用“Tag + 存储过程”的模型。其核心表包括:

表/视图作用
Runtime.dbo.Tag存储位号定义、工程单位、量程
History.dbo.History存储原始时间序列数据
History.dbo.Hourly小时汇总数据
History.dbo.Daily日汇总数据

查询时通常使用sp_GetHistory或sp_GetWideHistory存储过程,按Tag名和时间范围拉取数据。与PI AF不同,Historian更偏向“位号中心”模型,资产层级通常通过命名约定或外部表维护。实际工程中,常将Historian作为数据源,在AF中建立资产模型并引用Historian Tag,从而兼顾存储效率与资产语义。

数据模型与资产框架的协同关系

理解两者关系的关键在于:时间序列数据回答“值是多少”,资产框架回答“值属于谁、在什么上下文中”。下图展示了从现场设备到上层应用的完整数据组织链路:

现场层 存储层 模型层 应用层 反应釜R101 泵P201 换热器E301 AVEVA Historian Tag / History / Hourly PI Data Archive PI Point / 压缩归档 PI Asset Framework (AF) Element层级 · Attribute模板 · Event Frame · 数据引用 Element Attribute Event Frame Data Reference 趋势分析 批次追溯 KPI计算 报警管理 时间序列数据提供“值”,资产框架提供“上下文”,两者协同支撑上层应用

从图中可以看出,现场设备产生的原始数据先进入Historian或PI Data Archive存储,再通过AF的数据引用机制挂载到资产层级上。Event Frame则把连续时间轴切分为有业务意义的片段。最终,趋势分析、批次追溯、KPI计算和报警管理都基于这套“数据+模型”的组合来工作。

工程建议:在项目初期就应规划好资产层级和属性模板,避免后期因设备命名混乱导致数据引用失效。建议采用“区域-产线-设备-部件”四级结构,属性命名统一使用“设备名.参数名”格式,如R101.TEMP、P201.VIB。
常见误区:不要把所有数据都塞进一个Event Frame。Event Frame应只承载有明确业务边界的事件,如批次、停机、报警。如果滥用,会导致查询性能下降且语义混乱。

掌握时间序列数据、资产层级、属性模板和事件帧这四个核心概念后,就能理解AVEVA PI AF与Historian数据模型的基本组织方式。下一阶段的实际工程中,需要根据具体产线对象,设计合理的Element层级和Attribute模板,并配置正确的数据引用,才能让历史数据真正“活”起来。