4. PI Interface与数据采集

PI Interface 是 PI System 与外部数据源之间的“翻译层”。它把 DCS、PLC、SCADA、OPC Server、关系数据库、历史库或文件中的原始数据,按 PI 点(PI Point)的语义采集进 PI Data Archive,并保证时间戳、质量码和数值三者一致。理解接口类型、配置流程、连接方式以及调优与排障方法,是数据采集稳定性的基础。

一、接口类型选择:先看数据源,再看实时性

PI Interface 家族按数据源和协议划分,常见类型包括:

  • OPC 类接口:PI Interface for OPC DA(实时)、OPC HDA(历史)、OPC UA(新一代统一架构)。适合与 OPC Server 对接,覆盖大多数 DCS/PLC 网关。
  • 专用控制器接口:如 PI Interface for Siemens S7、Allen-Bradley、Modbus TCP/RTU,直接与控制器通信,减少中间层。
  • SCADA/历史库接口:如 PI Interface for PI-to-PI、RDBMS、OSIsoft UFL(Universal File Loader),用于批量或周期性导入。
  • 文件/消息类接口:PI UFL、PI Interface for MQTT、Kafka 等,适合非结构化或事件型数据。

选择时优先判断三点:数据源是否已有 OPC Server(有则优先 OPC 接口);是否需要历史回填(需要则选 HDA 或 UFL);采集频率与点数规模是否超出单实例能力(超出则考虑多实例或 PI Connector)。例如,某化工厂 DCS 已提供 OPC DA Server,点数约 8000 点,采集周期 1 秒,选择 PI Interface for OPC DA 单实例即可;若点数超过 5 万点,则应拆分为多个接口实例或改用 PI Connector。

二、PI Interface 配置流程

以 PI Interface for OPC DA 为例,典型配置流程如下:

  1. 安装接口:在接口节点上安装 PI Interface 及对应 PI API、PI SDK,确认与 PI Data Archive 的 PI Trust 或 Windows 身份验证已建立。
  2. 创建接口实例:在 PI System Explorer 或 Interface Configuration Utility(ICU)中新建实例,指定接口名称、PI Data Archive 节点、接口节点。
  3. 配置数据源连接:填写 OPC Server 的 ProgID 或 URL、主机名、用户名/密码,必要时配置 DCOM 权限。
  4. 定义 PI 点:在 PI Data Archive 中创建 PI Point,设置 PointSource(如 OPC)、Location1(接口实例编号)、InstrumentTag(OPC Item ID)、零值和量程。
  5. 启动并验证:启动接口,用 PI SMT 的“Current Values”或 PI Vision 查看数值、时间戳和质量码。

关键参数示例:PointSource=OPC、Location1=1、InstrumentTag=Channel1.Device1.Tag1、Zero=0、Span=100。若 InstrumentTag 写错,接口日志会出现“Item not found”,此时应回到 OPC Server 的地址空间核对 Item ID。

三、数据源连接与接口实例关系

接口实例与数据源之间是一对多关系:一个接口实例可连接一个 OPC Server,但可采集该 Server 下多个 Item;多个接口实例可并行运行,分别连接不同数据源。下图展示了一个典型的采集拓扑:接口节点通过 OPC DA 连接 DCS OPC Server,同时通过 Modbus TCP 连接 PLC,最终统一写入 PI Data Archive。

PI Interface 数据采集拓扑示例 DCS OPC Server ProgID: Matrikon.OPC.Simulation PLC (Modbus TCP) IP: 192.168.1.10:502 RDBMS (SQL) 表: dbo.TagHistory PI Interface for OPC DA 实例: OPC_IF_01 PI Interface for Modbus 实例: MODBUS_IF_01 PI Interface for RDBMS 实例: RDB_IF_01 PI Data Archive PI Point: PointSource=OPC Location1=1 InstrumentTag=ItemID 接口实例与数据源一对多;多个实例可并行写入同一 PI Data Archive

四、性能调优

接口性能主要受采集频率、点数规模、网络延迟和 PI Data Archive 写入能力影响。调优时先看接口日志中的 Scan Time 和 Points Scanned,再判断瓶颈位置。

  • 采集频率:不要盲目设为 1 秒。对温度、液位等慢变量,5~10 秒足够;对振动、电流等快变量,可设 1 秒或更短。示例:8000 点、1 秒周期,接口 CPU 占用约 15%;若改为 500 毫秒,CPU 可能升至 40% 以上。
  • 批量读取:OPC DA 接口支持 MaxItemsPerGroup 参数,默认 100,可调至 500,减少 OPC 往返次数。
  • 异常死区:在 PI Point 上设置 ExcDev(如 0.5% Span),避免微小波动全部入库,降低存储和网络压力。
  • 接口实例拆分:单实例点数超过 3 万时,建议按区域或数据源拆分为多个实例,分散负载。

五、故障排查

接口故障通常表现为三类:无数据、数据质量差、数据延迟。排查顺序建议从“接口是否运行”开始,再到“数据源是否可达”,最后到“PI Point 配置是否正确”。

现象 可能原因 检查方法
接口日志报“Item not found” InstrumentTag 与 OPC Item ID 不一致 在 OPC Client 中浏览地址空间,核对 Item ID
数值为 0 或 Bad 质量 OPC Server 通信中断、DCOM 权限不足 用 OPC Quick Client 测试连接;检查 DCOM 配置
数据时间戳滞后 采集周期过长、接口队列积压 查看接口日志的 Scan Time 和 Queue Size
PI Data Archive 无数据 PI Trust 未建立、PointSource 不匹配 检查 PI SMT 的 Trust 列表和 PointSource 定义
排障时优先查看接口日志文件(通常位于 %PIHOME%\dat\ 或接口安装目录的 log 文件夹),日志中的错误码比界面提示更具体。例如 -10701 通常表示 PI Data Archive 连接失败,-11042 表示点不存在。
修改接口配置后必须重启接口实例才能生效;重启前建议先停止接口,避免产生重复时间戳或数据跳变。若接口已运行较长时间,重启后应观察 5~10 分钟,确认数据恢复且质量码为 Good。

综上,PI Interface 的选型、配置、连接、调优与排障是一个闭环:选型决定连接方式,配置决定数据能否正确入库,调优决定长期稳定性,排障则保证异常时能快速定位。实际项目中,建议为每个接口实例建立配置基线(记录 PointSource、Location1、InstrumentTag 规则和采集周期),便于后续扩容和故障对比。