讨论

发那科机器人用TP写程序的时候那个LBL标签指令咋用啊

磊姐
磊姐
2026/04/08 07:19

最近在搞一个发那科的R-30iB Plus,TP里写程序要用跳转,想用LBL和JMP那块。手册上写的太官方了,看完还是迷糊。

比如我同一个程序里想跳过去跳过几步去执行,标签号能不能随便写数字?1到多少是合法的?同一个程序里标签号能不能重复?万一两个LBL都写1会怎么样,直接报警还是自动跳后面那个?

还有多程序嵌套调用的时候,子程序里的LBL跟主程序里的LBL是不是各算各的,会不会冲突?现场等着用,希望兄弟们说细点,最好带个简单的例子。

22 4

全部回复 (4)

17861151201
17861151201#1

标签号范围1-32767,随便写但别用太大。同一程序里绝对不能重号,重了直接报警PROF-001还是啥的,程序直接停。重号这事我们厂吃过亏,调试的时候跳来跳去有时候莫名其妙就停了,后来查半天是两个LBL写一样了。

多程序调用这块,子程序里的标签是独立的,跟主程序不冲突,各算各的。给你个最简单的例子:

LBL[10]
JMP[10]
就这么两行就是死循环,实际写肯定要带条件。

另外提醒一下,IF条件跳转的话,JMP后面那个标签号一定要存在,不然运行到那一行直接报未定义标签错误。还有JMPL是跨程序跳转的,跟JMP不一样,别混了。

2026/04/08 09:42
slj2000
slj2000#2

问一下你这个跳转是循环用的还是异常处理用的?两种用法写起来不一样。循环的话一般配合IF和计数器,异常分支才用GOTO那种感觉随便跳。背景说清楚才好给建议。

2026/04/08 12:02
gao_peng
gao_peng#3

手册上写的是LBL编号1-9999就够了,别超过这个范围。我这边习惯标签号用10的倍数起头,比如10、20、30,方便后面插新的不会冲突。同一程序里重号这事真的别试,控制器不会帮你自动找下一个的。

2026/04/15 22:41
年年有余
年年有余#4

嵌套调用的时候标签完全独立这个没问题,但有个坑——你要是用JMPL跨程序跳,目标是程序号+标签号组合,程序号写错一样报警。子程序内部用普通JMP和LBL就够,别画蛇添足。

2026/04/19 04:21