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