机械臂搬运物件小结
工業機器人基本知識
一、 工業機器人硬件結構
包含控制器、驅動器、伺服電機、減速機、機械負載、末端執行機構、系統保護裝置、各種輸入輸出接口等。
工業機器人采用奧地利的 KEBA 工業自動化公司的型號為 CP 263/X 的控制器。
控制器接口如下:
EtherCAT 1
CAN 1
Serial -
Ethernet 2x 10/100 MBit/s
USB 2x USB 2.0; full speed, highpower
K-Bus Sideward to add modules
Compact Flash Type 1
Graphics DVI (for KEBA operating panel only)
Expandability 1x serial, 1x CAN, 1x PCI
控制器輸入輸出如下:
Digital inputs 已擴展
Digital outputs 0.5 A 已擴展
Digital outputs A 已擴展
Analog inputs (single-ended) 已擴展
Analog inputs (differential or single-ended) 已擴展
Analog voltage outputs 已擴展
Temperature inputs 已擴展
SSI 已擴展
控制器規格如下:
Dimensions HxWxD [mm] 120 x 270 x 100
Weight [g] 1266
圖 1 從工位點 A 放置到工位點 B 圖 2 從工位點 B 放置到工位點 A
注:本系統是基于位置的控制模式,為了統一標準,利用形如 ij 來表示過渡點
位置矩陣。
Step 3:預定義“搬運”程序變量
(1)新建程序,示教器→主菜單→文件→新建項目:項目名稱(PickOne)→新
西安工程大學工業機器人實驗參考資料(內部資料)
14
建程序:程序名稱(main) 。
(2)新建子程序,文件→新建程序:程序名稱(Pick);文件→新建程序:程
序名稱(PickReturn) 。
(3)定義位置變量:
示教器→主菜單→變量→變量監測【注:禁止建立全局變量,慎用】→
項目[PickOne] →變量→新建→位置→變量:CARTPOS→名稱:XPUDot10 →確定。
項目[PickOne] →變量→新建→位置→變量:CARTPOS→名稱:XPUDot11
→確定。
項目[PickOne] →變量→新建→位置→變量:CARTPOS→名稱:XPUDot20
→確定。
項目[PickOne] →變量→新建→位置→變量:CARTPOS→名稱:XPUDot21
→確定。
項目[PickOne] →變量→新建→位置→變量:CARTPOS→名稱:XPUHome
→確定。
(4)定義速度變量:
項目[PickOne] →變量→新建→動力學及重疊優化→變量:DYNAMIC→名稱:
XPUSpeed →確定。
(5)定義氣閥開合變量:
項目[PickOne] →變量→新建→輸入輸出模塊→變量:DOUT→名稱:
XPUOpenClose →確定。
Step4:變量與輸入輸出關聯。
(1) 關 聯 氣 閥 開 合 變 量 : 監 測 → 變 量 → 檢 測 變 量 → 選 中
XPUOpenClose(Port:MAPTO BOOL: IoDOut→鍵盤:輸入 0)。
(2)編寫“搬運”代碼。
Step 5: 編寫“搬運”程序 main 函數:
主菜單→項目→PickOne →main →加載
→新建→系統:LABLE(命名:XPULoop) 【注意:第一個“編輯”是修改指
令】
→新建→運動:PTP(pos:POSITON_ (XPUHome)、dyn:DYNAMIC_(XPUSpeed))
→確認
→新建→系統功能:WaitTime(500) →確認 【時間單位:ms】
→新建→系統:CALL →程序:Pick→確認 【從工位點 1 移動到工位點 2】
→新建→系統功能:WaiTTime(500) →確認
→新建→系統:KILL →程序:Pick→確認
西安工程大學工業機器人實驗參考資料(內部資料)
15
→新建→運動:WaitIsFinished() →確認 【防止自動預讀執行后續程序】
→新建→系統:CALL →程序:PickReturn→確認 【從工位點 2 移動到工
位點 1】
→新建→系統功能:WaitTime(500) →確認
→新建→系統:KILL →程序:PickReturn→確認
→新建→運動:PTP(pos:POSITON_ (XPUHome)、dyn:DYNAMIC_(XPUSpeed))
→確認【回到原點】
→新建→系統功能:WaitTime(3000) →確認
→新建→系統:GOTO(XPULoop) →確認
Step 6:編寫 Pick 子函數:
. 主菜單→項目→PickOne →Pick →加載
【變量賦值】
→新建→系統功能: … := …(賦值)→更改→項目[PickOne] →XPUDot11→確
認→更換賦值量→替換→變量→XPUDot10→確定。【工位點 10 值賦給 11】
→新建→系統功能: … := …(賦值)→更改→項目[PickOne] →XPUDot11:z
→確認→更換賦值量→替換→變量→XPUDot10:z→新增+→替換→鍵盤→150→
確定。【給工位點 11 的 z 軸賦值】
→新建→系統功能: … := …(賦值)→更改→項目[PickOne] →XPUDot21→確
認→更換賦值量→替換→變量→XPUDot20→確定。【工位點 20 值賦給 21】
→新建→系統功能: … := …(賦值)→更改→項目[PickOne] →XPUDot21:z
→確認→更換賦值量→替換→變量→XPUDot20:z→新增+→替換→鍵盤→150→
確定。【給工位點 21 的 z 軸賦值】
【從工位點 11 移動到工位點 10】
→新建→運動:WaitIsFinished() →確認 【防止自動預讀執行后續程序】
→新建→運動:Lin(XPUDot11,XPUSpeed) →確認
→新建→運動:Lin(XPUDot10,XPUSpeed) →確認
→新建→運動:WaitIsFinished() →確認 【防止自動預讀執行后續程序】
【氣閥閉合】
→新建→開關量輸入輸出:DOUT:Set(DOUT:XPUOpenClose,value:BOOL(TRUE) )
→確認
→新建→系統功能:WaitTime(300) →確認
→新建→運動:WaitIsFinished() →確認 【防止自動預讀執行后續程序】
【從工位點 10 移動到工位點 11】
→新建→運動:Lin(XPUDot11,XPUSpeed) →確認
西安工程大學工業機器人實驗參考資料(內部資料)
16
【從工位點 11 移動到工位點 21】
→新建→運動:Lin(XPUDot21,XPUSpeed) →確認
【從工位點 21 移動到工位點 20】
→新建→運動:Lin(XPUDot20,XPUSpeed) →確認
→新建→運動:WaitIsFinished() →確認
【氣閥開啟】
→新建→開關量輸入輸
出:DOUT:Set(DOUT:XPUOpenClose,value:BOOL(FALSE) ) →確認
→新建→系統功能:WaitTime(300) →確認
【從工位點 20 移動到工位點 21】
→新建→運動:Lin(XPUDot21,XPUSpeed) →確認
Step 7:編寫 PickReture 子函數:
. 主菜單→項目→PickOne →PickReturn →加載
【變量賦值】
→新建→系統功能: … := …(賦值)→更改→項目[PickOne] →XPUDot11→確
認→更換賦值量→替換→變量→XPUDot10→確定。【XPUDot11:=XPUDot10;工位
點 10 值賦給 11】
→新建→系統功能: … := …(賦值)→更改→項目[PickOne] →XPUDot11:z
→確認→更換賦值量→替換→變量→XPUDot10:z→新增+→替換→鍵盤→150→
確定。【XPUDot11.z:=XPUDot10.z+150;給工位點 11 的 z 軸賦值】
→新建→系統功能: … := …(賦值)→更改→項目[PickOne] →XPUDot21→確
認→更換賦值量→替換→變量→XPUDot20→確定。【XPUDot21:=XPUDot20;工位
點 20 值賦給 21】
→新建→系統功能: … := …(賦值)→更改→項目[PickOne] →XPUDot21:z
→確認→更換賦值量→替換→變量→XPUDot20:z→新增+→替換→鍵盤→150→
確定。【XPUDot21.z:=XPUDot20.z+150;給工位點 21 的 z 軸賦值】
→新建→運動:WaitIsFinished() →確認 【防止自動預讀執行后續程序】
【氣閥開啟】
→ 新 建 → 開 關 量 輸 入 輸
出:DOUT:Set(DOUT:XPUOpenClose,value:BOOL(FALSE) ) →確認
→新建→運動:Lin(XPUDot21,XPUSpeed) →確認
→新建→運動:Lin(XPUDot20,XPUSpeed) →確認
→新建→運動:WaitIsFinished() →確認 【防止自動預讀執行后續程序】
【氣閥閉合】
西安工程大學工業機器人實驗參考資料(內部資料)
17
→新建→開關量輸入輸出:DOUT:Set(DOUT:XPUOpenClose,value:BOOL(TRUE) )
→確認
→新建→系統功能:WaitTime(300) →確認
→新建→運動:Lin(XPUDot21,XPUSpeed) →確認
→新建→運動:Lin(XPUDot11,XPUSpeed) →確認
→新建→運動:Lin(XPUDot10,XPUSpeed) →確認
→新建→運動:WaitIsFinished() →確認
【氣閥開啟】
→ 新 建 → 開 關 量 輸 入 輸
出:DOUT:Set(DOUT:XPUOpenClose,value:BOOL(FALSE) ) →確認
→新建→系統功能:WaitTime(300) →確認
→新建→運動:WaitIsFinished() →確認
→新建→運動:Lin(XPUDot11,XPUSpeed) →確認
Step 8:實例化對象(即示教):
. 主菜單→PickOne→加載→main→加載→示教器上“★”→STEP 模式。
【實例化 XPUHome 點】
手動上伺服【鑰匙要旋至最左端】→將各個關節旋轉到適合工藝需求的位置
→光標選中 PTP(XPUHome,XPUSpeed)→設置 PC→編輯【示教器第一個編輯】→示
教。
→Start+伺服→ Pick→Lin(XPUDot11) →切換直角坐標系【Jog 模式→“★”
切換到直角坐標系位置,即 X,Y,Z,A,B,C】 →返回 Step 模式→示教器 Start→
利用手柄調整到 XPUDot11 點【注意:設計過程中技巧問題 1 先調整工位 10 的
位置;2 設置 PC→賦值語句即可】。
運行“搬運”程序
主菜單→項目→PickOne→加載→鑰匙旋至中間檔位,即自動擋→上伺服 示
教器上 PWR
附錄:參考代碼
main 函數代碼:
LABEL XPULoop
西安工程大學工業機器人實驗參考資料(內部資料)
18
PTP(XPUHome, XPUSpeed)
WaitTime(500)
CALL pick()
WaitTime(500)
KILL pick
WaitIsFinished()
CALL pickreturn()
WaitTime(500)
KILL pickreturn
PTP(XPUHome, XPUSpeed)
WaitTime(3000)
GOTO XPULoop
PickOne 函數代碼:
XPU11 := XPU10
XPU11.z := XPU10.z + 150
XPU21 := XPU20
XPU21.z := XPU20.z + 150
WaitIsFinished()
Lin(XPU11)
Lin(XPU10, XPUSpeed)
WaitIsFinished()
XPUOpenClose.Set(TRUE)
WaitTime(300)
WaitIsFinished()
Lin(XPU11, XPUSpeed)
Lin(XPU21)
Lin(XPU20)
WaitIsFinished()
XPUOpenClose.Set(FALSE)
WaitTime(300)
Lin(XPU21)
PickReturn 函數代碼:
XPU11 := XPU10
XPU11.z := XPU10.z + 150
西安工程大學工業機器人實驗參考資料(內部資料)
19
XPU21 := XPU20
XPU21.z := XPU20.z + 150
WaitIsFinished()
XPUOpenClose.Set(FALSE)
Lin(XPU21)
Lin(XPU20)
WaitIsFinished()
XPUOpenClose.Set(TRUE)
WaitTime(300)
Lin(XPU21)
Lin(XPU11)
Lin(XPU10)
WaitIsFinished()
XPUOpenClose.Set(FALSE)
WaitTime(300)
WaitIsFinished()
Lin(XPU11)
總結:劉老師編寫了本次實驗指導書,我再次摘抄部分內容。
通過動手操作,進一步了解了工業機器人的使用步驟以及開發流程。劉老師在講解實驗的過程中也談到了知識和能力的關系,并進一步闡述如何將學到的知識用于實際生產實踐。話雖然不多,但蘊含的意思很受用。
整個編程過程中也出現了一些問題,看著自己小組工作進程從第一名不斷落后,不斷編程,不斷調試,出現的問題也不同。我們應對的方案最多的就是重啟,重啟……;整個實驗共持續兩天。從對工業機器人一竅不通到實現老師要求的搬運動作。第二天早上同樣的BUG仍沒有解決,跟著小組組長還有另一名成員,我三個沒有去吃午飯,仍然在調試。下午1點,其他小組成員都在忙著拍最后工作完成的視頻,我們還在調試。
副組長靈機一動,在機器人指導書上找到了解決方案。
原來是我們在編程過程中忽略了機械臂從A位置到B位置過程中位姿發生了變化,進而其模式也發生了變化。
這一點經過改正后,機器人正常運轉,動作流暢。
組長說“不要著急,要有科研精神”
哈哈!
謹于2019.1.11——16時14分
(圖太大了傳不了,尬!)
總結
- 上一篇: Excel管理批量文件
- 下一篇: 用阿狸狗装Cadence17.4的操作细