基于IoT数据分析快速构建产线数字孪生
基于IoT数据分析快速构建产线数字孪生
实验内容
华为云IoT数据分析服务基于物联网资产模型,整合IoT数据集成、清洗、存储、分析、可视化,为IoT数据开发者提供一站式服务,降低开发门槛,缩短开发周期,快速实现IoT数据价值变现。
本实验将指导您使用IoTA服务资产模型能力快速构建SMT数字工厂孪生体,并计算得出数字化产线和设备的OEE指标。实验主要包括如下几个部分:
创建SMT产线资产
创建SMT产线下的设备资产
通过设备模拟器上报设备属性数据
通过应用查看设备OEE/关键指标/告警数据
关闭数据上报/回退已创建资产
实验操作步骤
实验准备
创建产品和设备并上报设备数据
进入设备接入控制台,点击快速体验
点击向导式极速体验
自定义产品名称,创建产品。
选择C#语言,下载设备演示包,双击其中的exe文件运行
即可看到开始数据上报。
创建数据源
进入IoT数据分析控制台,页面预览如下图所示。
左侧导航栏选择数据源,进入数据源点击“添加数据源”
创建IoTDA实时数据源,将设备接入上报的设备数据进行在线分析
数据源名称:填写名称如IoT接入数据源
实例:共享实例
产品:勾选刚刚创建的hello
点击确定后提示添加数据源成功
创建数据管道
点击左侧导航栏选择数据管道,点击“创建数据管道”
输入管道信息创建管道作业,点击“确定”进入作业编辑页面。
作业名称:SMT产线设备数据接入
描述:SMT产线设备数据接入作业
选择数据源:IoTDA
进入管道作业编辑页面,系统默认为作业配置了“IoT设备接入数据源“,“产品过滤”,“数据存储输出”
3个算子,如下图所示
点击“hello存储输出”,右侧配置存储组名称中选择默认的”资产模型存储“,在”数据存储名称“中点击添加,输入存储名称”hello1“点击右侧图标,保存配置。
添加”数据计算算子“,右键点击算子图标,弹出菜单中选择”数据计算“算子,如下图所示
算子配置如下图所示:
算子名称:转换时间格式
变量名称:event_time_s
取值:body.services[0].event_time
属性名称:event_time
表达式:TimeFunction.stringToLong(event_time_s)
- 再添加”数据计算算子“,右键点击算子图标,弹出菜单中选择”数据计算“算子,如下图所示
算子的配置如下图所示:
算子名称:增加output和quality属性
变量:
变量名称:event_time
取值:event_time
变量名称:quality_result
取值:body.services[?(@.service_id==‘profile2’)].properties.result
计算配置:
属性名称:body.services[?(@.service_id==‘profile2’)].properties.is_plan_work_period
表达式:TimeFunction.shiftCheck(event_time, “07:00:00”,
“12:00:00”) || TimeFunction.shiftCheck(event_time,
“13:30:00”, “18:00:00”) ||
TimeFunction.shiftCheck(event_time, “19:00:00”,
“23:59:00”)
属性名称:body.services[?(@.service_id==‘profile2’)].properties.quality
表达式:quality_result>=1 && quality_result <= 9 ?1:0
属性名称:body.services[?(@.service_id==‘profile2’)].properties.output
表达式:1
- 再添加“数据过滤”算子,右键点击算子图标,弹出菜单中选择”数据计算“算子,如下图所示
算子配置如下图所示:
算子名称:过滤掉非工作时间段的数据
条件关系: AND
过滤条件
属性:body.services[?(@.service_id==‘profile2’)].properties.is_plan_work_period
计算符号:EQUAL
数值:true
- 在hello存储输出中添加三个属性
属性配置如下
属性名称:isPlanWorkPeriod
属性类型:String
源属性:body.services[?(@.service_id==‘profile2’)].properties.is_plan_work_period
属性名称:Output
属性类型:INTEGER
源属性:body.services[?(@.service_id==‘profile2’)].properties.output
属性名称:Quality
属性类型:INTEGER
源属性:body.services[?(@.service_id==‘profile2’)].properties.quality
- 增加计划工作状态属性,
右键点击IoTDA数据源算子弹出“添加产品过滤”算子图标
产品过滤算子的参数可参考上面的hello1分支进行相同配置
- 增加超时插补算子,右键点击增加“超时插补”算子
算子配置及解释说明如下:
分区键:header.device_id
即使用消息头中的设备ID字段,用于给每个设备插补设备的计划工作状态。
插补时间类型:ABOLUTELY,
绝对类型,即每个周期都会固定插入设备的计划工作状态属性。
插补周期: * * * * * ?
Cron表达式,表示每秒钟都插补设备的计划工作状态。
等待时长 : 0 表示不等待
- 增加“数据计算”算子,用于转换时间格式,配置方法与步骤5相同,
- 增加“数据计算”算子,用于增加增加PlanningWorkStatus属性
配置数据计算算子
算子名称:增加PlanningWorkStatus属性
变量:
变量名称:event_time
取值:event_time
计算配置:
属性名称:PlanningWorkStatus
表达式:TimeFunction.shiftCheck(event_time, “07:00:00”,
“12:00:00”) || TimeFunction.shiftCheck(event_time,
“13:30:00”, “18:00:00”) ||
TimeFunction.shiftCheck(event_time, “19:00:00”,
“23:59:00”)
- 增加数据输出算子,用于将设备计划工作状态数据输出到存储中
算子配置如下:
存储组:资产模型存储
数据存储名称:hello1
设备id来源:header.device_id
属性:
输出属性名称:PlanningWorkStatus
属性类型:String
源属性:PlanningWorkStatus
- 点击右上角保存,并启动作业。
启动成功后,约1分钟左右,作业状态为“运行中”表示作业正常运行。
创建SMT产线和设备资产模型
创建设备模型:印刷机模型,在IoTA
ConsoleIoT数据分析-总览 (huaweicloud.com)中左侧导航栏中选择“资产建模”,“模型”,点击上方“新建”
输入模型名称: smokedetector, 显示名称: “烟雾传感器”,点击“确定”保存。
为传感器增加属性,点击属性信息下方“快速添加”按钮,可从数据存储中快速导入印刷机属性字段,减少手工操作。
在数据存储中下拉选择“hello1”存储名称,勾选所有导入的属性,然后点击“确定”保存。
导入后效果如下
为传感器增加静态类型和分析任务类型的属性,通过界面“手动添加”方式,按照"设备公共性属性列表"的参数进行配置。
设备共性属性列表
属性名称 | 显示名称 | 属性类别 | 数据类型 | 单位 | 备注 |
---|---|---|---|---|---|
PlanningWorkPeriod | 设备计划工作时长 | 分析任务 | double | min | |
ActualWorkPeriod | 设备实际工作时长 | 分析任务 | double | min | |
ProductPeriod | 指定数量产品的理想生产时长 | 分析任务 | double | min | |
PlanningOutputPeriod | 设备理想产品生产时长 | 静态配置 | double | min | 属性值0.06 |
TimeUsage | 时间利用率 | 分析任务 | double | % | |
PerformanceUtilization | 性能利用率 | 分析任务 | double | % | |
QualificationRatio | 合格率 | 分析任务 | double | % | |
OEE | OEE | 分析任务 | double | % | |
TemperatureState | 温度状态 | 分析任务 | string | NA | |
HumidityState | 湿度状态 | 分析任务 | string | NA | |
TemperatureUpLimit | 温度上限 | 静态配置 | double | °C | 属性值为:35 |
TemperatureDownLimit | 温度下限 | 静态配置 | double | °C | 属性值为:25 |
HumidityUpLimit | 湿度上限 | 静态配置 | double | % | 属性值为:63 |
HumidityDownLimit | 湿度下限 | 静态配置 | double | % | 属性值为:45 |
- 为传感器模型增加分析任务,通过界面“添加分析任务”,按照"设备公共分析任务列表"的参数进行配置。
设备共性分析任务列表
任务名称 | 显示名称 | 类型 | 表达式 | 输出 | 引用模型 |
---|---|---|---|---|---|
calc_TimeUsage | 计算时间利用率 | 转换计算 | ActualWorkPeriod/PlanningWorkPeriod*100 | TimeUsage | – |
calc_PerformanceUtilization | 计算性能利用率 | 转换计算 | ProductPeriod/ActualWorkPeriod*100 | PerformanceUtilization | – |
calc_QualificationRatio | 计算产品合格率 | 聚合计算 | TS_Sum(Quality)/TS_Sum(Output)*100 | QualificationRatio | – |
calc_ProductPeriod | 计算实际数量产品的理想生产时长 | 聚合计算 | TS_Sum(Output)*PlanningOutputPeriod | ProductPeriod | – |
calc_PlanningWorkPeriod | 计算计划工作时长 | 聚合计算 | StateTime(PlanningWorkStatus,“true”)/(1000*60) | PlanningWorkPeriod | – |
calc_ActualWorkPeriod | 计算实际工作时长 | 聚合计算 | StateTime(ActualWorkStatus,“Run”)/(1000*60) | ActualWorkPeriod | – |
calc_TemperatureState | 计算温度状态 | 转换计算 | If(Temperature >= TemperatureDownLimit && Temperature <= TemperatureUpLimit, “normal”, “abnormal”) | TemperatureState | – |
calc_HumidityState | 计算湿度状态 | 转换计算 | If(Humidity >= HumidityDownLimit && Humidity <= HumidityUpLimit, “normal”, “abnormal”) | HumidityState | – |
calc_OEE | 计算OEE | 转换计算 | TimeUsage*PerformanceUtilization*QualificationRatio/10000 | OEE | – |
创建完成后如下所示
创建产线模型,点击新建,弹出模型对话框,输入模型名称:“ProductLine”,显示名称:“产线”,点击“确定”。
创建SMT产线资产
创建SMT工厂资产,在左侧导航栏,选择“资产”,点击“新建资产”
输入资产名称:SMTFactoryDemo,显示名称:SMT数字工厂 模型:ProductLine
创建SMT产线资产
点击SMTFactoryDemo资产进入资产编辑页面,右键点击工厂资产,选择“添加子资产”
输入 资产名称:ProductLine01, 显示名称: SMT产线1, 模型:ProductLine,
设备ID:不填
点击“确定”创建完成。
创建完成如下图所示:
创建SMT产线下的设备资产
右键点击厂线资产节点,点击“添加子资产”
输入资产名称 “ProductLine01_LaserMarking01”
显示名称:“产线01_印刷机01”
选择模型:“smokedetector”
输入设备ID:XXXX (参见附录:如何从IoTDA上获取设备ID)
(获取设备ID如下图)
完成所设备资产创建后的效果图如下:
点击右上角的“发布”按钮发布资产
发布成功后进入监控界面,可以看到属性的实时数据更新
点击可以进入时序探索中查看详细的历史数据,更多属性数据可以自行体验查看
附录:如何在IoTDA上查询设备ID
访问设备接入IoTDA服务产品首页,链接如下:https://www.huaweicloud.com/product/iothub.html,单击“立即使用”。
进入设备接入控制台,选择左侧导航栏的“设备”>“所有设备”,在右侧选择需要查看设备对应的产品类型,比如“Mouter1”表示查看所有的贴片机设备。
镭雕机:HDCLaserMarking1
印刷机:Printing1
贴片机:Mounter1
锡膏检测仪:SPI1
AOI光学检测仪:AOI1
回流炉:RefluxFurnace1
选择需要查看的设备,比如选择“ProductLine02_Mounter01”,点击右侧“查看”,进入设备详情页面,如下图所示:
在设备详情页面中,可看到设备ID信息,点击设备ID右侧的复制图标即可完成设备ID的复制。
至此,本实验体验内容完成。请参考后续章节释放资源。
实验资源释放
关闭数据上报/删除创建的产线和设备资产
体验关闭设备模拟器上报数据。
关闭了最开始下载的exe命令提示符,然后过一段时间后会自动停止上报。
进入资产编辑工作台页面,选择上面体验过程中创建的产线资产“ProductLine01”,点击右键选择“删除”。
删除父资产时会自动删除父资产下的所有子资产,即删除产线时会自动删除整个产线和产线下所有设备。
注:删除资产是为了后续重复体验做好准备。
点击右上角的“发布”按钮使之生效。
确认资产是否已删除。
刷新页面,查看监控页签,确认资产模型已删除。
停止数据管道
在左侧导航栏,选择“数据管道”,点击管道进入界面
点击右上角“停止作业”
点击“确认”
停止管道作业成功后,作业处于就绪状态
至此,本次体验全部完成。
- 点赞
- 收藏
- 关注作者
评论(0)