ABB机器人如何在运动中通过信号改变行进轨迹――ABB机器人新闻中心ABB机器人供应商 | 您所在的位置:网站首页 › abb机器人movel转弯半径 › ABB机器人如何在运动中通过信号改变行进轨迹――ABB机器人新闻中心ABB机器人供应商 |
ABB机器人希望从上图位置Target_10往Target_20走,在到达Target_20前20mm(位于Target_50位置)时判断信号,若信号di0为1则机器人继续走到Target30,信号di0为0则机器人走到目标点Target_40
2.机器人前进轨迹不希望中断(即不希望机器人准确走到Target_20停止再判断信号),以提高节拍。 3. 若采用如下代码 则有可能由于机器人预读机制,机器人在刚执行13行代码时(机器人刚开始从Target_10往Target_20运动),光标已经预读,此时由于信号di0还没有产生,机器人光标判断14行代码无效,光标直接预读至17行 4. 若采用如下代码,则机器人会在13行等待机器人运行完毕再往下执行,机器人动作准确,但机器人会在Target_20点停止。 5. 实际希望机器人在行进时在Target_20前20mm位置处判断信号为1,机器人轨迹如上图黑色轨迹,即机器人会在Target_20处以z10效果圆滑过去,而不会走到Target_20点。 6. 可以利用TriggInt,配合TriggL来实现,即在目标点前几mm处触发中断,中断内机器人判断信号并修改标志位,TriggL下一句判断标志位后继续运动。整个运动过程中,转弯半径不使用fine,以避免机器人停止。 TriggInttrigg1,5,intno1 表示在目标点前5mm触发中断程序 7. 具体代码如下: VAR intnum intno1; VAR triggdata trigg1; VAR bool flag1; VAR bool flag2;
PROC Path_30() flag1:=FALSE; flag2:=FALSE; Idelet intno1; CONNECT intno1 WITH tr_read; TriggInt trigg1,20,intno1; !目标点前20mm触发中断,也可使用提早时间等 MoveL Target_10,v1000,z10,MyTool\WObj:=wobj0; TriggL Target_20,v50,trigg1,z10,MyTool\WObj:=wobj0; !目标点前20mm触发中断 waituntil flag2=TRUE; !等待flag2,阻止预读 IF flag1 THEN MoveL Target_30,v100,z10,MyTool\WObj:=wobj0; ELSE MoveL Target_40,v100,z10,MyTool\WObj:=wobj0; ENDIF ENDPROC TRAP tr_read IF di0=1 THEN flag1:=TRUE; !执行中断时判断信号 ELSE flag1:=FALSE; ENDIF flag2:=TRUE; !完成信号读取并修改标志位flag2 ENDTRAP
转载于:机器人在线 更多机器人咨询请点击:http://abb_robots.gongboshi.com/ |
CopyRight 2018-2019 实验室设备网 版权所有 |