2. PI系统架构基础
PI System 并不是一个单一软件,而是一套围绕“实时数据采集—存储—建模—可视化—服务化”构建的工业数据平台。理解 PI Server、PI Data Archive、PI AF、PI Vision、PI Interface、PI Web API 等核心组件之间的职责边界与数据流向,是后续做高可用设计和性能优化的前提。很多性能问题并非出在某个组件本身,而是数据流路径上的瓶颈或配置错位。
一、核心组件职责划分
从数据生命周期看,PI System 的组件可以分成采集层、存储层、建模层、展示层和服务层五类。每一层解决不同问题,不能相互替代。
- PI Interface:采集层。负责从 DCS、PLC、SCADA、OPC、关系数据库等数据源读取原始测点值,并写入 PI Data Archive。常见接口包括 OPC DA/UA、Modbus、RDBMS、CSV 等。
- PI Data Archive:存储层。PI System 的实时时序数据库核心,以压缩方式存储带时间戳的测点值,提供历史数据查询、插值、汇总等能力。它管理的是“点”(PI Point)和“值”。
- PI AF(PI Asset Framework):建模层。把扁平的点组织成有业务语义的资产模型,例如“机组—泵—轴承温度”,并支持属性、模板、层级、计算分析和事件框架。
- PI Vision:展示层。面向工程师和操作人员的 Web 可视化工具,用于绘制趋势、流程图、KPI 看板,数据来源可以是 PI Data Archive 或 PI AF。
- PI Web API:服务层。以 RESTful 接口对外暴露 PI Data Archive、PI AF、PI Vision 等资源,供第三方系统、前端应用、移动端和自动化脚本调用。
- PI Server:通常作为上述核心服务的统称或安装集合,包含 Data Archive、AF Server、PI Web API 等,是 PI System 的服务器侧运行环境。
二、数据流与信号链
一条典型的数据流是:现场设备 → PI Interface → PI Data Archive → PI AF → PI Vision / PI Web API → 用户或第三方系统。Interface 负责“采进来”,Data Archive 负责“存下来”,AF 负责“讲清楚”,Vision 和 Web API 负责“用起来”。
需要特别注意的是,PI AF 本身不存储原始时序值,它通过属性数据引用(Data Reference)指向 PI Data Archive 中的 PI Point。因此 AF 查询性能既取决于模型设计,也取决于底层点的读取效率。PI Vision 显示一个趋势时,实际请求会经过 Web 服务器、PI Web API 或 AF SDK,最终落到 Data Archive 取数。
三、关键参数与配置要点
在部署和调优时,以下参数直接影响数据流效率与稳定性:
| 组件 | 关键参数/配置 | 影响 |
|---|---|---|
| PI Interface | 扫描周期、点位数量、缓冲文件大小 | 采集实时性与断点续传能力 |
| PI Data Archive | 压缩偏差、归档文件大小、快照频率 | 存储量、查询速度、历史精度 |
| PI AF | 模板层级、数据引用方式、分析调度 | 模型查询性能与计算负载 |
| PI Vision | 趋势点数、刷新间隔、并发用户数 | 前端响应速度与服务器压力 |
| PI Web API | 缓存策略、批量请求、认证方式 | 接口吞吐量与第三方集成效率 |
四、典型场景与常见误区
假设某电厂需要在一张 PI Vision 画面上展示 20 台泵的振动趋势,每台泵 3 个测点,共 60 条曲线,时间跨度 24 小时。如果直接让 Vision 逐点请求,Data Archive 会承受大量小查询。优化做法是:在 AF 中建立泵资产模板,把测点组织为属性;Vision 通过 AF 路径引用数据;必要时使用 PI Web API 的批量接口或 AF 分析预计算。这样既减少请求次数,也提升画面加载速度。
常见误区:把 PI AF 当成数据库直接存历史值。AF 是模型层,原始时序数据仍在 Data Archive。若在 AF 中大量使用复杂分析并高频调度,会显著增加 AF Server 和 Data Archive 的负载。
排障提示:当 PI Vision 趋势加载慢时,按“Vision → PI Web API → AF → Data Archive → Interface”的顺序逐段排查。先确认是查询慢、网络慢,还是接口写入延迟,再针对性优化。
# 使用 PI Web API 查询一个 PI Point 的历史值示例
GET https://piwebapi.example.com/piwebapi/points?path=\\PISERVER\SINUSOID
GET https://piwebapi.example.com/piwebapi/streams/{webId}/recorded?startTime=-1h&endTime=*
掌握这些组件的职责与数据流路径后,后续的高可用设计就有了明确的落点:Interface 需要冗余与缓冲,Data Archive 需要集群与归档规划,AF 需要模型规范与负载隔离,Vision 和 Web API 需要缓存与并发控制。架构清晰,优化才有方向。