2. 化工过程控制数据源梳理
报表设计的第一步不是画表格,而是把“数据从哪里来、叫什么名字、存在哪里、哪些该进报表”这四件事梳理清楚。化工装置的控制数据主要分布在三层系统中:现场控制层(DCS、PLC)、监控层(SCADA)和信息管理层(实时数据库/历史数据库)。报表工具通常不直接读取控制器内存,而是通过接口从这些系统采集数据,再按位号组织成可查询的数据集。理解这条链路,才能避免报表上线后出现“取不到数、取错数、数不对时”的反复返工。
一、三类采集接口的定位与差异
DCS 是装置主控系统,数据以位号为单位组织在控制站中,常见对外接口包括 OPC DA/UA、Modbus TCP 从站、以及厂商专用的历史数据接口。PLC 更多承担机组、公用工程、包装线等独立控制任务,接口以 Modbus TCP、OPC UA、EtherNet/IP 为主,点位相对少但实时性要求明确。SCADA 位于监控层,汇聚远程站点(罐区、管廊、水处理)数据,常通过 OPC UA 或 IEC 104 向上提供数据,并自带历史库。
选择接口时重点看三件事:一是数据方向,报表只需只读采集,应使用只读账号和只读通道,避免误写;二是采集周期,报表统计量(如小时均值)要求采样周期明显小于统计周期,一般取 1~5 s 采样、1 min 或 1 h 归档;三是时间戳来源,应优先采用带源时间戳的接口(如 OPC UA 的 SourceTimestamp),否则网络延迟会把数据记到错误的时刻上。
二、位号命名规则:报表取数的“地址簿”
位号是控制系统内唯一标识一个测点或回路的字符串。化工装置常用 KKS 或类似的分段编码,例如 10-FIC-1023A.PV:前段表示装置或工段,中段是功能码(FIC 表示流量指示控制),后段是回路序号与多测点后缀,最后用属性后缀区分过程值 PV、设定值 SP、输出值 OP。报表取数必须精确到属性级,只取 PV 参与工艺统计,否则把 SP 或 OP 混入均值会直接改变统计口径。
实际梳理时建议建立一张“报表位号映射表”,字段至少包括:报表列名、源系统、原始位号、属性后缀、工程单位、量程、数据类型、采集周期、统计方法、缺失处理。这张表是报表配置的唯一依据,也是后期排障时定位“这一列数从哪来”的凭证。命名不一致是常见问题:同一台泵在 DCS 叫 P-1201A_RUN,在电气系统叫 M1201A_STS,映射表必须显式记录两者的对应关系,而不是在报表脚本里临时拼字符串。
三、实时库与历史库的数据组织方式
实时数据库按“位号—当前值—时间戳—质量码”组织,适合取当前工况、做超限判断和报表页眉的即时快照。历史数据库按时间序列存储,核心参数是归档周期与压缩方式:归档周期决定最小可查询粒度,压缩(如旋转门压缩)会保留趋势特征但丢失部分中间点。报表若需要小时均值,应确认历史库归档周期不大于 1 min,否则均值实际只由少数几个点算出,代表性不足。
质量码是常被忽略但极其关键的一维。采集到的值可能带“良好、不确定、坏值、通讯中断”等状态,报表统计时必须先按质量码过滤:坏值不参与均值计算,通讯中断时段应标记为“无数据”而非填 0,否则会把停机时段算成低负荷运行,导致能耗指标虚高。补数策略也要在映射表中写明,例如短时中断(小于 5 min)用线性插值,长时中断保留空值并在报表中加注。
四、报表所需数据的识别与分类方法
识别数据不要从“系统里有什么”出发,而应从“报表要回答什么问题”出发。以一张典型的班报为例,它通常要回答四类问题:工艺是否平稳(过程量均值、极值、标准差)、设备是否可用(运行时长、启停次数、故障时长)、产量与能耗是否达标(累计量差值、单耗)、有无异常(报警次数、越限持续时间)。据此把数据分为过程量、设备状态量、累计量和报警事件四类,每类对应不同的统计方法,这正是上图中右下部分的划分逻辑。
分类完成后做一次“可采集性核对”:每个位号是否真实存在、属性是否正确、单位与量程是否匹配、历史库是否有足够长的归档、质量码是否可用。核对不通过的位号要么换源,要么在报表中降级为人工填报,不能默认“先配上再说”。经验上,一张 40 列左右的班报,初次梳理常会发现 10%~20% 的位号存在命名不符或归档缺失,提前核对比上线后逐列排查省时得多。
完成上述梳理后,报表所需的数据就有了清晰的来源、名称、存储位置和分类归属,后续的表格布局、统计计算与刷新策略都可以在这份数据清单上直接展开。