王妙琼 马鹏玮 魏 凯 姜春宇
中国信息通信研究院 北京 100191
工业大数据是指在工业领域中,围绕整个工业生产全生命周期所产生的各类数据以及相关技术和应用的总称。其中工业数据包括产品研发过程中的设计资料;产品生产过程中的监控与管理数据;产品销售与服务过程的经营和维护数据等。从业务领域来看,可以分为企业信息化数据、工业物联网数据和外部跨界数据。
工业领域的数据应用具备典型的大数据5V特征:数据量大;种类来源多样化;数据价值密度较低;数据增长速度快;数据具有真实性。工业大数据的价值逐渐被发现和重视,越来越多的工业企业开始利用数据来提升产品生产效率以及服务质量等,但工业数据的分析应用尚处于起步阶段,存在数据来源分散、数据结构多样、数据质量参差不齐等情况,难以高效挖掘数据的价值。
工业大数据系统的部署应用,其核心目标是全方位采集工业产品各个环节的数据,并将这些数据汇聚起来进行深度分析,利用数据分析结果重新指导工业产品全生命周期各个环节的控制与管理决策[1]。通过效果监测的反馈闭环,实现工业产品全生命周期决策控制持续不断的优化。如果将工业互联网的网络比做神经系统,那工业大数据的汇聚与分析即为工业互联网的大脑,是工业互联网的智能中枢。
建设工业级的大数据系统,往往需要解决多个层面的问题,业务层面需要对各个环节的数据进行梳理和分析,形成完善的数据体系,来描述完整的工业生产流程;技术层面则需要建立统一的系统来汇集和处理工业全流程的数据,其中需要根据具体的业务场景选择合适的技术架构,考虑到工业级系统庞大的规模和复杂的属性,更是需要在建设的初期就做好完善的架构规划。
现阶段工业大数据的建设仍处于发展极不均衡的状态,部分先进大型工业企业已经利用大数据技术形成成熟的解决方案,整合各环节数据资源,为生产和服务提供精准的数据支撑,但仍有部分工业企业尚未实现信息化或信息化程度不高,需要从最底层的设备开始更新与改造,以适应新的数字化生产流程,规范各环节数据资料,从而结合大数据技术进一步地优化生产过程和服务质量[2]。在发展工业大数据的各阶段下主要出现了以下三个问题。
1)设备老旧导致数据采集困难。在许多制造行业中,仍然使用传统的生产设备,并且因为各类原因对生产线设备进行更新换代较为困难,造成一些关键的生产数据无法采集,不能全面监控生产线的生产情况。这种情况下,需要在设备上加装外置传感器,并对传感器采集到的生产数据进行实时地汇集监控,来全面感知生产情况。
2)数据跨平台跨部门整合耗时。在工业领域进行业务分析时,由于工业系统庞大且复杂,往往需要整合多个数据源的信息,这些数据种类繁多、数据量大、数据质量参差不齐,有时甚至需要跨部门沟通,走繁琐的审批流程,在经过了一系列关卡收集并整理好数据后,由于耗费时间太长,一些具有时效性的数据就会产生价值流失。需要建设持续的、自动化的、全量的数据采集机制,来保证数据的价值被有效地利用。
3)初期缺乏规划导致应用竖井。在开展大数据应用的初期,由于大部分是业务驱动,各项目单独建设大数据系统,缺乏统一规划,容易造成应用竖井,数据重复采集、基础信息不一致,从而不可避免地出现资源浪费、数据关联性差,无法高效地利用数据价值;所以需要企业有全面的大数据系统建设规划,对数据进行统一采集和管理,为后续各种场景的分析应用提供良好的数据环境。
在工业级大数据系统的建设初期,需要对系统的技术架构进行合理规划,根据实际应用场景下的需求选择技术组件实现应用的搭建,考虑的问题主要总结为以下五点:①如何采集来自多种数据源的异构数据;②如何按照不同的数据留存需求进行高效存储;③如何按照业务需求选择数据计算引擎和处理工具;④如何保障系统的安全和稳定运行;⑤工业大数据技术架构分析。
本文中描述的工业大数据架构体系,参考了2016年工业互联网产业联盟[1]发布的《工业互联网体系架构(1.0)》中对工业互联网数据体系架构的描述[3],见图1。工业互联网产业联盟(Alliance of Industrial Internet,AII)是在工业和信息化部指导下,于2016年2月1日由国内外工业互联网产业相关的企、事业单位、社团组织、高等院校、科研院所等自愿结成的跨行业、开放性、非营利性的社会组织。
其架构可以总结为数据采集与交换、数据集成与处理、数据建模与分析和数据驱动下的决策与控制应用四个层次[4],对应到具体的技术架构实现见图2。
图2 工业大数据功能架构
采集交换层:主要完成数据从传感器、SCADA、MES、ERP等内部系统,以及企业外部数据源获取数据的功能,并实现在不同系统之间数据的交互。这一层涉及到采集工具、数据预处理工具、以及数据交换工具的选型建设。
集成处理层:从功能上,这一层主要是将物理系统实体进行抽象和虚拟化,建立产品、产线、供应链等各种主题数据库,建立合理的数据模型,将清洗转换后的数据与虚拟制造中的产品、设备、产线等实体相互关联起来。从技术上,实现原始数据的抽取转换和存储管理,提供计算引擎服务,完成海量数据的交互查询、批量计算、流式计算等任务,并对上层建模工具提供数据访问和计算接口。这一层主要涉及数据的抽取转换加载、数据的存储与管理、数据计算与查询,以及数据服务接口的提供。
建模分析层:功能上主要是在虚拟化的实体之上构建仿真测试、流程分析、运营分析等分析模型,用于在原始数据中提取特定的模式和知识,为各类决策的产生提供支持。从技术上,主要提供数据报表、可视化、知识库、机器学习、统计分析和规则引擎等数据分析工具。
决策控制层:基于数据分析结果,生成描述、诊断、预测、决策、控制等不同应用,形成优化决策建议或产生直接控制指令,从而对工业系统施加影响,实现个性化定制、智能化生产、协同化组织和服务化制造等创新模式,最终构成从数据采集到设备、生产现场及企业运营管理优化的闭环。
工业大数据系统技术架构的实现涉及底层技术组件的选型,本文中将这些技术组件分为三类:采集、存储及计算,四层技术架构的功能实现可以由这三种技术组合得到[5]。如图3所示。
图3 技术架构层与技术组件对应关系
图3中对采集、存储、计算的描述是指广义上的这类技术及解决方案的总和,如采集指的是实现数据采集、交换、集成、处理过程当中涉及到的所有采集相关的技术和解决方案;存储和计算也是指实现系统架构中的对应功能时涉及到的所有技术和解决方案。
1.2.1 数据采集
随着工业制造中各层的精细化与制程的高密度化,工业制造所产生的数据必然形成好几个等级的增长。面对如此庞大与多样的数据整合问题,企业必须有整体统一的数据汇聚与应用策略,设计通用可靠的数据采集机制,来满足各方面的数据采集需求。数据采集的完整性、准确性,决定了数据应用是否能真实可靠地发挥作用。因此,在建设数据采集系统时,建议着重考虑以下五个要求:1)数据接口通用性。由于新技术更新换代较频繁,需要进行版本管理,并定期更新接口,建议用统一的数据交换格式来适应接口频繁更新的情况,使接口能够快速调整。2)支持广泛的数据源。采集技术需支持尽可能多的数据源端。3)支持横向扩展。当设备增加时,所造成的性能瓶颈须能通过横向扩展的方式解决。4)保证数据不遗失。采集过程中须确保数据准确地、不遗失地送达处理层与储存层。5)避免增加基础建设复杂度。在不断扩充设备的情况下,采集技术不应增加基础建设扩展时的负担。
从工业数据的来源进行分类,主要包括管理系统、生产系统、外部数据三大方面的数据来源。从数据采集的全面性上看,不仅要涵盖基础的结构化交易数据,还将逐步包括半结构化的用户行为数据,网状的社交关系数据,文本或音视频类型的用户意见和反馈数据,设备和传感器采集的周期性数据,以及未来越来越多有潜在意义的各类数据[6]。表1整理出了一些工业大数据系统中常见的数据源及其数据特性,供参考。
管理系统数据采集:这里讨论的管理系统的数据包括了工业产品的设计资料、价值链管理数据及生产过程中的资源管理数据。
表1 常见工业数据源分类
1)设计资料:设计资料大多来源于传统工业设计和制造类软件,如:CAD、CAM、CAE、CAPP、PDM等。这类数据主要是各类产品模型以及相关的图纸或电子文档,大多数为非结构化数据。这些设计类数据的采集对时效性要求不高,只需定期批量导入大数据系统。
2)价值链管理数据:价值链数据主要指企业生产活动中上下游的信息流数据,主要来源于供应链管理系统(SCM)、客户关系管理系统(CRM)等。这类数据主要包含供应链信息和客户信息,通常是规范的结构化数据,采集时对时效性要求不高,只需按业务分析要求的更新周期定期批量导入大数据系统。
3)资源管理数据:资源管理数据的来源主要是生产环节的各类管理系统,包括企业资源计划(OA/ERP)、生产过程执行系统(MES)、产品生命周期管理(PLM)、环境管理系统(EMS)、仓库管理系统(WMS)、能源管理系统等。这类数据主要描述了生产过程中的订单数据、排程数据、生产数据等,大多数为标准的结构化数据,采集时对时效性要求不高,只需按业务分析要求的更新周期定期批量导入大数据系统。
生产系统数据采集:这里讨论的生产系统数据主要来自工业控制系统、生产监控系统、各类传感器以及其他外部装置。
1)工业控制系统数据:工业控制系统数据的来源主要包括分布式控制系统(DCS),以及可编程逻辑控制器(PLC)这类系统。通常DCS与PLC共同组成本地化的控制系统,主要关注控制消息管理、设备诊断、数据传递方式、工厂结构,以及设备逻辑控制和报警管理等数据的收集。此类数据通常为结构化数据,且数据的应用通常对时效性要求较高,需要数据能及时地上报到上层的处理系统中。
2)生产监控数据:生产监控数据主要来源于以SCADA为代表的监视控制系统。SCADA系统的设计用来收集现场信息,将这些信息传输到计算机系统,并且用图像或文本的形式显示这些信息。这类数据也是规范的结构化数据,但相对DCS和PLC系统来说,SCADA系统可以提供实时的数据,同时也能提供历史数据;因此在考虑数据的采集策略时,需要根据上报数据的类型来选择是实时采集或是批量导入。
3)各类传感器:在生产车间的很多生产设备并不能提供生产数据的采集和上传,因此需要通过外接一套额外的传感器来完成生产数据的采集。外挂式传感器主要用在无生产数据采集的设备或者数据采集不全面的设备上、以及工厂环境数据的采集。同时外挂式传感器根据使用现场的需求,可以采用接触式的传感设备和非接触式的传感设备。此类数据的单条数据量通常都非常小,但是通信总接入数非常高,即数据传输并发度高,同时对传输的实时性要求较高。
4)其他外部装置:其他外部装置产生的数据以视频摄像头为例,数据主要来源于对产品的质量监控照片、视频,或者是工厂内的监控视频等。此类数据的特点是数据量大,传输的持续时间长,需要有高带宽、低时延的通信网络才能满足数据的上传需求。对于其他不同于视频数据的外部装置数据,需要针对数据的特性进行采集机制的选择。
外部系统数据采集:外部系统数据主要来源于评价企业环境绩效的环境法规、预测产品市场的宏观社会经济数据等,此类数据主要用于评估产品的后续生产趋势、产品改进等方面,与管理系统的数据采集类似,可以通过标准的RJ45接口进行数据的传输。通常本类数据相对静止,变化较小,因此数据的上传频次较低。
综合上述多类数据源的采集场景和要求,系统的集成导入应同时具备实时接入(如工业控制系统、生产监控数据、各类传感器)和批量导入(如管理系统、外部数据)的能力,同时能根据需要提供可定制化的IoT接入平台。具体建设要求如下。
1)对于需要实时监控、实时反向控制类数据,可通过实时消息管道发送,支持实时接入,如工业控制系统数据、生产监控系统数据等。建议可采用如Kafka、Fluentd或是Flume等技术,这类技术使用分布式架构,具备数据至少传输一次的机制,并为不同生成频率的数据提供缓冲层,避免重要数据的丢失。
2)对于非实时处理的数据,可采取定时批量地从外部系统离线导入,必须要支持海量多源异构数据的导入,如资源管理数据、价值链数据、设计资料等。建议可采用Sqoop等数据交换技术,实现Hadoop与传统数据库(MySQL、Oracle、Postgres等)间大批量数据的双向传递。
3)当系统中有大量设备需要并发接入且要多协议接入时,如各类传感器件,可部署专业IoT接入网关,IoT接入平台需同时具备支持TCP、UDP、MQTT、CoAP、LWM2M等多种通信协议。在面对各类传感器的数据采集时,可以结合RFID、条码扫描器、生产和监测设备、PDA、人机交互、智能终端等手段采集制造领域多源、异构数据信息,并通过互联网或现场总线等技术实现源数据的实时准确传输。有线接入主要以PLC、以太网为主。无线接入技术种类众多,包括条形码、PDA、RFID 、Zigbee、Wi-Fi、蓝牙、Z-wave等短距离通信技术和长距无线通信技术。其中,长距离无线技术又分为两类,包括工作于未授权频谱的LoRa、SigFox等技术和工作于授权频谱下传统的2/3/4G蜂窝技术及其3GPP支持的LTE演进技术,如LTE-eMTC、NB-IOT等。
1.2.2 数据存储
工业大数据系统接入的数据源数量大类型多,需要能支持TB到PB级多种类型数据的存储,包括关系表、网页、文本、JSON、XML、图像等数据库,应具备尽可能多样化的存储方式来适应各类存储分析场景,总结如表2。
表2 各类存储对应适用场景
在不同的工业数据应用场景中,数据存储的介质选择十分重要,下面列举一些经典的使用场景来介绍如何选择存储技术[7]。
1)实时监控数据展示:通常情况下实时采集的监控数据在进行轻度的清洗和汇总后会结合Web UI技术实时展现生产线的最新动态。这类及时性互动性高的数据一般使用内存数据进行存储,如Redis、Ignite等技术,可以快速响应实时的查询需求。
2)产线异常的分析与预测:使用机器学习技术对产线数据进行深入挖掘分析运行规律,可以有效地对产线的异常进行分析和预测,进而改善制程、减少损失、降低成本及人为误判的可能性。这类用于分析的历史数据一般选择使用HDFS、Cassandra等分布式储存,适用于海量数据的探索和挖掘分析。同时,对于这类与时间顺序强相关的分析场景,数据的存储可以选择InfluxDB这类时序数据库,可以极大提高时间相关数据的处理能力,在一定程度上节省存储空间并极大地提高查询效率。
3)商业智能:如果需要整合多种数据来制作商业策略性报表,适合使用结构化储存,比如传统的关系型数据库,MySQL、Oracle等。如果需要考虑性能和及时性,可以考虑分类存储至NoSQL数据库,如Cassandra、HBase与Redis等。
1.2.3 数据计算
大数据系统通常需要能够支持多种任务,包括处理结构化表的SQL引擎、计算关系的图处理引擎和进行数据挖掘的机器学习引擎,其中面向SQL的分析主要有交互式查询、报表、复杂查询、多维分析等(如表3)。
表3 各类计算引擎对应适用场景
1)实时计算引擎,包括Storm、Spark Streaming、Flink等业界通用架构,适用于基于窗口或消息的实时数据处理,结果响应的时延要求在毫秒级。
2)离线计算引擎,包括MapReduce、Spark、Hive,适用于批数据分析和定时分析等。
3)图计算引擎,适用于事件及人之间的关联关系分析。
4)数据综合分析OLAP,如MPP数据库,适用于综合报表分析。
5)业务交互查询OLTP,如MySQL、SQLServer、Oracle、PostgreSQL等,适用于交互式查询分析。
6)分布式数据库中间件,可解决数据库容量、性能瓶颈和分布式扩展问题,提供分库分表、读写分离、弹性扩容等能力,适用于海量数据的高并发访问场景,有效提升数据库读写性能。
7)数据挖掘能力,为了能够匹配工业大数据决策与控制应用的5大场景,特别是诊断类、预测类、决策类应用闭环的要求,系统应该具备完善的机器学习、深度学习、图计算等平台级能力。机器学习能力如基于开源Spark框架推出的算法库MLlib、 GraphX等;深度学习有TensorFlow、Caffe、MXNet等平台;图计算能力,业界相对比较流行的开源产品有Titan,另外还有很多优秀的商业产品可供选择[8-9]。
总体来说,大数据平台的计算组件需要能支持批量和实时两大类任务,同时具备精细化的任务和资源调度的能力。
本章节将结合某大型工业企业生产场景中新产品导入(New Product Introduce,NPI)环节的案例,具体解释说明其中所使用的技术架构[5]。
新产品制造在NPI阶段需在有限的时间内在每个步骤都达到客户的规格要求,因此,在每一个阶段工程单位与测试单位都需要完整的生产信息与关键物料信息的整合,协助FA(Failure Analysis)工程师与RD工程师合作,进行问题分析与解决方案设计。
由于每一个阶段都是分秒必争,并且还要能快速反应问题,求新求变,对于必须在限定时间内分析所有的问题且找出原因(当天的问题当天解决)将是一个高度困难的挑战与目标。为了能加快FA工程师分析的速度以及有更多的时间做进阶数据分析,快速收集所有生产信息,甚至往前追溯上游供应链关键信息都是非常必要的,但却又相当耗费时间。
依据过去的经验,工程师通常会花费80%的时间做数据收集与整合,却只用20%的时间做数据分析与问题诊断;因此需要合理的规划大数据系统的架构建设,形成一套完善的解决方案来扭转这个局面,让工程师只需要投入20%的时间做数据收集,能够留下80%的时间做深入的数据分析与解析。
NPI阶段数据分析需要解决两个业务痛点。1)数据复杂且收集整合耗时:分析数据一般会横跨多个孤岛系统、且涉及不同部门,工程师需要与不同部门进行沟通,并且切换不同系统以取得数据,再加上数据格式不统一、数据质量无法保证,很多数据需要手工进行清洗整理,这样仅一个问题的数据收集就可能花费好几个小时。2)涉及信息太多:数据包含产品各阶段的生产数据(产品测试数据、产线组装数据、进料检验数据、关键物料数据、供货商数据等),各类数据量都很大(例如工站的监测项就有上千个,甚至上万个);手动整理数据容易发生错误,且不易察觉;再加上各类分析软件有处理数据量的上限,使用分析软件进行实时数据增加、删除会很耗费精力。
方案中整体架构的实现以基础数据为基底,通过SMC(Spark,Mesos,Cassandra)三套开源大数据产品将关联性数据进行整合,再由数据集成框架DIF(Data Integration Framework)架构进行数据处理并提供多维度整合数据至数据服务接口DSP(Data Service Provider) API、分析工作流等服务,系统应用层利用多维度数据进行通用性分析、FA分析及查询服务。如图4所示,并分述如下。
图4 方案整体架构
采集交换层:数据的采集需考虑应业务需求有效且完整的获取各类系统的数据。鉴于采集的数据来源有内部系统、外部系统及非系统化的本地文件等,所以需要各系统之间进行数据交换,分别利用系统接口、网络爬虫转换文件格式储存及电子邮件方式等交换取得各数据。
集成处理层:此层级运行包含SMC、DIF及KM。该层主要考虑为各系统数据的关联整合,因此着重于数据清洗、数据理解及数据的关联,为分析层提供有效的模型处理能力。SMC提供基础的计算和存储资源;DIF主要支撑数据整合、数据处理运算、及信息呈现;KM主要接收各类型文档进行分类储存、解析文本,并利用Elasticsearch(一套支持全文检索的开源项目)建立索引库以及支持全文检索服务。
建模分析层:数据分析层包含三个项目,分别为DSP API、分析工作流、KM API。在分析层构建API主要是为特定业务需求构建分析工作流提供分析模型的支撑。
决策控制层:该层实现用户在单一平台内快速获取数据的需求,并快速开展业务分析。此外,知识库的构建可以满足工程师之间的技术传承及新人训练,帮助工程师自主学习成长,并减少沟通教学时间,可以让工程师的时间得到最有效的利用。
合理设计大数据系统的架构实现使得数据分析的效率大大提升,能够更好地支撑新产品制造NPI环节的各种分析需求,使每个步骤都能快速达到客户要求。主要解决的问题可总结为以下几点:1)时间短,数据整合收集所需时间大幅减少,由以前耗时2~4小时,提升至数分钟以内。2)数据广,整个NPI周期大约会生产5万个产品,而NPI产线大约150个相关产品测试数据完整收集,涵盖400多个关键物料及平均2000个测试项目,特定工站更高达4万个测试项目,每日原始数据吞吐量可达22万笔。3)效率快,工程师将原来数据收集的时间专注用来解决问题,并可利用剩余时间进一步分析预见问题。扭转过去80/20的时间分配法则,让工程师只用20%时间收集数据整理数据,而用80%时间专注在问题解决上。4)传承快,前辈工程师将个人的经验累积于平台上,新人工程师可随时学习到前人的知识。
工业大数据平台已经成为数据时代工业企业的基础架构,支撑着上层大数据业务的建设与发展,促进了顶层愿景和战略的顺利实施。而当前工业大数据平台架构仍处于发展初期,尚未形成稳定、成熟的建设方案和建设路径,故需要梳理工业大数据平台架构方式及内容,明确其选型方案及建设路径,规划采集交换、集成处理、建模分析、决策需求等多环节技术体系,从而促进工业大数据应用的快速平稳落地,使工业领域的数据能发挥更大的价值,加速整个产业的变革。
[1] 彭俊松.工业4.0驱动下的制造业数字化转型[M].北京:机械工业出版社,2017
[2] 王建民.探索走出符合国情的工业大数据自主之路——工业大数据的范畴、关键问题与实践[J].中国设备工程,2015(9):36-37
[3] 工业互联网产业联盟.工业互联网体系架构(版本1.0)[R].2017
[4] 工业互联网产业联盟.中国工业大数据技术与应用白皮书[R].2017
[5] 工业互联网产业联盟.工业大数据技术架构白皮书[R].2018
[6] 郑树泉,宗宇伟,董文生,等.工业大数据:架构与应用[M].上海:上海科学技术出版社,2017
[7] 数据中心联盟.大数据平台选型与建设指南白皮书(1.0版)[R].2017
[8] Lee J,Kao H A,Yang S.Service Innovation and Smart Analytics for Industry 4.0 and Big Data Environment [J].Procedia Cirp,2014,16:3-8
[9] Wang S,Wan J,Zhang D,et al.Towards smart factory for industry 4.0: a self-organized multi-agent system with big data based feedback and coordination [J].Computer Networks,2016,101:158-168