2. PI System架构与核心组件
PI System并不是一个单一软件,而是一组围绕“实时数据采集—存储—建模—可视化—对外服务”协同工作的组件集合。理解这套架构的关键,不是记住每个组件的名字,而是弄清数据从现场设备进入平台后,依次经过哪些组件、每个组件负责什么、彼此之间通过什么方式衔接。本节围绕PI Data Archive、PI AF、PI Vision、PI Interfaces、PI Web API五个核心组件展开,说明它们的功能定位与协同关系。
一、整体分层:从数据源到应用消费
从数据流向看,PI System可以划分为四个层次:采集层负责把现场数据接入平台,核心组件是PI Interfaces;存储层负责长期保存带时间戳的时序数据,核心组件是PI Data Archive;建模层负责把原始测点组织成有业务含义的设备与层级结构,核心组件是PI AF;应用与服务层负责可视化展示和对外提供数据接口,核心组件是PI Vision与PI Web API。这四层不是并列关系,而是逐层依赖:没有采集就没有数据,没有存储就没有历史,没有建模就难以按设备维度组织,没有应用与服务则无法被用户和第三方系统消费。
二、PI Data Archive:时序数据的“总仓库”
PI Data Archive是PI System的存储核心,本质上是一个面向时间序列优化的数据库。它存储的基本单元是PI Point,也就是常说的Tag。每个PI Point保存的是“某个测点在某个时刻的值”,并附带时间戳和质量码。例如一个温度测点,其数据形式可以理解为:
Tag: TIC101.PV
时间戳: 2025-03-12 08:00:00
值: 86.4
质量码: Good
PI Data Archive的强项在于高压缩比和高写入吞吐。它不会像关系数据库那样为每个采样点保存完整行记录,而是采用旋转门压缩等算法,只在数值变化超过设定偏差时记录新点。这意味着历史数据的存储效率很高,但也要求我们在查询时理解“原始值”和“插值”的区别。对于设备状态监测,PI Data Archive通常保存振动、温度、压力、电流、转速等连续量,以及启停、报警等离散状态量。
三、PI AF:把测点组织成“设备资产”
如果只有PI Data Archive,我们面对的是一堆Tag名称,很难直接回答“3号压缩机的轴承温度现在是多少”。PI AF(PI Asset Framework)解决的就是这个问题。它提供面向对象的建模能力,把设备抽象为Element,把设备的各项参数抽象为Attribute,并通过Template实现同类设备的批量复用。
例如,我们可以建立一个“离心泵”模板,包含入口压力、出口压力、轴承温度、电机电流、运行状态等属性。然后为每台泵创建一个Element,把属性映射到对应的PI Point。这样,上层应用查询时不再直接面对Tag,而是按“设备—属性”的路径访问。PI AF还支持层级关系,比如“工厂→装置→机组→泵”,使设备树与物理现场保持一致。对于状态监测而言,PI AF的价值在于把“测点”变成“设备状态”,为后续的报警、分析和可视化提供统一语义。
四、PI Vision:面向运行人员的可视化界面
PI Vision是浏览器端的可视化工具,运行人员通过它查看实时趋势、历史曲线、设备状态画面和报警信息。PI Vision的数据来源既可以是PI Data Archive中的PI Point,也可以是PI AF中的Element和Attribute。实际使用中,更推荐基于PI AF建模来构建画面,因为这样画面与设备绑定,设备更换或测点调整时只需修改AF映射,而不必逐个修改画面。
一个典型的设备状态监测画面通常包含:设备总貌图、关键参数趋势、报警状态灯、以及历史对比曲线。PI Vision支持拖拽式组态,也支持通过URL参数传递设备上下文,方便从设备列表跳转到具体设备画面。
五、PI Interfaces:现场数据的“入口”
PI Interfaces负责把不同来源的数据写入PI Data Archive。常见接口包括OPC DA/UA接口、Modbus接口、关系数据库接口、以及针对特定DCS或PLC的专用接口。接口的核心任务是:按配置的扫描周期读取源数据,进行必要的量程转换和异常过滤,然后写入对应的PI Point。
以OPC UA接口为例,配置时需要明确:数据源地址、要采集的节点列表、每个节点对应的PI Point名称、扫描周期、以及断线重连策略。如果接口配置错误,最直接的现象是PI Data Archive中对应Tag没有新数据,或者质量码长期为Bad。因此,接口的稳定运行是整条数据链的基础。
六、PI Web API:对外服务的统一出口
PI Web API以REST方式对外提供PI System的数据访问能力。第三方系统、报表工具、移动应用或自研平台,都可以通过HTTP请求获取实时值、历史值、AF层级结构和事件信息。例如,查询某个AF属性的当前值,可以使用类似下面的请求:
GET /piwebapi/streams/{webId}/value
返回示例:
{
"Timestamp": "2025-03-12T08:00:00Z",
"Value": 86.4,
"Good": true
}
PI Web API的意义在于解耦:前端应用不需要直接连接PI Data Archive,也不需要安装专用客户端,只要按REST规范调用即可。对于设备状态监测平台,PI Web API常用于把PI数据推送到大屏、移动端或第三方运维系统。
七、组件协同关系小结
把五个组件串起来看:PI Interfaces从现场采集数据并写入PI Data Archive;PI AF在PI Data Archive之上建立设备资产模型,把Tag组织成有业务含义的Element和Attribute;PI Vision基于PI AF和PI Data Archive构建可视化画面;PI Web API则把PI AF和PI Data Archive的能力以REST接口开放给外部系统。五者各司其职,缺一不可。理解这条链路,是后续进行设备状态监测配置、排障和扩展开发的基础。