ABB機器人做單個或雙傳送鏈的教程和例項程式

2021-09-07 10:52:00 字數 4709 閱讀 9826

說起來真是慚愧,我們老師的課程,上課什麼都沒教,直接丟給我們這個連線,大作業是兩條傳送鏈**。

算了,還是在開頭吧,這樣比較開心,我覺得真正需要的人會繼續看的,微笑。

兩條傳送鏈例項:

下面是做完的總體效果圖,機械人將會拾取兩條傳送鏈上的工件並碼垛。圖與例子不同,未完待續,我會回來修改的。

!模組mainmodule

!主模組

task pers tooldata tool:=[true,[[99.70, 170.37 ,1216.55],[1,0,0,0]],[1,[0,1,1],[1,0,0,0],0,0,0]];

!工具資料是可變數,true表示是否安裝在機械人上,下面三個引數表示xyz的方向,在後面的資料表示位置,質量,重心負載等等

pers loaddata loadempty:=[0.01,[0,0,1],[1,0,0,0],0,0,0];

負載資料

pers loaddata loadfull:=[40,[0,0,50],[1,0,0,0],0,0,0];

pers robtarget ppick1:=[[733.54,336.34,-302.61],[1.77512e-06,-7.45058e-09,-1,3.53584e-07],[0,0,0,0],[9e+09,9e+09,9e+09,9e+09,9e+09,9e+09]];

機械人第乙個拾取點的位置,須使用線性移動將機械人移動到想要的位置,然後選擇示教器定點

pers robtarget pplace:=[[248.31,-641.89,-734.02],[3.03194e-07,5.96046e-08,-1,-1.78442e06],[-1,0,-1,0],[9e+09,9e+09,9e+09,9e+09,9e+09,9e+09]];

const robtarget pbase1_0:=[[38.31,-641.89,-824.02],[3.03194e-07,5.96046e-08,-1,-1.78442e-06],[-1,0,-1,0],[9e+09,9e+09,9e+09,9e+09,9e+09,9e+09]];

pers robtarget pbase1_90:=[[38.31,-641.89,-824.02],[3.03194e-07,5.96046e-08,-1,-1.78442e-06],[-1,0,-1,0],[9e+09,9e+09,9e+09,9e+09,9e+09,9e+09]];

pers speeddata minspeed:=[1000,3000,5000,1000];

pers speeddata midspeed:=[2500,500,5000,1000];

pers speeddata maxspeed:=[5000,5000,5000,1000];

pers bool bpalletfull1:=false;

pers num ncount1:=6;

const robtarget phome:=[[738.42,340.74,-142.25],[1.77372e-06,8.41591e-18,-1,3.60555e-07],[0,0,0,0],[9e+09,9e+09,9e+09,9e+09,9e+09,9e+09]];

pers robtarget ppick2:=[[758.60,993.00,-302.61],[1.30672e-06,2.63893e-18,-1,1.25242e-06],[0,0,0,0],[9e+09,9e+09,9e+09,9e+09,9e+09,9e+09]];

!主程式

proc main()

rinitall;

set dostartcnv ;

set dostartcnv2 ;

while true do

if diboxinpox=1 and bpalletfull1=false then

rpick1;

rplace1;

rpick2;

rplace1;

endif

waittime 0.1;

endwhile

endproc

!初始化程式

proc rinitall()

reset dostartcnv ;

reset dostartcnv2 ;

movej phome,maxspeed,fine,tool;

bpalletfull1:=false;

ncount1:=1;

endproc

!拾取位置1:將機械人移動到拾取位置的上方

proc rpick1()

movej offs(ppick1,0,0,50),maxspeed,z50,tool;

movel ppick1,maxspeed,fine,tool;

set dogrip;

waittime 0.3;

gripload loadfull;

movel offs(ppick1,0,0,50),minspeed,z50,tool;

endproc

!拾取位置2:將機械人移動到拾取位置的上方

proc rpick2()

movej offs(ppick2,0,0,50),maxspeed,z50,tool;

movel ppick2,maxspeed,fine,tool;

set dogrip;

waittime 0.3;

gripload loadfull;

movel offs(ppick2,0,0,50),minspeed,z50,tool;

endproc

!放置函式

proc rplace1()

rposition1;

movej offs(pplace,0,0,50),maxspeed,z50,tool\wobj:=wobj0;

movel pplace,maxspeed,fine,tool\wobj:=wobj0;

reset dogrip;

waittime 0.3;

gripload loadempty;

movel offs(pplace,0,0,50),midspeed,z50,tool\wobj:=wobj0;

movej offs(ppick1,0,0,50),maxspeed,z50,tool\wobj:=wobj0;

ncount1:=ncount1+1;

if ncount1>15 then

bpalletfull1:=true;

endif

endproc

!放置的位置,根據基準放置點的偏移量,進行放置

proc rposition1()

test ncount1

case 1:

pplace:=offs(pbase1_0,0,0,0);

case 2:

pplace:=offs(pbase1_0,200+10,0,0);

case 3:

pplace:=offs(pbase1_0,400+10,0,0);

case 4:

pplace:=offs(pbase1_0,0,0,90);

case 5:

pplace:=offs(pbase1_0,200+10,0,90);

case 6:

pplace:=offs(pbase1_0,400+10,0,90);

case 7:

pplace:=offs(pbase1_0,0,0,170);

case 8:

pplace:=offs(pbase1_0,200+10,0,170);

case 9:

pplace:=offs(pbase1_0,400+10,0,170);

case 10:

pplace:=offs(pbase1_0,0,0,250);

case 11:

pplace:=offs(pbase1_0,200+10,0,250);

case 12:

pplace:=offs(pbase1_0,400+10,0,250);

case 13:

pplace:=offs(pbase1_0,0,0,340);

case 14:

pplace:=offs(pbase1_0,200+10,0,340);

case 15:

pplace:=offs(pbase1_0,400+10,0,340);

default:

tperase;

tpwrite "the counter of line 1 is error,please check it!";

stop;

endtest

endproc

!修正模組

proc rmodify()

movej phome,minspeed,fine,tool\wobj:=wobj0;

movej ppick1,minspeed,fine,tool\wobj:=wobj0;

movej pbase1_0,minspeed,fine,tool\wobj:=wobj0;

movej pbase1_90,minspeed,fine,tool\wobj:=wobj0;

endproc

endmodule

注:務必使用虛擬示教器來確定需要定義的點,否則的話很容易出現錯誤。

本程式中位姿90可刪去,因為沒有用到。

abb機械人指令手冊 ABB機器人速度如何控制?

在機械人應用場合中我們都需要控制機械人的速度,比如焊接 搬運 碼垛等等。有的是為了控制機械人定位精度,有的是為了控制機械人不過載,有的是為了控制機械人的工作效率。那此時我們控制機械人的速度就尤為重要。那我們來看看abb機械人中控制機械人速度的指令吧!veset 控制速度的指令。override 控制...

abb工業機械人電壓不穩 ABB機器人常見故障處理

概述 任務四abb機械人常見故障處理 任務要求 通過常見故障資訊認知,學會故障分析診斷方式方法能處理常見故障。2 2 處理 建議操作,無led指示,這可能是因為多個階段中發生掉電。操作步驟 1 確保系統的主電源通電並且在指定的極限之內。2 確保drivemodule中的主變壓器正確連線,以符合現有的...

常州abb機械人程式設計 最新ABB機器人程式設計程式解析

abb 機械人程式設計 程式解析 此程式是典型的 abb機械人官方程式設計思路與方法,分為主程式,初始化例行程式和軌跡程式。思路清晰,結構編排明確,方便使用者閱讀。version 1 language english module mainmodule pers tooldata tgripper ...