2. 条件跳转实现简单分支

任务目标

编写一个数控铣削宏程序,通过系统变量#1接收用户输入的工件数量,利用IF条件判断与GOTO跳转,根据数量选择不同的加工路径:当#1小于等于0时跳转到错误处理段并报警;当#1为1~10时执行单件加工循环;当#1大于10时执行批量加工循环(增加一次快速定位以节省空行程)。程序需在FANUC系统上可直接运行。

实现思路

使用#1作为入口变量,通过三个IF语句实现分支跳转。每个分支段末尾使用GOTO跳转到公共结束段,避免程序顺序执行落入其他分支。错误处理段使用#3000报警宏指令终止程序。

关键完整代码

O0002 (CONDITIONAL BRANCH DEMO)
(INPUT: #1 = PART QUANTITY)
(OUTPUT: SELECT MACHINING PATH)

IF[#1LE0]GOTO 900 (ERROR HANDLING)
IF[#1GT10]GOTO 700 (BATCH PATH)
(SINGLE PATH: 1-10 PIECES)
G90G54G00X0Y0
M03S1000
#2=1 (LOOP COUNTER)
WHILE[#2LE#1]DO1
  G81R2.0Z-5.0F100
  X10.0Y10.0
  X20.0Y10.0
  G80
  #2=#2+1
END1
GOTO 800 (TO COMMON END)

N700 (BATCH PATH: >10 PIECES)
G90G54G00X0Y0
M03S1500
#2=1
WHILE[#2LE#1]DO1
  G00X0Y0 (EXTRA RAPID FOR BATCH)
  G81R2.0Z-5.0F150
  X10.0Y10.0
  X20.0Y10.0
  G80
  #2=#2+1
END1
GOTO 800

N900 (ERROR: INVALID QUANTITY)
#3000=1 (PART QTY MUST BE >0)
(ALARM: 3001 PART QTY MUST BE >0)

N800 (COMMON END)
M05
M30
%

运行与验证

运行方式:在FANUC数控系统MDI模式下,先执行赋值操作:#1=5(或任意正整数),然后调用程序O0002运行。

验证方法与通过条件:

  • 分支1验证:设置#1=5,运行程序。观察机床执行钻孔循环G81两次(X10和X20位置),主轴转速S1000,循环重复5次后程序正常结束(M30)。
  • 分支2验证:设置#1=15,运行程序。观察主轴转速变为S1500,每次循环前多一次G00快速定位,钻孔循环重复15次后正常结束。
  • 错误分支验证:设置#1=0或#1=-3,运行程序。系统应立即触发报警3001(PART QTY MUST BE >0),程序停止执行。

满足以上三种输入对应的行为,即可判定程序分支逻辑正确。

关键点说明

  • IF条件中的LE(小于等于)和GT(大于)为FANUC宏程序比较运算符,与普通编程语言符号不同。
  • GOTO跳转目标必须使用N开头行号,且行号在程序中唯一。
  • #3000=1会触发报警号为3000+1=3001的宏报警,这是FANUC系统标准错误处理方式。
  • WHILE-DO-END循环结构用于重复加工,计数器#2在每次循环末尾递增,确保循环次数等于#1。