APP下载

基于数字孪生的云边协同3D打印研究*

2022-01-08程云熙万长成

航空制造技术 2021年22期
关键词:云端打印机边缘

郭 亮,程云熙,曾 鸣,万长成

(1. 西南石油大学,成都 610500;2. 工业云制造(四川)创新中心有限公司,成都610041)

云制造是一种面向服务的新型网络化制造模式,其核心思想是利用先进信息技术将“制造资源和能力”封装为“服务”,为各类用户提供按需使用的制造服务[1]。近10余年来,国内外学者针对云制造的研究主要集中在资源虚拟化、优化调度、平台架构等相关方面,形成了覆盖云制造服务全生命周期的研究体系[2],形成了面向航空、模具、汽摩、3D打印等领域[3-6]的云制造架构,建成了私有云、公有云、混合云等云平台模式。

然而,传统云制造模式“一切上云”的思想存在诸多问题,首先,基于云的数据分析与决策带来的高延时等问题难以满足工业的需求;同时,由于带宽限制只能将有限的数据上传至云端进行分析处理,使得本地的海量数据无法得到充分应用;再者,传统云制造模式下的任务调度难以适配现场生成环境动态变化。近年来新一代信息技术,比如数字孪生[7-8]、5G通信[9]、大数据[10]、边缘计算[11]等得到快速发展,推动着云制造系统的演变和进化。云制造正在从单一的云端向云边协同制造范式转变。特别是,引入数字孪生的理念将各种制造设备转变成工业物联网终端,并实时接入到云平台是云制造内涵发展的新趋势。在数字孪生方面,Xu[12]提出了机床4.0(Machine tools 4.0)概念,构建了面向Cyberphysical machine tools(CPMT)的系统开发方法;Liu等[13]和Zhang等[14]分别从不同角度对CPMT框架及技术体系进行了研究;孙元亮等[15]提出了面向数字孪生的智能生产线监控系统;周成等[16]和魏一雄等[17]提出了基于数字孪生的智能生产车间。在云边协同方面,Georgakopoulos等[18]提出了云边协同与物联网技术在制造领域的路线图;Qi等[19]提出基于云边协同的智能制造系统架构;丁凯等[20]提出了基于云边协同的智能工厂物联网架构;满君丰等[21]提出云边协同计算架构下大规模工厂接入的任务调度方法;Yang等[22]提出了利用大数据技术的云边协同框架。

当前已有研究主要分别针对传统制造领域的云边协同和数字孪生构建,但由于传统制造设备数据获取困难、数据结构复杂、制造工艺繁多等原因,难以快速实现大规模的应用。而围绕3D打印设备构建云边协同制造和数字孪生可谓是最有可行性的应用场景。首先,3D打印工艺具有高度的数字化,其设计与制造无缝集成,这种工艺无需传统复杂的工艺设计,更容易实现从设备接入到服务的全流程数字化、网络化。将3D打印机优先布局到云制造系统,为形成基于云的制造生态具有非常重要的引领作用。其次,随着技术成熟,3D打印机的市场需求在增加,同时各类3D打印机部署在企业的数量也在增加。据市场研究公司IDC预计,全球3D打印支出将在2022年达到230亿美元。在这方面,部分学者针对云制造环境下3D打印的云平台构建、供需匹配和调度进行了相关研究[23-25]。Wang等[23]还提出了一种基于云边缘计算的智能增材制造框架。Zhang等[26]则针对当前3D打印的数字孪生研究进行了系统的总结。但是,目前针对3D打印,将云边协同与数字孪生相结合研究较少。为此,本研究以3D打印机为对象,提出了一种基于数字孪生的云边协同3D打印架构,阐述了其关键技术,并通过案例验证其架构的可行性。

基于数字孪生的云边协同3D打印架构

云边协同3D打印架构总体可以分为3层:云端、边缘端和设备端。其中相邻层之间具备双向传输数据的功能。云端是指云计算服务器及其所提供服务,可部署于企业内部云计算中心或第三方云服务提供方,具有很强的算力,与设备端物理距离较远;边缘端是指本地服务器及其所提供服务,可部署于车间、部门或工厂内,其普遍距离接近设备端。设备端在此处特指3D打印机及其附属部件。云端、边缘端和设备端的特点比较如表1所示。基于数字孪生的云边协同3D打印架构体系如图1所示。

图1 基于数字孪生的云边协同3D打印架构Fig.1 Cloud-edge collaborative 3D printing architecture based on digital twin

表1 云端、边缘端和设备端比较Table 1 Comparison of cloud, edge and device

设备端广义上可指所有的工业物联网设备,在这里特指工业物联网3D打印机,其包含3D打印机机械结构、内置控制系统、内置传感器、外置传感器和微程序控制器(Microcontroller unit, MCU)。一般桌面级和工业级打印机通常内置一些传感器以读取机身状态数据,然而由于其内部控制系统不提供数据采集接口、数据采集接口反馈数据有限、内置传感器种类和数量较少等多种原因,有时往往需要额外增加外置传感器以读取更加详细的状态数据;同时由于部分内置控制系统通信能力有限和二次开发困难等原因,需要与MCU扩展以实现更加复杂的功能。

现有很多方案通常采取设备端与云端直接连接以实现设备资源云端化,但是由于云端与设备端物理距离较远、数据传输带宽等限制,导致数据传输实时性较差,数据传输量有限;由于设备端采集和发送数据时往往会因为各种原因导致部分数据无效,而位于设备端的MCU只能进行非常有限的数据筛选,因此很多时候发送给云端的数据中包含大量无效数据,这些无效数据使得本就不乐观的网络状况传输效率更低;再者,设备端的数据往往具有一定的隐秘性,直接上传至云端具有一定的隐私和安全风险。

作为云端在本地的延伸和补充,边缘端向下对设备端传来的数据进行实时处理,再将必要的数据上传至云端,解决了设备端与云端直接通信的传输实时性差、带宽不足和隐私安全等问题。同时,边缘层服务可以集成企业内部ERP和MES等系统和应用,提供更加个性化的服务,以增加企业管理能力和生产效率,降低运行成本。边缘端的设备端接口接受来自3D打印机的传感器监测数据和指令执行结果,调用设备端监控相关微服务,如数据清洗、数据持久化、数据分析等,同时通过设备端接口将控制指令下达至设备端,完成3D打印机的实时监控。单个边缘端通常会同时监测控制多个3D打印机,同时边缘端需要频繁与云端实现数据传输,因此需要消息队列来保证数据的高效传输;同时由于各个接口的频繁使用,因此需要引入负载均衡以保证各个微服务能被合理地调用,此外,数据传输层还需满足实时传输控制指令和实时采集设备端数据等需求;数据处理层包括数据清洗、流数据处理和数据持久化等;数据应用层面向本地用户使用,包括3D打印机的实时监控、历史数据分析及其可视化展示、当前加工进度和加工计划、异常预警处理、熔料不足提示和软件更新等。设备端与边缘端的具体监测和控制流程如下。

(1)MCU接受控制指令,将其处理为内置控制系统可执行的G代码并发送至内置控制系统,内置控制系统对3D打印机机械结构进行控制并返回执行结果至MCU,再经过MCU的处理后上传,完成单次实时控制。

(2)3D打印机机械结构在执行过程中,内置传感器将其采集的数据通过内置控制系统反馈至MCU,同时外置传感器也将其采集的数据直接发送至MCU,MCU接收到传感器数据后将数据序列化并上传,完成单次实时监测。其中,传感器可包含位移传感器、温度传感器、振动传感器等,MCU可采用MQTT、CoAP等协议,通过Wi-Fi、5G、LoRa、NB-IoT等多协议数据接口进行数据传输。

云端广义上为供应商所提供的云计算服务或产品,此处特指涉及3D打印机相关云计算服务,主要包括协同制造服务、云端历史数据相关服务、边缘端软件更新服务和其他增值服务等。本地用户通过边缘端将数据上传至云端,包括且不限于当前3D打印机状态、3D打印机运行过程历史数据、边缘端故障记录和边缘端用户反馈等。云端同时接受来自无数个边缘端所上传的数据,利用云端的算力优势和数据样本数量优势,经过大数据分析、知识图谱、机器学习等相关技术,为用户提供历史数据储存分析、云边协同制造和软件更新等云计算服务。

基于数字孪生的云边协同3D打印关键技术

1 3D打印机数字孪生信息建模

本研究以FDM 3D打印机为例,主要参数包括X、Y、Z轴移动,喷头温度,挤出器和热床等,如图2所示。由于种类和层次较多,需要对其进行建模以方便数据传输。JSON是一种轻量级的数据交换格式,简洁清晰的层次结构使其常用在软件开发领域作为数据交换语言。本研究定义了基于JSON的数字孪生信息模型(Digital twin information model,DTIM),作为设备端向边缘端发送的数据的载体,其主要包含基本信息、状态数据、执行反馈和时间戳4个对象,表述如下:

数字孪生信息模型={基本信息,状态数据,执行反馈,时间戳};

基本信息={设备编号,设备名称,设备类型,设备状态,…};

状态数据={X轴,Y轴,Z轴,挤出头参数,热床,风扇,…};

X轴,Y轴,Z轴={位置,速度,加速度,…}。

执行反馈为系统执行上行G代码的反馈数据,可采用数组的方式存储多条执行结果。时间戳表示当前数据生成的时间,用于后续时序相关处理。

设备端的MCU将采集的3D打印机物理状态数据序列化为JSON格式的DTIM,其格式如图2所示。采取MQTT和CoAP等协议,通过Wi-Fi等方式发送给边缘端,边缘端获取到数据后进行反序列化得到该数据对象,再进行下一步操作。

图2 3D打印机功能参数Fig.2 3D printer functional parameters

2 数字孪生驱动的3D打印可视化监测

为了使3D打印机当前状态实时监测更加易于使用,需对3D打印机状态进行可视化展示,可采用基于WebGL的Three.js和Babylon.js来实现B/S结构的可视化监测,也可采用基于Vulkan、OpenGL、DirectX等的Unity3D引擎实现C/S结构的可视化监测。如图3所示,设备端通过MCU将3D打印机控制系统和外加传感器所采集的实时数据序列化为DTIM并发送至边缘端,边缘端收到数据后将数据进行反序列化,经过一系列数据处理后发送至用户端设备,用户端设备通过上述可视化技术将3D打印机数字模型进行渲染,当来自设备端3D打印机的状态信息更新时,三维模型同步更新。

图3 3D打印机可视化监测流程Fig.3 Process of 3D printer visualization and monitoring

3 数字孪生驱动的3D打印实时控制

控制板是3D打印机底层核心控制硬件,控制系统主要负责解释应用程序或上位机发送的G代码,并控制3D打印机执行命令。目前主流的3D打印机的控制系统有Sprinter、Marlin、Teacup和sailfish等。不同固件对G代码的基本译码过程是相似的,其基本过程如图4所示。边缘端将加工任务转换为G代码后通过MCU发送至指定的设备端3D打印机控制系统,控制系统读取一行代码后监测其指令格式与关键词,随后开始执行,执行结束后返回该行代码执行结果并读取下一行代码。3D打印机所反馈的执行结果传输至MCU和其他传感器数据一起序列化为DTIM,按预设的反馈周期发送至边缘端。

图4 3D打印机控制流程Fig.4 3D printer control process

基于数字孪生的云边协同3D打印案例研究

为验证基于数字孪生的云边协同3D打印架构的可行性,本试验采用一台FDM 3D打印机、一块NodeMCU卡发板和两台PC分别模拟设备端、边缘端和云端。3D打印机通过串口链接边缘端,NodeMCU使用Arduino开发,边缘端和云端使用SpringBoot进行服务器端开发,nginx实现负载均衡,mosquitto作为MQTT消息中间件,基于SpringCloud构建微服务,并使用Docker进行部署。用户端使用PC通过浏览器访问边缘端和云端服务。

3D打印机数字孪生可视化模型构建的步骤主要包括:首先通过三维建模软件构建3D打印机三维模型;其次利用Three.js将3D打印机三维模型导入到Web端;最后,在Web端构建场景、相机和渲染,实现3D打印机三维模型的在线显示。3D打印机数字孪生模型构建流程如图5所示。

图5 3D打印机数字孪生可视化模型构建Fig.5 Modeling of 3D printer digital twin visualization

其中控制指令的发送由sendCode()方法实现,数据监听功能由ContinueRead()方法实现、文件打印功能由文件上传queryAll()方法、文件解析readFile()方法以及文件打印startPrintFile()方法共同实现。控制指令发送与监听功能的流程结构如图6所示。

图6 控制指令发送与监听Fig.6 Control command sending and listening

3D打印机孪生模型和数据监测功能如图7所示。利用按键对3D打印机实体进行单步控制,孪生模型将同步3D打印机的实时动作,可以实时浏览和发送3D打印机控制指令,如在操作面板发送归零指令,3D打印机接收到位移指令“G28 X0 Y0 Z0”,在执行完指令后,将向系统反馈“X:0.00Y:0.00Z:0.00E:0.00 Count X: 0.00Y:0.00Z:0.00 ok”。接收到温度查询指令“M105”,将反馈3D打印机实时的温度数据“ok T:25.9 /0.0 B:26.4 /0.0 T0:25.9 /0.0 @:0 B@:0”。

图7 3D打印机数字孪生模型与实时监控Fig.7 3D printer digital twin model with real-time monitoring and controlling

云边协同3D打印服务流程如图8所示。服务提供方(3D打印机所有方)通过云端发布加工服务,其加工服务状态根据边缘端上传的3D打印机状态数据以实时更新(可用,正在使用,已下架)。服务需求方(需要3D打印加工服务的用户)通过云端发布加工需求,其粒度同发布的加工服务一样,通常也是零件级粒度以上。经过云端的服务分解、需求分解、匹配、优化调度等生成加工方案,待需求方选择。需求方选择并确认加工方案后,云端生成订单,并将加工任务和订单信息发送至边缘端,如图9所示。边缘端收到加工任务,对需求方上传的加工模型进行切片等操作,再将生成的G代码逐条发送至边缘端3D打印机实现实时加工服务。打印机执行G代码后,将G代码执行结果反馈至边缘端,边缘端经过数据处理后将数据发送至用户端浏览器,浏览器中3D打印机模型同步3D打印机实体状态。当打印机处于正在加工状态时,边缘端将状态信息反馈至云端,云端状态切换为“正在使用”后,云端下达给服务提供方的后续加工任务优先选择其他空闲3D打印机。完成加工后,将完成信息返回至云端,同时再次更新当前为“可用”。待服务需求方在云端收到来自服务提供方的确认后,完成此次加工服务。因此通过云-边-设备端相互连接,可实现基于数字孪生的云边协同3D打印。

图8 云边协同3D打印服务Fig.8 Cloud-edge collaborative 3D printing service

图9 云端下达加工任务至边缘端Fig.9 Tasks are sent from cloud to edge

如图10所示,边缘端将文件解析成G代码控制指令,逐条发送给3D打印机进行在线打印。打印机执行G代码后,将G代码执行结果反馈至边缘端,边缘端经过数据处理后将数据发送至用户端浏览器,浏览器中3D打印机模型同步3D打印机实体状态。

图10 云边协同控制3D打印机执行加工任务Fig.10 Cloud-edge collaborative control of 3D printers for machining tasks

结论

本研究选用3D打印机作为研究对象,提出了一种基于数字孪生的云边协同3D打印架构。定义了3D打印机数字孪生信息模型,阐述了数字孪生驱动的3D打印的关键技术。在案例中,所构建的边缘平台基于Three.js实现了数字孪生可视化实时监测控制,3D打印云制造平台实现了云边协同服务,验证了基于数字孪生的云边协同3D打印架构的有效性,为后续云制造的落地提供了技术支撑。下一步,团队将针对以下两点进一步研究。

(1)利用OPC-UA和MTConnect,将更多加工设备接入至边缘端,并构建其数字孪生生产线。

(2)融合多种典型制造设备,构建基于数字孪生的云边协同生产线系统。

猜你喜欢

云端打印机边缘
四海心连·云端汇聚
新奇有趣的打印机
在云端永生
云端之城
一张图看懂边缘计算
另类3D打印机
FDM型混色3D打印机的设计
在云端
在边缘寻找自我
走在边缘