方 圆,刘 江,吕瑞强,王明阳
(1.中国航空制造技术研究院,北京 100024;2.北京科技大学机械工程学院,北京 100083)
近年来,随着网络技术和信息技术的迅速发展,数字化技术已深入到制造业各个领域,由此形成的智能制造概念也成为了战略制高点。在《中国制造2025》中也明确指出在重点领域试点建设智能工厂/数字化车间的计划。在智能制造的实践过程中,始终面临一个瓶颈问题:信息空间与物理空间如何交互与融合的问题,为此提出了数字孪生(Digital Twin,DT)的解决方法[1]。
数字孪生的概念最早诞生于2003年,由美国密歇根大学的Grieves 教授在讲授产品全生命周期管理课程(PLM)时提出来[2]。数字孪生是以数字化方式创建物理实体的虚拟模型,借助数据模拟物理实体在现实环境中的行为,通过虚实交互反馈、数据融合分析、决策迭代优化等手段,为物理实体增加或扩展新的能力[3]。
在由数字孪生理论所进行的实际应用探索方面,国内学者进行了众多的试验。陈振等[4]对物理装配车间数据的实时感知与采集、虚拟装配车间建模与仿真运行等关键技术进行了研究,提出了飞机数字孪生装配车间架构,但只是在理论层面探索了数字孪生技术在飞机装配车间中的应用模式,未进行实际应用功能的开发。鲁壮等[5]开发了车间多机床实时监测系统并进行了实际测试,能有效采集多机床实时加工数据,但由于系统是二维监控界面,不能将机床与车间信息情况可视化。赵浩然等[6]提出了一种基于实时信息的生产车间三维可视化监控方法,设计出基于实时信息的生产车间三维可视化监控方法并开发出原型系统,但该系统人机交互功能不强,系统功能较为单一。姜康等[7]构建了数字化车间的虚拟监控系统,实现了车间信息的可视化与实时人机交互,但他们只是对生产线的生产信息进行展示,对于具体设备的实时运动状态未进行实时仿真,且数字化程度不高。文国军等[8]设计了基于Unity3D的水平定向钻机虚拟实训系统,具有良好的可操作性,提高了培训效率,但该系统只能进行人员单向地控制模型,未实现模型的实时仿真与信息显示的功能。周光源等[9]设计开发了生产车间可视化实时监控平台,能对生产过程进行实时动态监控,在实时数据的驱动下监测运行状态,但他们在模型实时仿真方面未进行深入研究。
因此,提升加工设备数字化水平和对仿真分析功能进行深入研究成为需要解决的问题。针对设备实际运行过程中数据无法有效获取和显示、缺乏有效的人机交互手段来实现规范化和提高效率等实际问题,首先需要对加工设备进行建模处理工作,这是实现设备模型可视化功能和提升加工设备数字化水平的基础。研究仿真分析功能可以在产品生产之前,就能通过虚拟生产的方式来模拟在不同条件下的生产过程,实现对产能、效率以及可能出现的生产问题的提前预判,而实时仿真可以细致地显示加工状态以及为之后的设备检测维护提供数据支持。数字孪生技术是以虚拟模型为核心,以数据为驱动,可以在虚拟模型上进行仿真分析和实时反映设备的运行状态,实现虚实融合。
本文基于数字孪生理论,采用构建实际物体的数字孪生体的方式来对设备进行映射,提出了一种加工设备加工过程可视化与仿真分析技术方案,该方案包括虚拟模型与场景搭建、NC程序解析与仿真、现场设备与模型间数据传输、整合生产信息并显示等步骤。设备与软件建立通讯后以实时数据驱动虚拟模型运动实现设备实时运行状态的三维可视化,生产信息的整合和展示功能,再以数据为支撑来进行设备运行状态和加工质量的分析和优化。最终实现NC程序解析与模型仿真功能、产线设备运行状态在线监测功能信息显示、设备实时三维仿真、NC程序解析仿真功能。
生产线及设备可视化与仿真分析技术分为产线级孪生和设备级孪生两大部分,有用户界面功能和场景交互功能。在数据通信方面,技术方案可以连接服务器端的实时数据库或者连接现场的工控机获取实时数据和控制。技术方案的设计步骤可分为以下4步:(1)对生产线中的各个设备进行建模;(2)模型前处理,包括在模型优化软件中对模型的坐标系、尺寸等进行处理和渲染优化;(3)在软件开发平台中进行仿真程序功能开发;(4)建立硬件通信连接与搭建软件测试平台。
总体框架架构如图1所示。硬件部分包括实际生产线、数据库服务器、显示客户端。生产线上的数据由采集系统提取,将各类传感器采集的外部数据和设备PLC提供的内部数据上传到生产线服务器端的实时数据库中,在数据库中进行识别、分类和存储[10],最终由客户端连接数据库提取数据并提供生产信息实时显示数据管理,模型实时仿真,交互查询动态图表显示等功能。
系统技术架构如图2所示。系统的3D模型在建模软件中构建,经过模型优化软件中处理加工后导入系统开发工具中;生产线的实时数据库提供生产数据如主轴转速、功率、温度、各轴速度及位置数据等;由关系型数据库(如MYSQL 数据库)对产线的数据进行存储和分析;由运动控制等众多脚本进行数据驱动模型的运动功能和其他功能设计。
装配生产线设备仿真分析功能分为NC程序解析与加工仿真功能、连接工控机与实时仿真功能和运动数据分析与图表展示功能3 部分。其中由NC程序解析的数据所驱动的加工仿真功能为执行机构运动的几何轨迹仿真,暂未考虑动力学仿真。为实现设备的模拟仿真和实时仿真功能,需要对设备的各个运动部位进行细致划分和联合运动控制,利用开发工具的辅助功能实现各个运动部位的独立运动。
在未执行要加工的NC程序之前,设备模型在系统中需进行NC程序解析,模型执行解析后的数据驱动模型运动从而实现预加工仿真功能。用户选择好NC程序文件后模型各部件会按照NC程序中指定的路径和速度运动,实现完整的预加工仿真过程。预加工仿真中涉及的关键技术包括NC代码解析、模型驱动和碰撞检测。
2.1.1 NC代码解析
NC代码解析脚本程序在系统开发工具所支持的开发环境中进行,程序开发语言也随着开发工具的不同而改变。在NC程序解析的脚本中使用微软正则模板类库,这是微软研究院推出的一个正则表达式模板类库,其中主要的正则表达式通常被用来检索、替换符合某个模式(规则)的文本。
图1 总体框架架构Fig.1 Overall functional architecture of system
其利用基于数控代码的文法规则建立起来的正则表达式,构建关键字符集,完成数控代码的语义分析的匹配工作。该解析工作需要构建关键字符表来对字符(NC 数控代码)完成匹配,并且使用正则表达式格式存储各关键字符。语义分析中关键字符表具体如下:
按照设置好的关键字符集对当前读取到的该行数控代码进行逐字符匹配,如匹配到相应的字符,对其字符后的数据进行记录和存储。
设置键值对集合Dictionary 存储每一行数控代码解析出来的各轴位置速度数据、计算得到的时间、钻头开始运动代码段等数据类型,其中的键为当前数据在NC代码中的程序行号N,值为存储的数据,如图3所示。
图2 系统技术架构Fig.2 System technical architecture
图3 键值对Dictionary存储解析数据类型Fig.3 Parsed data type for Dictionary stores
2.1.2 模型驱动
选取合适的运动控制脚本将物体开始与结束位置变量和运动时间转化为模型移动或旋转,从而达到驱动模型的目的。使用解析数据驱动模型运动时,将Dictionary 中存储的值赋给运动控制脚本中的移动最终位置变量,再获取上一步位置与此次位置的距离,从代码中读取的速度设定值F存入F_value 中,便可计算出运动时间,计算公式如下:
式中,S为起点与终点间距离;x1,x2,y1,y2,z1,z2为各轴起点与终点位置坐标;Ti为起点到终点的时间;fi为从起点到终点的速度F_value值。
将Ti中求得的时间赋给运动控制脚本中的时间变量,即可实现该段NC代码所对应的模型运动动画效果。运用开发工具中的多线程技术实现NC程序中一行代码的各个轴同时运动,逐行执行NC代码。设备模型即会按照NC程序顺序执行实现设定的运动。
2.1.3 碰撞检测
在虚拟模型层面运用物理引擎(如PhysX 物理引擎)检测物体的接触情况。物理引擎通过内置的算法可以使虚拟世界中的物体运动符合真实世界的物理定律,如重力作用、碰撞效果等,应用物理引擎可实现设备刀具与工件的碰撞检测功能。
在设备的刀具和工件部分添加网格渲染器(Mesh renderer)和网格包围盒组件(Mesh Collider),物理引擎组件能以模型自带的三角面网格形成包围盒,利用两个包围盒接触时触发碰撞报警功能,实现碰撞检测。图4中模型绿色线条为碰撞体包围盒结构,在模型对象中添加检测碰撞的代码脚本,当两个运动部件接触时会触发碰撞警告提示框。
为实现实时仿真效果,需要从设备处获取实时运动数据并传输到客户端进行解析和驱动仿真。客户端可与设备的工控机软件建立通信连接从而获取数据,通过现场PC的工控机软件的IP 地址和端口号,客户端与工控机软件建立连接。建立通信连接与数据传输的过程如下:(1)客户端软件与现场设备工控机软件通过IP地址与端口号建立通信连接;(2)在客户端脚本中创建通信句柄(Handle),上位机(即设备工控机软件)把数据传给句柄;(3)句柄将数据赋值给下位机(即客户端程序),再将数据赋值给运动控制脚本驱动模型各部分的运动,整个过程在脚本的自动更新函数中执行,自动更新函数会每20ms 自动刷新一次,从而保证每20ms 机床的实时运动状态能被客户端的模型仿真出来,最终实现孪生模型对机床的实时仿真功能,连接与传输数据流程图如图5所示。
在从现场工控机获取到实时数据的同时,还可以将实时数据赋值给图表显示插件(如二维图形显示插件GraphMaker),通过更改插件脚本将实时数据显示为折线图的Y轴坐标,以时间戳变化为X轴坐标,图表刷新时间设定为1s,最终形成设备数据二维折线图的动态监测效果。
在绘制好实时数据折线图后,通过匹配当前执行的程序段号得到NC代码中的编程值,并将其绘制在实时折线图的同一图表上,如图6所示。通过该对比两折线图可以直观地观察到运动误差,便于加工精度评估,运动补偿控制等。
图4 模型碰撞体包围盒Fig.4 Model collider bounding box
图5 ADS通信连接与传输数据流程图Fig.5 Flow chart of ADS communication connection and transfer data
为记录和传输历史加工数据,可采用数据库数据传输支持的文件格式存储历史加工数据。JSON 格式是一种较为通用的轻量级的数据交换格式,具有便捷的数据访问途径和非冗长性特点,因此本文采用JSON 格式进行加工数据传输和存储。首先定义要生成的加工数据文件存储位置,然后确定采集时间区段,最终按照预设的通信句柄连接并获取现场工控机软件中的时间戳、当前执行程序段号、各个轴位置速度、主轴转速、功率等信息生成一个加工数据文件。将生成的加工数据文件导入数据库(如MySQL)中可显示出表结构数据,如图7所示。生成的历史加工数据可在现场通信条件不佳的情况下通过外部存储设备进行拷贝和异地分析。
由于本次外涵道生产线数字孪生课题是在完善实际外涵机匣生产线的可视化和生产信息数据化功能的基础上所提出,因此实际的操作平台为该条飞机发动机外涵道机匣生产线,其中包含6个站位,分别为1站位自动切边制排孔、2站位手工预装、3站位自动制孔、4站位手工预装、5站位自动铆接和6站位无损检测;其中2、4站位为人工站位,5、6站位为机器人站位,4个自动站位都安装有德国倍福自动化公司(BECKHOFF)的基于PC的工业控制软件TwinCAT(The windows control and automation technology)实现设备控制与数据传输。TwinCAT 在整个系统中扮演双重角色:一是接收用户输入的指令,经过解码转换为机器能识别的指令,进而控制机床的运动;二是以—定的周期读取机床的状态并反馈给用户。
选择Unity3D 引擎开发生产线及设备仿真分析系统,Unity3D 是一个全面整合的专业游戏引擎,利用交互的图形化开发环境为首要方式的软件。系统代码部分采用微软公司的VS(Visual studio)集成开发环境进行开发,开发语言为C#语言。Unity3D 与TwinCAT之间的数据通信通过ADS (Automation device specification)通信协议进行。在TwinCAT 系统中的各个软件模块之间的信息交换通过TwinCAT ADS 完成。系统仿真所使用的模型来自实际设备的设计三维模型,能精确地反映真实设备的尺寸、安装位置等数据。
图6 NC指令与实时数据对比显示界面功能Fig.6 Comparison display interface of NC commands and real-time data
图7 数据库中显示存储的现场数据Fig.7 Stored factory data in database
在实际生产中,生产线上的各个站位的生产状态信息都需要进行监控,为了能直观、全面地展示整条生产线上所有设备的实时信息,系统的生产线界面内整合了全部站位的设备模型、用户界面和信息显示窗口。最终实现各设备实时信息三维显示,具体设备孪生界面切换功能。生产线界面如图8所示,采用现场设备照片作为贴图,使得模型与现场设备更加逼真,增加使用者的沉浸感,设备仿真界面如图9所示。
系统的主要测试指标为系统各部分功能的完整性、系统画面的流畅度、系统的人机交互性和系统与现场设备通信的同步性。测试结果表明,系统的生产线孪生界面与设备孪生界面功能均达到预期效果,三维视角查看模式下,画面流畅,模型运动画面平滑无停顿感,模型界面能响应用户键鼠指令,人机交互性较强,连接现场设备进行实时仿真时的数据传输间隔为20ms,模型与实际机床运行步调一致,通信同步性良好,系统稳定,如图10所示。
图8 外涵道机匣装配生产线孪生界面Fig.8 Digital twin interface of outer duct casing assembly line
图9 自动钻孔设备孪生界面Fig.9 Digital twin interface of automatic drilling equipment
图10 自动钻孔机导入NC文件并运行仿真界面Fig.10 Interface of automatic drilling machine importing NC file and running
本文针对典型航空产品装配生产线的生产过程中可视化程度低、人机交互性差等问题,以数字孪生技术为理论指导,实现了加工设备可视化与仿真分析技术的方案构建,并以实际飞机发动机外涵道机匣生产线为对象,采用Unity3D 开发引擎设计了数字孪生设备加工仿真系统,分别开发生产线孪生界面和设备孪生界面,验证了所提出的加工设备可视化与仿真分析技术的可行性,最终实现了生产线状态信息显示与交互、设备NC程序解析仿真、设备实时仿真的功能,为之后的设备加工数据分析和优化、提高设备加工精度和效率、提升生产线的智能化水平提供了平台。