ABB用数组实现码垛方式
对于有限数目的码垛,可以采用预生成码垛位置数组的方法
以码垛3*3*3 (行列层)为例
PERS ROBOTARGET robPos_Array{27}:=......... 定义一个robotarget类型数组
PERS ROBOTARGET PutBasePos:=...... 定义一个robotarget码垛基准位置,通常取最底层第一个位置
VAR num dist_x
VAR num dist_y
VAR num dist_z
VAR num i
对数组的赋值,可以单独设立例程,也可以写进该模块主程序的初始例程中,方法和效果是一样的。
i:=0;
dist_x:=50;行距
dist_y:=50;列距
dist_z:=50;层高
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*dist_x,y*dist_y,z*dist_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*dist_x,y*dist_y,z*dist_z);
i:=i+1;
endfor
endfor
endfor
先垂直,然后再行列,如下:
for y from 0 to 2 do
for x from 0 to 2 do
for z from 0 to 2 do
robPos_Array{i}:=offset(PutBasePos,x*dist_x,y*dist_y,z*dist_z);
i:=i+1
endfor
endfor
endfor
如此类推。
正式码垛引用时就非常简洁了
MOVEL robPos_Array{nCounts}....
Reset do_release;
注意nCounts从零开始,以保证与数组下标一致就可以了。
想深度合作请扫码关注,赢胜智能再次祝你牛年大吉,生意兴隆!