小 T 导读:对于卷烟厂来说,数据监控对于制烟各环节的品质把控起到关键作用,此前业内较为流行的数据监控方案就是 Wonderware 实时库。随着企业业务的飞速发展,该系统也遇到了很多瓶颈,本篇文章将就此展开分析。
从国外流行工业软件到国产软件过渡,卷烟厂数据架构转型
作为制烟单位,卷烟厂是标准的流程制造型企业,制丝和卷包是主要的两大工艺流程,前者是把烟叶加工成烟丝,后者则是把烟丝卷成烟并加上滤嘴,分别在独立的车间中实现。这之中每个环节的工艺操作质量必须保证达标,具体实现手段就是对产线进行监控。而想要保证车间的监控质量重点还是在于要保证设备的正常运行,否则任意环节出现严重问题都会导致停产、换线、废料等后果,造成巨大经济损失,因此,卷烟厂不惜在产线上搭建多重监控系统,以实现实时报警,同时支持对历史数据做定期分析。
例如整个制丝过程可以简单概括为不断通过加水、脱水、增温、降温等工艺手段使梗丝、叶丝在加工过程中达到卷烟填充物所需各项理化指标要求,在实际生产过程中,怎样控制温度和湿度,整个流程中如何保证流量的稳定、精确,这就需要配备装有很多传感器的烟草行业专用设备。一般来讲整个车间会有大约数十万个监测点,由此产生的实时数据量之大也可想而知,对于磁盘存储空间的消耗也非常严重。
对于大部分卷烟厂来说,车间内的设备都已经实现了高度自动化,开始生产后完全不需要人工操作,整个产线在 MES(Manufacturing Execution System,制造执行系统)系统控制和调度下自动运行。MES 系统本身会通过 PLC/DCS 设备采集生产过程中的时序数据(比如温度、湿度、进料量等),再经过提前预设好的逻辑进行实时调控。
从以上背景出发,时序数据的高效处理成为了卷烟厂业务发展的关键点之一。在过去很长一段时间里,工业实时数据库成为卷烟厂等工业企业采集数据、实时/历史存储的第一选择。
而对于中国的卷烟厂来说,因为企业数字化早期阶段海外软件所具备的先发优势,业内大多使用的都是 Wonderware 实时库(现被 Aveva 收购)的解决方案。随着业务的飞速发展,Wonderware 实时库作为传统工业实时库的代表,遇到了一些瓶颈:
- 非国产化:在复杂的国际形势下,存在一些不确定性
- 封闭性:软件是闭源的,而且处于自己的封闭体系之下,扩展性差
- 高度复杂度:需要采购一系列产品组合
- 高成本:采购价格昂贵、功能扩展需要额外付费,依赖 Windows、SQL Server 等其他软件,会产生额外的采购成本
- 服务响应慢:国外产品普遍服务响应不及时,经常以天为单位反馈,服务保障性差
- 不具备扩展性:单机性能有限,无法支持业务规模、数据采集点持续增长的情况
- 对外连接集成便捷性差:虽然在对接大数据平台上支持 ODBC 等接口,但这些接口功能需要付费使用,一方面是额外成本,另外一方面可能涉及盗版
一直以来,中国工业软件领域都是被国外软件垄断的局势,从 Wonderware 实时库在一众卷烟厂企业流行的行业现状中就能窥探一二,但企业业务和技术发展都并非一成不变,近年来很多优秀的国产软件已经发展起来,而且随着国内软件替代浪潮的兴起,这些优秀的软件也进入了大众视野,它们在性能和成本管控等方面都能媲美甚至高于国外软件。
在智能制造、国产化替代快速演进的当下,很多卷烟厂也开始尝试国产软件转型,为了实现业务规模和管理的进一步升级,除了车间,厂级和集团级也都需要搭建大数据平台。在实践方面,已有多家卷烟厂将原来的 Wonderware InSQL/Historian 替换为新一代开源时序数据库(Time Series Database) TDengine,下文将就两家卷烟厂的具体替换实例展开分析。
(注:应相关企业要求,本文不会展示具体企业信息,仅就实际业务痛点、改造效果做分析)
数据量存储轻松超过万亿行,数据架构这样改造
在案例一中,某卷烟厂在制丝产业线上就是使用 Wonderware 进行时序数据存储。Wonderware 是一款非开源软件,虽然它支持 OPC 数据直接采集,但稳定性并不好、安全性也不足,而且还存在查询速度太慢、运维成本高等问题。考虑到设备数据的种种特点,该卷烟厂决定将其替换为国产时序数据库,最终他们选择了 TDengine。
凭借着超级表机制(从时序数据特点出发进行设计)以及按照时间分片的存储引擎,即便是单表千亿级别的总数据量,TDengine 也可以在物理逻辑上完成划分,直接操作对应时间段的数据文件,摒弃无效的搜索消耗,这一点解决了该卷烟厂制丝产业线上最大的数据处理难题。此外基于 TDengine 高效的列式压缩设计,数据的存储成本也显著降低。
改造后数据处理链路如下:
在随后的实际运作中,该场景下主要的超级表存储了数千亿行数据,总数据量轻松超过了万亿行。即便是在三副本(数据存储三份确保高可用)的配置下,占用的总空间也仅有 1TB 左右。在查询方面,对单设备的查询,既可以通过超级表筛选找到子表,也可以直接通过子表找到。
在案例二中的卷烟厂同样使用 Wonderware 作为数据处理解决方案,随着业务的发展,其生产中需要监测的指标从几万个增加到几十万甚至百万个以上,Wonderware 在性能和扩展能力上越来越难以为继,存在以下几点问题:
- 在软件使用上,写入速度满足需求,但查询速度却太慢;
- 缺乏统计工具,数据统计效率较低;
- 在软件运维层面,软件体量大,运维成本高;
- 过于受限,永久授权也不能自由修改数据点;
- 支持 OPC DA 数据采集,但稳定性较差、安全性不足。
该卷烟厂希望改造后的系统具备功能稳定、高效的数据写入及数据查询(包括最新数据和历史数据)、可云化部署、可私有化部署、支持线性扩展、高可用的特性,而他们早在 2019 年便关注了 TDengine,一直跟涛思技术团队保持技术交流,借此契机,在内部对比测试了 OpenTSDB、InfluxDB 等开源时序数据库后,综合表现最优的 TDengine 成为他们的不二之选。
改造后数据架构如下:
该卷烟厂所做测试显示,相比之前使用 Wonderware 时,对全量(不足1亿条记录)的均值计算需要 2-3 分钟,TDengine 在应对 10 亿级别的数据量做聚合计算只需要 2 秒;其写入和查询的效率非常高,平均在 10ms 以内,性能完全满足数据处理需求。此外其 Database 内置时间窗口自动分割和统计机制,还能让后期报表数据统计更加快捷方便。
凭借着 TDengine 可以和 Grafana 实现无缝对接的特性,该卷烟厂在实际业务中使用 TDengine + Grafana 搭建起了卷包车间的数据存储和可视化平台。在接入半年后,TDengine 已存储该卷烟厂卷包部所有卷接包设备,每张子表超过 150 列数据,总计累计数据量达到了 5 亿 5 千万条,而落盘后的磁盘空间使用只有 1.9GB,极大节省了存储空间。
从以上两个案例的具体实践出发,我们总结出了一版数据迁移方案,供有需要的企业参考:
- 步骤一:实时数据并行接入 TDengine
- 在生产区、管理区部署 TDengine 集群(3 节点、8 核 16GB)
- 基于现有 DCS/PLC 系统开发一个数采转换程序,将 DCS 系统数据写入 TDengine
- 基于 TDengine 与生产区应用的对接,提供数据查询能力
- 步骤二:历史数据离线导入 TDengine
- 保持实时数据向 TDengine 与 Wonderware 数据库的实时写入
- 开发一个程序,将历史数据从 Wonderware 导出,并补录入 TDengine。TDengine 支持历史数据写入,此补录过程完全可以离线、批量、有计划地进行
- 步骤三:补录结束、程序稳定运行一段时间后停止 Wonderware 服务
- 历史数据全部补录完成、基于 TDengine 的实时数据读写稳定后,可以停止 Wonderware 数据库的服务,实现无缝切换
卷烟厂“边云协同” 现三点难题,TDengine 3.0 提供思路
在如卷烟厂一般的工业互联网场景中,企业通常面临的一个痛点问题就是数据同步,业内通常有三种解决方案,第一种就是离线传输数据,比如积攒一个星期,一下传一个 T 的数据;第二种是指派人员拿着移动硬盘去现场拷,浪费人力成本;第三种就是开 VPN 专线定期同步,将数据导出成压缩文件进行传输,但这种情况 VPN 都会出现一些短暂带宽的阻塞,对其他业务生产产生一定冲击。
如果不做数据同步,那边缘设备只能处理局部数据,无法形成全局认知,在实际应用中仍然需要借助云计算平台来实现信息的融合。在此背景下,边云协同正逐渐成为支撑工业互联网发展的重要支柱。
在边云协同的实现上,一些卷烟厂早就利用了 Wonderware 自带的数据镜像能力,进行从厂区到集团的数据同步,但在具体实施上,这种操作却存在着一些缺陷。具体可以总结为以下三点:
- 车间生产网到烟厂办公网数据同步,需穿越堡垒机,大量手动操作,效率低下,需要可配置规则的自动同步
- 烟厂到集团中心数据同步,数据以文件形式定期集中传输,实时性差且阻塞网络带宽
- 集团中心无法自主灵活决定数据获取,依赖下级单位变更数据上送的配置信息
为帮助企业解决这些痛点,TDengine 3.0 发布了企业级工具 taosX,该工具具备百万条/秒同步效率、可配置的同步规则、实时流计算结果同步、支持重新订阅,断点续传、历史数据迁移五大特性,借助 taosX,企业可以实现平滑且有选择地将数据发送到云上的大数据平台中。
taosX 能保证所有数据都可以从一个集群同步到第二个集群,包括离线乱序数据,它可以支持实时的数据同步,包括离线数据的增量备份、边端到云端的数据协同。
具体实现思路如下图:在车间侧,数据采集完成之后会进入 TDengine,首先经过 TMQ 消息队列,其中一部分数据有选择性地并入到本地的 TDengine 集群 1 中。之后我们可以在集团侧部署 taosX ,它会去订阅车间侧 TMQ 消息队列中的数据,为了达成业务需求,可能这里需要由数据分析工程师设置一些订阅规则,比如数据需要经过降采样再进来或者只关心阈值超过定值的数据。之后 taosX 会把数据同步到 TDengine 集群 2,集群 2 可以支持报表分析等更大维度的分析工作。
这一边云协同的实现思路主要有以下四点优势:
- 数据跨区同步自动化程度大大提高、错误率降为零
- 数据无需缓存,减少批量发送,避免流量高峰阻塞带宽
- 通过订阅方式同步数据,集团不再依赖下级单位配置同步规则
- 边云均采用 TDengine,数据模型完全统一,降低数据治理难度
结语
在今年 7 月,工信部等六部门发布加快培育发展制造业优质企业的指导意见,其中表示推动产业数字化发展,大力推动自主可控工业软件推广应用,提高企业软件化水平。随着政策东风吹拂以及卷烟厂等工业行业软件国产化的加速进行,国产工业软件势必将进一步崛起,软件行业的外化垄断局势有望加速打破。
想了解更多 TDengine Database的具体细节,欢迎大家在GitHub上查看相关源代码。