首页 理论教育 利用数组实现搬运码垛任务实施

利用数组实现搬运码垛任务实施

时间:2023-06-23 理论教育 版权反馈
【摘要】:“column_put”是码垛区放物料块3上的放物料示教点。以物料块2的取放为例说明,取物料块2时,“Reltool”调用数组“array_get”的第二行数值;放物料块2时,“Reltool”调用“array_put”的第二行 数值。在此每个物料块相对应的数组行的数值便可类推得知。图6-36码垛位置示意图2.任务要求掌握如何利用数组实现搬运码垛。

利用数组实现搬运码垛任务实施

1.任务引入

在本任务中,码垛的过程为依次从物料上吸取物料块,搬运至码垛区相应位置,如图6-33所示。

如何编写码垛搬运程序

图6-34 码垛位置示意图(1)

在任务中利用数组实现搬运码垛,采用4个示教点和2个数组来实现码垛程序的编写。程序中运用“Reltool”指令调用数组,在“RelTool”语句中有4个可选项,第一个选项定义为参考点(示教点),后面三个选项为三个方向的偏移,全部调用对应数组的数值。

4个示教点的位置定义如下:“row_get”是物料架上物料块1上的吸取示教点;“row_put”是码垛放料块1的示教点;“column_get”是码垛区放物料块3上的吸取示教点。“column_put”是码垛区放物料块3上的放物料示教点。

图6-33 码垛示意图

物料块1、2、3、4、5、6(尺寸为50 mm×25 mm×20 mm)从物料架到码垛区过程中的对应位置,如图6-34~图6-36所示。

图6-34 码垛位置示意图(1)

在任务中利用数组实现搬运码垛,采用4个示教点和2个数组来实现码垛程序的编写。程序中运用“Reltool”指令调用数组,在“RelTool”语句中有4个可选项,第一个选项定义为参考点(示教点),后面三个选项为三个方向的偏移,全部调用对应数组的数值。

4个示教点的位置定义如下:“row_get”是物料架上物料块1上的吸取示教点;“row_put”是码垛放料块1的示教点;“column_get”是码垛区放物料块3上的吸取示教点。“column_put”是码垛区放物料块3上的放物料示教点。

图6-35 码垛位置示意图(2)

2个数组分别为取物料数组“array_get”和放物料数组“array_put”,数组定义为6行3列的二维数组,每一行中的数值对应物料块在示教点位置X、Y、Z方向上的偏移量(第一行对应物料块1,以此类推)。在取物料时,用“Reltool”语句调用“array_get”;放物料时,用“Reltool”语句调用“array_put”。以物料块2的取放为例说明,取物料块2时,“Reltool”调用数组“array_get”的第二行数值;放物料块2时,“Reltool”调用“array_put”的第二行 数值。

数组数值的定义与物料块的尺寸相关。取料、放料时,物料块1的吸取位置和放置位置相对于“row_get”和“row_put”示教点的位置都没有任何偏移量,故此时“array_get”和“array_put”的第一行均为[0,0,0]。再以物料块2举例说明。取物料块时,物料块2的吸取位置相对物料块1的吸取位置在Y的负方向偏移25 mm(由物料块的尺寸得知),所以此时“array_get”第二行为[0,-25,0];放物料块时,物料块2的放置位置相对物料块1的放置位置在Y的负方向偏移 25 mm则“array_put”第二行为[0,-25,0]。物料块6的吸取和放置位置是以物料块3的吸取示教点和放置示教点进行偏移实现的。在此每个物料块相对应的数组行的数值便可类推得知。

图6-35 码垛位置示意图(2)

2个数组分别为取物料数组“array_get”和放物料数组“array_put”,数组定义为6行3列的二维数组,每一行中的数值对应物料块在示教点位置X、Y、Z方向上的偏移量(第一行对应物料块1,以此类推)。在取物料时,用“Reltool”语句调用“array_get”;放物料时,用“Reltool”语句调用“array_put”。以物料块2的取放为例说明,取物料块2时,“Reltool”调用数组“array_get”的第二行数值;放物料块2时,“Reltool”调用“array_put”的第二行 数值。

数组数值的定义与物料块的尺寸相关。取料、放料时,物料块1的吸取位置和放置位置相对于“row_get”和“row_put”示教点的位置都没有任何偏移量,故此时“array_get”和“array_put”的第一行均为[0,0,0]。再以物料块2举例说明。取物料块时,物料块2的吸取位置相对物料块1的吸取位置在Y的负方向偏移25 mm(由物料块的尺寸得知),所以此时“array_get”第二行为[0,-25,0];放物料块时,物料块2的放置位置相对物料块1的放置位置在Y的负方向偏移 25 mm则“array_put”第二行为[0,-25,0]。物料块6的吸取和放置位置是以物料块3的吸取示教点和放置示教点进行偏移实现的。在此每个物料块相对应的数组行的数值便可类推得知。

图6-36 码垛位置示意图(3)

2.任务要求

掌握如何利用数组实现搬运码垛。

3.任务实操

图6-36 码垛位置示意图(3)

2.任务要求

掌握如何利用数组实现搬运码垛。

3.任务实操

续表

续表

续表

续表

续表

续表

续表

续表

续表

续表

续表

续表

续表

续表

续表

续表

码垛程序实例

MoveAbsJ home1,v1000,z50,tool0;调整姿态

count:=1;把1赋值变量count,记录搬运物料块的数量

WHILE count<7DO

TEST count

CASE1,2,4,5:

MoveAbsJ home1,v1000,z50,tool0;防止机器人运动状态下发生碰撞的安全点

MoveL RelTool(row_get,array_get{count,1},array_get{count,2}, -80),v200,fine,tool0;吸取物料示教点正上方过渡点

MoveL RelTool(row_get,array_get{count,1},array_get{count,2},array_get{count,3},v20,fine,tool0;吸取物料示教点

WaitTime 0.5;

Set DO10_11;吸取物料信号

WaitTime 0.5;

MoveL RelTool(row_get,array_get{count,1},array_get{count,2}, -80),v200,fine,tool0;吸取物料示教点正上方过渡点

MoveAbsJ home11,v200,fine,tool0;设置过渡点1

MoveAbsJ home21,v200,fine,tool0;设置过渡点2

MoveL RelTool(row_get,array_get{count,1},array_get{count,2}, -100),v200,fine,tool0;吸取物料示教点正上方过渡点

MoveL RelTool(row_put,array_put{count,1},array_put{count,2},array_put{count,3}),v20,fine,tool0;码放物料示教点

WaitTime0.5;

Rest DO1O_11;复位吸取信号

WaitTime 0.5;

MoveL RelTool(row_put,array_put{count,1},array_put{count,2}, -100),v200,fine,tool;码放物料示教点正上方过渡点

MoveAbsJ home21,v200,fine,tool0;过渡点2

CASE 3,6;

MoveAbsJ home1,v1000,z50,tool0;防止机器人运动状态下发生碰撞的安全点

MoveL RelTool(column_get,array_get{count,1},array_get{count,2},-80),v200,fine,tool0;吸取物料示教点正上方过渡点

MoveL RelTool((column_get,array_get{count,1},array_get{count,2}),array_get{count,3}),v20,fine,tool10;吸取物料示教点

WaitTime 0.5;

Set DO10_11;吸取物料信号

WaitTime 0.5;

MoveL RelTool(column_get,array_get{count,1},array_get{count,2},-80),v20,fine,tool0;吸取物料示教点正上方过渡点

MoveAbsJ home11,v200,fine,tool0;设置过渡点1

MoveAbsJ home21,v200,fine,tool0;设置过渡点2

MoveL RelTool(column_put,array_put{count,1},array_put{count,2},-100),v200,fine,tool0;码放物料示教点正上方过渡点

MoveL RelTool(column_put,array_put{count,1},array_put{count,2},array_put{count,3}),v20,fine,tool0;码放物料示教点

WaitTime 0.5;

Reset DO10_11;复位吸取信号

WaitTime 0.5;

MoveL RelTool(column_put,array_put{count,1},array_put{count,2},-100),v200,fine,tool0;码放物料示教点正上方过渡点

MoveAbsJ home21,v200,fine,tool0;过渡点2

ENDTEST

count:=count+1;计数码垛数量

ENDWHILE;完成六个码垛搬运程序,跳出循环

MoveAbsJ home1,v1000,z50,tool0;返回初始姿态

任务巩固

一、填空题

1.在RAPID语言中,数组的定义为(     )类型。程序调用数组时从(     )开始计算。(www.xing528.com)

2.RelTool用于将通过有效工具坐标系表达的(     )增加至机械臂位置。

二、简答题

运用WaitTime时间等待指令时,应注意什么问题?为什么?

习题

一、填空题

1.常用的逻辑判断指令有(     )、(     )、FOR、(     )和(     )。

2.WaitTime时间等待指令用于程序中等待(     ),再(     )。

二、简答题

1.如何使用条件判断指令WHILE实现圆形和三角形示教轨迹的选择?

2.为什么需要用到WaitTime时间等待指令?

任务清单

码垛程序实例

MoveAbsJ home1,v1000,z50,tool0;调整姿态

count:=1;把1赋值给变量count,记录搬运物料块的数量

WHILE count<7DO

TEST count

CASE1,2,4,5:

MoveAbsJ home1,v1000,z50,tool0;防止机器人运动状态下发生碰撞的安全点

MoveL RelTool(row_get,array_get{count,1},array_get{count,2}, -80),v200,fine,tool0;吸取物料示教点正上方过渡点

MoveL RelTool(row_get,array_get{count,1},array_get{count,2},array_get{count,3},v20,fine,tool0;吸取物料示教点

WaitTime 0.5;

Set DO10_11;吸取物料信号

WaitTime 0.5;

MoveL RelTool(row_get,array_get{count,1},array_get{count,2}, -80),v200,fine,tool0;吸取物料示教点正上方过渡点

MoveAbsJ home11,v200,fine,tool0;设置过渡点1

MoveAbsJ home21,v200,fine,tool0;设置过渡点2

MoveL RelTool(row_get,array_get{count,1},array_get{count,2}, -100),v200,fine,tool0;吸取物料示教点正上方过渡点

MoveL RelTool(row_put,array_put{count,1},array_put{count,2},array_put{count,3}),v20,fine,tool0;码放物料示教点

WaitTime0.5;

Rest DO1O_11;复位吸取信号

WaitTime 0.5;

MoveL RelTool(row_put,array_put{count,1},array_put{count,2}, -100),v200,fine,tool;码放物料示教点正上方过渡点

MoveAbsJ home21,v200,fine,tool0;过渡点2

CASE 3,6;

MoveAbsJ home1,v1000,z50,tool0;防止机器人运动状态下发生碰撞的安全点

MoveL RelTool(column_get,array_get{count,1},array_get{count,2},-80),v200,fine,tool0;吸取物料示教点正上方过渡点

MoveL RelTool((column_get,array_get{count,1},array_get{count,2}),array_get{count,3}),v20,fine,tool10;吸取物料示教点

WaitTime 0.5;

Set DO10_11;吸取物料信号

WaitTime 0.5;

MoveL RelTool(column_get,array_get{count,1},array_get{count,2},-80),v20,fine,tool0;吸取物料示教点正上方过渡点

MoveAbsJ home11,v200,fine,tool0;设置过渡点1

MoveAbsJ home21,v200,fine,tool0;设置过渡点2

MoveL RelTool(column_put,array_put{count,1},array_put{count,2},-100),v200,fine,tool0;码放物料示教点正上方过渡点

MoveL RelTool(column_put,array_put{count,1},array_put{count,2},array_put{count,3}),v20,fine,tool0;码放物料示教点

WaitTime 0.5;

Reset DO10_11;复位吸取信号

WaitTime 0.5;

MoveL RelTool(column_put,array_put{count,1},array_put{count,2},-100),v200,fine,tool0;码放物料示教点正上方过渡点

MoveAbsJ home21,v200,fine,tool0;过渡点2

ENDTEST

count:=count+1;计数码垛数量

ENDWHILE;完成六个码垛搬运程序,跳出循环

MoveAbsJ home1,v1000,z50,tool0;返回初始姿态

任务巩固

一、填空题

1.在RAPID语言中,数组的定义为(     )类型。程序调用数组时从(     )开始计算。

2.RelTool用于将通过有效工具坐标系表达的(     )增加至机械臂位置。

二、简答题

运用WaitTime时间等待指令时,应注意什么问题?为什么?

习题

一、填空题

1.常用的逻辑判断指令有(     )、(     )、FOR、(     )和(     )。

2.WaitTime时间等待指令用于程序中等待(     ),再(     )。

二、简答题

1.如何使用条件判断指令WHILE实现圆形和三角形示教轨迹的选择?

2.为什么需要用到WaitTime时间等待指令?

任务清单

工作评价

工作评价

1.自我评价

班级:        姓名:        工作名称:

自我评价表

1.自我评价

班级:        姓名:        工作名称:

自我评价表

2.小组评价

小组评价表

2.小组评价

小组评价表

续表

续表

3.教师评价表

教师评价表

3.教师评价表

教师评价表

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈