工博士机器人技术有限公司是一家集研发、生产、销售、技术服务于一体的专注于自动化、智能化设备生产和机器人系统集成应用的科技型企业,与ABB、库卡KUKA、发那科FANUC、安川YASKAWA、欧地希OTC、川崎Kawasaki、遨博AUBO、现代HYUNDAI、电装DENSO、欧姆龙OMRON、爱普生EPSON等机器人公司签订了战略合作关系。
公司业务范围:
◆机器人本体及配套产品销售、机器人应用技术培训服务;
◆机器人在焊接、切割、搬运、激光技术、机床上下料、钣金折弯、锻造等领域的系统集成应用;
◆机器人变位机、导轨、防护工作房、焊接工装夹具等系统周边设备的设计和生产。
地址:上海市嘉定区南翔镇众仁路399号B座20楼2007室(王工:18616566200)
----------------------------------------------------------------------------------------------------------
由于之前看过好友LT写的文章关于库卡机器人的预读机制,觉得上面的案例较好,基于其文章之上,出一篇自认为较完善的文章来说明这机制。如各位看官,有兴趣可以浏览LT主页(www.davidrobot.com),里面文章蛮不错,值得学习(注:其网站近期改版中)。
一. 关于Main Run
库卡机器人解释器中有一种预进机制,程序执行时,解释器会根据系统变量$advance数值,将对应的运动指令语句进行预读,在运动语句之间的其他指令就会被执行,该机制被称预读(Advance Run),机器人控制系统在程序运行时提前计算及计划的数量的运动语句,实际数量取决于计算机的利用率。同时,解释器会有一个主指针指向当前正在执行的语句,这个叫作main run,左图红色圈实为Main Run Pointer图标。
库卡机械手
关于主指针几种形式:
二.关于Advance Run
基于Main Run Pointer,同样存在AdvanceRun 库卡机器人维修 Pointer,只是ARP不像MRP那么直观显示出来。APR的位置其实取决于$Advance的值,以下面为例子:
如上图,MRP当前位置是运动P12,$Advance=3,机器人控制器提前处理3个运动指令块。那么ARP的位置是不是在P15?
其实是的,当机器人运行完P12的运动后,MRP跳至P13运动行,ARP跳至P16运动行,当机器人准备执行P13,预读的逻辑$OUT[10]触发中断,此时机器人实际停在P12位置;
三.Advance Run与Main Run关系
1.如下图,机器人是在何处触发了中断?
库卡机器人
程序中$OUT[10]前有CONTINUE,不会触发Advance Run stop,当中断触发说明$OUT[10]条件已经预读,此时预读指针应该位于P16运动指令。而$Advance=3,往前推算3运动指令,那么在中断触发前MRP应该在P13,并且机器人实际是停在P12位置;通过系统变量检测:
库卡机器人保养
I-Executed:False,P_Name: XP13, P_Arrived:1 表示机器人目前运行XP13,且未至位置;
2.如下图,机器人是在何处触发了中断?
分析:
(1).当预读ARP指针在P16出,则MRP在P13处,由于无$CONTINUE,$OUT[10]触发预读停止,即从P13以后的运动无预读机制,且无法逼近;
(2).那么从P13开始程序会随着MRP逐行执行,即MRP至$OUT[10]=TRUE处开始触发中断,此时机器人在P15位置。
如下图:
库卡机器人配件
库卡机器人解释器需要预先读取运动指令以便进行轨迹规划,这个工作是在运动指令被执行之前。如果要实现点位之间的轨迹平滑过渡至少需要预读一个运动语句。
四.与main run相关的变量($OUT_C)
在库卡机器人系统里存在一些以_C后缀的系统变量,这些表示只在main run中运行,下面以$OUT_C为例:
1.无Continue情况:
直到运行$OUT_C[10]=TRUE才执行:
I-Executed:False,P_Name: XP16, P_Arrived:1 表示机器人接下来目标点XP16,则目前机器人在P15位置;
2.有Continue情况:
直到运行$OUT_C[10]=TRUE才执行,说明CONTINUE不起作用(只针对预读指令):
-Executed:False,P_Name: XP16, P_Arrived:1 表示机器人接下来目标点XP16,则机器人目前在P15位置;
3,与预读指令一起:
监控:
I-Executed:False,P_Name: XP14, P_Arrived:1表示机器人即将运行的目标点位XP14,及机器人停留在XP13位置,而I=0则表示只有中断程序IP_Test触发,而中断程序IP_Count未触发
五.触发预读停止的指令/变量/系统函数
六.后小结:
结论:
1.当Advance Run被打断时,程序会随着Main Run Pointer逐块执行;
2. KUKA的机器人解释器需要预先读取运动指令以便进行轨迹规划,此工作是在运动指 令被执行之前,而且这基于MRP。
3.对于会打断预读的指令,在其前一行加上CONTINUE就可避免;
4.$OUT_C[]此类运行在Main Run的指令,不会打断预读,只会随着MRP的位置才执行;
防止预进停止的方法:
1.对于联机表单指令,选择CONT模式;
2.对于信号指令,可用相应变量在SPS里与其关联;
3.语句前加上CONTINUE指令(如果下面的行中有 ON_ERROR_PROCEED,则 CONTINUE首先指的是其后的行。
文章来源:http://mp.weixin.qq.com/s?src=11×tamp=1652163893&ver=3789&signature=GyxehrNbjg6q4Kb92-Ayck88weuHF-C7j4LJiz-y7zZEaxFEBfaD0t-UfW5IH73Io562Mj4VuNTHnPje2V9QZkwIv3IVgC3Y0W8y9LlngldoGFR6T6gDpMr0O0N4fAy&new=1
更多咨询:库卡机器人
- 下一篇:库卡机器人常见问题
- 上一篇:库卡机器人---外部自动运行模式过程和配置