1 引言
主程序:
2 问题的提出
3 解决方法
- 降低进给速度 仍采用上面的子程序调用程序,也就是说在执行M99指令时,停顿仍存在。但是由于进给速度降低了,进给速度的变化就相对减小了,因此A点的刀痕也就减小了。实验证明,当进给速度降低到20mm/min以下时,刀痕几乎看不出来,可以达到加工要求,但加工效率却下降到1/5。显然这不是最好的方法。
- 逐段编程 不采用子程序调用方法编程,而是对整个曲线进行逐段编程,程序如下:
- ……
- G91 G02 X5 R3.5 F100 *
- G01 X5 Y-5 *
- G03 X5 R3.5 *
- G01 X5 Y5 *
- G02 X5 R3.5 *
- G01 X5 Y-5 *
- G03 X5 R3.5 *
- G01 X5 Y5 *
- G02 X5 R3.5 *
- G01 X5 Y-5 *
- G03 X5 R3.5 *
- G01 X5 Y5 *
- ……
- 即将O2子程序重复25次,全部编到程序中去。这样可以完全消除停顿。但程序的长度是第一种方法的25倍,若曲线的循环次数再多,假设为50次,则程序长度将是第一种方法的50倍。这样不但会增加编程工作量,而且还可能超出系统的内存容量,显然这也不是令人满意的解决办法。
- 宏指令编程 如同大多数系统一样FANUC-3M系统除了具有大量的基本数控指令之外,还为用户提供了宏指令。系统中利用宏指令登录的程序称为用户宏程序。在宏程序中,除通常的NC指令外,还可以使用变量、运算、判断和转移等宏指令。
- 若上面的曲线采用宏指令进行编程,则可以得到如下的程序:
- ……
- G65 H01 P#100 Q25 *(变量#100=25)
- N100 G91 G02 X5 R3.5 F100 *
- G01 X5 Y-5 *
- G03 X5 R3.5 *
- G01 X5 Y5 *
- G65 H03 P#100 Q#100 R1 * (#100=#100-1)
- G65 H81 P-100 Q#100 R0 * (IF #100≠0 G0 T0 N100)
- ……


