1.项目背景
近几年,我国航空工业进入快速发展时期,国家政策扶植力度持续加大,释放出巨大的市场潜力。目前行业急需大量国产高档五轴数控机床机器自动化生产线设备,铝合金肋板类卧式加工生产线正是在此背景下应运而生。
为国内首套面向航空类铝合金件高效加工的柔性自动化生产线,实现了肋板类零件加工的高速专业化、自动化和数字化。该生产线已在沈阳航空产业集团有限公司成功应用,大幅度提高了航空零件的加工性能及效率,得到了用户一致认可。介绍了铝合金肋板类卧式加工生产线中,机器人与集中式刀库管理系统之间,机器人与铝合金肋板类五坐标加工中心之间相互通讯,实现自动换刀的过程。在加工效率、控制精度、稳定性等方面相较于传统换刀机构均有显著提升。
2.自动换刀系统硬件结构
铝合金肋板类卧式加工生产线自动换刀系统硬件结构包含1台集中式刀具管理系统,2台铝合金肋板类五坐标加工中心,2台刀库墙, 1台 KUKA机器人,1台刀具托盘。实物和布局图如图1、图2、图3所示。
①与⑧分别为2台铝合金肋板类五坐标加工中心。
②为机器人控制柜。
③与⑦分别为2台刀库墙。刀库墙为壁挂刀夹式结构,分别包含5排,每排8把刀位,最多可容纳40把刀具,每个刀位都有编号。
④为机器人外部轴拉罩防护。
⑤为机器人。
⑥为刀具运输装置。装置包含4排,每排8把刀位,最多可以容纳24把刀具,每个刀位都有编号。
机器人选用KUKA KR60机器人,增配直线外部轴电机,控制机器人水平方向左右移动,扩大运动空间。外部轴包含有导轨润滑。在机器人第六轴终端设计两个抓手,可以单次实现主轴卸刀的同时进行主轴装刀,提高效率。手爪松夹控制采取气动控制。1台刀具托盘为通过AGV刀具运输设备运输的刀具托盘。
3.自动换刀系统通信链路架构
自换刀系统通信链路如图 4所示。
KUKA机器人与铝合金肋板类五坐标加工中心之间通过倍福模块EK1100以及CU1123进行联接。通过EtherCAT总线与2台铝合金肋板类五坐标加工中心实现通讯。实时读取机器人状态和动作信号并与数控系统数据进行交互。
KUKA机器人与集中式刀库管理系统通过机器人控制柜上的KLI接口建立以太网联接。KUKA提供EthernetKRL 软件包,允许机器人与外部系统进行基于 TCP/IP的双向数据交换, 支持可自由配置的 XML 结构,机器人KRL 指令负责 XML 结构的数据存储区保存和读取。
4.自动换刀系统通讯实现
(1)机器人与集中式刀库管理系统之间通讯实现
在C:/KRC/ROBOTER/Config/User/Common/EthernetKRL目录下的ToolMessageStream.xml程序中对通讯进行配置,建立以太网连接。XML 文件的名称同时也是 KRL 的访问密钥。节选主要程序如下:
<ETHERNETKRL>
<CONFIGURATION>
<EXTERNAL>
<IP>10.10.34.107</IP>
<PORT>59152</PORT>
</EXTERNAL>
</CONFIGURATION>
<SEND>
<RECEIVE>
<RAW>
<ELEMENT Tag="ToolMessage"
Type="STREAM" Set_Flag="2" EOS="13,10"/>
</RAW>
</RECEIVE>
<SEND/>
</ETHERNETKRL>
在<CONFIGURATION>中定义外部系统与EKI之间的连接参数。
在< EXTERNAL >中定义外部系统的设置,<IP>为外部系统定义为服务器时的IP地址,此处配置集中式刀库管理系统的IP地址。
在<PORT>中定义外部系统定义为服务器时的端口号,此处配置集中式刀库管理系统的服务端口号。
在<RECEIVE>中定义机器人控制系统接收的接收结构。
在<SEND>中定义机器人控制系统发送的发送结构。此处收发二进制数据,在<RAW>中定义原始数据。定义一个名为“ToolMessage”的“STREAM”类型的变量,STREAM为有可变末尾字符串的二进制数据组类型,此处“ToolMessage”变量以“回车符(13,10)”结尾。
集中式刀库管理系统和机器人的数据通讯是TCP/IP协议,使用Client/Server架构,编程通过调用Socket接口来进行。Server端运行在机器人上,通过KRL语言编写。KRL语言不区分大小写。
在C:/KRC/ROBOTER/Program/EKI目录下的connect_pc.src程序中在初始化和打开连接。节选主要程序如下:
ret=eki_clear("ToolMessageStream")
ret=eki_init("ToolMessageStream")
ret=eki_open("ToolMessageStream")
在C:/KRC/ROBOTER/Program/EKI目录下的pro.src程序中读取数据。打开ToolMessageStream通道中名为ToolMessage的字符串变量。节选主要程序如下:
RET=EKI_GetString("ToolMessageStream","Tool
Message",string[])
在C:/KRC/ROBOTER/Program/EKI目录下的Func.src程序中解析收到的数据。将收到的字符串按照从左到右的顺序进行检索,如果遇到标志符号“,”则将标志符号前的字符串转换为整数类型,再存储到整型变量中待用。然后从当前位置右移一位继续开始检索,再存储到整型变量中待用。直到检索到字符串结尾标志符"13,10",则停止搜索。节选主要程序如下:
DEF Func(string1[]:out )
decl char string1[]
decl int iposition,ipositionN,offset,i
decl bool bResult
bResult=strclear(pick_put1[])
bResult=strclear(tool_num1[])
bResult=strclear(tool_pos1[])
iposition=strfind(1,string1[],",",#not_case_sens)
for i=1 to (iposition-1) step 1
pick_put1[i]=string1[i]
endfor
offset=iposition
bResult=strtoint(pick_put1[],pick_put)
ipositionN=strfind((offset+1),string1[],",",#not_
case_sens)
for i=1 to (ipositionN-1) step 1
tool_num1[i]=string1[offset+i]
endfor
bResult=strtoint(tool_num1[],tool_num)
offset=offset+ipositionN
ipositionN=strfind((offset+1),string1[],",",#not_
case_sens)
for i=1 to (ipositionN-1) step 1
tool_pos1[i]=string1[offset+i]
endfor
bResult=strtoint(tool_pos1[],tool_pos)
offset=offset+ipositionN
bResult=strclear(string1[])
END
(2)机器人与铝合金肋板类五坐标加工中心之间通讯
机器人与加工中心之间通过EtherCAT协议进行通讯。在WORKVISUAL软件中对于机器人控制柜进行网络拓扑配置,拓扑结构如图5所示。
对于机器人与加工中心,主要交互输入输出信号进行分配,详细如附表所示。
5.程序设计
(1)集中式换刀系统向加工中心发送加工程序或向机器人发送向刀库墙/刀具托盘上/卸刀任务。加工中心1换刀请求以及加工中心2换刀请求都为FALSE时,机器人才处理刀具托盘任务。否则优先处理加工中心换刀任务。主要控制流程图如图6所示。
图6 主要控制流程图
(2)加工中心换刀任务处理:机器人与加工中心之间刀具移位任务包含:加工中心1/2无刀换新刀任务,加工中心1/2有刀换新刀任务,加工中心1/2有刀卸旧刀任务。
a) 机器人读取旧刀号和新刀号。首先比较新旧刀号,当新刀号=旧刀号时,机器人不执行任何换刀动作。
b) 当新刀号=0时,即为加工中心1/2有刀卸旧刀任务。机器人无需去刀库墙抓新刀,通过PTP/LIN指令运动到加工中心刀库安全门前安全等待位,等待加工中心刀库安全门开启刀位检测信号就绪,加工中心各轴运行到换刀点,主轴定向就绪之后,向机器人发送换刀准备就绪信号。机器人接收到信号之后,通过PTP/LIN指令运动到加工中心换刀区域内主轴松刀等待位,向加工中心输出已经就绪,请求加工中心松刀信号,等待接收到松刀到位检测信号之后,机器人执行卸旧刀动作。卸刀动作结束之后,机器人通过PTP/LIN指令离开加工中心换刀区域,发送换刀动作完成信号, 加工中心执行夹刀动作,关闭刀库安全防护门,更新刀号和刀表,继续执行加工程序。
c) 当新刀号≠0时,即为加工中心1/2有刀换新刀或加工中心1/2无刀换新刀任务。机器人同过PTP/LIN指令运动到新刀号刀位前安全等待位,检测当前刀位是否有刀,如果无刀,输出给加工中心信号。机器人回起始位。如果有刀,输出给加工中心信号,执行抓刀动作。抓刀完成后,通过PTP/LIN指令运动到加工中心刀库安全门前安全等待位,等待加工中心刀库安全门开启刀位检测信号就绪,加工中心各轴运行到换刀点,主轴定向就绪之后,向机器人发送换刀准备就绪信号。机器人接收到信号之后,通过PTP/LIN指令运动到加工中心换刀区域内主轴松刀等待位,向加工中心输出已经就绪,请求加工中心松刀信号,等待接收到松刀到位检测信号之后,机器人执行卸旧刀动作。卸刀动作结束之后,机器人通过PTP/LIN指令运动到装刀安全等待位置,执行装新刀动作,动作完成之后输出装新刀完成信号,加工中心执行夹刀动作。机器人通过PTP/LIN指令离开加工中心换刀区域,发送换刀动作完成信号,加工中心关闭刀库安全防护门,更新刀号和刀表,继续执行加工程序。
d) 当旧刀号=0时,无需还刀。机器人回起始位。换刀完成。
e) 当旧刀号≠0时,机器人运行到旧刀号刀位前安全等待位,检测当前刀位是否有刀,如果有刀,输出给加工中心信号,需要人工干预进行卸刀。如果无刀,输出给加工中心信号,执行还刀动作。动作结束后回起始位。换刀完成。
(3)刀具托盘换刀任务处理:机器人与刀具托盘之间刀具移位任务
包含:从刀具托盘向刀库墙1/2装刀任务,从刀库墙1/2向刀具托盘卸刀任
务。
a) 机器人接收集中式换刀系统发送的刀具移动指令。指令形式为 “A,B,C,回车符”。A代表装刀动作或卸刀动作。B代表刀库墙1或刀库墙2或刀具托盘。C为刀位位置号。
b) 当接收到从刀具托盘向刀库墙1/2装刀任务时,机器人通过PTP/LIN指令运动到刀具托盘对应刀号前安全等待位,检测当前刀位是否有刀,如果无刀,输出给集中式换刀系统信号。机器人回起始位。如果有刀,输出给集中式换刀系统信号,执行抓刀动作。
c) 抓刀动作完成之后,机器人通过PTP/LIN指令运动到刀具识别装置前识别刀具芯片,并向集中式换刀系统输出识别请求,集中式换刀系统比较当前识别出的刀具信息,如果信息比较正确,集中式换刀系统发送指令,机器人将当前刀具装载到目标刀库墙目标刀位。如果信息比较错误,集中式换刀系统发送指令,机器人将当前刀具装载到刀具托盘原刀位。装载结束后机器人回到起始位。换刀动作结束。
d) 当接收到从刀库墙1/2向刀具托盘卸刀任务时,机器人通过PTP/LIN指令运动到刀库墙1/2对应刀号前安全等待位,检测当前刀位是否有刀,如果无刀,输出给集中式换刀系统信号。机器人回起始位。如果有刀,输出给集中式换刀系统信号,执行抓刀动作。
e) 抓刀动作完成之后,集中式换刀系统发送指令,机器人将当前刀具装载到刀具托盘对应刀位。换刀动作结束。
6.换刀功能实现:
包含以下程序:
MAIN: 主程序
CONNECT_PC:打开机器人与集中式刀库管理系统的通讯通道子程序
FUNC:处理集中式刀库管理系统的命令字符串子程序
PRO:接收集中式刀库管理系统的命令字符串子程序
AGV_L_OFFSET:刀具托盘左侧2排上刀位点偏移子程序
AGV_R_OFFSET:刀具托盘右侧2排上刀位点偏移子程序
PICK_AGV:刀具托盘抓刀子程序
PUT_AGV:刀具托盘还刀子程序
PICK_PUT_AGV:刀具托盘任务判断子程序
ACK:向集中式刀库系统发送接收指令子程序
DONE:向集中式刀库系统发送完成指令子程序
OUT_CALL:向集中式刀库系统发送繁忙指令子程序
RFID:读取刀具信息子程序
STATION_UNAVAILABLE:向集中式刀库系统发送当前刀位不可用指令子程序
STATION_AVAILABLE: 向集中式刀库系统发送当前刀位可用指令子程序
CHANGE_TOOL_L:加工中心1主轴刀具更换子程序
PICK_PUT_MAG_L:加工中心1判断换刀任务子程序
CHANGE_TOOL_R: 加工中心2主轴刀具更换子程序
PICK_PUT_MAG_R: 加工中心2判断换刀任务子程序
PICK_PUT_OFFSET_L:刀库墙1上刀位点偏移子程序
PICK_PUT_OFFSET_R:刀库墙2上刀位点偏移子程序
PICK_TOOL_L: 刀库墙1抓刀子程序
PUT_TOOL_L: 刀库墙1还刀子程序
PICK_TOOL_R: 刀库墙2抓刀子程序
PUT_TOOL_R: 刀库墙2还刀子程序
主程序举例如下:
sys_ini() //初始化
PTP Xhome //机器人运动到起始位置
loop
if cnc_l_change_tool_req then //判断加工中心1是否有换刀请求
if cnc_l_change_num==cnc_l_tool_num then //判断加工中心1新旧刀号
goto proend
else
pick_put_mag_l()//新旧刀号不一致,调用换刀程序
endif
endif
if cnc_r_change_tool_req then //判断加工中心2是否有换刀请求
if cnc_r_change_num==cnc_r_tool_num then //判断加工中心2新旧刀号
goto proend
else
pick_put_mag_r()//新旧刀号不一致,调用换刀程序
endif
endif
if (cnc_l_change_tool_req or cnc_r_change_tool_req) then //当加工中心
1/2有换刀请求,即机器人繁忙时
out_call() //向集中式刀库系统发送繁忙指令
goto proend
else
pro() //接收集中式刀库管理系统的命令
pick_put_agv() //执行刀具托盘任务
endif
proend:
endloop
7.结论
介绍了在铝合金肋板类卧式加工生产线中,机器人与集中式刀库管理系统之间,机器人与加工中心之间协调通讯,实现自动换刀的过程。铝合金肋板类卧式加工生产线是专门针对航空航天领域铝合金肋板类零件的加工而研发设计,该生产线在研制过程中充分考虑到我国航空航天领域零部件加工现状,创新性地将关节机器人技术,AGV智能搬运技术,RFID智能识别技术等进行集成应用,实现生产线的自动化、柔性化、智能化。项目的研发弥补了我国在高档数控设备制造航空航天领域的技术和市场空白,满足了设备制造业智能化需求。应用前景广阔。
参考文献:
[1]朱卫国,齐琦. KUKA制孔机器人自动换刀系统设计[J]. 唐山学院学报, 2020,33(6): 1-5, 30.
[2]李维臣,沙伟,孙德志,等. KUKA机器人在840D刀库管理中的应用研究[J]. 组合机床与自动化加工技术, 2019, (2): 150-153.
[3]陈亮,杨晓艳,彭林. 工业机器人在线控制和远程监测系统设计与实现[J]. 机电工程技术, 2019, 48(9): 121-123, 170.
[4]孙茉婧. 工业机器人喷塑柔性生产线设计与研究[D]. 山东理工大学, 2017.
[5]刘宽,燕继明,申俊,等. 基于多种通信技术的数控加工柔性生产线系统集成_刘宽[C]//面向增材制造与新一代信息技术的高端装备工程管理国际论坛征文汇编, 2020:165-170.
[6]曲楠,宋万强. 基于以太网的机器人在线监控系统设计_曲楠[J]. 工业控制计算机,2020, 33(11): 10-12.
[7]李冬磊,沈建新,田威. 标准关节机器人外部自动精确控制技术研究[J]. 航空制造技术, 2015, (13): 89-93.
[8]任启迪,郑琳娜. 工业机器人在西门子840 DSL数控机床上的应用_任启迪[J].制造技术与机床, 2020, (3): 181-183.
[9]陈恳. 基于机器视觉的物料分拣工业机器人关键技术研究[D]. 深圳大学, 2017.
[10]杨祎. 基于以太网通信的测量机器人轨迹控制研究[D]. 华北理工大学, 2017.
[11]郭丽峰,赵晓飞,郭建璞,等. 基于KUKA工业机器人的柔性加工系统研发[J]. 北京石油化工学院学报, 2015, 23(4): 45-49.
上海方瀚精密工具有限公司
电话:021-31598956
手机:+8618001628683
邮箱:Info@fonhae.com
地址:上海市金山工业区亭朱公路69号
添加微信