中国机器人网 App
手机扫码下载 · 或点击查看
最近在搞一个abb irb1200的程序交接,前面的人留下来的程序里用了不少标签指令goto、label这些,结构乱七八糟的,我想统一一下风格但又怕改完跑不起来。
我手头是robotware 6.08的,有几台老的6700还在用5.15。这两套系统里goto的语法到底一不一样?需不需要加什么bak或者noexit之类的后缀?我看手册翻了半天也没看出个名堂来,有人能直接说清楚吗?
6.08和5.15语法基本一致,直接Label 1、GOTO 1就能用。bak后缀的意思是"返回时从下一行继续执行",加不加看你的程序流程需不需要往返跳。不加bak就是单向跳,跟一般PLC的goto一个意思。手册里那块确实写得绕,建议直接在示教器上试两条就明白了,别死磕文档。
我说一句啊,老老实实写IF-THEN-FOR别碰GOTO。ABB给这玩意是为了兼容老S4时代的东西,结构化程序里跳来跳去后期维护想骂人。性能上也没差别,CNC里用GOTO是因为有些插补段必须跳,机器人场景99%用不上。
你交接的那个程序原来用label,你直接改if重写一遍不怕出bug?万一哪个跳转指向的位置改了之后偏移了,调试起来更头疼。不如就保留label风格,只把命名规范统一一下,能跑就行。
程序里GOTO大概有多少处?如果就三五处你改起来快,要是几十处那建议别动了。