4. PI Data Archive数据建模与存储优化

PI Data Archive 是 PI System 的时序数据核心,它并不是一个“把值写进去就完事”的数据库。位号怎么命名、压缩参数怎么设、异常值怎么处理、质量码怎么解读、历史数据怎么回填、长期存储怎么规划,这六件事共同决定了这套系统三年后是“可信的数据底座”还是“一堆查不准、对不上、没人敢用的曲线”。本节按工程落地的顺序展开。

一、位号命名规范:先定规则,再建点

位号(Tag Name)是 PI 中唯一标识一个测点的字符串,一旦被下游 AF 模板、分析、报表、看板引用,改名成本极高。因此命名规范必须在建点之前确定,而不是事后补救。一个可落地的规范通常由四段构成:区域/装置 + 设备 + 参数类型 + 序号或方向。

例如某电厂 2 号机组给水泵出口压力的位号可设计为 PP2_BFP01_OUT_P:PP2 表示 2 号机组(Power Plant 2),BFP01 表示 1 号给水泵(Boiler Feed Pump),OUT 表示出口侧,P 表示压力。同装置的流量、温度、振动分别用 F、T、VIB 区分。规范中应同时约定:统一大写、分隔符统一用下划线、禁止空格与中文、序号固定两位、单位不写进位号(单位交给 UOM 属性而非位号)。

命名规范还应配套一份“参数类型缩写表”和“设备类型缩写表”,否则不同工程师会写出 P2/PP2、PUMP1/BFP01 这类同义异形位号,后期只能靠人工映射。规范落地后,建议用 PI System Explorer 或 PI Builder 批量导入点属性,避免手工建点引入拼写差异。

二、压缩与异常值处理:决定“存多少”和“存得准不准”

PI Data Archive 采用旋转门压缩(Swinging Door Trending, SDT)算法,核心参数是 CompDev(压缩偏差)和 CompMax(最大压缩间隔)。SDT 不存储每一个原始值,而是用一条“斜率可摆动的门”去逼近数据,只有当新点使门无法继续摆动时才落盘一个归档值。因此 CompDev 直接决定存储量与曲线保真度的平衡。

工程经验上,CompDev 应取该测点允许误差的 1/2 到 1/3。例如温度变送器精度为 ±0.5 ℃,量程 0~200 ℃,若希望曲线误差不超过 0.2 ℃,CompDev 可设为 0.1。若设成 1.0,则 0.8 ℃ 的缓慢漂移会被压缩掉,趋势上看不出变化。CompMax 一般设为 8 小时到 24 小时,保证即使数据长期平稳,也至少按此间隔落一个值,避免出现“长时间无数据”的假象。

异常值处理分两层:采集侧用接口的过滤或 Zero/Span 范围限制,把明显超量程的值挡在归档之外;归档侧对已入库的坏值,用 PI 的 Replace Values 或 PI DataLink 的 PISampDat 配合条件筛选做标记或替换。需要强调的是:不要直接删除异常值,而应通过质量码或注释标记,保留可追溯性。

PI Data Archive 数据流与质量码判定 现场仪表/PLC 原始值 + 时间戳 PI 接口 Zero/Span 过滤 异常值标记 不删除,打质量码 SDT 旋转门压缩 CompDev = 0.1 CompMax = 8h 仅存趋势拐点 存储量↓ 保真度可控 归档存储 Archive File + 质量码 Good/Bad/Questionable 质量码速查 ● Good (192) ● Questionable ● Bad (0) ● Substituted ● Annotated ● Shutdown ● No Data 历史数据回填:PI Buffer → 补传 → 时间戳对齐 回填后需校验质量码与时间连续性,避免“空洞”

三、数据质量码:读懂 PI 的“健康标签”

PI 中每个归档值都带一个质量码(Quality),它不是可有可无的装饰,而是判断数据能否用于计算和报表的第一道关口。常见质量码包括:

  • Good(192):正常采集值,可直接参与计算。
  • Bad(0):接口断开、量程超限或设备故障,值不可信。
  • Questionable:值存在但可信度存疑,如传感器漂移、通信重传。
  • Substituted:人工替换值,常见于回填或手工修正。
  • Annotated:带注释的值,通常用于标记事件或工况。
  • Shutdown / No Data:设备停机或采集缺失。

在 PI DataLink 或 PI Vision 中做计算时,必须先用质量码过滤。例如计算日均值时,若把 Bad 值当 0 参与平均,结果会被严重拉低。正确做法是用 PIAvg 配合 PIAdvCalcVal 的 FilterExpr 参数,只取 'quality' = "Good" 的点。质量码也是回填后验证的核心依据:回填完成不等于数据可用,必须检查回填段的质量码是否全部为 Good 或 Substituted。

四、历史数据回填与存储策略

历史数据回填通常发生在接口中断恢复、系统迁移或补录手工记录时。PI 接口自带 Buffer(缓冲区),可在与服务器断连时暂存数据,恢复后自动补传。但 Buffer 容量有限,长时间中断仍需人工回填。人工回填的常用方式有两种:一是用 PI DataLink 的 PISampDat 或 PICompDat 将 Excel 中的时间序列写入 PI;二是用 PI Web API 的 POST /streams/{webId}/recorded 批量写入。

回填时必须注意三点:时间戳格式统一(建议 ISO 8601,带时区)、质量码显式指定(回填值建议标为 Substituted 或 Good,视来源而定)、回填后校验(用 PI SMT 的 Archive 统计或 PI Vision 趋势对比回填段与相邻段是否连续)。

存储策略方面,PI Data Archive 的归档文件按时间滚动,旧归档可设为只读并迁移到低成本存储。建议按数据重要性分级:关键工艺参数(如温度、压力、流量)保留 5~10 年,辅助参数保留 2~3 年,高频振动等大流量数据可缩短保留期或降采样后归档。同时应定期检查归档文件大小与磁盘余量,避免因磁盘写满导致采集中断。

实操建议:新建位号时,先按命名规范生成位号清单,再统一设置 CompDev 与 CompMax,最后用 PI Builder 批量导入。回填前先在测试点验证时间戳与质量码写入是否正确,再批量执行。
常见误区:把 CompDev 设得过大以节省空间,导致趋势失真;或回填后不检查质量码,把 Bad 值当成 Good 参与绩效计算。这两类问题在能源管理报表中往往表现为“数据对不上”,排查成本很高。

总结来说,PI Data Archive 的数据建模与存储优化是一条从命名、压缩、质量码到回填与保留策略的完整链条。命名规范保证可读与可维护,压缩参数决定存储与保真度的平衡,质量码是数据可信度的标签,回填与存储策略则决定这套数据资产能否长期稳定地支撑能源管理与生产绩效分析。