码垛机器人代替人工可以进行重复性的物料搬运工作,在自动生产线上具有广阔的应用与发展前景。码垛工艺是指通过对垛的外形尺寸、垛数、层数基本参数设置,对垛的摆放位置进行简单确认就能实现所有垛的整齐摆放。垛是指一个垛即是工件;托盘用于放置垛的物品(区域);码垛工艺指令数量能支持托盘个数;排样数是可实现种不同的排放方式数量,通常1 层1 种排样;参考点是指第一个垛的摆放位置,以后每个垛的坐标以其为基准进行偏移。本文以卡诺普机器人CRP-S80码垛工作单元为例进行工艺分析与程序设计。.
1 工业机器人双线码垛现场布局图设计
图1 工业机器人双线码垛现场布局图
双线双垛,每个托盘码 10 层,每层码3 包。A 托盘(工艺1),排样1 为奇数层,排样2 为偶数层。B 托盘(工艺2),排样1 为奇数层,排样2 为偶数层。按上述排布,在码每个工艺的垛 1 时,第4 轴都基本不转动;在码每个工艺的垛2、3 时,第4 轴转正90 度或负90 度。这样会在码垛时,会保证较高的运动效率(其它轴最在运动也就在 90 度左右,这样将让每个轴都能达到其最大速度了)。
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)、输出信号
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 码垛指示灯控制,该信号有效表示正在码垛。
(3)、M 辅助继电器
M350 A 线满标示 ON 表示满
M351 B 线满标示 ON 表示满
M352 A 线托盘移动标示 ON 表示移开
M353 B 线托盘移动标示 ON 表示移开
M354 A 线清托盘
M355 B 线清托盘
M356 B 线有料但是没托盘标志
3 梯形图设计
M160 用来控制抓手,当总停(X09)开起时,A 档信号(X03)没来时,A 抓手辊控制(Y01)有效,反之来料后停止转动;总停(X09)开起时,A 档信号(X03)、A 线体检测信号(X05)没来时,A 线体转动控制(Y02)有效。反之两种感应都有效则停线体;总停(X09)开起时,B 档信号(X05)没来时,B 抓手辊控制(Y03)有效,反之来料后停止转动;当总停(X09)开起时,B 档信号(X04)、B 线体检测信号(X06)没来时,B 线体转动控制(Y04)有效。反之两种感应都有效则停线体。
X01 无效(托盘移走)5 秒后将A线托盘移动标志M352 置位,M354 由程序复位托盘移动标志;X02 无效(托盘移走)5 秒后将B线托盘移动标志M353 置位,M355 由程序复位托盘移动标志:
4 点位分布设计
(1)、A线点位
GP0 为A线取件点
GP1 为A线准备取件点
GP2 过渡点备份(先记录,之后进入工艺在工艺里过渡点)
(2)、B线变量
GP10 为B线取件点
GP11 为B线准备取件点
GP12 过渡点备份(先记录,之后进入工艺在工艺里过渡点)
(3)、A、B线GP点分布侧视图:
图2 A、B线GP点分布图
取件点即能抓袋的位置,准备取件在在取点的正上方(只有Z方向
有偏移),为了确保速度的连贯性,取件点与准备取件点在Z方向距离要大
于300mm。过渡点应该在准备取件点上面,X、Y方向的坐标可适当向托盘做
些量偏移,方便过渡。过渡点是每层提高一个袋的厚度,所以在取点时要注
意确保在码到最高层时不要超过机器人运行高度。准备放件点在放件点的正上方,准备放件点是每层提高一个袋的厚度,所以在取点时要注意确保在码到最高层时不要超过机器人运行高度。
图3 GP点位置俯视图:
5 程序设计
(1)、主程序:
通过上面分析得知B 线要比A 线快很多,所以B 线优先。主程序如下:
Main:
IF M356==OFF 7 上次B 线有料但是没托盘
IF X04==ON 0 B 左线有料
IF X#(2)== ON 1 判断是否有托盘
IF M#(353)==ON 2 B 托盘被移开过5 秒
SET GI#(92) 1 把码垛数置为1
MOVJ VJ=65% GP#11 PL=9 运动到准备取件点
DOUT M#(355)=ON 清除托盘移动标志
Time 200
DOUT M#(355)=OFF 清除托盘移动标志
CALL right 调用B 托盘工艺文件
Else 2 B 托盘没被被移开过
IF M#(351)==OFF 3 B 托盘是否已码垛,ON 的码满
MOVJ VJ=65% GP#11 PL=9 运动到准备取件点
CALL right 调用B 托盘工艺文件
Else 3
DOUT M#(356)=ON
ENDIF 3
ENDIF 2
Else 1
DOUT M#(356)=ON
ENDIF 1
Elsif X03==ON 0 A 线有料
IF X#(1)== ON 4 判断是否有托盘
IF M#(352)==ON 5 A 托盘被移开过5 秒
SET GI#(91) 1 把码垛数置为1
MOVJ VJ=65% GP#1 PL=9 运动到准备取件点
DOUT M#(354)=ON 清除托盘移动标志
Time 200
DOUT M#(354)=OFF 清除托盘移动标志
CALL left 调用A 托盘工艺文件
Else 5 A 托盘没被被移开过
IF M#(350)==OFF 6 A 托盘是否已码垛,ON 的码满
MOVJ VJ=65% GP#1 PL=9 运动到准备取件点
CALL left 调用A 托盘工艺文件
ENDIF 6
ENDIF 5
ENDIF 4
ENDIF 0
Else 7 上次B 线有料但是没托盘,就判断A 线是否需搬
DOUT M#(356)=OFF 清上次B 线有料但是没托盘标志
Endif 7