工业机器人双线码垛工艺与程序设计*

2015-05-11 07:58范绍平
机械研究与应用 2015年6期
关键词:取件码垛标志

范绍平

(四川信息职业技术学院,四川广元 628017)

0 引言

码垛机器人[1]可以代替人工可以进行重复性的物料搬运工作,在自动生产线上具有广阔的应用与发展前景。码垛工艺是指通过对垛的外形尺寸、垛数、层数基本参数设置,对垛的摆放位置进行简单确认后就能实现所有垛的整齐摆放。码垛工艺中,托盘用于放置码垛的物品(区域),码垛工艺指令数量能支持托盘个数;排样数可实现多种不同的排放方式,通常1层1种排样;参考点是指第一个垛的摆放位置,以后每个垛的坐标以其为基准进行偏移。笔者以卡诺普机器人CRP-S80码垛工作单元为例进行工艺分析与程序设计。

1 工业机器人双线码垛现场布局图设计

图1 工业机器人双线码垛现场布局图

图1 为工业机器人双线码垛现场布局图。

排布为双线(A线、B线)双垛(A托盘、B托盘),每个托盘码10层,每层码3包。A托盘(工艺1),排样1为奇数层,排样2为偶数层。B托盘(工艺2),排样1为奇数层,排样2为偶数层。按上述排布,在码每个工艺的垛1时,第4轴(机器人)都基本不转动;在码每个工艺的垛2、垛3时,第4轴转正90°或负90°,这样会在码垛时保证较高的运动效率(其他轴最在运动也在90°左右,这样将能让每个轴都达到其最大速度)。

2 机器人外部接口信号地址设计

2.1 输入信号

X00:手抓夹紧检测信号;

X01:A托盘检测信号;

X02:B托盘检测信号;

X03:A线档板信号检测(表示A线有料可以抓了);

X04:B线档板信号检测(表示B线有料可以抓了);

X05:A线线体号检测(表示A线有料来了可以准备抓了);

X06:B线线体号检测(表示B线有料来了可以准备抓了);

X07:防护1(A托盘)检测,无效时表示有物体或人员干涉,不能对该托盘码垛;

X08:防护2(B托盘)检测,无效时表示有物体或人员干涉,不能对该托盘码垛;

X09:线体开关控制信号,当该信号有效时线体才能转动。

2.2 输出信号

Y00:抓手控制,有效夹紧,无效松开。受面板M160控制;

Y01:抓手辊A转动控制。系统内部PLC控制,X03信号有效时停止该信号,同时受X05控制;

Y02:A线线体转动控制,当X03、X05都有效时停止该信号(来料太多);

Y03:抓手辊B转动控制。系统内部PLC控制,X04信号有效时停止该信号,同时受X05控制;

Y04:B线线体转动控制,当X04、X06都有效时停止该信号(来料太多);

Y13:A线装满指示;

Y14:B线装满指示;

Y15:码垛指示灯控制,该信号有效表示正在码垛。

2.3 M辅助继电器

M350:A线满标示ON表示满;

M351:B线满标示ON表示满;

M352:A线托盘移动标示ON表示移开;

M353:B线托盘移动标示ON表示移开;

M354:A线清托盘;

M355:B线清托盘;

M356:B线有料但是没托盘标志。

3 梯形图设计

控制抓手梯形图如图2,托盘移走梯形图如图3。

图2 控制抓手梯形图程序

图2 中,M160用来控制抓手,当总停(X009)开启时,A档信号(X03)没来时,A抓手辊控制(Y01)有效,反之来料后停止转动;总停(X009)开启时,A档信号(X03)、A线体检测信号(X05)没来时,A线体转动控制(Y02)有效,反之两种感应都有效,则停线体;总停(X009)开启时,B档信号(X05)没来时,B抓手辊控制(Y03)有效,反之来料后停止转动;当总停(X09)开启时,B档信号(X04)、B线体检测信号(X06)没来时,B线体转动控制(Y04)有效,反之两种感应都有效,则停线体。

图3 托盘移走梯形图

图3 中,X01无效(托盘移走)5 s后将A线托盘移动标志M352置位,M354由程序复位托盘移动标志;X02无效(托盘移走)5 s后将B线托盘移动标志M353置位,M355由程序复位托盘移动标志。

4 机器人移动点位分布设计

(1)A线点位如下:

GP0:A线取件点;

GP1:A线准备取件点;

GP2:过渡点备份(先记录,之后进入工艺在工艺里过渡点)。

(2)B线变量如下:

GP10:B线取件点;

GP11:B线准备取件点;

GP12:过渡点备份(先记录,之后进入工艺在工艺里过渡点)。

(3)A线、B线GP点分布。图4为A线、B线GP点分布图侧视图,图4A线、B线为GP点位置俯视图。

图4 A、B线GP点分布图侧视图

取件点即能抓袋的位置,准备取件在在取点的正上方(只有Z方向有偏移),为了确保速度的连贯性,取件点与准备取件点在Z方向距离要大于300 mm。过渡点应该在准备取件点上面,X、Y方向的坐标可适当向托盘做些量偏移,方便过渡。过渡点是每层提高一个袋的厚度,所以在取点时要注意确保在码到最高层时不要超过机器人运行高度。准备放件点在放件点的正上方,准备放件点是每层提高一个袋的厚度,所以在取点时要注意确保在码到最高层时不要超过机器人运行高度。

图5 GP点位置俯视图

5 机器人控制程序设计

5.1 主程序

通过上面分析得知B线要比A线快很多,所以B线优先。主程序如下:

IFM356==OFF 7 上次B线有料但是没托盘

IF X04==ON 0 B左线有料

IF X#(2)==ON 1 判断是否有托盘

IFM#(353)==ON 2 B托盘被移开过5秒

SETGI#(92)1 把码垛数置为1

MOVJVJ=65%GP#11 PL=9 运动到准备取

件点

DOUTM#(355)=ON 清除托盘移动标志

Time 200

DOUTM#(355)=OFF 清除托盘移动标志

CALL right调用B托盘工艺文件

Else 2 B托盘没被被移开过

IFM#(351)==OFF 3 B托盘是否已码垛,ON

的码满

MOVJVJ=65%GP#11 PL=9 运动到准备取

件点

CALL right 调用B托盘工艺文件

Else 3

DOUTM#(356)=ON

ENDIF 3

ENDIF 2

Else 1

DOUTM#(356)=ON

ENDIF 1

Elsif X03==ON 0 A线有料

IF X#(1)==ON 4 判断是否有托盘

IFM#(352)==ON 5 A托盘被移开过5秒

SETGI#(91)1把码垛数置为1

MOVJVJ=65%GP#1 PL=9 运动到准备取件

DOUTM#(354)=ON 清除托盘移动标志

Time 200

DOUTM#(354)=OFF 清除托盘移动标志

CALL left调用A托盘工艺文件

Else 5 A托盘没被被移开过

IFM#(350)==OFF 6 A托盘是否已码垛,ON

的码满

MOVJVJ=65%GP#1 PL=9 运动到准备取件

CALL left 调用A托盘工艺文件

ENDIF 6

ENDIF 5

ENDIF 4

ENDIF 0

Else 7 上次B线有料但是没托盘,就判断A

线是否需搬

DOUTM#(356)=OFF 清上次B线有料但是没

托盘标志

Endif 7

Main1:用于当B线条件不满足时,再判断一次

A线,因为主程序IF太多所

以独立一个程序

IF X03==ON 1 A线有料

IF X#(1)==ON 2 判断是否有托盘

IFM#(352)==ON 3 A托盘被移开过5秒

SETGI#(91)1 把码垛数置为1

MOVJVJ=65%GP#1 PL=9 运动到准备取件

DOUTM#(354)=ON 清除托盘移动标志

Time 200

DOUTM#(354)=OFF 清除托盘移动标志

CALL left 调用A托盘工艺文件

Else 3 A 托盘没被被移开过

IFM#(350)==OFF 0 A 托盘是否已码垛,ON

的码满

MOVJVJ=65%GP#1 PL=9 运动到准备取

件点

CALL left 调用A托盘工艺文件

ENDIF 0

ENDIF 3

ENDIF 2

ENDIF 1

5.2 A托盘子程序

A托盘子程序如下:

DOUTM#(350)=OFF 清除码垛标志

DOUT Y#(13)=OFF 灭码满指示灯。

DOUT Y#(15)=ON 点亮码垛中指示灯。

DOUTM#(160)=OFF 打开手抓

WTAIT X#(0)==OFF T=0 检测手抓是否打

开到位

MOVJVJ=65%GP#1 PL=9 运动到准备取件

WAIT X#(3)==ON T=0 检测抓手辊上是否

有料

MOVL VL=500.0MM/SGP#0 PL=0 运动到取

件点

TIME T=50延时50ms 确保手抓准确到位

DOUTM#(160)=ON 夹紧手抓

PALLET#1 执行1号工艺,计算摆放位置做准

WTAIT X#(0)==ON T=0 检测手抓是否夹紧

到位

WTAIT X#(1)==ON T=0 判断是否有左托盘

MOVL VL=1200.0MM/SGP#1 PL=9 提起

WAIT X#(14)==ON T=0 确认总起动信号有

WAIT X#(7)==OFF T=0 确认没有人员进入

机器人工作区

MOVJVJ=100%GP#81 PL=9 运动过渡点

MOVJVJ=100%GP#90 PL=9 运动准备放件

MOVL VL=2000.0MM/SGP#91 PL=0 运动到放

件点

TIME T=50 延时50ms确保手抓准确到位

DOUTM#(160)=OFF 打开手抓

WTAIT X#(0)==OFF T=0 检测手抓是否打

开到位

INC GI#(91) 放完1件,把垛数加1。

TIME T=50 延时50ms确保手抓打开准确到

位,(可以不要)

MOVL VL=2000.0MM/SGP#90 PL=9 运动到

放件点

MOVJVJ=100%GP#81 PL=9 运动到过渡点

IF GI#(91)==31 1

DOUT Y#(15)=OFF 已码满,清除码垛指示

灯。

DOUT Y#(13)=ON 点亮码满指示灯。

DOUTM#(350)=ON 置码满标志

SETGI#(91)1把码垛数置为1

ENDIF 1

RET返回主程序

5.3 B托盘子程序

B托盘子程序如下:

DOUTM#(351)=OFF 清除码垛标志

DOUT Y#(14)=OFF 灭码满指示灯。

DOUT Y#(15)=ON 点亮码垛中指示灯。

DOUTM#(160)=OFF 打开手抓

WTAIT X#(0)==OFF T=0 检测手抓是否打

开到位

MOVJVJ=100%GP#11 PL=9 运动到准备取

件点

WAIT X#(04)==ON T=0 检测抓手辊上是否

有料

MOVL VL=500.0MM/SGP#10 PL=0 运动到

取件点

TIME T=50 延时50ms确保手抓准确到位

DOUTM#(160)=ON夹紧手抓

PALLET#2执行2号工艺,计算摆放位置做准备

X#(0)==ON T=0 检测手抓是否夹紧到位

WTAITX#(2)==ON T=0 判断是否有右托盘

MOVL VL=1200.0MM/SGP#11 PL=9 提起

WAIT X#(14)==ON T=0确认总起动信号有效

WAIT X#(08)==OFF T=0确认没有人员进入

机器人工作区

MOVJVJ=100%GP#82 PL=9 运动到过渡点

MOVJVJ=100%GP#90 PL=9 运动到准备放

件点

MOVL VL=2000.0MM/SGP#91 PL=9 运动到

放件点

TIME T=50延时50ms确保手抓准确到位

DOUTM#(160)=OFF 打开手抓

WTAIT X#(0)==OFF T=0 检测手抓是否打

开到位

INC GI#(92) 放完1件,把垛数加1。

TIME T=50延时50ms确保手抓打开准确到位,

(可以不要)

MOVL VL=2000.0MM/SGP#90 PL=9 运动到

放件点

MOVJVJ=100%GP#81 PL=9 运动到过渡点

IFGI#(92)==31 1如果已经码满

DOUT Y#(15)=OFF 已码满,清除码垛指示

灯。

DOUT Y#(14)=ON 点亮码满指示灯。

DOUTM#(351)=ON置码满标志

SETGI#(92)1把码垛数置为1

ENDIF 1

RET返回主程序

6 结语

工业机器人是工业和服务业的重大生产和服务性设备,也是先进制造技术领域不可缺少的自动化设备。工业机器人代替人工可以进行重复性的物料搬运工作,在自动生产线上具有广阔的应用,所以工业机器人在传统产业的应用将大大的提升企业产品的竞争力,对国家经济产生巨大的推动作用。

[1] 徐元宣.工业机器人[M].北京:中国轻工业出版社,1999.

猜你喜欢
取件码垛标志
多功能标志杆的使用
神奇魔法树
可控机构式码垛机器人的运动学误差分析
移动式码垛机器人移动臂的优化设计
手工线模具中常用的取件方式
GSK工业机器人码垛程序编写技巧
外卖与快递
认标志
首都的标志是只熊
跨区取件的困扰