4. FactoryTalk Historian数据采集引擎

FactoryTalk Historian 是罗克韦尔自动化体系中承担时序数据存储与查询的核心组件,其底层基于 OSIsoft PI System 技术构建。理解它的架构与数据采集链路,是后续做趋势分析、报表和可视化看板的前提。本节先讲清 Historian 的整体架构与两类采集接口,再说明采集频率与压缩策略如何影响数据质量,最后以一个从 ControlLogix PLC 到 Historian 的实时采集点为例,完整走一遍配置过程。

一、Historian 的架构分层

FactoryTalk Historian 的架构可以自上而下分为四层。最上层是客户端与消费层,包括 FactoryTalk View SE 趋势控件、Excel 的 PI DataLink 插件、Web 端的 PI Vision 以及第三方报表工具,它们通过 PI SDK 或 AF SDK 发起查询。第二层是 Historian 服务器本身,核心是 PI Data Archive(数据归档)与 PI Asset Framework(AF,资产框架)。PI Data Archive 负责存储带时间戳的测点数据,AF 则把裸测点组织成有业务含义的资产模型,例如“灌装线1/电机M-101/转速”。第三层是采集接口层,即 PI Interface 与 FactoryTalk Live Data 两类采集通道。最下层是数据源,包括 ControlLogix/CompactLogix PLC、PowerFlex 变频器、PanelView 终端以及 OPC UA 服务器等。

需要区分两个概念:PI Data Archive 存的是“点”(PI Point),每个点有唯一的 Tag 名;AF 存的是“元素”(Element)与属性,属性再绑定到 PI Point。做采集点配置时,先建 PI Point,再在 AF 中引用它,这样上层应用才能按设备层级检索数据。

FactoryTalk Historian 数据采集架构 消费层 View SE 趋势 PI Vision Excel DataLink 第三方报表 Historian 服务器 PI Data Archive 时序数据 / PI Point / 压缩归档 PI Asset Framework 资产模型 / 属性绑定 PI Point 采集接口层 PI Interface OPC DA / OPC UA / 专用驱动 FactoryTalk Live Data CIP / RSLinx Enterprise 通道 数据源层 ControlLogix PLC PowerFlex 变频器 OPC UA 服务器 PanelView 查询 写入 采集

二、两类采集接口的取舍

PI Interface 是 PI System 原生的接口程序集,常见的有 PI Interface for OPC DA、PI Interface for OPC UA、PI Interface for Modbus TCP 等。它作为独立 Windows 服务运行,通过接口实例(Interface Instance)配置文件(.bat 或 .ini)定义数据源连接与点列表,采集到的数据经 PI Buffer Subsystem 缓冲后写入 PI Data Archive。它的优势是成熟稳定、支持大量点、可跨厂商设备,适合与第三方 PLC 或已有 OPC 服务器对接。

FactoryTalk Live Data 则是罗克韦尔体系内的采集通道,它复用 RSLinx Enterprise 的 CIP 通信栈,直接与 ControlLogix、CompactLogix 等设备通信,无需额外 OPC 中间层。在 FactoryTalk Historian SE 中,通过“Historian Live Data Interface”配置采集项,指定控制器路径、标签名与采集周期即可。对于纯罗克韦尔设备、点数在数千以内的场景,Live Data 的部署更简单、延迟更低;若现场存在西门子、施耐德等异构设备,或点数上万,则优先用 PI Interface 统一接入。

三、采集频率与压缩策略

采集频率由接口的扫描周期决定,常见取值为 1s、5s、10s、30s、60s。频率越高,数据越细,但网络负载、归档量和授权点数消耗也越大。工程上遵循“按需采集”原则:快速变化的模拟量(如电机电流、流量)用 1~5s;温度、液位等慢变量用 10~30s;累计量(如产量计数)用 60s 或事件触发。

压缩策略决定数据写入归档后保留多少。PI Data Archive 默认启用异常偏差压缩(Exception Deviation)与压缩偏差(Compression Deviation)。异常偏差在接口侧判断:当新采样值与上次写入值之差超过设定阈值时才发送,减少网络传输;压缩偏差在归档侧判断:当新值落在由前后两点构成的线性预测带内时,该点被丢弃,只保留拐点。两者都以工程单位表示,例如电机电流量程 0~100A,异常偏差设 0.5A、压缩偏差设 0.2A,则 0.3A 的波动不会产生归档记录。压缩偏差过大会丢失真实的小幅趋势,过小则归档膨胀,通常取量程的 0.1%~0.5%。

压缩不是“丢数据”,而是用更少的点表达同一条趋势曲线。判断标准是:回放曲线与原始曲线在关心的精度内一致。对需要精确积分的流量、电量点,应把压缩偏差设得很小或关闭压缩。

四、实操:配置一个从 PLC 到 Historian 的实时采集点

下面以 ControlLogix 中一个电机电流标签为例,目标是在 Historian 中建立实时采集点,并能在趋势中看到 1s 刷新。示例参数为教学假设,实际以现场组态为准。

第一步,确认数据源标签。在 Studio 5000 中确认控制器标签,例如 Line1_Motor101_Current,数据类型 REAL,工程单位 A,量程 0~100。记录控制器路径:AB_ETHIP-1\192.168.1.10\Backplane\0。

第二步,在 PI Data Archive 建立 PI Point。打开 PI System Explorer 或 PI SMT,新建点,关键属性如下:

Tag            : Line1_Motor101_Current
PointSource    : L (Live Data)
PointType      : Float32
EngineeringUnit: A
Zero           : 0
Span           : 100
CompDev        : 0.2
ExcDev         : 0.5
ExcMin         : 0
CompMin        : 0
Location1      : 1

其中 PointSource=L 表示该点由 Live Data 接口采集,Location1=1 对应接口实例编号,需与接口配置一致。

第三步,配置 Live Data 接口采集项。在 FactoryTalk Historian SE 的 Live Data Interface 配置界面中,添加采集项,填写:

Controller Path : AB_ETHIP-1\192.168.1.10\Backplane\0
Tag Name        : Line1_Motor101_Current
PI Tag          : Line1_Motor101_Current
Scan Rate       : 1 s
Data Type       : REAL

保存后启动接口服务。若使用 PI Interface for OPC UA,则在接口实例的 .bat 中配置 /host=opcserver、/f=点列表文件,并在点列表文件中写入 Line1_Motor101_Current 1(1 为 Location1)。

第四步,验证采集是否生效。在 PI SMT 的“Current Values”中查看该点,正常应显示当前电流值与最新时间戳,时间戳每秒更新。也可在 PI Vision 中拖入该点做趋势,观察曲线是否随 PLC 实际值变化。若时间戳不更新,依次检查:接口服务是否运行、控制器路径是否可达、PI Point 的 PointSource 与 Location1 是否匹配、防火墙是否放行 5450 端口。

第五步,在 AF 中挂接资产。在 AF 中建立元素 Line1/Motor101,添加属性 Current,数据引用指向 Line1_Motor101_Current。这样上层应用可按设备层级查询,而不必记住裸 Tag 名。

检查项正常表现异常处理
接口服务状态Running查看接口日志,确认路径与授权
Current Value 时间戳每秒刷新核对 Scan Rate 与 PointSource
趋势曲线随 PLC 值变化检查压缩偏差是否过大
归档点数增长与变化率匹配调整 ExcDev/CompDev

完成以上五步后,一个从 PLC 到 Historian 的实时采集点即建立完毕。后续做可视化时,只需在 View SE 或 PI Vision 中引用该点或 AF 属性,即可获得带时间戳的历史趋势。采集频率与压缩偏差的取值不是一次定死的,应在投运后观察一周的归档量与曲线保真度,再微调参数,使存储成本与分析精度达到平衡。