潘杰
摘要:搬運(yùn)碼垛是機(jī)器人經(jīng)常要完成的任務(wù),把物料搬運(yùn)碼垛成一個(gè)金字塔形狀需要一個(gè)精確的設(shè)計(jì)過(guò)程,此過(guò)程要設(shè)置帶有傳感器的能夠傳送物品的傳送帶功能裝置,設(shè)置準(zhǔn)確的屬性和信號(hào)連接,設(shè)置工作站的邏輯關(guān)系,對(duì)起始點(diǎn)和放置點(diǎn)進(jìn)行示教定位、編寫搬運(yùn)碼垛程等。本文在robotstudio基礎(chǔ)上完成了機(jī)器人將物料分層次碼垛成一個(gè)金字塔形狀智能工作站。
關(guān)鍵詞:機(jī)器人;搬運(yùn);碼垛
中圖分類號(hào):TP391? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)17-0021-03
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
1 研究任務(wù)
在機(jī)器人工作站中,編寫機(jī)器人程序,完成傳送帶物料輸送到位后,機(jī)器人從傳送帶上將物料取走,擺放到指定的物料盤中,要求按照由右到左的順序擺放,分五層擺放,從最低層往上數(shù),擺放數(shù)量為5個(gè)、4個(gè)、3個(gè)、2個(gè)、1個(gè),最終擺放成金字塔形狀。物料直徑是40mm,物料高度為20mm,左右物料中間空襲的間距是2mm。啟動(dòng)和停止按鈕在RobotStudio中通過(guò)仿真工作站I/O信號(hào)模擬。利用教建立的仿真工作站進(jìn)行機(jī)器人編程并仿真運(yùn)行無(wú)問(wèn)題后,在將程序?qū)雽?shí)際的工作站中,示教運(yùn)行完成物料的搬運(yùn)動(dòng)作。
2 傳送帶功能的建立
在建模工具欄中選擇“Smart組件”,在RobotStudio“布局”窗口的列表中右擊新建立的Smart組件名稱,快捷菜單中選擇“重命名”,輸入名稱為“傳送帶動(dòng)作”, 在“布局”窗口的列表中拖拽“小物料和傳送帶到傳送帶動(dòng)作”節(jié)點(diǎn)下。
2.1.設(shè)置傳感器
在傳送帶動(dòng)作組件窗口中點(diǎn)擊“添加組件”,從菜單中選擇“傳感器”,然后在子菜單中選擇“PlaneSensor”。設(shè)置動(dòng)作組件:在傳送帶動(dòng)作組件窗口中點(diǎn)擊“添加組件”,從菜單中選擇“動(dòng)作”,然后在子菜單中選擇“Source”。在屬性窗口中進(jìn)行設(shè)置。? 添加“Queue”組件,不需要對(duì)屬性進(jìn)行設(shè)置。? 設(shè)置LinearMover組件。添加“LogicGate”組件,在屬性窗口中設(shè)定“Operator”為NOT。
3 設(shè)定屬性和信號(hào)連接
3.1 設(shè)置屬性連結(jié)
在“傳送帶動(dòng)作”組件窗口中,點(diǎn)擊“屬性與連結(jié)”標(biāo)簽,然后點(diǎn)擊“添加連結(jié)”,將彈出“添加連結(jié)”窗口。
3.2 添加I/OConnection
(1)設(shè)置傳送帶信號(hào)輸入開(kāi)始小物料的來(lái)源的復(fù)制。
(2)設(shè)置來(lái)源執(zhí)行后,開(kāi)始隊(duì)列的執(zhí)行,將復(fù)制的小物料排列在隊(duì)列后。
(3)設(shè)置傳感器識(shí)別到物料后,隊(duì)列停止。
(4)設(shè)置傳感器識(shí)別到物料后,給外部輸出識(shí)別到物料的信號(hào)。
(5)設(shè)置當(dāng)物料被拿走后,傳感器沒(méi)有識(shí)別到物料關(guān)聯(lián)反向信號(hào)。
(6)設(shè)置反向信號(hào)與來(lái)源執(zhí)行相關(guān)聯(lián),實(shí)現(xiàn)當(dāng)傳感器沒(méi)有識(shí)別到物料時(shí),物料復(fù)制并重復(fù)進(jìn)行排隊(duì)前進(jìn)。
4 工作站的邏輯設(shè)置
4.1 添加機(jī)器人系統(tǒng)
在添加機(jī)器人系統(tǒng)的選項(xiàng)界面中點(diǎn)擊“選項(xiàng)”按鈕。彈出更改選項(xiàng)窗口,在類別中選擇“Default Language”,在選項(xiàng)中取消English的勾選,勾選Chinese,為了讓機(jī)器人能夠與外部通信還需要添加網(wǎng)絡(luò)設(shè)備,所以在類別中選擇“Industrial Networks”,在選項(xiàng)中勾選“709-1 DeviceNet Master/Slave”,點(diǎn)擊“確定”按鈕后,回到“從布局創(chuàng)建系統(tǒng)”窗口。
4.2 建立機(jī)器人IO信號(hào)
點(diǎn)擊“控制器”菜單,在左側(cè)控制器列表中展開(kāi)“配置”接點(diǎn),雙擊“I/O System”接點(diǎn),在右側(cè)打開(kāi)配置I/O系統(tǒng)窗口。在配置I/O系統(tǒng)窗口中右鍵單擊“DeviceNet Device”節(jié)點(diǎn)選擇“新建DeviceNet Device…”,打開(kāi)的窗口中的Name后文本框中輸入“D651”,然后點(diǎn)擊確定。在配置I/O系統(tǒng)窗口中右鍵單擊“Signal”節(jié)點(diǎn)選擇“新建Signal”,在Type of Signal列表中選擇“Digital Input”。在配置I/O系統(tǒng)窗口中右鍵單擊“Signal”節(jié)點(diǎn)選擇“新建Signal”,在Type of Signal列表中選擇“Digital Output”。
4.3 設(shè)定信號(hào)連接
進(jìn)入“仿真”菜單,在工具欄中選擇“工作站邏輯”。設(shè)置工作站啟動(dòng)信號(hào)用來(lái)實(shí)現(xiàn)啟動(dòng)功能,模擬工作站中的“啟動(dòng)按鈕”的功能;設(shè)置工作站停止信號(hào)用來(lái)實(shí)現(xiàn)停止功能,模擬工作站“停止按鈕”的功能;設(shè)置與夾爪的連接實(shí)現(xiàn)機(jī)器人通過(guò)“do_xp”信號(hào)來(lái)控制吸盤的開(kāi)合;設(shè)置傳送帶信號(hào)與機(jī)器人信號(hào)的連接實(shí)現(xiàn)機(jī)器人通過(guò) “di_csd”信號(hào)是否為1來(lái)判斷物料是否到位。設(shè)置工作站啟動(dòng)信號(hào)與機(jī)器人信號(hào)的連接設(shè)置工作站啟動(dòng)信號(hào)與傳送帶啟動(dòng)信號(hào)連接:實(shí)現(xiàn)傳送帶獲得工作站傳入的啟動(dòng)信號(hào);設(shè)置工作站停止信號(hào)與機(jī)器人信號(hào)的連接:實(shí)現(xiàn)機(jī)器人獲得工作站傳給機(jī)器人的停止信號(hào)。設(shè)置結(jié)果如圖1所示。
5 碼垛編程
5.1 搬運(yùn)流程圖
機(jī)器人首先運(yùn)動(dòng)到初始位置,之后機(jī)器人末端工具直線運(yùn)動(dòng)到第一個(gè)待取料的上方點(diǎn)位,然后垂直下落到取物料點(diǎn)位,夾取物料、向上抬起到上方定位后平移到待放點(diǎn)位上方,再垂直下落到放置點(diǎn)位后放下物料,之后機(jī)器人抬起。夾取其他物料的過(guò)程與第一個(gè)相同,只是點(diǎn)位不同??傮w流程圖如圖2所示。
5.2 程序數(shù)據(jù)聲明
編寫程序前首先要進(jìn)行程序數(shù)據(jù)聲明,聲明起始點(diǎn)、取料點(diǎn)、放料點(diǎn)等7個(gè)點(diǎn)位, 在RobotStudio中選擇RAPID菜單,按照下列程序所示進(jìn)行程序數(shù)據(jù)聲明。
程序數(shù)據(jù)聲明:
MODULE Module1
CONST robtarget home:=[[301.24,0.00,558.00],[0.00526559,0,-0.999986,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]]; !聲明起始點(diǎn)
CONST robtarget qwl:=[[322.54,426.08,287.50],[0.00526541,-4.20242E-8,-0.999986,-1.10285E-7],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]]; !聲明取料點(diǎn)常量
CONST robtarget fwl:=[[346.29,-282.31,297.79],[0.00526535,-1.92038E-8,-0.999986,-8.44633E-8],[-1,-1,-1,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]]; !聲明放料點(diǎn)常量
VAR num i; !聲明循環(huán)次數(shù)計(jì)數(shù)變量
VAR robtarget qwls; !聲明取物料點(diǎn)上方變量
VAR robtarget fwls; !聲明放物料點(diǎn)上方變量
VAR robtarget fwl2; !聲明放物料點(diǎn)到位變量
5.3 編寫main函數(shù)
PROC main() !主函數(shù)
Movej home,v300,fine,tool0\WObj:=wobj0; !運(yùn)動(dòng)到起始點(diǎn)
FOR i FROM 0 TO 14 DO !循環(huán) 15 次,取放 15 個(gè)物料
qwls:=offs(qwl,0,0,30); !計(jì)算取料點(diǎn)上方點(diǎn)位
MoveL qwls,v300,fine,tool0\WObj:=wobj0; !運(yùn)動(dòng)到傳送帶取物料位置上方
WaitDI di_csd,1; !等待輸入信號(hào) di_csd 為 1,即等待傳送帶物料到位
MoveL qwl,v300,fine,tool0\WObj:=wobj0; !運(yùn)動(dòng)到取料點(diǎn)位置
set do_xp; !吸盤置 1,執(zhí)行夾取動(dòng)作,夾取物料
WaitTime 0.5; !等待 0.5s,以?shī)A穩(wěn)物料
MoveL qwls,v300,fine,tool0\WObj:=wobj0; !提升到取料點(diǎn)上方位置
IF i<5 THEN !如果 i<5
fwls:=offs(fwl,0,i*42-36,40); !運(yùn)動(dòng)到第一層放料點(diǎn)位置上方
fwl2:=offs(fwl,0,i*42-36,0); !運(yùn)動(dòng)到第一層放料點(diǎn)位置
ELSEIF i<9 THEN !否則 5<=i<9
fwls:=offs(fwl,0,(i-5)*42-16,80); !運(yùn)動(dòng)到第二層放料點(diǎn)位置上方
fwl2:=offs(fwl,0,(i-5)*42-16,20); !運(yùn)動(dòng)到第二層放料點(diǎn)位置
余下循環(huán)程序可根據(jù)9<=i<12 ,12<=i<14, i=14,可依次運(yùn)動(dòng)到第三層、第四層、第五層的放料點(diǎn),
設(shè)置放料點(diǎn)程序如下:
MoveL fwls,v300,fine,tool0\WObj:=wobj0; !移動(dòng)到放料點(diǎn)上方
MoveL fwl2, v300, fine, tool0\WObj:=wobj0; !慢速下落到放料點(diǎn)位置
reset do_xp; !吸盤置 0
WaitTime 0.5; !等待 0.5s ,以放穩(wěn)物料
ENDFOR ! 結(jié)束 FOR 循環(huán)
Movej home,v300,fine,tool0\WObj:=wobj0; !運(yùn)動(dòng)到起始點(diǎn)
Stop; !停止本次循環(huán)
ENDPROC ! 結(jié)束 main 函數(shù)
ENDMODULE !結(jié)束 MODULE
5.4 程序?qū)霗C(jī)器人工作站
在RobotStudio軟件中,點(diǎn)擊“RAPID”菜單,在左側(cè)列表中,展開(kāi)RAPID接點(diǎn),右鍵單擊程序模塊“module1”,然后選擇“保存模塊為…”,選擇保存位置,然后點(diǎn)擊“保存”按鈕。加載模塊到真實(shí)工作站,要保證電腦與真實(shí)工作站的控制器通過(guò)網(wǎng)線連接。在RobotStudio中,新建空工作站,添加“IRB120”機(jī)器人,然后在“控制器”菜單中,點(diǎn)擊“添加控制器”子菜單中的“一鍵連接…”,連接到真實(shí)工作站中的控制器 在“控制器”列表中將出現(xiàn)服務(wù)端口及其下面列出的控制器系統(tǒng),展開(kāi)接點(diǎn)到“T_ROB1”,右鍵點(diǎn)擊該節(jié)點(diǎn),從彈出菜單中選擇“加載模塊”,在打開(kāi)的窗口中選擇之前保存的模塊,然后點(diǎn)擊“打開(kāi)”按鈕,如果原有工作站有同名的模塊,則會(huì)出現(xiàn)一個(gè)對(duì)話框,詢問(wèn)是否覆蓋同名的模塊,這里點(diǎn)擊“是”。
5.5 點(diǎn)位示教
示教home點(diǎn),將機(jī)器人的末端工具,調(diào)整為垂直向下?tīng)顟B(tài),此點(diǎn)為home點(diǎn),在示教器的“程序編輯器”中,打開(kāi)main例行程序,在代碼中點(diǎn)擊MovJ 后面home,選擇下方的“修改位置”,完成home點(diǎn)的示教。示教取料點(diǎn),取物料目標(biāo)點(diǎn)要保證夾住物料時(shí)不改變位置,在代碼中點(diǎn)擊MovL后面qwl,選擇下方的“修改位置”,完成qwl點(diǎn)的示教。示教放料點(diǎn),示教放物料目標(biāo)點(diǎn)(點(diǎn)位名稱fwl)時(shí),應(yīng)當(dāng)夾著物料進(jìn)行示教。在代碼中點(diǎn)擊MovL 后面fwl,選擇下方的“修改位置”,完成 fwl點(diǎn)的示教。
6 仿真運(yùn)行
在RobotStudio的仿真設(shè)定中不需要仿真機(jī)器人,在“仿真”菜單中點(diǎn)擊“仿真設(shè)定”,在仿真設(shè)定窗口中取消“system1”后面的勾選,關(guān)閉仿真設(shè)定窗口。在“仿真”菜單中,點(diǎn)擊“重置”從列表中選擇“初始狀態(tài)”,使工作站和機(jī)器人恢復(fù)到運(yùn)行的起止?fàn)顟B(tài)位置。
機(jī)器人開(kāi)啟自動(dòng),在“控制器”菜單中點(diǎn)擊“控制面板”,在右側(cè)出現(xiàn)“控制面板”窗口,在窗口中將操作模式選擇為“自動(dòng)”,點(diǎn)擊“電機(jī)按鈕”給電機(jī)上電。在“仿真”菜單中,點(diǎn)擊“播放”按鈕,開(kāi)始仿真,“I/O仿真器”窗口中選擇系統(tǒng)為“工作站信號(hào)”,在下面出現(xiàn)start和stop兩個(gè)按鈕,點(diǎn)擊“start”將啟動(dòng)機(jī)器人和傳送帶的運(yùn)行。按下“stop”將停止機(jī)器人的運(yùn)行,再次點(diǎn)擊“start”機(jī)器人將繼續(xù)運(yùn)行。最終實(shí)現(xiàn)如圖3所示金字塔形狀搬運(yùn)碼垛功能。
參考文獻(xiàn):
[1] 李勇.基于RobotStudio的碼垛機(jī)器人智能工作站仿真的探究[J].科技資訊,2018,16(28):31-32.
[2] 李鵬,顧立志,李輝,等.基于Robotstudio的碼垛機(jī)器人工作站構(gòu)建的仿真研究[J].內(nèi)燃機(jī)與配件,2019(18):252-253.
[3] 黃明鑫,惠為東.基于RobotStudio的機(jī)器人碼垛工作站仿真研究[J].南方農(nóng)機(jī),2018,49(23):43-44,51.
[4] 蘇士超.基于RobotStudio的搬運(yùn)碼垛工作站仿真設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2020,16(32):235-236.
【通聯(lián)編輯:梁書】