去评论
距米网-精简版

码垛程序详解,如何编写ABB码垛程序?

JUMU
2020/01/17 00:12:22
我们来解释下,我们首先要定一个基准点,我们的下面所有的点位的偏移都是在基准点X Y Z方向上的偏移。如图所示:以物体1的位置为基准点,当我们在X正方向以40mm的距离的偏移做偏移运动。


如图在X方向我们假设摆放5个物体,我们这一行的空间就用完了,我们就需要在重新开始一行来摆放我们的物体,所以我们就是需要在Y方向进行偏移,偏移35mm的距离,来继续摆放我们的物体。如下图:


假设当我们在Y方向上只能摆放4行物体时,当我们摆满4行物体,最下面一层就已经被我们摆满,这时候我们还要摆放就只能接着向上摆放,也就是往Z方向上偏移了。如下图所示;


当我们明白码垛的含义之后,我们再来看下在ABB机械手中如何编写码垛程序。机器计算的方式和我们运算的刚好相反,机器是先计算层数,再计算行数,最后再计算产品在一列中的位置。如下
  1. PROC pallet1() !码垛计算程序

  2. jishu1 := nproduct; !产品计数

  3. nx := 0; !列数

  4. ny := 0; ! 行数

  5. nz := 0; ! 层数

  6. dx := 0 - kuan; ! X方向偏移距离

  7. dy := chang; ! Y方向偏移距离

  8. dz := 0 - gao; !Z方向偏移距离

  9. WHILE jishu1 > 20 DO !程序会先计算产品有几层,当产品满足一层有20时,会在Z方向 jishu1 := jishu1 - 20; 加1。当产品不满一层时,程序会继续往下运行。

  10. nz := nz + 1;

  11. ENDWHILE

  12. WHILE jishu1 > 5 DO !计算产品有几行,一行产品有5个, 当产品满足5时.会在Y方向 jishu1 := jishu1 - 5; 加1.当产品不满1行时,程序会继续往下运行。

  13. ny := ny + 1;

  14. ENDWHILE

  15. WHILE jishu1 > 1 DO ! 最后计算产品在一列有几个产品,也就是产品在X方向的位置

  16. jishu1 := jishu1 - 1;

  17. nx := nx + 1;

  18. ENDWHILE

  19. X := nx * dx; !X方向偏移的距离

  20. Y := ny * dy; !Y方向偏移的距离

  21. Z := nz * dz; !Z方向偏移的距离

  22. ENDPROC

  23. PROC quliao() ! 放料程序

  24. IF nproduct = 1 THEN

  25. fristpoint;

  26. ENDIF

  27. IF nproduct > 1 THEN

  28. pallet1; !码垛计算程序

  29. SetDO DO11_CONTROL_1, 1;

  30. MoveJ Offs(q10,X,Y,Z + 200), v1000, z1, tool0\WObj:=wobj_shangxialiao; !抬高点

  31. MoveL Offs(q10,X,Y,Z), v300, fine, tool0\WObj:=wobj_shangxialiao; !放料点,偏移点位

  32. WaitTime 1;

  33. MoveL Offs(q10,X,Y,Z+200), v300, fine, tool0\WObj:=wobj_shangxialiao; !抬高点

  34. ENDIF

  35. ENDPROC