3. SCADA历史数据库选型与部署模式
历史数据库是SCADA系统中专门用于存储、压缩和检索带时间戳过程数据的组件。它不同于实时库只保留当前值,也不同于关系库以事务和业务记录为主。食品工厂在选型时,需要先明确数据规模、查询方式和可靠性要求,再决定采用实时库、关系库还是时序库,以及集中式还是分布式部署。
三类常见历史库的定位
实时库通常驻留在SCADA服务器内存中,保存标签的当前值、质量码和最近若干分钟的变化数据,刷新周期可达100ms级。它适合画面刷新、报警判断和联锁逻辑,但容量有限,一般不承担长期归档。实际项目中,实时库常作为历史采集的前置缓存:采集服务从实时库读取变化数据,再批量写入历史库。
关系库以表结构存储数据,支持SQL查询、事务和复杂关联,适合存储批次记录、配方参数、报警事件、操作日志和班次报表等结构化信息。若用关系库直接存储高频模拟量,例如每秒一次的杀菌温度,单表行数会迅速膨胀,索引维护和范围查询成本较高。因此关系库更适合“低频、结构化、需关联业务”的数据,而不是海量过程曲线。
时序库针对带时间戳的数值序列设计,采用列式存储、时间分区、专用压缩和降采样机制。典型产品包括InfluxDB、TimescaleDB、PI System等。以某乳品厂为例:2000个模拟量标签,1秒采集一次,每天约1.73亿条原始记录;若按每点8字节加时间戳估算,日增数据量在数GB级。时序库通过死区压缩和旋转门压缩,可将存储量降低一个数量级,同时支持按时间范围聚合查询,是过程历史归档的主力选择。
集中式与分布式部署
集中式部署将所有历史库实例放在厂区数据中心或中控室服务器上,采集服务统一写入。优点是架构简单、查询入口单一、备份策略集中;缺点是采集链路单点风险较高,跨车间长距离传输时对网络质量敏感。适合标签数量在数千点以内、车间相对集中的中小型食品工厂。
分布式部署按车间或产线设置边缘历史库,先在本地完成采集、缓存和短期存储,再通过上级汇聚节点同步关键数据到厂级历史库。优点是断网时本地数据不丢失,边缘查询响应快,主干网带宽压力小;缺点是时间同步、标签命名和数据一致性需要统一规划。对于多车间、跨厂区的集团型食品企业,分布式加厂级汇聚更常见。
无论哪种模式,都应保证采集服务与历史库之间的写入具备断线缓存能力。例如边缘节点配置本地磁盘缓存,网络恢复后按时间顺序补传,避免因交换机重启造成曲线缺口。
食品工厂网络分区与隔离
食品工厂通常按ISA-95层级划分网络:现场设备层、控制层、监控层、厂级信息层和企业层。历史库一般部署在监控层或厂级信息层,采集接口从控制层读取数据。监控层与企业层之间应部署工业防火墙或单向网关,只允许历史数据以单向或受控方式上传,禁止企业网直接访问控制器。
分区时需注意三点:一是历史库服务器不要同时承担SCADA画面服务和对外Web发布,避免暴露面过大;二是采集端口和查询端口分开管理,采集走专用VLAN,查询走办公网受控通道;三是远程运维必须经过跳板机或VPN,并保留操作审计。对于涉及配方和批次追溯的数据,还应在关系库侧设置访问权限,区分操作员、工程师和管理员角色。
部署落地时的关键参数与检查点
以一个日处理200吨生鲜乳的示例车间为例,假设配置1200个模拟量标签、300个开关量标签,模拟量采集周期1秒、死区0.5%,开关量按变位记录。按经验估算,日增原始记录约数千万条,经压缩后日存储量可控制在数百MB级。此时可在车间侧部署边缘时序库保留30天数据,厂级时序库保留2年,关系库保留批次和报警记录不少于2年,以满足追溯要求。上述数值为教学示例,实际项目应按标签数、采集周期和压缩比重新核算。
部署完成后应逐项验证:采集服务重启后历史曲线是否连续;拔掉边缘节点上行网线10分钟后恢复,补传数据是否完整;企业网侧是否无法直接访问PLC端口;按标签和时间范围查询1天数据,响应时间是否在可接受范围内。只有这些检查通过,历史库才算真正可用,而不只是“装好了”。