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.教师评价表
教师评价表
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。