待解决

六轴机器人程序里那种条件跳转怎么写啊?

蒋学军
蒋学军
2026/05/12 21:32

刚做机器人应用三个月,现在用的是发那科的小六轴,项目里有一段要把料从A点搬到B点再搬到C点,但是中间要判断一个信号,信号到了就跳过去,信号没到就一直在那等。这种分支逻辑在TP 里咋写啊?看了两天手册还是没搞明白跳转指令和条件那一块。

另外想知道大家写这种带条件的程序,是习惯把判断写在主程序里,还是单独拎出来做个子程序调用?哪种好维护一点?

54 3

全部回复 (3)

13787439110
13787439110#1

IF 条件 THEN 这种结构发那科是支持的,信号没到可以加个 WAIT,或者直接用 IF DI[xx]=ON THEN JMP LBL[xx]。LBL 是标签,JMP 是跳转,这俩搭配用就行。WAIT 加超时时间比如 5 秒,超时了走报警或者跳别的分支,比较稳。

至于结构上,建议拆成子程序,主程序只负责流程调度,判断的逻辑放子程序里,出了事好定位。主程序一坨判断塞进去,等项目大了改起来哭都来不及。

2026/05/13 10:01
jianguo666
jianguo666#2

先搞清楚你用的是 R-30iB 还是 R-30iB Mate Plus,这俩在条件语法上有点小差别,老款有些指令不支持。手册里 KAREL 那本翻一下,比 TP 编程手册讲得清楚。

2026/05/16 17:23
19880815
19880815#3

直接 WAIT DI[xx]=ON 不就行了,干嘛非要跳转?逻辑简单点反而不容易出错。子程序那个我同意,能拆就拆。

2026/05/17 19:13