4. 数据采集接口与连接
FactoryTalk Historian 本身并不直接“认识”ControlLogix 或 CompactLogix 控制器,它只认识数据源接口。控制器与 Historian 之间的数据连通,本质上是由一层采集接口把控制器标签值转换为 Historian 可消费的数据流。理解这一点,是配置所有接口的前提:Historian 侧关心的是“点位从哪里来、以什么频率来、值是否可信”,而接口侧关心的是“用什么协议、连到哪个设备、暴露哪些标签”。
在 FactoryTalk 体系中,常见的采集路径有三类。第一类是 FactoryTalk Live Data,它是 FactoryTalk 原生的实时数据访问层,通常与 RSLinx Enterprise 配合,把控制器标签以 FactoryTalk 标签的形式暴露出来,Historian 通过 Live Data 接口订阅这些标签。第二类是 OPC DA,这是传统但极其普遍的接口,Historian 作为 OPC DA 客户端连接 RSLinx Classic、KEPServer 等 OPC DA 服务器。第三类是 OPC UA,它具备更强的安全模型、支持订阅与浏览、跨平台能力更好,适合新建系统或需要加密与证书管理的场景。RSLinx Enterprise 则更多承担“设备通信 + 标签浏览”的角色,是 Live Data 路径中的关键组件。
下面这张图展示了三条采集路径在控制器与 Historian 之间的位置关系,以及每条路径上真正需要配置的对象。图中把“设备通信层”“数据访问层”“Historian 接口层”分开,便于定位问题出在哪一层。
先看 Live Data 路径。它的配置顺序通常是:在 RSLinx Enterprise 中建立通信路径(例如 EtherNet/IP 驱动指向 192.168.1.10 的 ControlLogix),确认能浏览到控制器标签;然后在 FactoryTalk Administration Console 中创建 Live Data 数据服务器,把 RSLinx Enterprise 作为其数据源;最后在 Historian 的 Interface Configuration 中新增一个 FactoryTalk Live Data 接口实例,指定该数据服务器,并导入或手动添加点位。点位映射时,Historian 的 Tag Name 与 Live Data 的 Item 名称需要一一对应,例如控制器标签 Line1_Speed 映射为 Historian 点位 LINE1_SPEED,采集周期可设为 1 秒。
再看 OPC DA 路径。以 RSLinx Classic 为例,先在 RSLinx 中配置好 Ethernet devices 驱动并确认 OPC 主题(Topic)可用,例如主题名 CLX_LINE1;然后在 Historian 的 OPC DA 接口中填写 OPC 服务器 ProgID(如 RSLinx OPC Server)和主题名,再通过浏览或手动方式添加 Item ID,例如 [CLX_LINE1]Line1_Speed。OPC DA 接口通常需要设置刷新率(如 1000 ms)和死区(如 0.5),死区决定值变化多少才上报,直接影响 Historian 的归档量。
OPC UA 路径的配置重点不同。它不依赖 DCOM,而是通过端点 URL(如 opc.tcp://192.168.1.10:4840)连接,需要处理证书信任:把 Historian 接口端的证书导入 OPC UA 服务器的信任列表,反之亦然。点位用 NodeId 标识,例如 ns=2;s=Line1_Speed。订阅间隔可设为 500 ms,并启用“数据变化触发”以减少无效流量。对于跨网段或需要加密的场景,OPC UA 明显优于 OPC DA。
接口建好后,必须验证数据是否真正连通。推荐按以下顺序检查:第一,在接口日志中确认连接状态为 Connected;第二,在 Historian 的当前值(Current Value)中查看点位是否有实时值刷新;第三,用 PI SMT 或 PI Vision 查看该点位最近 10 分钟的趋势,确认没有长时间断线或恒定值;第四,检查归档事件计数是否随采集周期增长。若当前值有但归档无数据,通常是归档配置或点位未启用;若当前值一直为 Bad,通常是 Item ID 写错或设备通信中断。
下面给出一份可直接参考的接口配置检查表,字段按实际配置中最容易出错的项组织,可在实施时逐项核对。
| 检查项 | Live Data | OPC DA | OPC UA |
|---|---|---|---|
| 通信路径 | RSLinx Enterprise 驱动 | RSLinx Classic Topic | 端点 URL + 端口 |
| 点位标识 | FactoryTalk 标签名 | Item ID | NodeId |
| 采集周期 | 1 s(示例) | 1000 ms(示例) | 500 ms(示例) |
| 安全/权限 | FactoryTalk 安全 | DCOM 权限 | 证书信任 |
| 典型故障 | 标签未发布 | DCOM 拒绝访问 | 证书不受信 |
最后需要强调接口与 Historian 点位的对应关系。无论走哪条路径,Historian 侧最终都表现为一个个 PI 点位,点位的采集来源由接口实例决定。因此,当出现“某个点位不更新”时,排查顺序应是:先确认该点位绑定的接口实例是否正确,再确认接口实例到数据源的连接是否正常,最后才检查控制器侧标签本身。把这三层分开,能避免在错误层级反复修改配置。
实际项目中,建议先只配置一个接口、一个点位,打通后再批量导入。批量导入时,点位命名、采集周期、死区应保持一致规则,否则后期维护成本会显著上升。接口配置完成后,保留一份接口实例清单(接口名、类型、数据源、采集周期、负责点位范围),这份清单在后续排障和扩容时比任何截图都更有价值。