APP下载

一种基于Unity 3D的生产线跨平台虚拟调试系统设计方法

2022-05-13王佩玉陈振中

关键词:工件生产线调试

王佩玉,陈振中

(东华大学 机械工程学院,上海 201620)

近年来,在物联网、大数据、人工智能等新技术被广泛应用于制造业的背景下,制造系统集成式创新不断发展,基于虚拟调试技术对制造系统的有效监督和控制,逐渐成为国内外技术人员研究的热点[1-4]。Lechler等[5]概述了虚拟调试的科学方法以及应用实例;Vermaak等[6]通过虚拟调试优化了可重构装配系统;Metzner等[7]将虚拟调试的适用性进一步扩展到员工或客户培训、混合系统分析和安全验证等领域;郑魁敬等[8]将虚拟调试技术应用到工业机器人磨削系统;禹鑫燚等[9]研究了面向智能制造加工的虚拟调试技术;王春晓[10]将虚拟调试应用到数控机床领域。

目前国外的虚拟调试技术较为成熟,Tecnomatix公司开发的一款用于虚拟调试解决方案的软件Process Designer &Process Simulate,可以在虚拟环境中调试自动化控制逻辑和PLC(programmable logic controller)代码,支持与西门子虚拟PLC通信,但与其他平台的虚拟PLC存在通信瓶颈。Emulate3D公司开发的Demo3D仿真软件,可以通过其PLC虚拟电控技术,展示PLC控制逻辑,更专注于物流运动过程中的调试与仿真,却难以实现该软件与工业机器人的交互。基于西门子PLM(product lifecycle management)工业软件NX所集成的机电一体化概念设计系统MCD(mechatronics concept designer),侧重于对机械设计结构的合理性以及控制程序正确性的分析,并可结合西门子博途软件平台进行虚拟调试验证,但难以与其他平台的软件进行联合调试。

上述虚拟调试软件所偏向的领域各有差别,难以满足与自动化系统中不同平台虚拟控制器交互的需要,也难以实现与工业机器人的一体化虚拟调试。因此,本文提出一种基于Unity 3D引擎的跨平台虚拟调试系统设计方法,在Unity 3D中建立工业设备模型库,并通过脚本实现设备的动作。利用D-H(Denavit-Hartenberg)参数法对安川MH-12工业机器人进行数学分析,完成了机器人的虚拟建模和运动控制。基于Visual Studio 2017平台,采用C#语言开发了交互控制软件,并利用TCP/IP(transmission control protocol /internet protocol)协议下的Socket通信实现了三菱虚拟PLC与Unity 3D的数据交互。通过生产线调试验证系统设计的有效性。

1 虚拟调试系统总框架

在自动化生产线上,需要PLC、工业机器人、工控设备等协同工作,一方面需要在虚拟调试系统中构建虚拟模型,另一方面要实现控制器I/O(input/output)信号的交互。虚拟模型采用SolidWorks软件建模,经过3ds Max进行处理后,可导入Unity 3D进行开发;控制器的I/O信号由虚拟PLC模拟,并通过开发的交互控制软件与Unity 3D的数据实现交互。虚拟调试系统的总体框架如图1所示。

图1 虚拟调试系统总体框架Fig.1 General framework of virtual commissioning system

由图1可知,虚拟调试系统主要由通信模块、工业设备模型库、工业机器人模块、用户界面、搭建虚拟生产线组成。通信模块主要负责虚拟PLC的I/O信息与Unity 3D交互;工业设备模型库包含传感器、电机、输送带等自动化生产线中常用的设备;工业机器人模块首先对工业机器人进行数学分析,其次完成虚拟工业机器人的建模,最后编写脚本实现机器人的运动并设计机器人的控制界面;用户界面的设计旨在提升虚拟系统的用户体验,主要包括登录界面和主界面;通过搭建虚拟生产线以完成调试任务。

2 虚拟调试系统设计

2.1 数据交互

基于.NET框架并采用C#语言在Visual Studio 2017平台中开发交互控制软件,利用TCP/IP协议下的Socket通信,以交互控制软件为服务端和Unity 3D为客户端,建立服务端与客户端之间的连接,进行数据信息的交互。

采用C#命名空间System.Net.Sockets中的Socket类来接收和发送数据,完成交互控制软件与Unity 3D的通信,数据交互程序时序流程如图2所示。由图2可知:交互控制软件作为服务端,首先创建负责监听的Socket,并通过Bind函数绑定IP地址和端口号,然后通过Listen函数开启监听,等待客户端的连接请求;Unity 3D客户端创建负责通信的Socket,IP地址和端口号与服务端保持一致,通过Connect函数向服务端发送连接请求,此时服务端响应客户端的Socket请求,通过Accept函数与客户端建立连接,用于传输数据信息。

图2 数据交互程序时序图Fig.2 Program timing of data interaction

选择在Visual Studio平台上采用C#语言开发交互控制软件,Visual Studio是目前应用广泛的Windows平台应用程序的集成开发环境,拥有完善的开发工具集以及软件开发生命周期中所需要的大部分工具,软件设计主要包括登录验证、主界面、调试功能以及通信设置共4个模块。

2.2 工业设备模型库

工业设备模型库包含传感器、电机、输送带等自动化生产线中常用的设备,生产线上的设备采用SolidWorks绘制,并需要转化为Unity 3D支持的fbx文件。Unity 3D支持多种语言作为脚本语言,目前C#语言的使用最为广泛,并且开发得最为完善,因此采用C#语言对模型脚本进行开发[11]。通过编写C#脚本并将其挂载到设备模型上,实现虚拟设备的执行动作,然后建立执行机构的动作与PLC信息的映射关系,在项目运行期间即可实现所需的功能。

以输送机为例,首先在SolidWorks中建立其三维模型,并通过3ds Max处理,在不影响整体效果的前提下,尽量减少模型的面数,删除看不见的面或重叠的面以提高系统仿真的流畅性[12],然后将模型保存为fbx文件并导入到Unity 3D中。输送机模型如图3所示。在自动化生产上往往需要重复使用一些工业设备,为了提高开发效率以及方便模型管理,可以采用Unity 3D中的预制体(Perfab)来辅助开发。在Assets目录下创建预制体库,将制作好的预制体放入,调用Instantiate()方法即可生成生产线所需要的设备。输送机的输送动作采用表面贴图的方式实现,使其发生偏移,视觉上产生转动的效果[13]。

图3 输送机模型Fig.3 Conveyor model

2.3 工业机器人模块

以安川MH-12工业机器人为研究对象,利用D-H参数法建立连杆坐标系[14]。连杆坐标系如图4所示,其中,a1=155 mm,a2=614 mm,a3=200 mm,d4=640 mm,连杆参数如表1所示。连杆的参数定义如下:

表1 MH-12机器人的连杆参数Table 1 Link parameters of MH-12 robot

图4 MH-12机器人连杆坐标系Fig.4 Link-pole coordinate of MH-12 robot

ai为沿Xi轴从Zi移动到Zi+1的距离;

αi为绕Xi轴从Zi旋转到Zi+1的角度;

di为沿Zi轴从Xi-1移动到Xi的距离;

θi为绕Zi轴从Xi-1旋转到Xi的角度。

虚拟工业机器人的建模需要通过模型树来实现,采用建立空对象的方法,将工业机器人的模型关节作为空对象的子物体,并将空对象的坐标系方向和位置与关节模型保持一致[15]。根据D-H参数来设置工业机器人模型的Transform数值,最终建立起正确的模型父子关系。虚拟工业机器人的模型如图5所示。

图5 虚拟工业机器人模型Fig.5 Virtual industrial robot model

虚拟工业机器人的6个关节轴需要用按键或者以滑动条滑动的方式单独调节转动,使机器人运动到指定的关节角度。基于Unity 3D的图形用户界面系统(UGUI)进行机器人控制界面的设计。在UGUI中所有控件都会成为画图(Canvas)的子对象,并且每一个控件都会包含一个Rect Transform组件,该组件继承自Transform类,可用于控制UI(user interface)元素的Transform信息。机器人控制界面的设计主要使用UGUI下的Button控件,并在Inspect面板上绑定C#编写的脚本代码,以响应Button的触发。机器人控制界面如图6所示。机器人的运动控制主要通过transform.Rotate()函数来实现,末端的位姿信息通过transform.position()以及transform.eulerAngles()函数实现。

图6 机器人控制界面Fig.6 Robot control interface

2.4 虚拟调试系统交互界面设计

在满足系统功能的前提下,设计虚拟调试系统的交互界面,以提升系统的用户体验,是系统开发的重要环节[16]。基于Unity 3D中的开源图形界面系统,设计虚拟调试系统的登录界面和主界面。

登录界面主要使用InputField控件,Placehoulder和Text是InputFiled子对象,Placehoulder用于显示默认提示信息的文本框,Text用来显示用户输入的文本框,用户需要输入正确的用户名和密码才能够登录系统,当用户输入错误的账号和密码进行登录时系统会提示登录失败的信息。主界面主要使用 Button控件,用户通过主界面选择目标场景并进行后续的操作。

3 虚拟调试

本文选用三菱虚拟PLC,采用三菱官方MX Component组件,实现虚拟PLC与PC机的通信。MX Component组件是三菱官方用于PC与PLC进行通信的组件,握手通信方式简洁并且兼容多种高级语言。在应用MX Component时,首先将设置界面上的PC side I/F项选择为GX Simulator 2项,Target Simulator项选择为Simulator A,CPU Series项用户可自主选用,然后在Target setting选择中设置逻辑站号,最后通过Connect test项进行通信检测,当通信建立成功后可以看到连接成功的提示。

基于开发的交互控制软件,实现三菱GXWorks 2与Unity 3D的通信连接,完成虚拟调试,具体流程如图7所示。由图7可知,首先打开GXWorks 2编写控制程序,进入模拟状态,然后打开MX Component设置通信并测试,最后启动交互控制软件,实现三菱GXWorks 2与Unity 3D的通信连接,进行生产线的虚拟调试。若按照预期的程序运动,则结束调试,否则检查并修改程序,继续调试。

图7 虚拟调试流程图Fig.7 Flow chart of virtual commissioning

生产线的总体布局如图8所示。由图8可知,生产线主要包括加工中心(CNC)、安川MH-12工业机器人(RB)、板链机、输送机以及外围的围栏和DX200控制柜等设备。其中,板链机负责传送待加工工件,加工中心对工件进行加工,输送机输送工件,安川MH-12工业机器人固定在地面的底座上,其主要功能是从板链机上夹持待加工的工件到加工中心,等加工中心完成工件加工后,再将工件夹持至输送机输送。

图8 生产线总体布局图Fig.8 General layout of production line

生产线的功能流程如图9所示。由图9可知:程序开始时执行检测各设备是否处于原点状态,如果处于原点状态,板链机开始输送工件至抓取位置并进入等待状态;当传感器检测到工件到达抓取位置后,RB从板链机抓取工件至CNC,CNC开始启动加工;RB继续从板链机抓取工件,并等待CNC加工完成后将已加工工件取下,再将待加工工件放入,CNC继续加工;RB将已加工的工件放入输送机,输送机进行工件输送,完成一个加工流程。

图9 生产线功能流程图Fig.9 Flow chart of production line function

基于跨平台虚拟调试系统的设计,完成生产线的虚拟调试工作,部分调试过程如图10所示,并最终确定虚拟控制器软元件与机器人输入输出的握手信号关系,如表2所示。

表2 握手信号Table 2 Handshake signals

图10 虚拟调试部分过程Fig.10 Partial processes of virtual commissioning

在虚拟调试过程中,通过观察系统中工业机器人以及其他工业设备的工作状态,验证了PLC程序的正确性,并确定虚拟控制器输入输出与机器人输入输出的握手信号关系,提前解决了实际调试过程中可能存在的问题,提高了自动化生产线项目的整体效率。

4 结 语

本文基于Unity 3D开发的跨平台生产线虚拟调试系统,有效实现了三菱虚拟PLC与安川MH-12工业机器人、传感器等虚拟设备的信号交互,完成了自动化生产线的虚拟调试。在 C#窗体应用程序中开发了交互控制软件,实现了三菱虚拟PLC与Unity 3D的数据交互。对工业设备完成了虚拟建模和功能定义,建立了工业设备模型库,用户可通过简单的拖拽式操作,完成生产线的搭建。此外,针对安川MH-12工业机器人进行数学分析,设计控制界面并实现了虚拟仿真功能。为提高用户的系统体验感,设计了虚拟调试系统的人机交互界面。本文仅对三菱虚拟PLC和安川MH-12工业机器人进行了研究,基于Unity 3D开发的跨平台调试系统,可以集成其他平台的虚拟PLC以及工业机器人,对于研究其他平台的虚拟控制器以及工业机器人具有一定的实用意义和参考价值,为实现不同平台虚拟控制器与工业机器人的自动化生产线调试提供了一种新思路。

猜你喜欢

工件生产线调试
1年完善7条专业生产线,欣康药业高质量通过新版兽药GMP验收
Fanuc协作机器人在自动化装配生产线上的应用
带服务器的具有固定序列的平行专用机排序
带冲突约束两台平行专用机排序的一个改进算法
上GMP生产线!原料产能翻番!这家玩了18年“菌”的江苏企业又有什么大动作?
工业机器人视觉引导抓取工件的研究
高温气冷堆示范工程TSI系统安装及调试
两台等级平行机上部分处理时间已知的半在线调度∗
电气仪表自动化安装与调试分析
调试新设备