开发者学堂课程【物联网应用开发课程:物联网数据分析】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1055/detail/15318
物联网数据分析
内容介绍:
一、平台介绍
二、场景设计
三、案例演示
四、成果展示
使用设备综合效能分析的场景来介绍,IoT 数据分析功能模块的功能和如何进行它的使用入门。讲解的步骤分为四部分,第一是进行物联网数据分析功能模块的平台的整个介绍。
第二是使用 OEE 场景来介绍物联网数据分析的功能的原因。第三是做实操演练,演练一下整个操作的步骤。第四是展示最终的成果。
一、平台设计
1.物联网平台架构
首先介绍物联网数据分析平台,这是官网上能看到的物联网平台的整体的架构,可以看到物联网数据分析的功能,在整个平台的功能架构图的最右侧,其依赖前面的设备接入,还有设备管理的功能。因为设备接入首先要解决设备上原的问题,设备管理在此步骤里会定义物模型,将设备的无法被数据理解的数据,进行字段化、标准化。这样就能在数据分析的平台模块里进行处理。
2.物联网数据分析平台
下面是数据分析模块本身的内部架构示意图,首先是数据来源于设备数据上云以后的物联网平台上的数据,那么会在物联网数据分析平台的背后提供一些数据管理的能力。
包括数据的清洗,数据的接入,数据的访问控制,还有原数据的管理。那么这些接上物联网数据分析平台以后的数据,就会存在阿里云内部的盘古的分布式存储上,然后基于这些数据,提供了多种多样的分析处理的引擎,包括批处理的场景,会有 max computer;实时处理的场景比如数据管道会有 Flink,如果是交互式查询的场景,会有 holograms;如果是机器学习分析的场景,会有基于开源的 tensor flow 或者其他开源的机器学习组件。数据经过平台计算过后,可以在一些使用的模块进行使用,包括数据可视化的使用,来配置一些分析的报表,还可以通过持续的数据洞察来进行时序的分析,还可以通过数据 API 流转到外部的系统去,供外部系统集成使用。
3.产品使用路径
来介绍一下物联网数据分析平台的整体的使用路径,首先需要数据经过数据采集,数据采集的意义就是将从物联网数据分析平台上有的数据,进行转储到物联网数据分析平台。也就是从接入平台到分析平台,这样的一个转储的过程。转储到数据分析平台了后,可以在上面进行数据分析,洞察任务的开发。数据分析洞察任务可以分为小时任务、天任务或者是其他时间维度。这些分析完的数据会存储在平台上,以存储表的形式存在,可以基于这些存储表来进行一些报表的配置或者是 API 的配置,或者是供用户其他其他场景的使用。
下图是说明了典型的操作路径。首先购买一个数据型的实例,然后在这个数据型实例上创建产品和设备,进行数据的上报,在物联网分析平台上进行数据的备份,备份好的数据可以开发分析洞察任务,开发好初期洞察任务,可以进行周期的调度,或者可以自定义的进行任务的混刷,最后可以进行数据的消费。
二、场景设计
1.概念介绍
平台大概介绍完了,继续介绍今天要介绍的场景,也就是 OEE的场景,OEE 场景在物联网场景的背景和意义在哪里。首先 OEE 是指设备综合效能分析。这是在制造业很常见的用来分析设备的综合效能的指标,它是一个很通用的维度,因为它小,所以可以分析到单台设备的综合效能,如果大一点的话,就可以分析到某条产线的综合效能,更大一点就可以分析到整个工厂的生产的设备的综合效能。
介绍一下 OEE 的意义,这里有 OEE 的整个计算流程的示意图。它的意义中有很多正面的意义,也给大家不再赘述。在这里详细的介绍一下 OEE 的场景下,设备的物模型该如何定义,以及 OEE 场景下指标该如何计算。
下面是用来举例的 OEE 的设备的物模型的定义。其中当前的工作时间是代表,如果设备是每小时上报一次,当前工作时间的单位是秒,那么如果设备这一小时都在开动的话,Current work duration 属性上报值就是3600,订单数量是近一个小时应该处理的订单的数量,当前加工订单数是一个工作周期内真正完成的订单的数量,当前合格工件数是指一个工作周期内完成的合格的工件的数量。
2.指标计算
基于合格的工件数量和总的工件的数量,可以求出来良品率。标准的节拍时间的含义是每生产一个单位的产品需要的时间。为了简化场景,约定一个标准的节拍时间就是一秒。可以了解一下 OEE 的一些计算公式,实际的每天的工作时长是每小时上报的工作时长的加和sum。加工的工件数和合格的工件数类似,都是当天的上报的加工的工件数量和合格的工件数量的加和。实际的节拍是实际总的加工的时间加和除以实际总的加工的订单的数量。设备开通率是实际的工作时长除以计划的工作时长。性能开动率是完成的节拍的数量,比上计划的节拍数量。良品率刚才介绍过,就是用完成的合格的订单数量除以总的订单的数量。设备开动率,性能开动率、良品率三个指标乘起来,就得到了需要的 OEE 这个指标。
三、案例演示
接下来给详细的说明一下,整个场景演示的步骤。
1.业务背景
在这个场景里,先设置里设定的背景的信息。假如有一条产线,这个个产线每天生产八个小时。每天计划的休息时间是上午15分钟,下午15分钟,中间有30分钟的午餐时间。理想节拍是一秒钟生产一个一个工件,然后基于这个背景来进行这个场景的开发。
2.核心步骤
首先介绍一下整个开发的核心的步骤,其实刚才在第一部分介绍的也一样,也就是要先购买数据型实力,创建产品,上报数据,然后进行小时任务,就是刚才每小时的上报的数据的统计。还有天任务统计,需要统计每天的 OOE,需要把每小时的任务进行天纬度的加和,最后把 OEE 计算好的指标配置到报表上,来分析一下 OEE 的应用的场景。
首先需要在购买企业版物联网实例的时候选择数据性实例,然后创建一个产品,用来做 OEE 的数据分析,然后将物模型在这里列出来,就是刚才第二部分介绍过的物模型,其中当前工作时间、订单数量,当前加工订单数,当前合格工件数,标准节拍时间,这都是必要的字段。
模型和设备都定义好了后,需要在物联网的数据分析模块先开启,在数据采集这里先进行实例数据的备份,然后就可以进行设备的数据上报,可以在设备模拟器中进行数据上报,通过设备端的程序来进行数据的上报,然后上报以后的数据会实时的被备份到产品数据表中。
在产品数据表中看到已经上传的数据预览。然后需要进行两个工作,第一是定义小时的分析任务,主要是能计算出来实际工作时长,每小时的实际工作时长,每小时的加工工件数量,每小时的合格工件数量,还有实际节拍。
然后需要开发一个天任务,在天任务中需要计算出来设备开动率与性能,开动率和良品率三个指标,最后需要将这三个指标进行相乘,计算出来最终的 OEE 指标。
计算出 OEE 指标以后,可以在报表里把中间计算的一些结果和最终的 OEE 的结果配在可视化的报表中,然后通过可视化的能力来分析到底影响产线或者是某个设备的生产效率的最重要的影响因素是什么?以此来指导生产过程。在这里列出来的一些比较适合配在报表中的指标,包括加工工件数量的趋势,实际工作时长的趋势,设备开动率的趋势,性能开动率的趋势,良品率的趋势,还有整个 OEE 的趋势,大家在配置自己的报表里可以根据自己的情况,来配置这些指标在报表上。
在这里给大家一个小提示,因为平台上的任务调度是定时调度的,那么每个小时其实是滑动的窗口,这一个小时的调度计算的是最近一个小时的数据的范围,那么如何来表示当前调度时间的时间戳呢?
这里有系统的变量到的 bizDate,这个变量就表示当前调度的时间戳。然后如果想要表示最近一小时的数据,可以通过对其先换算成秒,再换算成小时,再减一就表示上一个小时的整数时间。
然后有小于当前的一个小时的时间,就能是求出来最近一小时的时间范围,在任务的条件中可以这样写:
$event time >= CAST($(bizDate) /1000/ 3600- 1 AS BIGINT)* 3600 * 1000 AND $event time <
CAST($(bizDate) / 1000 / 3600 AS BIGINT) * 3600 * 1000
四、成果展示
先展示一下最终完成的成果的展示图。在这里为了简单起见,只配置了三个指标,分别是性能,开动率,良品率和设备综合效能三个指标。可以看出来从6月20号到6月26号,良品率是一直保持在比较稳定的状态,但是设备性能开动率在26号有比较大的下降,导致了整个设备的综合效能下降,所以从这个图中可以看出来,其实影响设备综合效能的主要的指标,是因为设备性能开动率有所下降。
这是给大家举几个例子,接下来给大家实操一下平台的使用。就是提前已经按照给定好的物模型的指标创建的产品。在创建了产品之后,可以在这里进行数据的上报,上报以后的数据在非数据分析模块中的数据采集模块,可以首先进行实例数据的备份,这里已经是备份状态,所以这里只有停止。
如果设定停止状态的话,这里是备份的资源。首先要保证所在的企业实力的数据是在备份中的状态,备份好的数据可以在产品存储表中看到已经定义好的用来 OEE 演示的产品,其里面其实已经有上报的数据的预览,然后接下来的任务就是通过定义 circle 的分析任务去分析这些原始的指标的数据,来产出最终的 OEE 的指标。
这是分析洞察的工作台,这是已经编辑好的一个小时的样例的任务,在这个任务中可以看一下字段的定义,除了产品的product key,产品设备的名称,还有数据的本身的时间。还输出了几个字段,首先是所在的这一个小时的时间戳,然后还有在这里的场景假设是每小时设备会上报多次。比如设备的当前的生产的订单数量,合格的订单数量,还有工作的时长,因为设备本身会有数据加和的过程,所以需要计算的是这一个小时的过程中,设备最大的上报的数量,这是一个背景的个设定,如果是设备每个节拍上报的不是累计的值,而是这一段时间的一个阶段的值。
大家也可以向 PPT 的公式里面,用sum来表示,这里和数据上报的本身的含义是一致的。经过了这个任务可以看到计算出刚才 PPT 中的几个小时使用的指标,在小时的指标开发完后,可以点这里的发布按钮,把任务发布上线。
SELECT $product key AS product key,$device.name' AS device_name, $event date' AS 、event. date
to_char(to_ timestamp(CAST( $event.time'/ 1000 ! 3600 AS BIGINT) .3600),yyy-4-dd HI24:ml:s') AS analysts date_h'
max( CUR_DONE ORDER,NMBER') AS sum done. order_number_h
max( CURPASS_ORDERJNUMER') AS sum pass. order_number_h'
max( CUR WORK DURATION) AS Sum work. duration_h'
max("QUR WORK. DURATION') / max(COUR DONE LORDERNMBER') AS actual tt"hh'
FROM ${product.gsyfQUNoQkN0}
HERE $event.time >0CAST(${biz Date}:/ 100013600 AS BIGINT) ,3688 * 1000
AND $event. time'《CAST(${biz Date} / 1000/ 3600 48 AS BIGIND,3600* 1000
GROUP BY product. key,device_name ,event_date ,analysis. date_h
发布上线的任务,在任务运维中可以看到它每个小时会定时的执行。定时执行的任务,就会写到定义好的一张自定义存储表中。
大家可以先看一下此任务,这里先把这个任务撤销,让大家看到这个任务写出表的位置,这张结果存储表叫 OEE 测试小时表。
这个是之前在平台上定义的自定义存储表。专门用来存储小时任务输出的数据。当小时任务正常调度了以后,可以看到小时任务的任务输出,可以看到比较正常的时机节拍是1.02秒,可以看到当前每个小时的计划的总的工作时间,实际的工作时间,还有它的良品和它的总的订单的数量。
然后下一步要做的,就是在数据分析平台的任务上开发天任务,因为刚才已经演示了小时任务是怎样的 circle,所以这里不再赘述天任务,这样的话给大家留一些自己发挥的空间。
小时任务和天任务都完成了后,会得到两张表。一张是小时任务的指标表,一张是天任务的指标表。
拿已经开发好的表举例,假如是这张已经通过天任务输出的天任务指标表,看一下里面的数据,这是已经输出好的数据,基于这个数据可以配置可视化报表,来进行 OEE 的数据分析。
大家可以在数据应用的数据可视化的条目里,Table 页中进行一个报表的开发,下面是已经用来在 PPT 里截图的,已经配置好的报表。大家可以看一下,这就是报表里给大家展示的截图用的,这个使用比较简单,只需要在这里选择数据来源于哪张数据表。
来选择二级指标存储表,然后在指标存储表中,选择 X 轴是日维度的时间,在这里是选择日维度的时间,那么Y轴就选择需要分析的指标。比如这里是就得出了三个相关联指标的对比的图形。
在报表中可以很明显的得出来 PPT 中需要分析出的一个结论。