双机器人柔性压紧控制系统设计

2018-12-24 02:24
装备制造技术 2018年10期
关键词:同步控制离线执行器

贾 冬

(中国航空制造技术研究院机器人系统集成中心,北京100024)

在飞机机身壁板的蒙皮与长桁T型接头激光焊接过程中,需要将长桁T型接头与蒙皮压紧,使两者在水平和垂直方向上达到工艺要求。传统的压紧方式是使用固定的工装,如图1所示。这种压紧方式虽然可靠,但是每一种工装仅可以对一种工件的固定。而机身壁板焊接件在研制时,焊接件具有批量小,品种多的特点。使用固定工装会消耗大量的资金,并且固定卡具的制作加工周期也比较长。

图1 传统的压紧装置

因此,设计一种柔性的压紧工装是十分必要的。文献[1-4]从理论和设计角度出发,对压紧工装进行了研究。

本文首先介绍了由双库卡机器人、压紧末端执行器、外部控制器组成的T型接头压紧系统。然后介绍了压级系统控制系统的设计。然后对机器人和外部控制器进行通信配置,设计了机器人控制系统与外部控制器的通信协议,并设计了机器人和外部控制器的通信程序。最后,通过实验,验证了机器人离线编程数据传输可靠性;在双机器人程序同步运行的情况下,实现了对T型长桁模拟件的压紧和夹紧功能。

1 双机器人压紧系统设计

双机器人压紧系统由两台库卡机器人KR360 R2830,压紧末端执行器,集成控制台组成。压紧末端执行器包括双夹紧装置,双压紧装置组成。每个夹紧装置由两对四个导向轮、以及相对应的驱动气缸组成。夹紧装置保证T型长桁在水平方向上与保持焊接时所需要的姿态。压紧装置由两个压紧导向轮以及相对应的驱动气缸组成,压紧装置是T型长桁在垂直方向上保证焊接要求的姿态。压紧末端执行器如图2所示。

图2 机器人压紧末端执行器置

1.1 机器人压紧控制系统设计

机器人压紧控制系统由集成控制台内的工控机、机器人控制柜以及机器人控制柜内的IO模块组成。机器人控制系统为KRC4,机器人控制柜内的X44扩展接口通过EtherCAT总线耦合器EK1100连接。EK1100后面安装EL6695模块和IO数字量模块。EL6695模块是机器人与外部控制系统TwinCAT3数据交换的桥接模块,数字量IO模块用于实现压缩空气气压监测,以及压紧末端执行器的压级、夹紧控制。

1.2 KRC4与TwinCAT3的通信配置

机器人控制系统KRC4与TwinCAT3通过EL6695来实现数据交换,数据交换的类型只能是整数型。由于机器人的工作半径是2 832 mm,坐标值精度为小数点后两位,因此,交换数据的长度定位为32位。在库卡机器人项目配置软件WorkVisual中,配置EL6695模块的输入/输出变量为32个DWORD型数据。

TwinCAT3向机器人控制系统KRC4发送的内容包括:离线编程生成的机器人工具坐标轨迹、双机器人系统控制同步信号,以及库卡机器人外部运行所需要的控制信号等。

机器人控制系统KRC4向TwinCAT3发送的内容包括:机器人接受数据的控制信号,机器人接收离线编程数据定位,双机器人控制系统的同步控制信号等。

1.3 机器人与TwinCAT3数据通信设计

机器人控制器指令执行是逐步执行,而Twin-CAT3系统中语句指令是逐行扫描,周期性刷新,两者的指令执行周期没有固定的关系。两个控制器通信方式设计为:机器人控制系统请求数据通信,TwinCAT3响应。以TwinCAT3向机器人控制系统发送离线编程数据为例,流程图如图3所示。

图3 离线编程数据传输

本文应用两个机器人与TwinCAT3系统通信,实现了两个机器人之间的程序的同步控制,其原理是每个机器人运行每一步程序前,都向TwinCAT3系统发送程序运行到达的信号,当TwinCAT3系统根据两个机器人程序信号,发送下一步程序开始的控制信号,当机器人末端执行器由初始点运行至压紧工件位时,机器人发送压紧控制信号给TwinCAT3控制系统,其控制流程如图4所示。

图4 双机器人同步控制

1.4 程序设计

双机器人压紧控制系统的程序设计包括Twin-CAT3程序、以及机器人程序三部分。

TwinCAT3程序设计主要实现机器人末端执行器动作逻辑运算、向机器人控制系统传输离线编程数据,控制两个机器人程序同步运行。关键程序代码如下所示:

varRobotcounter:=getcounter(varRobotRequest);//获取机器人传输的第几个点

IF varRobotcounter>0 THEN

robotReq: =getFlagStatus (varRobotRequest,robotReqFlag);

IF robotReq THEN

posCounter:=varRobotcounter;

varOUTX:=robotXPos[posCounter];

varOUTY:=robotXPos[posCounter];

varOUTZ:=robotXPos[posCounter];

varOUTA:=robotXPos[posCounter];

varOUTB:=robotXPos[posCounter];

varOUTC:=robotXPos[posCounter];

varRobotAck:=1;//传输完成

End_if

Robot1Start:=SetRobot1Start(robot1PrjEnd);

//机器人1程序第N条语句执行完毕

Robot2Start:=SetRobot1Start(robot2PrjEnd);

//机器人2程序第N条语句执行完毕

If Robot1Start=Robot2Start then

Robot1Start:=setRobotPrgStart(robot1Start);

//机器人1程序第N+1条语句执行

Robot2Start:=setRobotPrgStart(robot2Start);

//机器人2程序第N+1条语句执行

机器人程序主要实现压紧末端执行器运行轨迹的。机器人的程序如下所示,机器人首先由执行PTP P18指令,使机器人待机位置,然后与TwinCAT3进行数据通信,获取离线编程坐标点,其中,变量varinx,variny,varinz,varina,varinb,varinc,分别是各个点与P18点的差值。因为传输数据的格式只能是整数形式,所以需要将数据处理,乘以0.01.机器人程序获取离线编程数据后,通过wait for等待Twin-CAT 3发送的第一条同步执行语句,执行第一步语句后,两个机器人分别发送S1End信号给TwinCAT3,然后等待第二条语句开始信号。如此便实现了两台机器人语句同步执行。程序代码如下:

PTP XP18;机器人运行至初始位置

for counter=1 to 10;以传输10个离线编程点为例

varInputReq=TRUE;机器人向请求数据输入

varInputReqCounter=counter;机器人发送传输第几个点

varInputFinished=FALSE;

WAIT for varExternInput;等待 TwinCAT3 数据传输完成

robotPos[counter]=$POS_ACT;保存机器人HOME点S,T变量信息

robotPos[counter].x=robotPos[counter].x+varinx*0.01;保存离线编程点X

robotPos[counter].y=robotPos[counter].y+variny*0.01;保存离线编程点Y

robotPos[counter].z=robotPos[counter].z+varinz*0.01;保存离线编程点Z

robotPos[counter].a=robotPos[counter].a+varina*0.01;保存离线编程点A

robotPos[counter].b=robotPos[counter].b+varinb*0.01;保存离线编程点B

robotPos[counter].c=robotPos[counter].c+varinc*0.01;保存离线编程点C

varInputReq=FALSE;接受离线编程数据完毕后,请求输入复位

varInputFinished=TRUE;接受数据标志完成位置位

ENDFOR

varInputReqCounter=0;数据传输完毕

lin robotpos[1];

s1End=TRUE

wait for s1Start

lin robotpos[2]

s2End=true

2 实验验证

2.1 离线编程数据传输验证

在 TwinCAT3 的 robotXpos,robotYpos,robotZpos,robotApos,robotBpos,robotCpos的数组分别读入数值为{100,200,300,400,500,600,700,800,900},然后运行选择机器人程序,程序运行第一条同步程序后,在机器人示教器上查看机器人程序变量,分别输入变量名为robotPos[1..10],显示结果如表1所示。机器人坐标显示值分别为:

robotPos [1]={1446.20,- 4208.69,2193.54 ,178.93,45.09,-179.94}

robotPos[2]={1447.20,-4207.69,2194.54 ,179.93,46.09,-178.94}

robotPos[3]={1448.20,-4206.69,2195.54 ,180.93,47.09,-177.94}

……

robotPos[1]={1455.20,-4199.69,2202.54 ,187.93,54.09,-170.94}

通过以上数据可以看出可以看出,机器人程序中robotPos[1]—robotPos[10],相邻的两个坐标产在X,Y,Z,A,B,C 差值为 1,即 100*0.01,与传输值完全一致。

2.2 双机器人同步控制

选择机器人程序,双机器人实现了程序同步运行。采用这种机器人同步的方式,有一个特点是当机器人连续执行两条lin指令,机器人自动会做轨迹逼近,如果机器人执行的两个lin指令中间有IO操作的指令,机器人控制器会中断两个lin指令的逼近。这样会使机器人精确定位到该点,但是也会降低机器人运行效率。

2.3 压紧夹紧验证

在两个机器人示教器上分别选择程序,并运行至BCO,然后在集成操作台操作界面上选择离线编程数据传输,并启动机器人同步控制,机器人带动压紧末端执行器运行至离线编程的第一个点,机器人控制器输出数字量DO控制信号,控制夹紧驱动气缸和压紧驱动气缸运动,对T型长桁进行压紧和夹紧。然后双机器人同步执行指令运行至程序结束,如图5所示。

图5 压紧末端执行器实验验证

3 结论

(1)利用机器人与集成控制台TwinCAT3控制系统的通信协议,可以使不同程序运行周期、不同运行机制的库卡机器人控制系统和TwinCAT3系统实现数据的传输、双机器人程序同步执行。利用这种通信协议,也可以实现对机器人的轨迹校正,用于焊接机器人的焊缝跟踪、搬运机器人的定位校正等。

(2)利用“发送—等待信号”机制,可以实现双机器人程序的同步控制,并且这种机制会使机器人精确运行至离线编程输出的目标点,但是使机器人控制系统取消了两条语句之间的程序逼近算法,会降低机器人运行效率。

(3)通过机器人运行程序,运用实验验证了控制系统实现双压级机器人系统导入离线编程数据、控制机器人同步运行,对T型长桁进行压级和夹紧,实现了机器人柔性压紧工装的功能,从而缩短了小批量焊件的生产周期。

猜你喜欢
同步控制离线执行器
异步电机离线参数辨识方法
浅谈ATC离线基础数据的准备
高锁螺母自动化安装机器人末端执行器设计
X-431实测篇2010年奔驰B200空调执行器电机学习
FTGS轨道电路离线测试平台开发
离线富集-HPLC法同时测定氨咖黄敏胶囊中5种合成色素
飞机装配预连接紧固件自动化安装末端执行器设计
基于EtherCAT网络的金刚线多线切割机双主轴同步控制
延迟不确定马尔科夫跳变系统的执行器和传感器故障同时估计方法
基于云模型的舵机同步控制