中国机器人网 App
手机扫码下载 · 或点击查看
最近接了个小活,客户那边有台旧ABB IRB1200,程序里有一段退出循环的逻辑,看代码像用了exitcycle,但没注释,前任调试的人早跑路了。我自己手动跑了几遍,逻辑好像是对的,但我不确定这指令在什么条件下会出问题——比如外部急停之后、或者中断触发的时候,会不会卡死?
有没有用ABB多的兄弟给讲讲这指令的实际行为,最好带点实际案例,我这周就得给客户交方案,得提前把坑标出来。
exitcycle这玩意儿我之前在6700上用过几次,说白了就是结束当前循环然后停程序,不是普通的break那种跳出去继续往下走。它停完之后机器人就停在当前位置了,不会自动回home,这点你得注意。如果你是从循环里要退出去做点别的动作,exitcycle不合适,应该用return或者jump。
急停和中断的情况我专门测过:急停之后exitcycle那行的状态会被保留,重新启动程序如果没reset,逻辑可能错乱。中断倒是不会影响它本身执行。建议你在程序开头加个标志位,检测到异常状态就先把loop计数器清零再走,免得现场出岔子。
你说的这型号是IRB1200吧,这机器人的控制器版本差异挺大的,exitcycle行为不一定一样。你先把RobotWare版本和控制器型号报一下,IRC5和OmniCore的逻辑我印象中有点差别,别光看前任写的代码就信了。
前两年在一家做冲压的厂子干过,那边用exitcycle退出循环去换模具,换完再回来,结果碰上夹具没到位就往下走,压坏过两次。后来改成中断+标志位的方案稳多了。你这客户场景是啥?要不要考虑换个更稳的写法。
前任调试的代码你也敢直接信?胆子大。建议先把整个程序流程图画出来,exitcycle在哪一行、循环条件是啥、退出后去哪里,都标清楚再说。别急着给客户交方案,万一现场一跑不对,回头改起来更麻烦。