首页 上一页 1 2 下一页 尾页

ABB用数组实现码垛的简明解释 点击:2433 | 回复:24



gent1234

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 98回
  • 年度积分:1
  • 历史总积分:149
  • 注册:2018年7月07日
发表于:2018-07-15 15:38:49
楼主

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

以码垛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从零开始,以保证与数组下标一致就可以了。




楼主最近还看过



  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 19回
  • 年度积分:0
  • 历史总积分:156
  • 注册:2017年12月01日
发表于:2021-07-31 16:37:17
21楼

ABB用数组实现码垛的简明解释


嘉哥哥

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 33回
  • 年度积分:102
  • 历史总积分:104
  • 注册:2022年12月27日
发表于:2023-03-18 10:33:00
22楼

学到了,谢谢

你的益达吖

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 17回
  • 年度积分:281
  • 历史总积分:281
  • 注册:2023年8月12日
发表于:2024-01-12 03:49:36
23楼

学习一学习一下,感谢楼主的资料。下,感谢楼主的资料。

嘉哥哥

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 72回
  • 年度积分:90
  • 历史总积分:92
  • 注册:2022年12月27日
发表于:2024-02-23 10:23:16
24楼

支持一下,这个能帮很多人的,尤其我们这些初学者


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页