一. 关于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关系
程序中$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,且未至位置
分析:
(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为例
更多库卡机器人