4. PI Data Archive 入门
PI Data Archive 是 PI System 的时序数据核心,负责接收、归档、压缩并对外提供过程数据。理解它的第一步,是分清“点位”“标签”“属性”这三个常被混用的概念,再理解数据从接口写入到落盘归档的完整链路。
一、核心概念:点位、标签与属性
在 PI Data Archive 中,点位(Point)是数据存储的最小逻辑单元,每个点位对应一个可被采集和查询的测量值。点位在系统中由 Tag Name(标签名)唯一标识,例如 BA:FI:101.PV。日常口语里说的“标签”,通常就是指这个点位名称。
点位本身不是单一数值,而是由一组属性(Attributes)描述其身份、来源、量程、单位和归档行为。常见属性包括:
- PointSource:数据来源接口,如 R、O、I 等,决定由哪个接口写入。
- PointType:数据类型,如 Float32、Float64、Int32、Digital、String。
- Location:接口内的位置编号,常与设备通道对应。
- Zero / Span:量程下限与上限,用于工程单位换算和显示。
- EngUnits:工程单位,如 ℃、kPa、m³/h。
- CompDev / CompMin / CompMax:压缩偏差与压缩时间参数,决定归档密度。
- ExcDev / ExcMin / ExcMax:例外偏差与例外时间参数,决定接口上报频率。
- Shutdown / Step / TypicalValue:停机值、阶跃标记与典型值,影响压缩判断。
二、数据归档、压缩与存储机制
PI Data Archive 采用“例外 + 压缩”两级过滤机制,这是它能在有限磁盘上保存海量时序数据的关键。
例外(Exception)发生在接口侧。接口按扫描周期读取设备值,只有当前值与上一次上报值之差超过 ExcDev,或超过 ExcMax 时间未上报时,才把数据发给 PI Data Archive。例外过滤减少了网络与写入压力。
压缩(Compression)发生在归档侧。PI Data Archive 收到快照值后,用旋转门压缩算法判断该点是否偏离当前归档趋势线超过 CompDev。若未超过,则只更新快照,不写入归档;若超过,则把前一个点写入归档,并开始新的趋势线。这样,平稳过程只保留少量归档点,突变过程则被完整保留。
归档后的数据以专有时序结构存储在归档文件(Archive)中,配合事件队列、快照和归档文件轮转机制,实现高吞吐写入与快速时间范围检索。查询时,PI Data Archive 按时间区间定位归档文件,再按标签索引读取数据点。
三、基本查询方式
PI Data Archive 对外提供多种查询入口,常见方式如下:
| 查询方式 | 典型工具 | 适用场景 |
|---|---|---|
| PI SDK / AF SDK | C#、VB.NET 程序 | 定制应用、批量取数、写入控制 |
| PI Web API | REST / JSON | Web 前端、跨平台集成 |
| PI SQL / OLEDB | SQL 客户端、报表工具 | 关系型报表、历史数据导出 |
| PI Vision / PI ProcessBook | 图形化趋势 | 运行监视、趋势分析 |
| PI DataLink | Excel 插件 | 离线分析、报表制作 |
以 PI Web API 为例,查询某标签在指定时间区间的记录值,请求形式如下:
GET /piwebapi/streams/{webId}/recorded
?startTime=2024-06-01T00:00:00Z
&endTime=2024-06-01T08:00:00Z
&maxCount=1000
返回 JSON 中包含 Timestamp、Value、Good 等字段,
Good 表示数据质量,常见值包括 Good、Bad、Questionable。
若使用 PI SDK,则通常先按标签名获取 PIPoint,再调用 RecordedValues 或 InterpolatedValues 方法。前者返回实际归档点,后者按固定间隔插值,适合做等间隔趋势对比。
四、案例场景:一个温度点位的归档过程
假设标签 REACTOR1.TEMP 的 ExcDev=0.5、CompDev=0.2,接口每 1 秒扫描一次。当温度从 120.0 ℃ 缓慢升到 120.3 ℃ 时,接口侧变化未超过 0.5,不上报;当升到 120.6 ℃ 时,超过例外偏差,上报到快照。归档侧判断该点偏离当前趋势线未超过 0.2,仍不写归档;直到温度升到 121.0 ℃,偏离超过压缩偏差,才把前一个归档点写入 Archive。最终,一段缓慢升温过程只留下少量归档点,而快速波动段则被密集记录。
五、常见误区与复盘
- 误区一:把标签名当成点位全部。标签名只是标识,真正决定行为的是属性集合。改标签名不等于改数据来源。
- 误区二:认为所有采集值都会进归档。未通过例外和压缩判断的值只更新快照,不会写入历史归档。
- 误区三:查询不到数据就认为数据丢失。先检查时间范围、标签名、PointSource 和压缩参数,再确认归档文件是否在线。
- 误区四:随意调大 CompDev 节省空间。压缩偏差过大会让趋势线“抄近路”,关键峰值可能被平滑掉,影响报警复盘和工艺分析。
复盘时建议按“接口是否上报 → 快照是否更新 → 压缩是否归档 → 查询条件是否正确”四步排查。掌握这条链路,就能在 PI Data Archive 中既保证数据可用性,又控制存储成本。