宏程序作为数控编程的一种方法,具有编程简单、修改方便及程序量小等优点。宏程序分为A类和B类,在一些较老的FANUC数据系统中采用A类宏程序,现在较先进的系统中则采用B类宏程序。B类宏程序是使用变量进行编程的,变量分为局部变量(#1~#33)、公共变量(#100~#149、#500~#549)和系统变量(#1000~)。对于局部变量和公共变量的使用,经过短期的学习很容易掌握,而系统变量一般不会轻易地使用和更改,但是如果能够掌握好,使用系统变量可以实现一些特殊的功能。
在加工时,当刀具发生磨损需要改变磨损值时,为了及时提醒操作者进行换刀以及防止操作者更改错误,可以通过在程序中的设定,使刀具半径补偿的磨损量控制在一定的范围,超出这个范围时程序就会产生报警而无法执行程序。
用系统变量可以读写刀具补偿值,通过对系统变量赋值,可以设定刀具补偿值范围。在FANUC0i系统中,刀具补偿分为几何补偿和磨损补偿,刀具补偿号可达400个。当补偿号小于等于200时,刀具长度补偿也可以使用#2001~#2400,补偿号与刀具长度补偿值(H)和刀具半径补偿值(D )的对应关系如附表所示。
下面以刀具半径磨损补偿系统变量为例进行说明。当加工某个零件的轮廓时,如果想要将刀具补偿的磨损值控制在-0.2~0mm的范围内,通过编程设定可以对该刀具的磨损值进行判断,如果磨损值在-0.2~0mm范围内继续执行程序,超出范围则机床报警,显示报警信息。假设使用1号刀具T1,刀具半径补偿号为1,它所对应的刀具半径磨损补偿系统变量号为#12001。具体程序如下:
O1200
N10 T1 M6
N20 G90 G54 G00 G40 Z100.
N30 S2000 M03
N40 G43 H5 Z30. M08
N50 G00 X__ Y__ (刀具到达下刀位置)
N60 G00 Z-5.0
N70 #1=#12001 (将补偿号1的磨损补偿值赋值给#1)
N80 IF[#1 LE -0.2] GOTO 110
(判断#12001的值,如果≤-0.2,转到程序段110)
N90 IF[#1 GE 0.0] GOTO 110 (判断#12001的值,如果≥0,转到程序段110)
N100 GOTO 120
N110 #3000=80 (range error)
(显示报警号为3080,内容为range error的报警信息)
N120 G01 G41 X__ Y__ D1 F200
…
N200 G01G40 X__ Y__ (N120~N200 轮廓轨迹程序略)
N210 Z100.
N220 M05
N230 M30
当刀具较多时的编程方法
(以两把刀具为例):
O1000
T5 M6
G90 G54 G0 G40.
S2000 M03
G43 H5 Z100. M08
G00 X__ Y__ (刀具到达下刀位置)
Z2.
G0 Z-5. F1000
#30=5 (等于刀具号数)
M98 P10
G01 G41 X__ Y__ D5F200
…
G01G40 X__ Y__
G0 Z100.
T6 M6
G90 G54 G0 G40 X-60. Y-60.
S2000 M03
G43 H6 Z100. M08
Z2.
G0 Z-5. F1000
#30=6 (等于刀具号数)
M98 P10
G01 G41 X__ Y__ D6F200
…
G01G40 X__ Y__
G0 Z100.
M05
M30
%
O10
#1=12000
#2=#[#1+#30] (确定刀具半径磨损补偿系统变量号)
IF[#2 LE -0.2] GOTO 60 (判断#2的值,如果≤-0.2,转到程序段60)
IF[#2 GE 0.0] GOTO 60 (判断#2的值,如果≥0,转到程序段60)
GOTO 70
N60 #3000=80(range error)
N70 M99
同理,也可以像上述一样控制刀具长度补偿值。
采用该方法的好处有以下两个方面:
①可以避免修改磨损值时的误操作。现在很多企业机床编程和机床操作人员是分开的,不允许操作者修改程序,但可以修改刀具磨损补偿值,当刀具磨损或工件尺寸变化需要修改刀具磨损补偿值时,为了防止操作者在修改刀具磨损补偿值时输入错误,造成工件的报废和刀具的损坏,可以将磨损值限定在一定的范围内,如果超出范围程序会停止执行并产生报警信息。
②可以保证工件的尺寸精度和表面粗糙度值,当刀具的切削刃磨损到一定程度,就需要更换刀具。也就是补偿值达到一定值时,产生报警,从而提醒或强制操作者更换刀具,避免操作者一味地去改变刀具磨损补偿值。