首先示教保存码垛的***个产品点位,用一个整数变量存储当前码垛的产品数,由此变量可计算出此产品在整垛中属于第几行第几列第几层,再根据产品的外型尺寸(长宽高),用行数乘以长,列数乘以宽,层数乘以高,由此可计算出当前产品相对于***个产品的偏移量,再根据***个产品示教的基点坐标值,可计算出当前产品目标点的***坐标值,这也通用的阵列计算***坐标值的方法。有了***坐标值,机器人再相应运动到所需的位置即可。
安川机器人对位置型变量的数据操作不是很方便,且不支持小数的运算。我们首先示教保存***个阵列的基点P001,再确定整垛堆码前的一个共用通过点P002,记录下两个点的相对偏移量,用一个位置型变量P011(x,y,0,0,0,0)存储产品的长和宽(可以是小数),也可以分成两个变量来存储,再用一个位置型变量P012(0,0,z,0,0,0)存储产品的高(可以是小数),根据当前产品放置目标的行列层,可计算出目标点与基点P001的相对偏移量,再换算成与共用通过点P002的偏移量,此时机器人运动到这个共用通过点P002,再用相对运动指令IMOV即可运动到目标点位。
这样就在安川机器人上用相对运动的方法实现了阵列码垛,部分原程序可参考如下:
SET P020 P011 /*P020为临时位置变量,用于相对移动
MUL P020 (1) D011 /*D011为当前产品所在的行数
MUL P020 (2) D012 /*D012为当前产品所在的列数
SUB P020 P021 /*P021为位置P001和P002之间的相对偏移量的xy值
MOVJ P002 VJ=55.00 PL=1
IMOV P020 V=850.0 PL=1 UF#(1) /*水平方向xy的移动
SET P020 P012
MUL P020 (3) D013 /*D013为当前产品所在的层数
SUB P020 P022 /*P022为位置P001和P002之间的相对偏移量的z值
IMOV P020 V=850.0 PL=0 UF#(1) /*垂直方向z的移动
传统的机器人码垛就是示教轨迹,然后由机器人的再现,实现自动码垛功能,但随着产品型号的多样化,码垛方式的多样化,如果机器人编程的智能化(码垛只需示教一个点,其余各产品点位,全部由编程计算得出),就可实现多产品多行多层的码垛,实现事半功倍的效果。
来源:网络
更多资讯:安川机器人