范紹平
(四川信息職業(yè)技術學院,四川廣元 628017)
碼垛機器人[1]可以代替人工可以進行重復性的物料搬運工作,在自動生產(chǎn)線上具有廣闊的應用與發(fā)展前景。碼垛工藝是指通過對垛的外形尺寸、垛數(shù)、層數(shù)基本參數(shù)設置,對垛的擺放位置進行簡單確認后就能實現(xiàn)所有垛的整齊擺放。碼垛工藝中,托盤用于放置碼垛的物品(區(qū)域),碼垛工藝指令數(shù)量能支持托盤個數(shù);排樣數(shù)可實現(xiàn)多種不同的排放方式,通常1層1種排樣;參考點是指第一個垛的擺放位置,以后每個垛的坐標以其為基準進行偏移。筆者以卡諾普機器人CRP-S80碼垛工作單元為例進行工藝分析與程序設計。
圖1 工業(yè)機器人雙線碼垛現(xiàn)場布局圖
圖1 為工業(yè)機器人雙線碼垛現(xiàn)場布局圖。
排布為雙線(A線、B線)雙垛(A托盤、B托盤),每個托盤碼10層,每層碼3包。A托盤(工藝1),排樣1為奇數(shù)層,排樣2為偶數(shù)層。B托盤(工藝2),排樣1為奇數(shù)層,排樣2為偶數(shù)層。按上述排布,在碼每個工藝的垛1時,第4軸(機器人)都基本不轉(zhuǎn)動;在碼每個工藝的垛2、垛3時,第4軸轉(zhuǎn)正90°或負90°,這樣會在碼垛時保證較高的運動效率(其他軸最在運動也在90°左右,這樣將能讓每個軸都達到其最大速度)。
X00:手抓夾緊檢測信號;
X01:A托盤檢測信號;
X02:B托盤檢測信號;
X03:A線檔板信號檢測(表示A線有料可以抓了);
X04:B線檔板信號檢測(表示B線有料可以抓了);
X05:A線線體號檢測(表示A線有料來了可以準備抓了);
X06:B線線體號檢測(表示B線有料來了可以準備抓了);
X07:防護1(A托盤)檢測,無效時表示有物體或人員干涉,不能對該托盤碼垛;
X08:防護2(B托盤)檢測,無效時表示有物體或人員干涉,不能對該托盤碼垛;
X09:線體開關控制信號,當該信號有效時線體才能轉(zhuǎn)動。
Y00:抓手控制,有效夾緊,無效松開。受面板M160控制;
Y01:抓手輥A轉(zhuǎn)動控制。系統(tǒng)內(nèi)部PLC控制,X03信號有效時停止該信號,同時受X05控制;
Y02:A線線體轉(zhuǎn)動控制,當X03、X05都有效時停止該信號(來料太多);
Y03:抓手輥B轉(zhuǎn)動控制。系統(tǒng)內(nèi)部PLC控制,X04信號有效時停止該信號,同時受X05控制;
Y04:B線線體轉(zhuǎn)動控制,當X04、X06都有效時停止該信號(來料太多);
Y13:A線裝滿指示;
Y14:B線裝滿指示;
Y15:碼垛指示燈控制,該信號有效表示正在碼垛。
M350:A線滿標示ON表示滿;
M351:B線滿標示ON表示滿;
M352:A線托盤移動標示ON表示移開;
M353:B線托盤移動標示ON表示移開;
M354:A線清托盤;
M355:B線清托盤;
M356:B線有料但是沒托盤標志。
控制抓手梯形圖如圖2,托盤移走梯形圖如圖3。
圖2 控制抓手梯形圖程序
圖2 中,M160用來控制抓手,當總停(X009)開啟時,A檔信號(X03)沒來時,A抓手輥控制(Y01)有效,反之來料后停止轉(zhuǎn)動;總停(X009)開啟時,A檔信號(X03)、A線體檢測信號(X05)沒來時,A線體轉(zhuǎn)動控制(Y02)有效,反之兩種感應都有效,則停線體;總停(X009)開啟時,B檔信號(X05)沒來時,B抓手輥控制(Y03)有效,反之來料后停止轉(zhuǎn)動;當總停(X09)開啟時,B檔信號(X04)、B線體檢測信號(X06)沒來時,B線體轉(zhuǎn)動控制(Y04)有效,反之兩種感應都有效,則停線體。
圖3 托盤移走梯形圖
圖3 中,X01無效(托盤移走)5 s后將A線托盤移動標志M352置位,M354由程序復位托盤移動標志;X02無效(托盤移走)5 s后將B線托盤移動標志M353置位,M355由程序復位托盤移動標志。
(1)A線點位如下:
GP0:A線取件點;
GP1:A線準備取件點;
GP2:過渡點備份(先記錄,之后進入工藝在工藝里過渡點)。
(2)B線變量如下:
GP10:B線取件點;
GP11:B線準備取件點;
GP12:過渡點備份(先記錄,之后進入工藝在工藝里過渡點)。
(3)A線、B線GP點分布。圖4為A線、B線GP點分布圖側(cè)視圖,圖4A線、B線為GP點位置俯視圖。
圖4 A、B線GP點分布圖側(cè)視圖
取件點即能抓袋的位置,準備取件在在取點的正上方(只有Z方向有偏移),為了確保速度的連貫性,取件點與準備取件點在Z方向距離要大于300 mm。過渡點應該在準備取件點上面,X、Y方向的坐標可適當向托盤做些量偏移,方便過渡。過渡點是每層提高一個袋的厚度,所以在取點時要注意確保在碼到最高層時不要超過機器人運行高度。準備放件點在放件點的正上方,準備放件點是每層提高一個袋的厚度,所以在取點時要注意確保在碼到最高層時不要超過機器人運行高度。
圖5 GP點位置俯視圖
通過上面分析得知B線要比A線快很多,所以B線優(yōu)先。主程序如下:
IFM356==OFF 7 上次B線有料但是沒托盤
IF X04==ON 0 B左線有料
IF X#(2)==ON 1 判斷是否有托盤
IFM#(353)==ON 2 B托盤被移開過5秒
SETGI#(92)1 把碼垛數(shù)置為1
MOVJVJ=65%GP#11 PL=9 運動到準備取
件點
DOUTM#(355)=ON 清除托盤移動標志
Time 200
DOUTM#(355)=OFF 清除托盤移動標志
CALL right調(diào)用B托盤工藝文件
Else 2 B托盤沒被被移開過
IFM#(351)==OFF 3 B托盤是否已碼垛,ON
的碼滿
MOVJVJ=65%GP#11 PL=9 運動到準備取
件點
CALL right 調(diào)用B托盤工藝文件
Else 3
DOUTM#(356)=ON
ENDIF 3
ENDIF 2
Else 1
DOUTM#(356)=ON
ENDIF 1
Elsif X03==ON 0 A線有料
IF X#(1)==ON 4 判斷是否有托盤
IFM#(352)==ON 5 A托盤被移開過5秒
SETGI#(91)1把碼垛數(shù)置為1
MOVJVJ=65%GP#1 PL=9 運動到準備取件
點
DOUTM#(354)=ON 清除托盤移動標志
Time 200
DOUTM#(354)=OFF 清除托盤移動標志
CALL left調(diào)用A托盤工藝文件
Else 5 A托盤沒被被移開過
IFM#(350)==OFF 6 A托盤是否已碼垛,ON
的碼滿
MOVJVJ=65%GP#1 PL=9 運動到準備取件
點
CALL left 調(diào)用A托盤工藝文件
ENDIF 6
ENDIF 5
ENDIF 4
ENDIF 0
Else 7 上次B線有料但是沒托盤,就判斷A
線是否需搬
DOUTM#(356)=OFF 清上次B線有料但是沒
托盤標志
Endif 7
Main1:用于當B線條件不滿足時,再判斷一次
A線,因為主程序IF太多所
以獨立一個程序
IF X03==ON 1 A線有料
IF X#(1)==ON 2 判斷是否有托盤
IFM#(352)==ON 3 A托盤被移開過5秒
SETGI#(91)1 把碼垛數(shù)置為1
MOVJVJ=65%GP#1 PL=9 運動到準備取件
點
DOUTM#(354)=ON 清除托盤移動標志
Time 200
DOUTM#(354)=OFF 清除托盤移動標志
CALL left 調(diào)用A托盤工藝文件
Else 3 A 托盤沒被被移開過
IFM#(350)==OFF 0 A 托盤是否已碼垛,ON
的碼滿
MOVJVJ=65%GP#1 PL=9 運動到準備取
件點
CALL left 調(diào)用A托盤工藝文件
ENDIF 0
ENDIF 3
ENDIF 2
ENDIF 1
A托盤子程序如下:
DOUTM#(350)=OFF 清除碼垛標志
DOUT Y#(13)=OFF 滅碼滿指示燈。
DOUT Y#(15)=ON 點亮碼垛中指示燈。
DOUTM#(160)=OFF 打開手抓
WTAIT X#(0)==OFF T=0 檢測手抓是否打
開到位
MOVJVJ=65%GP#1 PL=9 運動到準備取件
點
WAIT X#(3)==ON T=0 檢測抓手輥上是否
有料
MOVL VL=500.0MM/SGP#0 PL=0 運動到取
件點
TIME T=50延時50ms 確保手抓準確到位
DOUTM#(160)=ON 夾緊手抓
PALLET#1 執(zhí)行1號工藝,計算擺放位置做準
備
WTAIT X#(0)==ON T=0 檢測手抓是否夾緊
到位
WTAIT X#(1)==ON T=0 判斷是否有左托盤
MOVL VL=1200.0MM/SGP#1 PL=9 提起
WAIT X#(14)==ON T=0 確認總起動信號有
效
WAIT X#(7)==OFF T=0 確認沒有人員進入
機器人工作區(qū)
MOVJVJ=100%GP#81 PL=9 運動過渡點
MOVJVJ=100%GP#90 PL=9 運動準備放件
點
MOVL VL=2000.0MM/SGP#91 PL=0 運動到放
件點
TIME T=50 延時50ms確保手抓準確到位
DOUTM#(160)=OFF 打開手抓
WTAIT X#(0)==OFF T=0 檢測手抓是否打
開到位
INC GI#(91) 放完1件,把垛數(shù)加1。
TIME T=50 延時50ms確保手抓打開準確到
位,(可以不要)
MOVL VL=2000.0MM/SGP#90 PL=9 運動到
放件點
MOVJVJ=100%GP#81 PL=9 運動到過渡點
IF GI#(91)==31 1
DOUT Y#(15)=OFF 已碼滿,清除碼垛指示
燈。
DOUT Y#(13)=ON 點亮碼滿指示燈。
DOUTM#(350)=ON 置碼滿標志
SETGI#(91)1把碼垛數(shù)置為1
ENDIF 1
RET返回主程序
B托盤子程序如下:
DOUTM#(351)=OFF 清除碼垛標志
DOUT Y#(14)=OFF 滅碼滿指示燈。
DOUT Y#(15)=ON 點亮碼垛中指示燈。
DOUTM#(160)=OFF 打開手抓
WTAIT X#(0)==OFF T=0 檢測手抓是否打
開到位
MOVJVJ=100%GP#11 PL=9 運動到準備取
件點
WAIT X#(04)==ON T=0 檢測抓手輥上是否
有料
MOVL VL=500.0MM/SGP#10 PL=0 運動到
取件點
TIME T=50 延時50ms確保手抓準確到位
DOUTM#(160)=ON夾緊手抓
PALLET#2執(zhí)行2號工藝,計算擺放位置做準備
X#(0)==ON T=0 檢測手抓是否夾緊到位
WTAITX#(2)==ON T=0 判斷是否有右托盤
MOVL VL=1200.0MM/SGP#11 PL=9 提起
WAIT X#(14)==ON T=0確認總起動信號有效
WAIT X#(08)==OFF T=0確認沒有人員進入
機器人工作區(qū)
MOVJVJ=100%GP#82 PL=9 運動到過渡點
MOVJVJ=100%GP#90 PL=9 運動到準備放
件點
MOVL VL=2000.0MM/SGP#91 PL=9 運動到
放件點
TIME T=50延時50ms確保手抓準確到位
DOUTM#(160)=OFF 打開手抓
WTAIT X#(0)==OFF T=0 檢測手抓是否打
開到位
INC GI#(92) 放完1件,把垛數(shù)加1。
TIME T=50延時50ms確保手抓打開準確到位,
(可以不要)
MOVL VL=2000.0MM/SGP#90 PL=9 運動到
放件點
MOVJVJ=100%GP#81 PL=9 運動到過渡點
IFGI#(92)==31 1如果已經(jīng)碼滿
DOUT Y#(15)=OFF 已碼滿,清除碼垛指示
燈。
DOUT Y#(14)=ON 點亮碼滿指示燈。
DOUTM#(351)=ON置碼滿標志
SETGI#(92)1把碼垛數(shù)置為1
ENDIF 1
RET返回主程序
工業(yè)機器人是工業(yè)和服務業(yè)的重大生產(chǎn)和服務性設備,也是先進制造技術領域不可缺少的自動化設備。工業(yè)機器人代替人工可以進行重復性的物料搬運工作,在自動生產(chǎn)線上具有廣闊的應用,所以工業(yè)機器人在傳統(tǒng)產(chǎn)業(yè)的應用將大大的提升企業(yè)產(chǎn)品的競爭力,對國家經(jīng)濟產(chǎn)生巨大的推動作用。
[1] 徐元宣.工業(yè)機器人[M].北京:中國輕工業(yè)出版社,1999.