面向大型工件的拖动示教自动喷涂系统开发
2023-03-01陈集滨刘建群梁学胜高伟强许东伟
陈集滨,刘建群,梁学胜,高伟强,许东伟
(1.广东工业大学机电工程学院,广东广州 510006;2.佛山智昂科技有限公司,广东佛山 528225)
0 前言
大型工件的喷涂作业,由于工件体积和质量较大,固定后难以进行位置调整,相比于其他常规工件,在实现自动化喷涂方面比较困难。特别地,对于一些中小型企业,其生产的大型工件,如大型卫浴产品、家具以及设备零件等,更多是采用人工喷涂的方式[1]。这种方式不仅劳动强度大、工作环境恶劣,会严重影响工人的身体健康,同时,喷涂出来的产品质量也难以保证。
针对自动化喷涂技术的研究,在国外,美国洛克希德·马丁公司针对F-35战斗机机身研制了专门的机器人喷涂系统[2];意大利Rina Vincenzo公司针对大型船舶外表面研制了以高架车作为移动平台的喷涂系统[3];FREITAS等[4]针对水力涡轮机叶片的表面设计了一款喷涂机器人。而在国内,赵耀松[5]针对大型工件的自动喷涂控制系统进行了一定的研究,并开发出一套喷涂装备样机;尹志勇[6]针对汽车涂装生产线的柔性化关键技术进行研究,并开发相应的涂装设备;於立杰等[7]针对大型风力机叶片进行喷涂轨迹规划,并设计了一套优化喷涂方案。总体而言,国内外针对大型工件自动喷涂技术的研究,主要集中在飞机、轮船和汽车等特定产品的自动喷涂上,服务于大型企业,而针对中小型企业生产的较大型工件,其自动化喷涂技术的相关研究还比较少。
本文作者针对中小型企业普遍采用人工方式进行大型工件的喷涂作业、自动化程度较低这一问题,基于EtherCAT技术,设计出一套六轴拖动示教喷涂机器人控制系统,实现机器人的喷涂示教和轨迹再现功能;并在此基础上,采用双喷涂机器人与移动架车共同作业的方式,开发出一套更为通用的拖动示教自动喷涂系统;最后,根据某中小型企业的需求,搭建出一个针对大型浴缸的自动喷涂系统,验证所设计系统的可行性,实现用小型机器人喷涂大型工件的目的。
1 自动喷涂系统整体方案设计
基于自主设计的六轴拖动示教喷涂机器人控制系统,采用“双机器人+移动架车”的形式,设计出一套面向大型工件的拖动示教自动喷涂系统。
自动喷涂系统硬件布局如图1所示。针对大型工件在喷涂过程中不易移动的问题,文中设计将待喷涂工件固定在装有齿条的移动架车上,在喷涂过程中,系统一边控制伺服电机驱动架车前行,一边由两台喷涂机器人对工件进行喷涂作业。
图1 自动喷涂系统硬件布局Fig.1 Automatic spraying system hardware layout
图1中,架车底部装有齿条和两对钢轮,钢轮与导轨接触,可通过架车上的异步电机驱动架车沿导轨进入自动喷涂系统。架车进场后停靠,操作员控制架车齿条前端越过离合装置A中轴线,且不能越过行程开关A,即架车前沿应停靠在图1中的“架车前沿停靠区域”中。停靠完成后,操作员按下“喷涂”按钮,系统进入喷涂模式,并启动离合装置A和离合装置B,此时,喷涂系统的伺服电机A的输出动力可通过离合装置A传递到架车齿条,架车受系统控制,可以开始自动喷涂。
喷涂过程中,系统驱动架车前进,架车齿条最开始通过离合装置A获得系统伺服电机A的输出动力,由伺服电机A驱动架车前进一段距离;然后,架车齿条与离合装置B接合,架车获得伺服电机B的输出动力,由伺服电机A和伺服电机B共同驱动架车前进一段距离;最后,架车齿条末端越过离合装置A,架车齿条与离合装置A分离,此时仅由伺服电机B驱动架车移动。因此,文中设计离合装置A与离合装置B的中心轴距离应该小于齿条长度,保证齿条在架车移动过程中至少与一个离合装置接合。并且,当架车末端触碰到行程开关B时,系统将禁止伺服电机B向前驱动架车,保证架车末端不越过离合装置B。
2 拖动示教喷涂机器人控制系统设计
拖动示教即由操作员拖动喷涂机器人末端喷枪,对需要喷涂的工件进行一次喷涂作业,在喷涂过程中,由控制系统采集机器人各轴电机的编码器数值和IO模块的状态变化,并生成示教文件。轨迹再现即控制系统根据喷涂示教产生的示教文件,通过解析文件中的数据,控制机器人各轴运动和IO模块输出,还原喷涂时的喷枪轨迹,实现喷涂生产自动化。
EtherCAT是目前工业以太网中实时性最好的一项技术,在应用方面,仅使用普通网线和网卡就可实现主站与从站间的数据交互,最高可挂载从站数量达65 535个,具备了拓扑结构灵活、数据传输率高和实时性强等特点[8-10]。文中以EtherCAT技术为基础,开发机器人控制系统,并实现拖动示教和轨迹再现功能。
2.1 机器人控制系统硬件结构
所设计的机器人控制系统采用实时以太网EtherCAT协议作为系统的数据传输协议,在拓扑结构上采用最简单、最普遍的线性串行结构。PC机通过千兆网线与6个伺服驱动器连接,由标准以太网卡进行EtherCAT数据帧的收发,每个周期的数据帧依顺序遍历各个伺服从站,各伺服从站读取所需数据,进一步完成对伺服电机的控制,由此实现系统对拖动示教喷涂机器人的控制。
机器人本体和结构简图如图2所示。其中,考虑到1—3轴所处位置更靠近机器人基座,惯性较大,其电机选用汇川MS1H3-13C15CD-A331Z型号电机。该型号在汇川MS系列伺服电机中,属于中等惯量类型,额定转速1 500 r/min。而4—6轴所处位置更靠近机器人末端,惯性较小,其电机选用汇川MS1H1-40B30CB-A331Z-S型号电机。该型号在汇川MS系列伺服电机中,属于低惯量类型,额定转速3 000 r/min。相对应地,1—3轴电机驱动器选用汇川SV660NT5R4I型号的伺服驱动器,4—6轴电机驱动器选用汇川SV660NS2R8I型号的伺服驱动器。每个驱动器均带有EtherCAT网络接口,支持CoE协议规范[11],能够完成对EtherCAT数据帧的接收和处理工作。
图2 机器人本体(a)和结构简图(b)Fig.2 Schematics of the robot body(a) and structure(b)
另外,文中选用的IO模块型号为ZA-16DI/16DO-EtherCAT,该模块带16位输入端口和16位输出端口,支持EtherCAT通信。
机器人控制系统硬件结构如图3所示。
图3 机器人控制系统硬件结构Fig.3 Hardware structure of the robot control system
2.2 机器人控制系统软件架构
为了解决控制系统的实时性问题,本文作者以“co-kernel”的形式搭建“Linux+Xenomai”双核实时操作系统[12-13],并在该操作系统上进行运动控制系统软件的开发和运行。基于Xenomai方案架构的特点,将控制系统软件分为2个模块进行设计开发。运行在Linux域的程序模块主要执行非实时任务,而运行在Xenomai域的程序模块主要执行实时任务,2个模块之间采用XDDP协议实现跨域通信。
运行在Linux域的程序主要执行非实时性任务,文中采用模块化设计的方法,将该程序划分为4个模块进行开发:UI界面模块、指令处理模块、任务管理模块和通信模块。其中,UI界面模块主要实现人机交互功能,在人机交互线程中运行;任务管理模块主要实现点动、拖动示教和轨迹再现等控制任务的管理功能,在任务管理线程中运行。为了降低2个模块间的耦合性,设计出指令处理模块作为消息传递媒介,负责将UI界面的控制信号传递给任务管理模块。为了实现任务管理模块与Xenomai域程序之间的通信,设计出通信模块,通过调用通信模块暴露的接口,实现与Xenomai域程序XDDP通信。文中采用Qt Designer对Linux域程序进行设计开发,UI界面模块与指令处理模块之间采用Qt特有的信号和槽机制进行通信,人机交互线程和任务管理线程采用消息队列的形式实现进程间通信。Linux域程序架构如图4所示。
图4 Linux域程序架构Fig.4 The Linux domain program architecture
运行在Xenomai域的程序主要执行实时性任务,文中将该程序划分为2个主要线程:通信线程负责接收和处理Linux域程序下发的控制指令;运动控制线程负责运动控制、示教数据采样和EtherCAT报文的收发。另外,为了实现对Linux域下发指令的处理以及2个线程间的同步,以全局变量的形式声明一组参数管理单元,包括状态类参数和控制类参数,用来存储系统当前状态和即将写入从站的控制参数。具体实现上,运动控制线程是1 ms触发一次的实时线程,会在运动控制阶段进行数据计算,并将计算得出的控制参数写入参数管理单元。随后在EtherCAT报文收发阶段,将控制参数封装成EtherCAT报文下发至各个从站,并从上行的报文中读取各从站的状态,更新参数管理单元的状态参数。通信线程将Linux域程序下发的指令进一步划分为读、写、控制三类:读指令通过访问系统状态参数,获取系统状态信息;写指令通过修改系统控制参数,等待下次EtherCAT报文的发送即可实现对从站运行状态的修改;控制指令则是通过切换运动控制的运行流程,实现点动、示教和轨迹再现等任务的启动、暂停、结束和急停等。Xenomai域程序架构如图5所示。
图5 Xenomai域程序架构Fig.5 Xenomai domain program architecture
2.3 喷涂示教和轨迹再现功能
文中设计控制系统示教采样时间间隔为10 ms。示教运动启动时,Xenomai域程序会开辟一个采样数据队列,最多缓冲80个采样数据,之后示教运动开始,程序以1个采样时间间隔,不断读取各轴编码器数值和IO状态,并以一个结构体的形式对采样数据进行封装,然后压入采样数据队列。另一方面,在示教过程中,Linux域程序不断发送指令至Xenomai域程序,按“先入先出”原则从采样数据队列中读取采样数据,并将采样数据以一定格式写入示教文件,直到接收到示教结束指令,Linux域程序向Xenomai域程序发送结束指令,然后保存示教文件,结束示教。示教运动流程如图6所示。
图6 示教运动流程Fig.6 Teaching movement process
轨迹再现运动本质上是系统根据示教文件的数据进行的PT运动。系统示教采样时间间隔为10 ms,因此,系统在1 ms实时线程的运动控制阶段,需要对每一条采样数据进行分摊运算,计算出当前1 ms内各伺服驱动器需要发送的脉冲数,并在EtherCAT报文收发阶段,将其封装成EtherCAT报文,发送至各个伺服从站。另一方面,轨迹再现过程中,Linux域程序会不断地从示教文件中提取采样数据,并发送至Xenomai域程序的PT运动数据缓冲区,确保该数据缓冲区在运动结束前都不为空,保证轨迹再现运动的连续性。轨迹再现运动流程如图7所示。
图7 轨迹再现运动流程Fig.7 The motion flow of track reproduction
3 双机器人与移动架车示教再现的实现
文中采用“双机器人+移动架车”的形式实现大型工件的自动喷涂,将图1中的喷涂机器人A作为主机,喷涂机器人B作为副机,为主机系统增加2个伺服驱动器从站,用于控制驱动架车运动的伺服电机A和伺服电机B。在主机控制架车运动、完成工件一侧的喷涂作业的同时,副机与主机配合,完成工件另一侧的喷涂作业。
在喷涂示教过程中,主机负责记录机器人A和移动架车的运动轨迹,副机则记录机器人B的运动轨迹,然后分别生成示教文件。对两台机器人的示教时间不需要一样长,但需要保证在同一时刻开始示教采样。在自动喷涂过程中,主机和副机各自读取保存的示教文件,分别进行轨迹再现,只需要保证主机和副机在同一时刻开始轨迹再现,即可实现两台机器人在自动喷涂上的同步。
3.1 双机器人间的状态互查机制
为了实现两台机器人在喷涂示教和自动喷涂上的同步,需要实现主机和副机双方互相查询运行状态的功能。文中为主机和副机系统分别增加1个IO模块,模块的各个输出端口表示本机的各个运行状态,包括空闲、等待、报警、架车回零、采样同步、示教采样、回喷涂起点、再现同步和轨迹再现等;模块的各个输入端口分别连接至另一个模块的输出端口,用以查询对方的运行状态。
以“采样同步”状态为例,主机进入“采样同步”状态后,更新自身状态信息,将主机IO模块对应的输出端口置为高电平,而该端口连接至副机IO模块的1个输入端口,此时,副机可以通过查询该输入端口的状态,明确主机进入“采样同步”状态。另一方面,当副机进入“采样同步”状态后,也会更新自身状态信息,将副机IO模块对应输出端口置为高电平,该端口连接至主机IO模块的1个输入端口,此时,主机可以通过查询该输入端口的状态,明确副机进入“采样同步”状态。
同理,文中为系统的其他运行状态各自分配1个IO输出端口,并通过2个IO模块的互连,建立起2台机器人系统之间的状态互查机制。
3.2 喷涂示教流程
系统喷涂示教流程如图8所示。架车进场停靠后,操作员按下控制柜上的“示教”按钮,主机和副机进入示教模式。首先,由主机系统通过IO从站输出高电平,启动图1中的离合装置A和离合装置B,使架车接受主机控制。接着,主机控制架车回零点,即驱动架车前进,直到架车前沿触碰到行程开关A。回零完成后,两台机器人的操作员准备就绪,由主机操作员按下主机末端手柄上的“开始示教”按钮,主机与副机开始示教采样。示教过程中,主机操作员通过手柄上的“前进”和“后退”按钮控制架车移动,两位操作员控制机器人末端喷枪对架车上的工件进行喷涂。示教完成后,两位操作员各自按下“示教结束”按钮,主机和副机系统分别生成示教文件。最后,由主机控制架车后退至零点,关闭离合装置,架车脱离系统控制,系统喷涂示教完成。
图8 系统喷涂示教流程Fig.8 System spraying and teaching process
在示教开始阶段,主机和副机需要进行采样同步。按下“示教”按钮,主机和副机进入示教模式。首先,主机切换至“架车回零”状态,并控制架车回零,副机切换至“等待”状态,并不断地查询主机的运行状态。架车回零完成后,主机切换至“等待”状态,等待主机操作员按下“开始示教”按钮。当主机接收到“开始示教”按钮信号,主机切换至“采样同步”状态,当副机查询到主机状态为“采样同步”状态,也切换至“采样同步”状态。此时,主机和副机互相查询,双方都为“采样同步”状态,达成同步,双方开始示教采样,并将各自的状态切换为“示教采样”。在同步过程中,若一台机器人出现运行错误,无法正常切换状态,则系统发出报警,主机和副机均终止示教运动。
在示教结束阶段,主机和副机需要进行一次同步,保证主机控制架车退回零点前,两位操作员均示教完毕。当主机操作员按下主机的“结束示教”按钮后,主机生成示教文件,然后不断查询副机的运行状态。当副机操作员按下副机的“结束示教”按钮后,副机生成示教文件,退出示教模式,并切换至“空闲”状态。此时,主机查询到副机进入“空闲”状态,开始控制架车运动至零点,然后主机退出示教模式,系统喷涂示教完毕。
3.3 自动喷涂流程
系统自动喷涂流程如图9所示。架车进场停靠后,操作员按下控制柜上的“喷涂”按钮,主机和副机进入喷涂模式。首先,由主机系统控制启动离合装置A和离合装置B,使架车接受主机控制,并驱动架车回零点。回零完成后,主机和副机分别加载示教文件,并控制两台机器人和架车运动到喷涂起点,即示教文件的第一个采样点。到达喷涂起点后,主机和副机开始轨迹再现运动,由主机控制架车前进,两台机器人对工件进行自动喷涂。喷涂完成后,由主机控制架车后退至零点,并关闭离合装置,此时,架车脱离系统控制,工件喷涂完成,可以进入下一道工序。
图9 系统自动喷涂流程Fig.9 System automatic spraying process
在喷涂开始阶段,主机和副机需要进行轨迹再现同步。按下“喷涂”按钮,主机和副机进入喷涂模式。首先,主机切换至“架车回零”状态,并控制架车回零,副机切换至“等待”状态,等待架车回零。架车回零完成后,主机切换至“回喷涂起点”状态,主机和架车向喷涂起点运动,此时,副机查询到主机状态为“回喷涂起点”,也切换至“回喷涂起点”状态,副机也向喷涂起点运动。一方面,主机和架车到达喷涂起点后,主机进入“再现同步”状态,不断地查询副机的运行状态;另一方面,副机到达喷涂起点后,也进入“再现同步”状态,不断地查询主机的运行状态。当主机和副机互相查询,双方都为“再现同步”状态,此时,主机、副机和架车均到达喷涂起点,达成同步,主机和副机开始轨迹再现运动,并将各自的状态切换为“轨迹再现”。
在喷涂结束阶段,主机和副机需要进行一次同步,保证主机控制架车退回零点前,两台机器人均喷涂完毕。当主机喷涂结束后,会不断查询副机的运行状态。当副机喷涂结束后,会退出喷涂模式,并切换至“空闲”状态。此时,主机查询到副机“空闲”状态,开始控制架车运动,将喷涂完成的工件退回零点,然后主机退出喷涂模式,系统自动喷涂完毕。
4 实际应用
文中针对广东某卫浴公司的生产需求,设计并搭建一个针对大型浴缸的自动喷涂系统。
该企业要求,喷涂对象为大型浴缸,最大尺寸为:长5 000 mm,宽3 000 mm,高1 500 mm;喷涂面为浴缸外侧的1个底面和4个侧面;喷涂过程中,需要喷涂2种材料,一种是玻纤,另一种是树脂和固化剂的混合物。
根据要求,对图1中的几个重要参数做出设计。以最大的工件尺寸作为参考,设计架车长5 500 mm,宽3 500 mm,齿条长5 500 mm,2个离合装置中心轴距离4 800 mm,离合装置A中心轴到行程开关A的垂直距离800 mm。
大型浴缸自动喷涂系统如图10所示。浴缸喷涂是一道依靠工人经验的工序,暂时没有相应的检测标准,工人入岗前需要经过长时间的培训,才能做到在喷涂时操作娴熟,产品涂层分布均匀。而文中所设计的自动喷涂系统,由经验丰富的工人进行喷涂示教,在自动喷涂时能高度还原示教的喷涂轨迹和材料用量,对同一类型的工件均采用同一个示教文件,能够保证该生产线加工的产品质量良好且品质稳定。
图10 大型浴缸自动喷涂系统Fig.10 Large bathtub automatic spraying system
5 结论
基于EtherCAT技术开发了六轴拖动示教机器人控制系统,采用双机器人和移动架车共同作业的方式,设计出面向大型工件的拖动示教自动喷涂系统,并根据企业要求,搭建出一个针对大型浴缸的自动喷涂系统。该系统已投入企业生产一个多月,运行稳定,实现了喷涂示教和自动喷涂功能,且喷涂后的产品质量良好,品质稳定;同时,避免了工人长期暴露在有毒的涂料挥发物中,保护工人身体健康,为企业节约人力资源和生产成本,可以很好地满足中小型企业的需求。