中国机器人网 App
手机扫码下载 · 或点击查看
手上有个搬运项目,主程序跑完一段要跳回去重新判条件再走,用ABB的IRB1200,程序里现在写了一堆IF判断套着,逻辑太乱了。想直接做个返回主程序顶部的指令,类似FANUC那种GOTO的感觉,ABB里到底用啥?RTN试了下好像不是回主程序头的,是退到上一级。有人用过没说说。
用ProcCall调用主程序就行,或者直接用GOTO配合标签。在主程序开头打个标号比如MAIN_START,下面逻辑跑完用GOTO MAIN_START就跳回去了。注意GOTO只能在同一个程序内跳,跨程序不行,要跨程序就用ProcCall把主程序当子程序调。有些老工程师习惯用RETURN,但那个是退出当前程序回调用点,不是你要的效果。判断条件直接放在跳转前面就行,逻辑能清爽不少。
ProcCall是正解,但有个坑提醒一下,调用完记得用RETURN或者让它自己跑完,不然容易出现程序嵌套太深报栈溢出。我之前一个项目就是这么写的,后来改成GOTO在同一个程序里跳反而更稳。
你这逻辑写得太啰嗦了吧,IF套IF的能跑才怪。直接用WHILE或者TEST,条件不满足就退出循环,比来回跳转清楚多了。返回指令本身不是重点,结构先捋顺。
你IRB1200走的啥通信,是跟PLC交互还是单机跑?要是跟PLC联的话,判断条件放PLC里,机器人只管执行,程序能短一大截。