ABB机器人数组码垛精解

大家好!今天工博士给大家整理一篇关于ABB机器人数组码垛的内容,希望对大家有所帮助!

数组讲解

做码垛,怎么能少了数组!

数组做码垛,懂的人一看就懂,程序稳定且简单明了,后期维护方便快捷!

数组这个词很多人比较陌生,但是在做码垛这个工艺时,学会数组,你的编程肯定看起来

高、大、尚!

一般我们做轨迹,要么就是单点程序顺着做,高级一点的就是采用偏移,但偏移的数值还一个一个轨迹慢慢做的,要是有一个通式,只需要一个例行程序就能解决岂不快哉!

接下来我们看看大神们怎么做程序!!!

数组的创建:

  1. 选择左上角“ABB”——“程序数据”——“num”量(我们在此需要记录坐标偏移数据是数字量,所以选择num量)——“新建”——修改“名称”以及选择“维数”(维数根据我们最终需要来修改)。


对比一下我们现场的数组数据和相对应的程序用法

数组数据解读

程序用法解读:

难点解读:对于数组定义和用法很多人容易弄混,大家注意啦,大家注意啦,大家注意啦!!!重要的事情说三遍!!!

具体参考程序如下

Eg:

MODULE Module1

CONST robtarget p10:=[[1764.38,185.31,270.61],[1.438E-8,0.707107,0.707107,1.7755E-8],[0,0,1,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];

CONST robtarget p20:=[[98.25,1591.47,210.48],[4.89656E-10,5.96046E-8,1,7.93153E-9],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];

CONST jointtarget jHome:=[[43.7058,-13.3301,21.4904,-10.961,71.1324,46.2859],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];

CONST num RelTool_NUM{4,3}:=[[0,0,0],[660,0,0],[0,530,0],[660,530,0]];

PERS num Count:=5;

!***********************************************************!中科罗伯特机器人学院!! Description:!机器人码垛采用数组方式,结合离线仿真采用通式方法编写程序,方便修改、程序简洁、码垛准确!!! Author: 轴哥!! Version: 1.0!!***********************************************************!***********************************************************!! Procedure main!!   This is the entry point of your program!!***********************************************************PROC main()!Add your code hereInitAll;Set DO_Start;Set DO_Check_liushuixian;WHILE TRUE DOIF Count >= 5 Stop;WaitDI DI_Check_LIUSHUIXIAN_OK, 1;Reset DO_Start;IF DI_Check_LIUSHUIXIAN_OK = 1 THENRPick;RPlace;rHome;ENDIFENDWHILEENDPROC

PROC RPick()

rHome;

MoveJ RelTool(p10,0,0,-600), v1000, fine, tGripper;

Reset DO_Check_liushuixian;

Reset DO_CHECK_Gripper;

Reset DO_Gripper;

MoveL p10, v300, fine, tGripper;

Set DO_CHECK_Gripper;

WaitDI di_check_GripperOK, 1;

Set DO_Gripper;

WaitTime 1;

MoveJ RelTool(p10,0,0,-600), v1000, fine, tGripper;

Set DO_Start;

Set DO_Check_liushuixian;

rHome;

ENDPROC

PROC RPlace()

MoveL RelTool(p20,RelTool_NUM{Count,1},RelTool_NUM{Count,2},RelTool_NUM{Count,3} - 600), v300, fine, tGripper;

Reset DO_CHECK_Gripper;

MoveL RelTool(p20,RelTool_NUM{Count,1},RelTool_NUM{Count,2},RelTool_NUM{Count,3}), v300, fine, tGripper;

Reset DO_Gripper;

WaitTime 1;

MoveL RelTool(p20,RelTool_NUM{Count,1},RelTool_NUM{Count,2},RelTool_NUM{Count,3} - 600), v300, fine, tGripper;

Incr Count;

ENDPROC

PROC rHome()

MoveAbsJ jHome\NoEOffs, v1000, z50, tGripper;

ENDPROC

PROC InitAll()

Set DO_Check_liushuixian;

Set DO_CHECK_Gripper;

WaitTime 0.1;

Reset DO_Check_liushuixian;

Reset DO_CHECK_Gripper;

Reset DO_Gripper;

Reset DO_Start;

rHome;

ENDPROC

ENDMODULE

**详情转载 ABB机器人

本文链接:https://my.lmcjl.com/post/14599.html

展开阅读全文

4 评论

留下您的评论.