- 賽事資訊
- 職教新聞
- 新聞專題
- 汽修專業(yè)
- 數(shù)控專業(yè)
- 電子專業(yè)
- 加工制造
- 機(jī)電專業(yè)
- 模具專業(yè)
- 電氣信息
- 旅游管理
- 建筑專業(yè)
- 信息技術(shù)
- 化工專業(yè)
- 機(jī)械制造
- 財(cái)經(jīng)專業(yè)
- 餐飲專業(yè)
- 酒店專業(yè)
- 商貿(mào)專業(yè)
- 醫(yī)藥衛(wèi)生
- 地質(zhì)勘察
- 交通土建
- 財(cái)經(jīng)商貿(mào)
- 鐵道工程
- 服裝設(shè)計(jì)
- 基礎(chǔ)課程
- 美容美發(fā)
- 農(nóng)林牧漁
- 包裝印刷
- 材料能源
- 法學(xué)專業(yè)
- 公共事業(yè)
- 生物工程
- 市場營銷
- 資源環(huán)境
- 機(jī)器人
- 無人機(jī)
- 通用性技能知識
- 綜合
當(dāng)前位置:首頁 > 文章資訊 > 機(jī)器人 > ABB工業(yè)機(jī)器人指令開發(fā)示例
ABB工業(yè)機(jī)器人指令開發(fā)示例
在編程的靈活性方面相比,ABB機(jī)器人比一般國產(chǎn)和日系機(jī)器人要方便很多,比如用PERS前綴聲明任意類型的變量,甚至自定義數(shù)據(jù)類型變量,就可以將數(shù)據(jù)永久保存,保存的數(shù)量基本沒有限制,再如獲取位置數(shù)據(jù)的指定方向分量異常方便,p1.trans.z就可表示p1位置在z軸方向距離工件坐標(biāo)系原點(diǎn)的距離。本文簡單介紹ABB機(jī)器人指令開發(fā)過程,其實(shí)也就是編寫附帶了參數(shù)的程序。
在編程之前需要弄清幾個(gè)基本概念。
任務(wù)與模塊
RAPID應(yīng)用被稱作一項(xiàng)任務(wù)。一項(xiàng)任務(wù)包括一組模塊。一個(gè)模塊包含一組數(shù)據(jù)和程序聲明。
數(shù)據(jù)類型:
- Atomic(內(nèi)置原子型/基本數(shù)據(jù)類型)數(shù)據(jù)類型:
- bool為枚舉類型,其值為真或假,提供了一種開展邏輯計(jì)算和關(guān)聯(lián)計(jì)算的方式。
- num型支持精確算術(shù)計(jì)算和近似算術(shù)計(jì)算。
- string型表示字符序列。
Record(記錄型)數(shù)據(jù)類型:為一種帶命名有序分量的復(fù)合類型。record類型的值為由各分量的值組成的復(fù)合值。一個(gè)分量可具備atomic型或record型,用戶自定義復(fù)雜數(shù)據(jù)類型一般就是記錄型。內(nèi)置記錄型有:
- pos型表示空間位置(矢量)。
- orient型表示在空間中的方位。
- pose型表示坐標(biāo)系(位置/方位組合)。
alias數(shù)據(jù)類型被定義為等同于另一種類型。alias類型提供一種對象分類手段。系統(tǒng)可采用alias分類來查找和顯示與類型相關(guān)的對象,內(nèi)置別名型數(shù)據(jù)有errnum和intnum。Errnum和intnum均為num的別名,用于表示錯(cuò)誤和中斷編號。
數(shù)據(jù)對象:
有四種數(shù)據(jù)對象:常量(CONST)、變量(VAR)、永久數(shù)據(jù)對象(PERS)和參數(shù)。永久(數(shù)據(jù)對象)可描述為“永久”變量。在兩次會(huì)話之間,永久變量將保持值。在每次新會(huì)話開始時(shí),即,當(dāng)加載模塊時(shí)(模塊變量)或調(diào)用程序時(shí)(程序變量),將失去(重新初始化)變量值。
程序:
Rapid程序分為三類:無返回值程序(PROC)、有返回值程序(FUNC)和軟中斷程序。程序聲明指定了程序的下列內(nèi)容:名稱,數(shù)據(jù)類型(僅對有返回值程序有效),參數(shù)(不適用于軟中斷程序),數(shù)據(jù)聲明和語句(體),回退處理器(僅對無返回值程序有效),錯(cuò)誤處理器和撤銷處理器
程序聲明的參數(shù)表指定了調(diào)用程序時(shí)必須/可提供的參數(shù)(實(shí)參)。參數(shù)將為必要參數(shù)或可選參數(shù)??蛇x參數(shù)可從程序調(diào)用的參數(shù)表省去,聲明或調(diào)用時(shí)需要使用符號“”。兩項(xiàng)或兩項(xiàng)以上可選參數(shù)可聲明為彼此排斥(用符號“|“分隔,在此情況下,程序調(diào)用中最多只可有其中一項(xiàng)可選參數(shù)??衫妙A(yù)定義有返回值程序Present來測試可選參數(shù)是否存在??蓪⑻厥忸愋蛃witch分配給可選參數(shù),這能提供采用“開關(guān)型參數(shù)”的手段,即,僅以名稱(非值)賦予的參數(shù)。開關(guān)型的域?yàn)榭?,沒有值能轉(zhuǎn)移給開關(guān)型參數(shù)。
下面通過三則示例演示指令開發(fā)。
如何實(shí)現(xiàn)碼垛指令
碼垛是機(jī)器人最常用的功能之一,與其他多數(shù)機(jī)器人不同,ABB沒有碼垛包,但實(shí)現(xiàn)起來也很簡單,也甚至可以實(shí)現(xiàn)復(fù)雜碼垛情況。下面以簡單的碼垛為例。pBase為基準(zhǔn)示教點(diǎn),partColumns為列數(shù),partWidth為列寬,PartHeight為單層碼垛高度,numCounter已經(jīng)存在的工件數(shù)量,返回robtarget機(jī)器人應(yīng)該放置或抓取的位置。
FUNC robtarget pStack(robtarget pBase,num partColumns,num partWidth,num PartHeight,num numCounter) VAR num Columns; VAR num Rows; Columns:=( numCounter -1) MOD partColumns; Rows:=( numCounter -1-Columns)/partColumns; RETURN Offs(pBase,0,Columns*(PartWidth),Rows*PartHeight); ENDFUNC
如何實(shí)現(xiàn)機(jī)器人在任意路徑上可自動(dòng)回原點(diǎn)
多數(shù)項(xiàng)目機(jī)器人直接自動(dòng)回原點(diǎn)可能會(huì)導(dǎo)致撞機(jī),只能通過增加過渡點(diǎn)的方式實(shí)現(xiàn),有的時(shí)候過渡點(diǎn)可以設(shè)置成機(jī)器人當(dāng)前位置在指定坐標(biāo)系中往指定方向偏移指定位移的位置,如果需要更加嚴(yán)格保證安全,可以根據(jù)位置和旋轉(zhuǎn)方向來判定機(jī)器人需要往何種方向偏移,這里不做深究。
FUNC robtarget getRobT(switch Rel,num x,num y,num z,inout tooldata tool,wobjdata wobj) VAR robtarget pCurrent; pCurrent:=crobT(tool:=toolwobj:=wobj); IF Present(Rel) THEN IF Present(x) THEN pCurrent.trans.x:=pCurrent.trans.x+x; ENDIF IF Present(y) THEN pCurrent.trans.y:=pCurrent.trans.y+y; ENDIF IF Present(z) THEN pCurrent.trans.z:=pCurrent.trans.z+z; ENDIF ELSE IF Present(x) THEN pCurrent.trans.x:=x; ENDIF IF Present(y) THEN pCurrent.trans.y:=y; ENDIF IF Present(z) THEN pCurrent.trans.z:=z; ENDIF ENDIF RETURN pCurrent;tENDFUNC
其中實(shí)現(xiàn)了有開關(guān)型參數(shù)Rel情況下,實(shí)現(xiàn)增量偏移,無Rel時(shí)實(shí)現(xiàn)絕對偏移,也可以根據(jù)可選參數(shù)x,y,z實(shí)現(xiàn)指定方向偏移,返回robtarget目標(biāo)位置(過渡點(diǎn))。下面是指令的使用示例,調(diào)用形式上與RAPID內(nèi)置Offs等指令有些相識。
movel getRobPos(rel,y:=100, ,tool0,wobj0),v100,z0,tool0;movel getRobPos(z:=1000,tool0,wobj0),v100,z0,tool0;p1:= getRobPos(y:=200,tool0,wobj0),
如何判定機(jī)器人是否在指定位置附近:
此功能類似于機(jī)器人的安全區(qū)域功能,在實(shí)時(shí)任務(wù)中調(diào)用此函數(shù)可實(shí)現(xiàn)安全區(qū)域差不多的效果。如果結(jié)合crobT 指令可以實(shí)現(xiàn)更加復(fù)雜的空間判斷,這里不做深究。示例中pCheck是指定位置,num1為判斷符合區(qū)域閾值,返回bool型判定結(jié)果。
FUNC bool rCheckPos(jointtarget pCheck,num num1)VAR jointtarget pCurrent;VAR num numTemp;IF Present(num1) THENnumTemp:=num1;ENDIFpCurrent:=CalcJointT(CRobT(),tool0);IF pCurrent.robax.rax_1<=pcheck.robax.rax_1+num1 and="" pcurrent.robax.rax_1="">=pCheck.robax.rax_1-num1 ANDpCurrent.robax.rax_2<=pcheck.robax.rax_2+num1 and="" pcurrent.robax.rax_2="">=pCheck.robax.rax_2-num1 ANDpCurrent.robax.rax_3<=pcheck.robax.rax_3+num1 and="" pcurrent.robax.rax_3="">=pCheck.robax.rax_3-num1 ANDpCurrent.robax.rax_4<=pcheck.robax.rax_4+num1 and="" pcurrent.robax.rax_4="">=pCheck.robax.rax_4-num1 ANDpCurrent.robax.rax_5<=pcheck.robax.rax_5+num1 and="" pcurrent.robax.rax_5="">=pCheck.robax.rax_5-num1 ANDpCurrent.robax.rax_6<=pcheck.robax.rax_6+num1 and="" pcurrent.robax.rax_6="">=pCheck.robax.rax_6-num1 THEN RETURN TRUE; ELSE RETURN FALSE; ENDIF ENDFUNC
當(dāng)然,熟悉編寫如何去編寫指令是不夠的,還需深刻認(rèn)識坐標(biāo)系的概念和一些基本指令,結(jié)合實(shí)際操作。
以上就是100唯爾(100vr.com)小編為您介紹的關(guān)于ABB的知識技巧了,學(xué)習(xí)以上的ABB工業(yè)機(jī)器人指令開發(fā)示例知識,對于ABB的幫助都是非常大的,這也是新手學(xué)習(xí)機(jī)器人所需要注意的地方。如果使用100唯爾還有什么問題可以點(diǎn)擊右側(cè)人工服務(wù),我們會(huì)有專業(yè)的人士來為您解答。
本站在轉(zhuǎn)載文章時(shí)均注明來源出處,轉(zhuǎn)載目的在于傳遞更多信息,未用于商業(yè)用途。如因本站的文章、圖片等在內(nèi)容、版權(quán)或其它方面存在問題或異議,請與本站聯(lián)系(電話:0592-5551325,郵箱:help@onesoft.com.cn),本站將作妥善處理。
ABB課程推薦
機(jī)器人熱門資料
機(jī)器人技術(shù)文檔
- 1?呼和浩特工務(wù)段卓資東高鐵實(shí)訓(xùn)場建設(shè)項(xiàng)目議價(jià)采購二次公告
- 2鐵小微帶你看:大南鐵國家高鐵實(shí)訓(xùn)基地,超牛!
- 3尚義職教中心首屆高鐵專業(yè)學(xué)生赴北京實(shí)習(xí)實(shí)訓(xùn)
- 4技能展示 | 高鐵專業(yè)實(shí)訓(xùn)技能展示
- 5磨礪青春、出彩中職——高鐵專業(yè)實(shí)訓(xùn)風(fēng)采
- 6陜西長城鐵路技師學(xué)院,一所把高鐵實(shí)訓(xùn)搬進(jìn)課堂的高等院校
- 7喜訊!喜訊!1:1仿真高鐵實(shí)訓(xùn)設(shè)備進(jìn)入梧州電子科技學(xué)校
- 8云南工程職業(yè)學(xué)院高鐵實(shí)訓(xùn)基地建成啟用
- 9高鐵實(shí)訓(xùn)課走進(jìn)無錫東站!
- 10職教標(biāo)準(zhǔn)I高等職業(yè)學(xué)校城市軌道交通通信信號技術(shù)教學(xué)標(biāo)準(zhǔn)