本发明涉及车间现场数据监测技术领域,具体涉及一种基于流处理的车间现场数据实时监测与异常检测方法。
背景技术:
工业制造业随着中国经济发展快速崛起,其制造能力的发展直接影响国家经济发展和社会进步。由于生产车间现场环境的复杂性和产品信息的多样性,导致了企业对资源配置的不合理,造成材料浪费和经济损失。
近年来,随着传感检测技术的发展和物联网设备的普及,车间生产现场运行数据呈现“指数级”的上升,对于车间现场来讲,导致监测系统实时性低,可扩展性不高,容易出现延时甚至奔溃,数据总量和价值随时间的推移迅速增加和流失,挖掘其价值超出了传统数据处理的计算能力,无法满足对车间生产的实时监测管理需求,给现有基于生产车间现场运行数据的异常状态监测系统带来海量运行数据流实时处理、海量数据存储、数据实时可视化分析等挑战。
基于此,本发明设计了一种基于流处理的车间现场数据实时监测与异常检测方法,以解决上述问题。
技术实现要素:
本发明的目的在于提供一种基于流处理的车间现场数据实时监测与异常检测方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于流处理的车间现场数据实时监测与异常检测方法,其特征在于,包括以下步骤:
s1:由车间生产运行数据采集设备采集数据并生成数据流;
s2:通过在分布式服务器管理系统zookeeper上分别注册kafka和storm的节点,并对kafka和storm的服务器节点统一管理;
s3:通过kafka分布式消息队列进行数据缓存,将部署storm的实时大数据计算平台作为kafka的数据消费端,采用kafka与storm的集成kafkaspout作为消息队列和大数据平台衔接的数据源,并以数据载体的形式传递至下一级bolt进行分析处理;
s4:当数据源kafkaspout接收到运行数据后,首先通过数据拆分bolt,获取不同运行数据在不同采集通道上的数据;
s5:单独在bolt中进行数据预处理;
s6:再进行基于滑动时间窗的运行数据统计和异常检测,将滑动窗口设置为0.5min,基本时间窗口为5s,在每个基本时间窗口下都进行独立的计算任务,此时计算任务将以5s的滑动窗口在0.5分钟内进行滑动,最后再合并基本时间窗口,统计整个计算窗口的计算结果;
s7:在spout和bolt完成后,在storm的topology设定各个组件的数据流向和分组方式;
s8:在storm实时处理框架中通过实时流聚类的算法实现车间生产现场状态的在线判断,根据判断出的异常状态下所对应的数据,与数据库中对应的异常状态数据进行识别比对,再输出异常记录,并保存到数据库中。
优选的,步骤s5中的数据预处理的步骤包括数据清洗、数据格式化和判断数据是否需要存储。
优选的,步骤s6中运行数据统计是指统计运行数据的最大值、最小值、平均值、出现的频次、能量利用率这些指标,异常检测主要包括实时临界检测和基于滑动时间窗的异常监测。
优选的,步骤s6中基于滑动时间窗的运行数据统计和异常检测的具体步骤和单元包括:
步骤一:滑动窗口处理单元:首先设置滑动窗口所需的发送数据的时间和参数,参数主要包括单元窗口长度和滑动窗口长度;
步骤二:字段拆分处理单元:将接收的运行数据按照监测信号的种类进行拆分,将同一类的运行数据下发至下一级数据处理单元;
步骤三:数据统计处理单元:在单元时间窗口内实现数据的最值、平均值这些数据指标的计算,并将计算结果发给下一级数据处理单元进行整个时间窗口的数据聚合;
步骤四:频数计算处理单元:主要为实现需要进行频数统计的运行数据服务;
步骤五:阈值判断处理单元:根据各个监测数据的类型,结合数据特点以及相关研究,制定阈值判断的策略;
步骤六:汇总计算处理单元:在此处理单元上合并统计所有基本时间窗口的数据,使用全局汇总的数据聚合方式,即将所有的数据都发送到同一个处理单元进行最终的的计算。
优选的,数据清洗的具体方式为:首先检查数据是否合格,如果合格,继续进行后续数据处理,如果数据不合格,则执行数据清理和过滤操作,从监测数据中删除具有空值、离群值和明显错误信息的数据。
优选的,数据格式化包括数据标定和删除冗余值,具体方式为:对数据进行校准和格式化,将模拟值转换为真实值,同时删除传感器和采集系统存储的数据中的冗余信息,如数据标题、标头和其它字段。
优选的,判断数据是否需要存储的判断依据是数据是否需要先进行处理后再存储在数据库。
与现有技术相比,本发明的有益效果是:本发明通过对数据流进行数据预处理,排除了生产现场运行数据的空值,离群值,冗余数据和格式错误等明显错误;设计了一种基于滑动时间窗的运行数据统计与异常检测技术,既保证运行数据处理的时效性,也在一定程度上保证了相连数据的关联性,充分、实时、准确地获得生产车间现场过程中的状态信息,实现对生产过程数据有效控制、分析和管理,实时进行生产防错。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明车间现场运行数据流处理流程图;
图2为本发明数据预处理流程图;
图3为本发明基于滑动时间窗的数据统计与检测示意图;
图4为本发明基于滑动时间窗的数据统计与检测的实现流程图;
图5为本发明生产数据的状态监测平台软件系统的业务流程图;
图6为本发明案例的型号及检测指标示意图;
图7为本发明前端电芯开路电压测试页面图;
图8为本发明车间生产工序检测记录界面图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1-5,本发明提供一种技术方案:一种基于流处理的车间现场数据实时监测与异常检测方法,包括以下步骤:
s1:由车间生产运行数据采集设备采集数据并生成数据流;
s2:用户根据账号的权限拥有不同的操作权限,验证身份成功后,登录系统,系统进行初始化,通过在分布式服务器管理系统zookeeper上分别注册kafka和storm的节点,并对kafka和storm的服务器节点统一管理;
s3:通过kafka分布式消息队列进行数据缓存,将部署storm的实时大数据计算平台作为kafka的数据消费端,采用kafka与storm的集成kafkaspout作为消息队列和大数据平台衔接的数据源,并以数据载体的形式传递至下一级bolt进行分析处理;
s4:当数据源kafkaspout接收到运行数据后,首先通过数据拆分bolt,获取不同运行数据在不同采集通道上的数据;
s5:单独在bolt中进行数据预处理,也可以结合具体的运行数据监测需求,通过单独在bolt中进行编程实现;在实际生产和操作过程中,传感器和数据采集设备会受到外部电磁和噪声干扰或异常情况的影响,数据预处理用于消除这种影响下产生的错误和冗余数据;
数据预处理第一步进行数据清洗,首先检查数据是否合格,如果合格,继续进行后续数据处理。如果数据不合格,则执行数据清理和过滤操作,以从监测数据中删除具有空值、离群值和明显错误信息的数据;
第二步进行数据格式化,包括数据标定和删除冗余值,具体为对数据进行校准和格式化,将模拟值转换为真实值,同时传感器和采集系统存储的数据包含许多冗余信息,例如数据标题、标头和其它字段等,这些冗余信息对于监测系统都是无用的数据,都需要进行删除。
第三步判断数据是否需要存储,以这些数据是需要直接存储在数据库中,还是需要在存储后处理作为判断依据,对数据进行区分。
s6:再进行基于滑动时间窗的运行数据统计和异常检测,将滑动窗口设置为0.5min,基本时间窗口为5s,在每个基本时间窗口下都进行独立的计算任务,此时计算任务将以5s的滑动窗口在0.5分钟内进行滑动,最后再合并基本时间窗口,统计整个计算窗口(0.5min)的计算结果,运行数据统计是指统计运行数据的最大值、最小值、平均值、出现的频次、能量利用率等指标,异常检测主要包括实时临界检测和基于滑动时间窗的异常监测,基于滑动时间窗的运行数据统计和异常检测的具体步骤和单元包括:
步骤一:滑动窗口处理单元:首先设置滑动窗口所需的发送数据的时间和参数,参数主要包括单元窗口长度和滑动窗口长度;
步骤二:字段拆分处理单元:将接收的运行数据按照监测信号的种类进行拆分,将同一类的运行数据下发至下一级数据处理单元;
步骤三:数据统计处理单元:在单元时间窗口内实现数据的最值、平均值等数据指标的计算,并将计算结果发给下一级数据处理单元进行整个时间窗口的数据聚合;
步骤四:频数计算处理单元:主要为实现需要进行频数统计的运行数据服务;
步骤五:阈值判断处理单元:根据各个监测数据的类型,结合数据特点以及相关研究,制定阈值判断的策略;
步骤六:汇总计算处理单元:在此处理单元上合并统计所有基本时间窗口的数据,使用全局汇总的数据聚合方式,即将所有的数据都发送到同一个处理单元进行最终的的计算。
流处理的实质上是将运行数据看成持续不断的数据流,针对数据的计算都是对单个数据点进行计算,即“新到一个数据就处理一次”,这种方式虽然能够保证运行数据处理的时效性,但是在一定程度上割裂了相连数据的关联性,而这种运行数据的关联性对机床状态的预测与分析都非常重要,因此引入滑动时间窗的处理方式对运行数据进行处理是十分有必要的
s7:在spout和bolt完成后,在storm的topology设定各个组件的数据流向和分组方式;
s8:在storm实时处理框架中通过实时流聚类的算法实现车间生产现场状态的在线判断,根据判断出的异常状态下所对应的数据,与数据库中对应的异常状态数据进行识别比对,再输出异常记录,保存到数据库中,并将结果显示在前端界面中。
以动力电池的组装测试为例,具体实施方式如下:
首先,用户根据账号的权限拥有不同的操作权限,验证身份成功后,登录系统,系统进行初始化,根据数据的处理需求,先通过kafka消息队列将运行数据接入到大数据平台,进行数据预处理操作,再通过数据流处理,在storm实时处理框架中通过实时流聚类的算法实现车间生产现场状态的在线判断,根据判断出的异常状态下所对应的数据,与数据库中对应的异常状态数据进行识别比对,再输出异常记录,并保存到数据库中。
登录系统之后具体检测加工工序如下:
第一步:cell投入;第二步:mapping合码;第三步:激光焊接;第四步:内电阻/绝缘耐压测试;第五步:功能测试。
基于传感技术和自动识别技术对产品工序各个阶段进行采集、测试和分析,验证所提出基于车间现场运行数据流的生产线产品异常状态监测的有效性。数据采集系统采用日置、安捷伦、三菱等传感器,将采集数据经过预处理之后,将处理数据结果接入kafka消息队列,部分数据采集装置的型号及检测指标如图6所示。
然后,进行运行数据采集存储技术测试。在车间生产线不同工序中,配置了多类型传感器,其中日置bt3563通过检测开路电压、内电阻等指标判定电池电芯是否合格,在电池加工生产各个工序中,监测采集的指标有低阻抗检测的电阻、功能测试产品的总电压、总内阻、单体温度以及板载温度等产品海量运行数据。通过搭建分布式集群环境,在分布式集群无其他任务的条件下对采集的数据进行计算,分析运行结果。其中使用kafka作为消息队列;使用storm作为分布式运行数据流处理框架,实现对车间限产数据实时、稳定的监测。通过将前端查询结果与后台数据库的运行数据进行对比可以发现:所设计的数据库能够完成运行数据的存储,在存储过程中未出现数据库“崩溃”、“缓存区满”等问题;运行数据查询结果无丢失,无重复,并且查询速度快,能够基本满足数据查询需求。
最后,进行实时流处理技术测试与分析。在本部分测试车间现场生产监测系统的流处理技术与应用案例,其中选择分布式数据库用于实时存储,使用ajax技术用于运行数据的实时刷新,并实时更新网页端界面内容,实现数据实时分析、处理与上传。案例测试了基于流处理技术的异常状态应用效果与性能。以系统的功能完成度和产品合格率作为测试标准。具体测试与分析如下:
首先,基于流处理技术的异常状态监测测试流程为通过在分布式服务器管理系统zookeeper上分别注册kafka和storm的节点,并对kafka和storm的服务器节点统一管理。为确保监测数据能够被实时处理,通过kafka分布式消息队列进行数据缓存,将部署storm的实时大数据计算平台作为kafka的数据消费端,采用kafka与storm的集成kafkaspout作为消息队列和大数据平台衔接的数据源,并以数据载体的形式传递至下一级bolt进行分析处理。当数据源kafkaspout接收到运行数据后,首先通过数据拆分bolt,获取不同运行数据在不同采集通道上数据,在结合具体的运行数据监测需求,单独在bolt中进行编程实现,如实现运行数据的预处理、基于滑动时间窗的数据统计和数据异常监测等。完成各个spout和bolt的逻辑编写后,在storm的topology设定各个组件的数据流向和分组方式;
然后进行流处理技术功能测试,在车间实际生产过程中,第一道工序为cell投入,此工序主要是通过检测开路电压衰减指标,通过测量实际电压来判断是否符合测试指标范围,此时电芯若不合格则需退回供应商;对此项指标的实时、高效和稳定的检测非常重要,因此引入了基于storm的流处理技术来对采集数据实时处理分析,使得处理延时显著下降。
基于流处理的机床运行数据实时处理技术在监测系统中主要实现数据预处理、数据统计、数据异常检测、实时运行状态判断。其中数据预处理和数据统计主要在后台完成数据处理,在前端界面中主要显示数据异常检测和运行状态判断结果,并在异常管理模块中进行显示。根据电芯参数和产品要求,分别设定开路电压的极小值和极大值设为3.294v和3.299v。由测量电压衰减信号易受外界干扰,瞬时变化特性大,测量值较为精确等原因,直接进行阈值监测容易产生误报现象,因此根据基于滑动时间窗的数据临界异常检测策略,每秒统计最近5秒的测量均值和极大极小值,若电芯开路电压的实际值超过报警阈值的概率大于80%,则输出“ng”,即为产品不合格,并将结果显示在前端界面中;若通过流处理计算实时计算分析后的值处于工艺规定的范围内,则可判定为合格,在前端界面反馈“ok”。在这一过程中,通过引入基于流处理的滑动时间窗概念,不仅提高了检测稳定性和效率,而且防止电芯质量误检率,提高了车间工厂的检测和生产效率。图7为前端检测界面的实时检测信息。
本文使用ajax技术实现了运行数据的实时刷新和数据库访问,使用html5和css样式完成前端页面的编写。在本测试案例中以电芯开路电压、焊接质量监测的焊接电流作为测试对象。检测处理延时满足生产现场的需要,不影响实际加工和生产,使用网页浏览器可以加载出性能测试结果以及各环节工序的检测指标,可以在网页端完成对检测指标的动态调整和修改。在各工序生产过程中,各加工工序的监测记录项目界面如图8所示。
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。