ABb机器人码垛程序实例(附注释)(abb机器人码垛详细编程教程)

本文以码垛3×3×3 (行,列,层)为例

箱体尺寸:500×500×500正方形箱体

码垛流程:


拆垛(取件)→移动→码垛



对于有限数目的码垛,可以采用预生成码垛位置数组的方法

PERS ROBOTARGET robPos_Array{27}:=......... //定义一个robotarget类型数组

PERS ROBOTARGET PutBasePos:=......// 定义一个robotarget码垛原点基准位置,一般取最底层第一个位置




----------------------------------第一种先生成点位再移动程序
-------------------------------------------

VAR num Step_x

VAR num Step_y

VAR num Step_z

VAR num i

对数组的赋值,可以单独设立例程,也可以写进该模块主程序的初始例程中,方法和效果是一样的。

i:=0;//初始值

Step_x:=500;//行距

Step_y:=500;//列距

Step_z:=500;//层高

for z from 0 to 2 do

for y from 0 to 2 do

for x from 0 to 2 do

robPos_Array{i}:=offset(PutBasePos,x*Step_x,y*Step_y,z*Step_z);

i:=i+1;

endfor

endfor

endfor

-----上面是先行后列再垂直方向,预先生成码垛位置数组

先列后行只需把 for y... 和 for x... 位置对调一下就可以了,如下:

for z from 0 to 2 do

for x from 0 to 2 do

for y from 0 to 2 do

robPos_Array{i}:=offset(PutBasePos,x*Step_x,y*Step_y,z*Step_z);

i:=i+1;

endfor

endfor

endfor

先垂直,然后再行列,同理

如此类推。

正式码垛引用时就非常简洁了

MOVEL robPos_Array{nCounts}....

Reset do_release;

注意nCounts从零开始,以保证与数组下标一致就可以了。


----------------------------------第二种直接移动位置程序
-------------------------------------------

PRoC maduo for()

Reset DO0;//复位输出0,打开夹爪

MoveL P HOME,v1000,fine,My Tool;//移动到home位

FOR Z FROM 0 TO 2 DO//最后计算Z轴位置

FOR y FROM O TO 3 DO//再计算Y轴位置

FOR x FROM 0 TO 2 DO//先计算X轴位置

MoveJ offs(pick,0,0,100),v100,fine,My_Tool\Wobj:=wobjPingMing2;//夹爪向上移 动100mm,并移动到工件坐标系的取件位上部

MoveL pick,v1000,fine,My Tool\wobj:=wobjPingMing2;//移动到取件位,实际是 下降100mm

SetDo DO0,1;//置位DO0,夹紧夹爪取箱体

WaitTime 0.5;//等待加紧,或者此位置等待夹住箱体信号反馈

MoveL offs(pick,0,0,100),v1000,fine,My _Tool\wobj:=wobjPingMing2;//拿起箱 体,实际直接上升100mm

MoveJ offs(D1,500*x,500*y,500+z*500),v1000,z20,My Tool\Wobj:=wobjPingMing 2;//移动到摆放位置上方

MoveL offs(D1,500*x,500*y,z*500),v1000,fine,My Tool\wobj:=wobjPingMing2;//移 动到放料位

Reset DO0;//复位输出0,打开夹爪放料

waitTime 0.5;//等待放下箱体,或者此位置等待放下箱体信号反馈

Move] offs(D1,500*x,500*y,200+z*5),v1000,z20,My_Tool\Wobj:=wobjPingMin2;// 抬起夹具

ENDFOR

ENDFOR

ENDFOR

MoveL P HOME,v1000,fine,My Tool;//回原位

ENDPROC

实际放料位点位坐标(工件坐标系)

第一层坐标位:

(0,1000,0)(500,1000,0)(1000,1000,0)

(0,500,0)(500,500,0)(1000,500,0)

(0,0,0)(500,0,0)(1000,0,0)

第二层坐标位:

(0,1000,500)(500,1000,500)(1000,1000,500)

(0,500,500)(500,500,500)(1000,500,500)

(0,0,500)(500,0,500)(1000,0,500)

第三层坐标位:

(0,1000,1000)(500,1000,1000)(1000,1000,1000)

(0,500,1000)(500,500,1000)(1000,500,1000)

(0,0,1000)(500,0,1000)(1000,0,1000)


私信发:码垛机器人源码程序

免费分享两个程序源码


原文链接:,转发请注明来源!