ABB機(jī)器人編程與測(cè)試
發(fā)布日期:2012-06-07 蘭生客服中心 瀏覽:17965
一、程序儲(chǔ)存器(Programmemory)的組成:
應(yīng)用程序(Program)
系統(tǒng)模塊(Systemmodules)
機(jī)器人程序儲(chǔ)存器中,只允許存在一個(gè)主程序;所有例行程序與數(shù)據(jù)無(wú)論存在于哪個(gè)模塊,全部被系統(tǒng)共享;所有例行程序與數(shù)據(jù)除特殊定義外,名稱必須是唯一的。
1、應(yīng)用程序(Program)的組成:
·主模塊(Mainmodule)
主程序(Mainroutine)
程序數(shù)據(jù)(Programdata)
例行程序(Routines)
·程序模塊(Programmodules)
程序數(shù)據(jù)(Programdata)
例行程序(Routines)
2、系統(tǒng)模塊(Systemmodules)的組成:
·系統(tǒng)數(shù)據(jù)(Systemdata)
·例行程序(Routines)
所有ABB機(jī)器人都自帶兩個(gè)系統(tǒng)模塊,USER模塊與BASE模塊,根據(jù)機(jī)器人應(yīng)用不同,有些機(jī)器人會(huì)配備相應(yīng)應(yīng)用的系統(tǒng)模塊。建議不要對(duì)任何自動(dòng)生成的系統(tǒng)模塊進(jìn)行修改。
二、編程窗口:
1、菜單鍵File:
1、 Open:打開(kāi)一個(gè)現(xiàn)有文件。(程序.prg或模塊.mod)
2、 New:新建一個(gè)程序。
3 、Saveprogram :存儲(chǔ)更改后的現(xiàn)有程序。
4 、Saveprogramas:存儲(chǔ)一個(gè)新程序。
5 、Print: 打印程序,現(xiàn)已經(jīng)不使用。
6、 Preferences:定義用戶化指令集。
7、 Checkprogram :檢驗(yàn)程序,光標(biāo)會(huì)提示錯(cuò)誤。
8 、Close:在程序儲(chǔ)存器中關(guān)閉程序。
9、 Savemodule :存儲(chǔ)更改后的現(xiàn)有模塊。(只在Module窗口中存在)
0、 Savemoduleas : 存儲(chǔ)一個(gè)新模塊。(只在Module窗口中存在)
2、菜單鍵Edit:
1、 Cut:剪切,可能會(huì)丟失指令或數(shù)據(jù)。
2 、Copy :復(fù)制。
3 、Paste :粘貼,將剪切或復(fù)制的指令或數(shù)據(jù)粘貼到相應(yīng)位置。
4、 GotoTop:將光標(biāo)移至頂端。
5、 GotoBottom :將光標(biāo)移至底端。
6 、Mark :定義一塊,涂黑部分。
7、 ChangeSelected :修改指令中數(shù)據(jù),可直接將光標(biāo)移至相應(yīng)位置按回車(chē)鍵。
8 、Showvalue: 輸入數(shù)據(jù),可直接將光標(biāo)移至相應(yīng)數(shù)據(jù)按回車(chē)鍵。
9、 Modpos :修改機(jī)器人位置,功能鍵上有。
0、 Search:尋找指令,程序復(fù)雜時(shí)很有用。
3、菜單鍵IPL1與IPL2:
IPL1與IPL2為指令目錄。
其中IPL2有Mostcommt1、Mostcommt2、Mostcommt3為用戶化定義指令目錄,可在菜單鍵File中Preference定義。
4、功能鍵:
Copy、Paste、Modpos在菜單鍵Edit中可以找到。
Test為編程窗口與測(cè)試窗口切換鍵。
三、指令:
1、基本運(yùn)動(dòng)指令:
MoveL:線性運(yùn)動(dòng) (Linear)
MoveJ:關(guān)節(jié)軸運(yùn)動(dòng) (Joint)
MoveC :圓周運(yùn)動(dòng) (Circular)
p1:目標(biāo)位置。(robtarget)
v100:運(yùn)行速度mm/s。(speeddata)
z10:轉(zhuǎn)彎區(qū)尺寸mm。(zonedata)
tool1:工具中心點(diǎn)TCP。(tooldata)
(1)速度選擇:mm/s
·將光標(biāo)移至速度數(shù)據(jù)處,按回車(chē)鍵,進(jìn)入選擇窗口,選擇所需速度。
·機(jī)器人運(yùn)行速度屬于數(shù)據(jù)類型speeddata。
·常用運(yùn)行速度在Base模塊中已經(jīng)定義。
·特殊速度可自行定義。
·max速度為v5000,Base模塊中定義最大速度為v7000,最大速度機(jī)器人未必能達(dá)到。
(2)轉(zhuǎn)彎區(qū)尺寸選擇:mm
·將光標(biāo)移至轉(zhuǎn)彎區(qū)尺寸數(shù)據(jù)處,按回車(chē)鍵,進(jìn)入選擇窗口,選擇所需轉(zhuǎn)彎區(qū)尺寸。
·機(jī)器人轉(zhuǎn)彎區(qū)尺寸屬于數(shù)據(jù)類型zonedata。
·常用轉(zhuǎn)彎區(qū)尺寸在Base模塊中已經(jīng)定義。
·特殊轉(zhuǎn)彎區(qū)尺寸可自行定義。
·fine指機(jī)器人TCP達(dá)到目標(biāo)點(diǎn),并在目標(biāo)點(diǎn)速度降為零,連續(xù)運(yùn)行時(shí),機(jī)器人動(dòng)作有停頓。
·zone指機(jī)器人TCP不達(dá)到目標(biāo)點(diǎn),連續(xù)運(yùn)行時(shí),機(jī)器人動(dòng)作圓滑、流暢。
·Base模塊中已經(jīng)定義的轉(zhuǎn)彎區(qū)尺寸最小為z1,最大為z200。
·盡量使用較大的轉(zhuǎn)彎區(qū)尺寸。
(3)參變量:
光標(biāo)指在當(dāng)前指令時(shí),按功能鍵OptArg,可選擇參變量。
·[\Conc](switch)
協(xié)作運(yùn)動(dòng)。機(jī)器人未移動(dòng)至目標(biāo)點(diǎn),已經(jīng)開(kāi)始執(zhí)行下一個(gè)指令。
·[ToPoint](robtarget)
在采用新指令時(shí),目標(biāo)點(diǎn)自動(dòng)生成*。
·[\V](num)
定義速度mm/s。
·[\T](num)
定義時(shí)間s。通過(guò)時(shí)間決定速度。
·[\Z](num)
定義轉(zhuǎn)彎區(qū)尺寸mm。
·[\Wobj](wobjdata)
采用工件系座標(biāo)系統(tǒng)。
(4)函數(shù)Offs():
MoveLp1,v100,…
MoveLp2v100,…
MoveLp3,v100,…
MoveLp4,v100,…
MoveLp1,v100,…
·為了精確確定p1、p2、p3、p4點(diǎn),可以使用函數(shù)Offs()。
·Offs(p1,x,y,z)代表一個(gè)離p1點(diǎn)X軸偏差量為x,Y軸偏差量為y,Z軸量為z的點(diǎn)。
·將光標(biāo)移至目標(biāo)點(diǎn),按回車(chē)鍵,進(jìn)入目標(biāo)點(diǎn)選擇窗口,在功能鍵上選擇Func,采用切換選擇所用函數(shù)Offs()。
MoveLp1,v100,…
MoveLOffs(p1,100,0,0),v100,…
MoveLOffs(p1,100,-50,0),v100,…
MoveLOffs(p1,0,-50,0),,v100,…
MoveLp1,v100,…
2、轉(zhuǎn)軸運(yùn)動(dòng)指令:
MoveAbsJ, jpos1, v100, z10, tool1
jpos1:目標(biāo)位置。(jointtarget)
v100:運(yùn)行速度mm/s。(speeddata)
z10:轉(zhuǎn)彎區(qū)尺寸mm。(zonedata)
tool1:工具中心點(diǎn)TCP。(tooldata)
3、輸入輸出群指令:
·do指機(jī)器人輸出信號(hào)。
·di指輸入機(jī)器人信號(hào)。
·輸入輸出信號(hào)必須在系統(tǒng)參數(shù)中定義。
·輸入輸出信號(hào)有兩種狀態(tài),1(High)為接通,0(Low)為斷開(kāi)。
(1)輸出信號(hào)指令:
A、輸出輸出信號(hào)指令:set dol
do1:輸出信號(hào)名。(signaldo)將一個(gè)輸出信號(hào)賦值為1。
B、復(fù)位輸出信號(hào)指令:Reset do1
do1:輸出信號(hào)名。(signaldo)將一個(gè)輸出信號(hào)賦值為0。
C、輸出脈沖信號(hào)指令:ulseDO do1
do1:輸出信號(hào)名。(signaldo)輸出一個(gè)脈沖信號(hào),脈沖長(zhǎng)度為0.2s。
參變量:
·[\PLength](num) 脈沖長(zhǎng)度,0.1s-32s。
(2)輸入信號(hào)指令:
WaitDI di1, 1
di1:輸入信號(hào)名。(signaldi)
1:狀態(tài)。(dionum)
參變量:
·[\MaxTime](num)等待輸入信號(hào)最長(zhǎng)時(shí)間s。
·[\TimeFlag](bool)邏輯量,TRUE或FALSE。
如果只選用參變量[\MaxTime],等待超過(guò)最長(zhǎng)時(shí)間后,機(jī)器人停止運(yùn)行,并顯示相應(yīng)出錯(cuò)信息。如果同時(shí)選用參變量[\MaxTime]與參變量[\TimeFlag],等待超過(guò)最長(zhǎng)時(shí)間后,無(wú)論是滿足等待的狀態(tài),機(jī)器人將自動(dòng)執(zhí)行下一句指令。如果在最長(zhǎng)等待時(shí)間內(nèi)得到相應(yīng)信號(hào),將邏輯量置為FALSE,如果超過(guò)最長(zhǎng)等待時(shí)間,邏輯量置為T(mén)RUE。
4、通信指令(人機(jī)對(duì)話):
(1)清屏指令:TPErase
(2)寫(xiě)屏指令:PWrite String
tring:顯示的字符串。(string)在示教器顯示屏上顯示字符串?dāng)?shù)據(jù),也可以用“……”形式直接定義字符串,每一個(gè)寫(xiě)屏指令最多顯示80個(gè)字符。
(3)功能鍵讀取指令:TPReadFK, Answer , Text , FK1 , FK2. FK3, FK4 , FK5
Answer:賦值數(shù)字變量。(num)
Text:顯示屏顯示的字符串。(string)
FK1:功能鍵1顯示的字符串。(string)
FK2:功能鍵2顯示的字符串。(string)
FK3:功能鍵3顯示的字符串。(string)
FK4:功能鍵4顯示的字符串。(string)
FK5:功能鍵5顯示的字符串。(string)
在示教器顯示屏上顯示字符串?dāng)?shù)據(jù),在功能鍵上顯示相應(yīng)字符串,選擇按相應(yīng)的功能鍵,機(jī)器人自動(dòng)給數(shù)字變量賦于相應(yīng)數(shù)值1-5。
5、程序流程指令:
(1)判斷執(zhí)行指令I(lǐng)F:
“Yes-part” 執(zhí)行“Yes-part”指令。
ENDIF
ELSE 不符合
“Not-part” 執(zhí)行“Not-part”指令。
“Yes-part2” 執(zhí)行“Yes-part2”指令。
ELSE 不符合
“Not-part” 執(zhí)行“Not-part”指令。
ENDIF
(2)循環(huán)執(zhí)行指令WHILE:
WHILEreg1<5DO 循環(huán)至不符合條件reg1<5,
reg1:=reg1+1;(Incrreg1;) 才執(zhí)行ENDWHILE后指令。ENDWHILE
循環(huán)指令WHILE運(yùn)行時(shí),機(jī)器人循環(huán)至不滿足判斷條件后,才跳出循環(huán)指令,執(zhí)行ENDWHILE后運(yùn)行指令。循環(huán)指令WHILE運(yùn)行時(shí),存在死循環(huán),在編寫(xiě)相應(yīng)機(jī)器人程序時(shí)必須注意。
6、程序運(yùn)行停止指令:
(1)停止指令Stop:
機(jī)器人停止運(yùn)行,軟停止指令(Soft Stop),直接在下一句指令啟動(dòng)機(jī)器人。
(2)停止指令Exit:
機(jī)器人停止運(yùn)行,并且復(fù)位整個(gè)運(yùn)行程序,將程序運(yùn)行指針移至主程序第一行。機(jī)器人程序必須從頭運(yùn)行。
(3)停止指令Break:
機(jī)器人立刻停止運(yùn)行,有沖擊,直接在下一句指令啟動(dòng)機(jī)器人。
7、計(jì)時(shí)指令:
(1)時(shí)鐘復(fù)位指令:ClKReset Clock
Clock:機(jī)器人時(shí)鐘名稱。(clock)
(2)時(shí)鐘啟動(dòng)指令:ClKStart Clock
Clock:機(jī)器人時(shí)鐘名稱。(clock)
(3)時(shí)鐘停止指令:ClKStop Clock
Clock:機(jī)器人時(shí)鐘名稱。(clock)
8、速度控制指令:
VelSet , Override, Max
Override:機(jī)器人運(yùn)行速率%。(num)
Max:機(jī)器人最大速度mm/s。(num)
每個(gè)機(jī)器人運(yùn)動(dòng)指令均有一個(gè)運(yùn)行速度,在執(zhí)行速度控制指令后,機(jī)器人實(shí)際運(yùn)行速度為運(yùn)動(dòng)指令規(guī)定運(yùn)行速度乘以機(jī)器人運(yùn)行速率(Override),并且不超過(guò)機(jī)器人最大運(yùn)行速度(Max)。
9、等待指令:
WaitTime , Time
Time:機(jī)器人等待時(shí)間s。(num)
等待指令只是讓機(jī)器人程序運(yùn)行停頓片刻。
10、賦值指令:
Data:= , Value
Data:被賦值的數(shù)據(jù)。(All)
Value:數(shù)據(jù)被賦予的值。(SameasData)
舉例:
ABB:=FALSE;(bool)
ABB:=reg1+reg3;(num)
ABB:=“WELCOME”;(string)
Home:=p1;(robotarget)
tool1.tframe.trans.x:=tool1.tframe.trans.x+20;(tooldata)
11、負(fù)載定義指令:
GripLoad , Load
Load:機(jī)器人當(dāng)前負(fù)載。(loaddata)
四、例行程序(Routine):
首先,機(jī)器人從進(jìn)料運(yùn)輸帶(Infeeder)抓取工件,放至機(jī)器(Machine)中加工,加工完成后,機(jī)器人再?gòu)臋C(jī)器中將工件取出,放至出料運(yùn)輸帶上,完成一個(gè)循環(huán)。
1、建立新例行程序:
--->菜單鍵View--->2Routine--->功能鍵New
·Name例行程序名稱。
最長(zhǎng)16個(gè)字符,第一位必須為字母。
·Type例行程序類型。共有3種類型。
ROC-普通例行程序
FUNC-函數(shù)例行程序
TRAP-中斷例行程序
·InModule當(dāng)前例行程序所屬模塊名稱。
·Datatype數(shù)據(jù)類型,函數(shù)例行程序?qū)S谩?/P>
2、例行程序參數(shù)設(shè)置:
每個(gè)例行程序可以自帶多個(gè)變量,即參數(shù)。建立一個(gè)新例行程序后或重定義例行程序(Dupl)后,顯示屏?xí)@示以上窗口。通過(guò)功能鍵New增加參數(shù),使用切換鍵將光標(biāo)移動(dòng)至相應(yīng)參數(shù),進(jìn)行修改和定義。
·Name參數(shù)名稱。
光標(biāo)指向參數(shù)名稱時(shí),功能鍵出現(xiàn)Text,用來(lái)更改參數(shù)名稱。最長(zhǎng)16個(gè)字符,第一位必須為字母。
·Datatype數(shù)據(jù)類型。
光標(biāo)指向數(shù)據(jù)類型時(shí),功能鍵出現(xiàn)Chang…,用來(lái)更改例行程序參數(shù)數(shù)據(jù)類型。
·Required必需性選擇。
光標(biāo)指向必需性選擇時(shí),功能鍵出現(xiàn)Yes與No選項(xiàng),選擇Yes,會(huì)出現(xiàn)確認(rèn)符*。
·Alt分批輸入?yún)?shù)選項(xiàng)。
使用此項(xiàng)功能,必須是非必需參數(shù)。光標(biāo)指向分批輸入?yún)?shù)選項(xiàng)時(shí),功能鍵出現(xiàn)First與Tail選項(xiàng)。
First-開(kāi)始使用的參數(shù)。
Tail-結(jié)尾使用的參數(shù)。
·Mode數(shù)據(jù)模式。
光標(biāo)指向必需性選擇時(shí),功能鍵出現(xiàn)In與Inout選項(xiàng)。In-參數(shù)使用時(shí),只能讀取。Inout-參數(shù)使用時(shí),可以讀寫(xiě)。
五、機(jī)器人的測(cè)試:
1、檢查程序語(yǔ)法:
--->菜單鍵File--->7CheckProgram
2、編程窗口(Test):
--->菜單鍵View--->5Test
(1)功能鍵:
tart:?jiǎn)?dòng)程序,機(jī)器人按程序連續(xù)運(yùn)行。
FWD:機(jī)器人程序向前單步運(yùn)行。
WD:機(jī)器人程序向后單步運(yùn)行。
ModPos:修正機(jī)器人運(yùn)行位置。
Instr:切換至指令窗口。
(2)運(yùn)行模式選擇:
在測(cè)試窗口按切換鍵,并且將光標(biāo)移至運(yùn)動(dòng)模式選擇(Running),此時(shí),功能鍵顯示Cont與Cycle選項(xiàng)。
·Cont連續(xù)運(yùn)行模式,程序自動(dòng)循環(huán)執(zhí)行。
·Cycle單循環(huán)模式,程序運(yùn)行完自動(dòng)停止。
(3)運(yùn)行速率選擇:
在測(cè)試窗口按切換鍵,并且將光標(biāo)移至運(yùn)動(dòng)速率選擇(Speed),此時(shí),功能鍵顯示-%、+%、25%與100%選項(xiàng),使用功能鍵確定運(yùn)行速率。
·機(jī)器人實(shí)際運(yùn)行速度為程序運(yùn)動(dòng)指令定義速度乘以相應(yīng)百分比,最大不超過(guò)250mm/s。
·-%與+%在1%至5%之間將以1%遞增或遞減,-%與+%在5%至100%之間將以5%遞增或遞減。
·25%與100%是將機(jī)器人運(yùn)行速率快捷的切換至25%與100%。
·運(yùn)行速度調(diào)整可在程序運(yùn)行時(shí)同步進(jìn)行。
·在焊接程序中,運(yùn)行速度選擇只改變空行程速度,焊接速度不變。
(4)、程序運(yùn)行指針(》):
·程序運(yùn)行指針(簡(jiǎn)稱PP)至關(guān)重要,它指示出一旦啟動(dòng)程序,程序?qū)哪睦锲饒?zhí)行。
·程序運(yùn)行指針與光標(biāo)必須指向同一行指令,機(jī)器人才能正常啟動(dòng)。
·使用菜單鍵Special可以更改程序運(yùn)行指針位置,選擇執(zhí)行的指令。
1、MoveCursortoPP:將光標(biāo)移至PP位置。
2、MovePPtoCursor:將PP移至光標(biāo)位置。
3、MovePPtoMain將PP:移至主程序第一行。
4、MovePPtoRoutine:將PP移至相應(yīng)例行程序。
3、刪除指令:
將光標(biāo)移至所要?jiǎng)h除的指令行,按刪除鍵,用功能鍵OK確認(rèn)。
4、增加指令:
在測(cè)試窗口按功能鍵Instr->進(jìn)入指令窗口,選擇增加指令,被選擇的指令將生成在光標(biāo)所指指令行的下一行。如果光標(biāo)在程序第一行,會(huì)出現(xiàn)一個(gè)提示窗口選擇新指令生成在程序第一行(選擇功能鍵Yes)或下一行(選擇功能鍵No),然后用功能鍵OK確認(rèn)。
5、修正工作點(diǎn):
·將機(jī)器人移動(dòng)至需要記錄的工作點(diǎn)。
·將光標(biāo)移動(dòng)到需要修正的運(yùn)動(dòng)指令,按功能鍵ModPos修正工作點(diǎn)。
·注意此時(shí)操作窗口所選擇的Tool與Wobj必須與運(yùn)動(dòng)指令所使用的一致。
6、停止:
按S-Stop鍵停止測(cè)試,盡量避免直接放開(kāi)使能器( Enabling device )。
-
FANUC機(jī)器人示教
一、安全操作規(guī)程1、示教和手動(dòng)機(jī)器人(1)請(qǐng)不要帶者手套操作示教盤(pán)和操作盤(pán)。 (2)在點(diǎn)動(dòng)操作機(jī)器人時(shí)要采用較低的倍率速度以增加對(duì)機(jī)器人的控制機(jī)會(huì)。 (3)在按下示教盤(pán)上的點(diǎn)動(dòng)鍵之前要考慮到機(jī)器人的運(yùn)動(dòng)趨勢(shì)。 (4)要預(yù)先考慮好避讓機(jī)
2012-06-11 -
FANUC機(jī)器人的執(zhí)行程序
一、程序中斷和恢復(fù)程序中斷由以下兩種情況引起:■ 程序運(yùn)行中遇到報(bào)警■ 操作人員停止程序運(yùn)行 程序的中斷狀態(tài)有兩種類型: 有意中斷程序運(yùn)行的方法:■ 按下TP或操作箱上的急停按鈕,還有可以輸入外部E-STOP信號(hào)。 輸入U(xiǎn)I[1] *
2012-06-11 -
FANUC機(jī)器人程序結(jié)構(gòu)
一、運(yùn)動(dòng)指令運(yùn)動(dòng)指令已經(jīng)在編程一章中講過(guò),在這里我們重點(diǎn)討論弧焊指令,寄存器指令,I/O指令,分支指令,等待指令,偏置指令,程序控制指令和其他常用的指令。這些指令都是通過(guò)程序編輯畫(huà)面中的[INST]進(jìn)入的(見(jiàn)圖1) 注意:不同的軟件,
2012-06-11 -
FANUC機(jī)器人FRAMES的設(shè)置
一、坐標(biāo)系的分類(見(jiàn)表1) 表1 World Frame(通用坐標(biāo)系) 是一個(gè)不可設(shè)置的缺省坐標(biāo)系。其原點(diǎn)是用戶坐標(biāo)系和點(diǎn)動(dòng)坐標(biāo)系的參考位置,位于機(jī)器人內(nèi)預(yù)先定義的位置。 ToolFrame(工具坐標(biāo)
2012-06-11