基于KUKA工业机器人的码垛程序设计

(整期优先)网络出版时间:2022-05-10
/ 4

基于 KUKA工业机器人的码垛程序设计

杨晓华 刘家旭 江艳华

成都市技师学院(成都工贸职业技术学院),四川 成都 611731

摘要:工业机器人在码垛生产线上的应用能大大提高生产效率及减少人员的投入。为了解决KUKA工业机器人进行包装物品的码垛时,在包装物品的大小、码垛行数、列数及层数改变后,只需要修改包装物品的两者之间的X、Y方向的行距、码垛的列数及层数实现不同的码垛数量,提高编程的效率。结合for循环指令进行程序优化,使优化的码垛程序具有通用性强,易懂、清晰明了、维护简便、具有良好的经济效益等特点。

关键词:工业机器人;包装物品;码垛程序

Palletizing program design based on KUKA industrial robot

YANG XiaoHua LIU JiaXue JIANG Yanhua

Chengdu Technician College (Chengdu industry and Trade Vocational and Technical College), Chengdu, Sichuan 611731

Abstract: The application of industrial robot in palletizing production line can greatly improve production efficiency and reduce personnel investment. In order to solve the problem that when KUKA industrial robot palletizes packaged articles, after the size, number of rows, columns and layers of packaged articles are changed, only the row spacing in X and Y directions, the number of columns and layers of packaged articles need to be modified to realize different palletizing quantities and improve the efficiency of programming. Combined with the for loop instruction, the optimized stacking program has the characteristics of strong universality, easy to understand, clear, simple maintenance and good economic benefits.

Keywords: ndustrial robot; Packaged goods; Palletizing procedure

机器人是一种自动的、位置可控的,具有编程能力的多功能机械手,这种机械手具有几个轴,能够借助于可编程序操作来处理各种材料、零件、工具和专用装置。本文主要针对工业机器人编程进行分析探讨。工业机器人的特点具有可编程、拟人化、通用性和工业机器技术涉及的学科相当广泛,归纳起来是机械学和微电子学的结合机电一体化技术。当今工业机器人技术正逐渐向着具有行走能力、具有多种感知能力、具有较强的对作业环境的自适应能力的方向发展。码垛机器人是机械与计算机程序有机结合的产物,为现代生产提供了更高的生产效率。码垛机器在码垛行业有着相当广泛的应用。码垛机器人大大节省了劳动力,节省空间。码垛机器人运作灵活精准、快速高效、 稳定性高,作业效率高。码垛机器人系统采用专利技术的坐标式机器人的安装占用空间灵活紧凑。能够在较小的占地面积范围内建造高效节能的全自动砌块成型机生产线的构想变成现实。

1.提出问题

码垛机器人是从事码垛作业的工业机器人,即将已装入容器的物品按要求排列码放在托盘、栈板(木质、塑胶)上,进行自动堆码。码垛机器人可以集成在任何生产线中,可广泛应用于纸箱、塑料箱、瓶类、袋类、桶装、膜包产品及灌装产品等的码垛。机器人代替人工搬运、码垛,能迅速提高企业的生产率和产量,同时能减少人工搬运造成的错误。机器人码垛可全天作业,能节约大量的人力成本。如果码垛使用简单的示教编程进行编程,码垛的物品越多,程序就越长,还有示教占用机器人的时间也比较长。一旦码垛的包装物品尺寸发生了变化又要重新示教,程序的通用性较差[1]。本文主要通过计算或操纵机器人位置、使用高级For循环指令以包装物品为例进行码垛程序的优化设计。

2.码垛的定义及应用

对几个具有代表性的点进行示教,即可以从下层到上层按照顺序堆叠物品,常见于物流行业和运输行业,以及仓库存储等。[2]。码垛同一形状的立体形包装物品,可以采取重叠式、纵横交错式、正反交错式和旋转交错式。本文采用的码垛为重叠式,这种码垛速度快,各层重叠后,包装物品4个角重叠垂直,能承受较大的重量,装卸操作也比较省力[3]

3.包装物品码垛程序的设计

本文探讨码垛的包装物品尺寸是400X500X300mm,码垛成3行5列3层,单个包装物品及码垛效果,如1所示。基于KUKA工业机器人设计码垛程序,使用KUKA工业机器KRL语言计算和操作机器人位置、For高级循环指令进行码垛程序的设计。

6279cce304e3f_html_cf73c12d5c41f653.png

图1 单个包装物品及码垛图

3.1 KUKA工业机器人的计算或操纵机器人位置运用简介

KUKA工业机器人计算绝对目标位置的方式有以下三种:

1.一次性更改 DAT 文件中的位置

XP1.x = 450; 新的 X 值 450mm

XP1.z = 30*distance; 计算新的 Z 值

PTP XP1

2. 每次循环时都更改 DAT 文件中的位置

XP2.x = XP2.x + 450 ; X 值每次推移 450mm

PTP XP2

3.位置被应用,并被保存在一个变量中

myposition = XP3; myposition为位置变量

myposition.x = myposition.x + 100; 给 x 值加上 100mm

myposition.z = 10*distance; 计算新的 Z 值

myposition.t = 35; 设置转角方向值

PTP XP3; 位置未改变

PTP myposition; 计算出的位置

注:本文用采用位置被应用,并被保存在一个变量中,计算包装物品释放点位置进行码垛

3.2 KUKA工业机器人高级编程指令(For)简介

计数循环(For)的定义:For 循环是一种可以通过规定重复次数执行一个或多个指令的控制结构[4]

1 循环指令格式:

DECL INT counter; 定义counter 变量为整数型

.......; 可以编写相应的指令

For counter = 1 TO 3 Step 1; Step 1表示递增计数(循环一次,计数增加1)

...... ; 循环内容

ENDFOR ; 循环结束

2循环指令的原理

(1)循环计数器的起始值要进行初始化:counter = 1

(2)循环计数器在ENDFOR时会以步幅 STEP 递增计数 (当递增为1时,可以省略不写)。

(3)检查进入循环的条件:计数变量小于等于指定的终值,循环又从 FOR 行开始循环计数,变量大于指定的终值结束循环 , 继续运行ENDFOR 行后面的程序。

3.2 包装物品码垛程序的设计

1.包装物品抓取程序的设计

包装物品由传送带输送,位置不发生变化,把抓取包装物品的路径编写在一个程序里面作为子程序调用,本文码垛程序编写基于工业机器人的工具坐标系Tool[10]:pick和基坐标系(工件坐标系)Base[10]: block,基坐标系定义沿工作台横向为Y(右正、左负)纵向为X(前正、后负),上下为Z(向上为正、向下为负)。

DEF PICK ( ); 程序名称

N1:SPTP HOME Vel=100% DEFAULT;机器人HOME点

N2:SPTP P1 Vel=100% PDAT1 Tool[10] :pick Base[10]: block; 避让点(避让点的

多少根据外围设备情况进行示教取点,这里只取了一个避让点)

N3:SPTP P2 Vel=0.2m PDAT2 Tool[10:]pick Base[10]: block;预抓取点

N4:SLIN P3 Vel=0.2m CPDAT3 Tool[10] :pick Base[10]: block;抓取点

N5: WAIT TIME=1; 等待1秒,确保抓取点的准确性

N6:PULSE 208 'jia' State=TRUE Time=1 sec;抓取动作信号

N7:SLIN P2 Vel=0.2m CPDAT2 Tool[10] :pick Base[10]: block; 返回预抓取点

N8:SPTP P1 Vel=100% PDAT1 Tool[10] :pick Base[10]: block;避让点

N9:SPTP HOME Vel=100% DEFAULT;机器人HOME点

2.包装物品码垛程序的设计

示教第一个包装物品位置,采用位置被应用,并被保存在一个位置变量数组wei[b,c]中结合两个 for循环计算出所有包装物品的位置, 包装物品的码垛效果图,如图2所示。

N1: DEF stack (  ); 程序名称

N2: DECL int a,b,c; 声明整数变量

N3: decl e6pos mypostion[b,c]; 声明数组变量用于存储包装物品的位置

N4: INI; 初始化

N5: a=0 给a变量赋值

N6:b=0; 给b变量赋值

N7: c=0; 给c变量赋值

N8: For c=1 to 3; 从1开始循环到3终止(码垛循环的层数)

N9:  For b=1 to 3; 从1开始循环到3终止(码垛循环的行数)

N10:  For c=1 to 5; 从1开始循环到5终止(码垛循环的列数)

N11: myposition [b,c]=xp1; 码垛第一个包装物品中心位置点(XP1)

赋值给mypostion[a,b]数组

N12: myposition [b,c].x=xp1.x+500*(b-1); 500表示两包装物品在X方向的中心距离

N13: myposition [b,c].y=xp1.y+400*(c-1) ;400表示两包装物品在Y方向的中心距离

N14: mypositionz[b,c].z=xp1.z+100+300(a-1);每层Z方向的预放点高度

N15:  ENDFOR; 结束列方向坐标计算循环

N16: ENDFOR; 结束行方向坐标计算循环

N17: For b=1 to 3;从1开始循环到3终止(包装物品的行数)

N18: For c=1 to 5;从1开始循环到5终止(包装物品的列数)

N19: PICK ( ) ; 调用抓取包装物品的子程序

N20: SPTP myposition [b,c]; 包装物品的预释放点(位置存储在数组mypostion [b,c]里面)

N21: SLIN_REL {z-100}; 包装物品的释放点

N22: PULSE 209 'shong' State=TRUE Time=1 sec;包装物品的释放信号

N23: WAIT TIME =1 sec; 等待1秒

N24: SLIN_REL{z+100}; 返回预释放点

N25: SPTP P4 CONT Vel=100% DEFAULT Tool[10] :pick Base[10]: block;

返回安全高度的过渡点

N26:  ENDFOR; 包装物品的列数循环结束

N27:  ENDFOR; 包装物品的行数循环结束

N28: ENDFOR; 包装物品的层数循环结束

N29: SPTP HOME Vel=100% DEFAULT; 机器人HOME点

N30: END; 程序结束

4.结束语

此研究以KUKA工业机器人码垛包装物品作业为对象,编写码垛程序。本文主要应用计算或操纵机器人位置、For循环指令进行程序优化。优化后的程序通用性强,码垛货物改变后,只需要修改程序中码垛层数、行数、列数及货物X、Y方向之间的距离,减少示教编程占用机器人大量的时间,提高生产效率。优化后的码垛程序可供企业编程人员参考。

参考文献:

[1]郝巧梅. 工业机器人技术[M].北京: 电子工业出版社,2016.

[2]吴应桦.ABB工业机器人码垛教学编程案例分析[J].内燃机与配件,2017 (21)

[3]李培根.工业机器人操作与编程[M]. 北京: 电子工业出版社,2016.

[4]许怡赦. KUKA工业机器人编程与操作[M]. 北京:机械工业出版社,2019

[5]林祥.KUKA工业机器人编程高级教程[M].北京:机械工业出版社,2020.