『易坊知识库摘要_ABB机器人应用手册( 五 )』28、坐标) =(放烟点的X坐标) +(我们设定的偏移量)根据上述两句程序 , 放烟位置指令中放烟点的坐标使用的是pPlaceFirst , 而烟箱偏移修正程序中让...
按关键词阅读: 应用 手册 机器人 abb
28、坐标) =(放烟点的X坐标) +(我们设定的偏移量)根据上述两句程序 , 放烟位置指令中放烟点的坐标使用的是pPlaceFirst , 而烟箱偏移修正程序中让该放烟坐标加上了我们设定的偏移量delpos3A1.x , 所以我们可以通过设置roffspallet3A()等的偏移量来有效的调整1-20件烟箱的垛型偏移 。
但是 , 21-24件放烟位置指令:MoveL pPlace,v300,fine,tSuckerWObj:=CurWobj;
解析:机器人线性移动到放烟点pPlace , 速度为300毫米每分钟 , 性质为必须到达目标点 , 主体为吸盘 , 坐标系为当前坐标系(实际指向一个工件坐标系) 。
21-24件烟箱偏移修正指令: 。
29、以第21件X坐标为例 , 计算偏移量的语句pPlaceFirst.trans.x:=pPlaceFirst.trans.x+delpos3A21.x;
这里把我们设定的偏移量加到与1-20件烟一样的pPlaceFirst坐标中 , 但实际放烟时程序不使用pPlaceFirst , 而是放到pPlace坐标上 , 这导致我们通过调用roffspallet3A()等无论如何修改21-24件烟的偏移量都无法成功 。
21-24件码垛位置不符合 , 导致堆垛机报警 。
同样的问题会出现在将来换牌抓单烟箱码在21-24位置的时候 。
机器人都是按指令执行动作的 , 如果熟悉流程和各指令有利于分析机器人的异常情况 , 包括故障发生时通过查看当前机 。
30、器人的程序指针来判断发生的故障是什么 。
根据上面的实例 , 看出该机器人的偏移量设置程序里有缺陷 。
解决方法:暂时已经修改 , 在计算21-24件烟箱放烟位置的子程序PROC rCal_3D_20()和PROC rCal_3D_22()中程序中直接修改放烟点pPlace坐标 , 把偏移量直接添加到目标地址中 。
这样可以在不改程序的情况下通过改动参数来实现设置 。
实际上 , 解决该程序缺陷很简单 , 把指令pPlaceFirst.trans.x:=pPlaceFirst.trans.x+delpos3A21.x等偏移计算指令改为:pPlace.trans.x:= pPlace.trans.x+delpos3A21.x这样 ,。
31、就可以像设置1-20件烟箱偏移量那样设置21-24的偏移量 。
但暂时不能这么做 , 原因是:原程序中23-24烟箱放烟位置的XYZ坐标如下:pPlace.trans.x:=nBoxL/2;
pPlace.trans.y := -nBoxL - nBoxW + 240;
pPlace.trans.z:=nBoxH*2+nBoxW-350;
其中nBoxL等位烟箱的长宽高 。
但这组坐标在码垛中 , 会让最后四包烟箱突出外形20毫米左右 。
目前已经修改为:pPlace.trans.x:=nBoxL/2;
pPlace.trans.y := -nBoxL - nBoxW + 225;
!jacky 因为程序漏洞 , 无法设置21 。
32、-24偏移量 , 直接将+240修正为225pPlace.trans.z:=nBoxH*2+nBoxW-340;
!jacky 为避免机器人再左移后下蹲过度 , 提高放烟高度-350到-340参考工件坐标系可以看出 , 把烟箱突出20毫米部分收回的话 , 需要让Y值变小 , 经过实际测试 , 最小可以从+240调到+225 , 如果继续减小 , 会导致机器人码垛时非常靠近自己的工作极限区域 。
同时 , 程序对该点的计算将会出现反差 , 反而自行把烟箱放到+600左右的位置 , 与21-22烟箱位置冲突 。
所以 , 问题解决前为了避免通过正常的roffspallet3A()程序修改到23-24烟箱放烟点的Y坐标 , 只好不修改原缺陷程序 , 利用程序的缺陷 。
33、来屏蔽该功能 , 避免正常操作后出错 。
该程序缺陷需要ABB人员分析处理 。
编程实例2:目前的机器人在等待抓烟时的程序如下:rDIWait diIFRQ_U,1,3,Infeeder PlC Supply,Pick part possible diIFRQ_U-1;
ClkStart Timer;
Reset doIntRQ;
Reset doIntRQ1;
Reset doIntRQ2;
Reset doIntRQ3;
ISleep iEject;
rReadType;
WaitUntil diOF1RQ_L=1 OR diOF2RQ_L=1 OR diOF3RQ_L=1;
意思为机器人在等待点 , 等待diIFRQ_U 。
34、(PLC给的允许抓烟的信号)为真 , 随后调用rReadType子程序读取烟箱的大小箱型 , 长宽高尺寸 , 烟箱数量等 。
然后最后一句的意思为等待PLC输入的信号:第一道托盘到位 或 第二道托盘到位 或 第三道托盘到位时 , 机器人将抓烟放烟 。
该判断句子有问题 , 就解释了之前出现的故障:托盘还未到位 , 机器人抓烟、放烟 , 导致烟箱掉落 。
需要改成WaitUntil diOF1RQ_L=1 AND diOF2RQ_L=1 AND diOF3RQ_L=1或者更完善一些 , 应该对每个托盘对应各自辊道单独的做程序判断 , 例如IF bIF=1 AND diOF1RQ_L=1 来对一通道和一托盘单独的关联判断 。
该程序没去该他 , 因为P 。
35、LC已经修改 , 将托盘到位信号关联到允许抓烟信号 。
但为了安全 , 该程序需要ABB人员作完善调整 。
编程实例3:由于设计的缺陷 , 机器人在放托盘1、3上的第9件烟箱时 , 因通道空间不足 , 很容易导致打烟 。
来源:(未知)
【学习资料】网址:/a/2021/0413/0021924927.html
标题:ABB机器人应用手册( 五 )