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