3. Honeywell历史数据平台架构总览

Honeywell 过程历史数据平台的核心产品是 Uniformance PHD(Process History Database,过程历史数据库)。它并不是一个单一软件,而是一套由采集、存储、服务、客户端四层协同工作的完整体系。理解这套分层架构,是后续做点位接入、性能调优、故障排查和二次开发的基础。很多现场问题——比如"数据为什么延迟""客户端为什么连不上""历史值为什么跳变"——本质上都能映射到某一层的职责边界上。因此本节不急于讲操作,而是先把整张架构图在脑子里立起来。

从数据流向看,PHD 的架构可以概括为:采集层把现场数据"搬进来",存储层把数据"存下来",服务层把数据"送出去",客户端层把数据"用起来"。四层之间通过明确的接口和协议衔接,任何一层出问题,都会在最终的用户视图上表现为数据缺失、延迟或异常。

Uniformance PHD 四层架构与数据流 采集层 · Data Collection DCS / PLC OPC / Modbus PHD RDI 接口机 采集/缓冲/时间戳 OPC DA / UA 实时订阅 第三方 Historian PI / iFIX 等 手工录入 实验室数据 写入 存储层 · PHD Historian 实时缓存 (RT) 最新值 / 秒级刷新 历史归档 (Archive) 压缩存储 / 长期保留 Tag 定义库 点位/单位/量程 冗余/备份 主备切换 查询 服务层 · Services PHD API / SDK C / .NET 接口 OPC HDA 历史数据访问 Web 服务 REST / 报表 计算引擎 平均值/累计量 展示 客户端层 · Clients Uniformance Insight Excel 插件 第三方组态 自定义应用 报表工具

采集层:把现场数据可靠地"搬进来"

采集层是 PHD 与现场之间的桥梁。它的核心组件是 RDI(Real-time Data Interface)接口机,通常部署在一台独立的 Windows 服务器上,负责从 DCS、PLC、SCADA 或第三方 Historian 读取数据。采集层要解决三个关键问题:协议适配、时间戳对齐和断线缓冲。

协议适配方面,PHD 支持 OPC DA、OPC UA、Modbus TCP、以及各家 DCS 的专用驱动。以 OPC DA 为例,RDI 会以订阅方式向 OPC Server 请求数据变化通知,而不是轮询,这样既能降低网络负载,又能保证变化即采。时间戳对齐方面,RDI 会为每个采集值打上时间戳,通常采用"源时间戳"(来自 OPC Item 的 Timestamp)而非"接收时间戳",这一点对后续做趋势分析和班组考核至关重要。断线缓冲方面,当 RDI 与 PHD 存储层之间的网络中断时,RDI 会把数据暂存在本地队列中,恢复后自动补传,避免数据丢失。

一个常见的教学示例参数:某装置有 2000 个模拟量点位,采集周期 1 秒,变化死区设为量程的 0.5%。这意味着只有当测量值变化超过量程 0.5% 时才会产生一条新记录,实际写入速率可能从理论上的 2000 点/秒降到 200~400 点/秒,显著降低存储压力。这个死区参数需要在 RDI 的 Tag 配置中逐点或按组设置。

存储层:PHD Historian 的数据组织

存储层由 PHD Historian 承担,它是整个平台的数据核心。PHD 的存储模型可以理解为"实时缓存 + 历史归档 + Tag 定义库"三部分。实时缓存保存每个点位的最新值,供客户端快速读取;历史归档保存带时间戳的时序数据,采用专有的压缩算法(类似旋转门压缩),在保证趋势精度的前提下大幅减少磁盘占用;Tag 定义库则保存点位的元数据,包括点名、描述、工程单位、量程、数据类型、采集源等。

PHD 的点位命名通常采用层级结构,例如 PLANT1.UNIT2.TIC101.PV,其中 PV 表示过程值。这种命名方式便于批量查询和权限管理。存储层还支持冗余配置:主 Historian 和备用 Historian 通过心跳检测保持同步,主节点故障时备用节点自动接管,客户端连接字符串中配置两个节点地址即可实现透明切换。

服务层:数据访问的统一出口

服务层是客户端与存储层之间的中间层,它把 PHD 的内部数据格式转换为标准接口。主要服务包括:PHD API/SDK(供 C、.NET 程序调用)、OPC HDA(供支持 OPC 历史数据访问的客户端使用)、Web 服务(REST 接口,供 Web 报表和移动端使用)以及计算引擎(在服务端完成平均值、累计量、最大值、最小值等聚合计算,避免把原始数据全部传到客户端再算)。

服务层的价值在于"一次查询、多处复用"。例如,一个班组日报需要计算某反应器 8 小时的平均温度,如果由客户端拉取 28800 条原始数据再求平均,网络和客户端都会很吃力;而通过服务层的计算引擎,只需发送一个聚合查询请求,服务端直接返回一个平均值,效率提升非常明显。

客户端层:数据最终被"用起来"的地方

客户端层是用户直接接触的部分,包括 Uniformance Insight(Honeywell 官方的趋势与报表工具)、Excel 插件(在 Excel 中直接拉取 PHD 数据做分析)、第三方组态软件以及企业自开发的应用程序。客户端通过服务层提供的接口访问数据,不直接连接存储层,这种设计既保证了安全性,也便于统一管理连接数和权限。

在实际项目中,四层可以部署在同一台服务器上(小型项目),也可以分散到多台服务器(中大型项目)。判断依据主要是点位规模、并发客户端数量和可用性要求。一般来说,超过 5 万点位或 50 个并发客户端时,建议采集层、存储层、服务层分机部署。

四层之间的关键接口与排障映射

理解架构的最终目的是排障。下面这张对照关系可以帮助你快速定位问题所在层:

现象 可能所在层 排查方向
所有点位无新数据 采集层 检查 RDI 服务状态、OPC 连接、网络连通性
部分点位数据跳变或缺失 采集层 / 存储层 检查 Tag 死区设置、时间戳来源、归档状态
历史查询返回空或超时 存储层 / 服务层 检查归档文件是否损坏、服务是否响应、查询时间范围是否过大
客户端无法连接 服务层 / 客户端层 检查服务端口、防火墙、连接字符串、客户端版本兼容性
聚合值明显偏差 服务层 检查计算引擎的聚合方式、时间边界、插值策略

需要特别强调的是,PHD 的架构不是"越集中越好",也不是"越分散越好",而是要根据数据量、实时性要求和运维能力做权衡。采集层靠近现场可以减少网络延迟,存储层集中部署便于统一备份,服务层独立部署可以隔离客户端压力,客户端层则尽量轻量化。把这四层的职责边界记清楚,后续无论是做点位接入、性能调优还是故障处理,都能做到心中有图、手中有数。