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:

 ·IFTHEN        符合條件,
“Yes-part”           執(zhí)行“Yes-part”指令。
ENDIF

 

 ·IFTHEN        符合條件,

“Yes-part”           執(zhí)行“Yes-part”指令。
ELSE                不符合條件,
“Not-part”           執(zhí)行“Not-part”指令。

ENDIF

 

 ·IFTHEN         符合條件,

“Yes-part1”           執(zhí)行“Yes-part1”指令。

ELSEIFTHEN      符合條件,
“Yes-part2”           執(zhí)行“Yes-part2”指令。
ELSE                   不符合條件,
“Not-part”             執(zhí)行“Not-part”指令。
ENDIF

(2)循環(huán)執(zhí)行指令WHILE:

 ·reg1:=1;
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 )。

更多相關(guān)信息