賈 冬
(中國航空制造技術(shù)研究院機(jī)器人系統(tǒng)集成中心,北京100024)
在飛機(jī)機(jī)身壁板的蒙皮與長桁T型接頭激光焊接過程中,需要將長桁T型接頭與蒙皮壓緊,使兩者在水平和垂直方向上達(dá)到工藝要求。傳統(tǒng)的壓緊方式是使用固定的工裝,如圖1所示。這種壓緊方式雖然可靠,但是每一種工裝僅可以對一種工件的固定。而機(jī)身壁板焊接件在研制時(shí),焊接件具有批量小,品種多的特點(diǎn)。使用固定工裝會消耗大量的資金,并且固定卡具的制作加工周期也比較長。
圖1 傳統(tǒng)的壓緊裝置
因此,設(shè)計(jì)一種柔性的壓緊工裝是十分必要的。文獻(xiàn)[1-4]從理論和設(shè)計(jì)角度出發(fā),對壓緊工裝進(jìn)行了研究。
本文首先介紹了由雙庫卡機(jī)器人、壓緊末端執(zhí)行器、外部控制器組成的T型接頭壓緊系統(tǒng)。然后介紹了壓級系統(tǒng)控制系統(tǒng)的設(shè)計(jì)。然后對機(jī)器人和外部控制器進(jìn)行通信配置,設(shè)計(jì)了機(jī)器人控制系統(tǒng)與外部控制器的通信協(xié)議,并設(shè)計(jì)了機(jī)器人和外部控制器的通信程序。最后,通過實(shí)驗(yàn),驗(yàn)證了機(jī)器人離線編程數(shù)據(jù)傳輸可靠性;在雙機(jī)器人程序同步運(yùn)行的情況下,實(shí)現(xiàn)了對T型長桁模擬件的壓緊和夾緊功能。
雙機(jī)器人壓緊系統(tǒng)由兩臺庫卡機(jī)器人KR360 R2830,壓緊末端執(zhí)行器,集成控制臺組成。壓緊末端執(zhí)行器包括雙夾緊裝置,雙壓緊裝置組成。每個(gè)夾緊裝置由兩對四個(gè)導(dǎo)向輪、以及相對應(yīng)的驅(qū)動(dòng)氣缸組成。夾緊裝置保證T型長桁在水平方向上與保持焊接時(shí)所需要的姿態(tài)。壓緊裝置由兩個(gè)壓緊導(dǎo)向輪以及相對應(yīng)的驅(qū)動(dòng)氣缸組成,壓緊裝置是T型長桁在垂直方向上保證焊接要求的姿態(tài)。壓緊末端執(zhí)行器如圖2所示。
圖2 機(jī)器人壓緊末端執(zhí)行器置
機(jī)器人壓緊控制系統(tǒng)由集成控制臺內(nèi)的工控機(jī)、機(jī)器人控制柜以及機(jī)器人控制柜內(nèi)的IO模塊組成。機(jī)器人控制系統(tǒng)為KRC4,機(jī)器人控制柜內(nèi)的X44擴(kuò)展接口通過EtherCAT總線耦合器EK1100連接。EK1100后面安裝EL6695模塊和IO數(shù)字量模塊。EL6695模塊是機(jī)器人與外部控制系統(tǒng)TwinCAT3數(shù)據(jù)交換的橋接模塊,數(shù)字量IO模塊用于實(shí)現(xiàn)壓縮空氣氣壓監(jiān)測,以及壓緊末端執(zhí)行器的壓級、夾緊控制。
機(jī)器人控制系統(tǒng)KRC4與TwinCAT3通過EL6695來實(shí)現(xiàn)數(shù)據(jù)交換,數(shù)據(jù)交換的類型只能是整數(shù)型。由于機(jī)器人的工作半徑是2 832 mm,坐標(biāo)值精度為小數(shù)點(diǎn)后兩位,因此,交換數(shù)據(jù)的長度定位為32位。在庫卡機(jī)器人項(xiàng)目配置軟件WorkVisual中,配置EL6695模塊的輸入/輸出變量為32個(gè)DWORD型數(shù)據(jù)。
TwinCAT3向機(jī)器人控制系統(tǒng)KRC4發(fā)送的內(nèi)容包括:離線編程生成的機(jī)器人工具坐標(biāo)軌跡、雙機(jī)器人系統(tǒng)控制同步信號,以及庫卡機(jī)器人外部運(yùn)行所需要的控制信號等。
機(jī)器人控制系統(tǒng)KRC4向TwinCAT3發(fā)送的內(nèi)容包括:機(jī)器人接受數(shù)據(jù)的控制信號,機(jī)器人接收離線編程數(shù)據(jù)定位,雙機(jī)器人控制系統(tǒng)的同步控制信號等。
機(jī)器人控制器指令執(zhí)行是逐步執(zhí)行,而Twin-CAT3系統(tǒng)中語句指令是逐行掃描,周期性刷新,兩者的指令執(zhí)行周期沒有固定的關(guān)系。兩個(gè)控制器通信方式設(shè)計(jì)為:機(jī)器人控制系統(tǒng)請求數(shù)據(jù)通信,TwinCAT3響應(yīng)。以TwinCAT3向機(jī)器人控制系統(tǒng)發(fā)送離線編程數(shù)據(jù)為例,流程圖如圖3所示。
圖3 離線編程數(shù)據(jù)傳輸
本文應(yīng)用兩個(gè)機(jī)器人與TwinCAT3系統(tǒng)通信,實(shí)現(xiàn)了兩個(gè)機(jī)器人之間的程序的同步控制,其原理是每個(gè)機(jī)器人運(yùn)行每一步程序前,都向TwinCAT3系統(tǒng)發(fā)送程序運(yùn)行到達(dá)的信號,當(dāng)TwinCAT3系統(tǒng)根據(jù)兩個(gè)機(jī)器人程序信號,發(fā)送下一步程序開始的控制信號,當(dāng)機(jī)器人末端執(zhí)行器由初始點(diǎn)運(yùn)行至壓緊工件位時(shí),機(jī)器人發(fā)送壓緊控制信號給TwinCAT3控制系統(tǒng),其控制流程如圖4所示。
圖4 雙機(jī)器人同步控制
雙機(jī)器人壓緊控制系統(tǒng)的程序設(shè)計(jì)包括Twin-CAT3程序、以及機(jī)器人程序三部分。
TwinCAT3程序設(shè)計(jì)主要實(shí)現(xiàn)機(jī)器人末端執(zhí)行器動(dòng)作邏輯運(yùn)算、向機(jī)器人控制系統(tǒng)傳輸離線編程數(shù)據(jù),控制兩個(gè)機(jī)器人程序同步運(yùn)行。關(guān)鍵程序代碼如下所示:
varRobotcounter:=getcounter(varRobotRequest);//獲取機(jī)器人傳輸?shù)牡趲讉€(gè)點(diǎn)
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);
//機(jī)器人1程序第N條語句執(zhí)行完畢
Robot2Start:=SetRobot1Start(robot2PrjEnd);
//機(jī)器人2程序第N條語句執(zhí)行完畢
If Robot1Start=Robot2Start then
Robot1Start:=setRobotPrgStart(robot1Start);
//機(jī)器人1程序第N+1條語句執(zhí)行
Robot2Start:=setRobotPrgStart(robot2Start);
//機(jī)器人2程序第N+1條語句執(zhí)行
機(jī)器人程序主要實(shí)現(xiàn)壓緊末端執(zhí)行器運(yùn)行軌跡的。機(jī)器人的程序如下所示,機(jī)器人首先由執(zhí)行PTP P18指令,使機(jī)器人待機(jī)位置,然后與TwinCAT3進(jìn)行數(shù)據(jù)通信,獲取離線編程坐標(biāo)點(diǎn),其中,變量varinx,variny,varinz,varina,varinb,varinc,分別是各個(gè)點(diǎn)與P18點(diǎn)的差值。因?yàn)閭鬏敂?shù)據(jù)的格式只能是整數(shù)形式,所以需要將數(shù)據(jù)處理,乘以0.01.機(jī)器人程序獲取離線編程數(shù)據(jù)后,通過wait for等待Twin-CAT 3發(fā)送的第一條同步執(zhí)行語句,執(zhí)行第一步語句后,兩個(gè)機(jī)器人分別發(fā)送S1End信號給TwinCAT3,然后等待第二條語句開始信號。如此便實(shí)現(xiàn)了兩臺機(jī)器人語句同步執(zhí)行。程序代碼如下:
PTP XP18;機(jī)器人運(yùn)行至初始位置
for counter=1 to 10;以傳輸10個(gè)離線編程點(diǎn)為例
varInputReq=TRUE;機(jī)器人向請求數(shù)據(jù)輸入
varInputReqCounter=counter;機(jī)器人發(fā)送傳輸?shù)趲讉€(gè)點(diǎn)
varInputFinished=FALSE;
WAIT for varExternInput;等待 TwinCAT3 數(shù)據(jù)傳輸完成
robotPos[counter]=$POS_ACT;保存機(jī)器人HOME點(diǎn)S,T變量信息
robotPos[counter].x=robotPos[counter].x+varinx*0.01;保存離線編程點(diǎn)X
robotPos[counter].y=robotPos[counter].y+variny*0.01;保存離線編程點(diǎn)Y
robotPos[counter].z=robotPos[counter].z+varinz*0.01;保存離線編程點(diǎn)Z
robotPos[counter].a=robotPos[counter].a+varina*0.01;保存離線編程點(diǎn)A
robotPos[counter].b=robotPos[counter].b+varinb*0.01;保存離線編程點(diǎn)B
robotPos[counter].c=robotPos[counter].c+varinc*0.01;保存離線編程點(diǎn)C
varInputReq=FALSE;接受離線編程數(shù)據(jù)完畢后,請求輸入復(fù)位
varInputFinished=TRUE;接受數(shù)據(jù)標(biāo)志完成位置位
ENDFOR
varInputReqCounter=0;數(shù)據(jù)傳輸完畢
lin robotpos[1];
s1End=TRUE
wait for s1Start
lin robotpos[2]
s2End=true
在 TwinCAT3 的 robotXpos,robotYpos,robotZpos,robotApos,robotBpos,robotCpos的數(shù)組分別讀入數(shù)值為{100,200,300,400,500,600,700,800,900},然后運(yùn)行選擇機(jī)器人程序,程序運(yùn)行第一條同步程序后,在機(jī)器人示教器上查看機(jī)器人程序變量,分別輸入變量名為robotPos[1..10],顯示結(jié)果如表1所示。機(jī)器人坐標(biāo)顯示值分別為:
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}
通過以上數(shù)據(jù)可以看出可以看出,機(jī)器人程序中robotPos[1]—robotPos[10],相鄰的兩個(gè)坐標(biāo)產(chǎn)在X,Y,Z,A,B,C 差值為 1,即 100*0.01,與傳輸值完全一致。
選擇機(jī)器人程序,雙機(jī)器人實(shí)現(xiàn)了程序同步運(yùn)行。采用這種機(jī)器人同步的方式,有一個(gè)特點(diǎn)是當(dāng)機(jī)器人連續(xù)執(zhí)行兩條lin指令,機(jī)器人自動(dòng)會做軌跡逼近,如果機(jī)器人執(zhí)行的兩個(gè)lin指令中間有IO操作的指令,機(jī)器人控制器會中斷兩個(gè)lin指令的逼近。這樣會使機(jī)器人精確定位到該點(diǎn),但是也會降低機(jī)器人運(yùn)行效率。
在兩個(gè)機(jī)器人示教器上分別選擇程序,并運(yùn)行至BCO,然后在集成操作臺操作界面上選擇離線編程數(shù)據(jù)傳輸,并啟動(dòng)機(jī)器人同步控制,機(jī)器人帶動(dòng)壓緊末端執(zhí)行器運(yùn)行至離線編程的第一個(gè)點(diǎn),機(jī)器人控制器輸出數(shù)字量DO控制信號,控制夾緊驅(qū)動(dòng)氣缸和壓緊驅(qū)動(dòng)氣缸運(yùn)動(dòng),對T型長桁進(jìn)行壓緊和夾緊。然后雙機(jī)器人同步執(zhí)行指令運(yùn)行至程序結(jié)束,如圖5所示。
圖5 壓緊末端執(zhí)行器實(shí)驗(yàn)驗(yàn)證
(1)利用機(jī)器人與集成控制臺TwinCAT3控制系統(tǒng)的通信協(xié)議,可以使不同程序運(yùn)行周期、不同運(yùn)行機(jī)制的庫卡機(jī)器人控制系統(tǒng)和TwinCAT3系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)的傳輸、雙機(jī)器人程序同步執(zhí)行。利用這種通信協(xié)議,也可以實(shí)現(xiàn)對機(jī)器人的軌跡校正,用于焊接機(jī)器人的焊縫跟蹤、搬運(yùn)機(jī)器人的定位校正等。
(2)利用“發(fā)送—等待信號”機(jī)制,可以實(shí)現(xiàn)雙機(jī)器人程序的同步控制,并且這種機(jī)制會使機(jī)器人精確運(yùn)行至離線編程輸出的目標(biāo)點(diǎn),但是使機(jī)器人控制系統(tǒng)取消了兩條語句之間的程序逼近算法,會降低機(jī)器人運(yùn)行效率。
(3)通過機(jī)器人運(yùn)行程序,運(yùn)用實(shí)驗(yàn)驗(yàn)證了控制系統(tǒng)實(shí)現(xiàn)雙壓級機(jī)器人系統(tǒng)導(dǎo)入離線編程數(shù)據(jù)、控制機(jī)器人同步運(yùn)行,對T型長桁進(jìn)行壓級和夾緊,實(shí)現(xiàn)了機(jī)器人柔性壓緊工裝的功能,從而縮短了小批量焊件的生產(chǎn)周期。