数控车削中经常会遇到一些形状复杂但却有一定规律的零件,如:椭圆、抛物线、双曲线等异形曲面的加工,尽管使用各种C A D/C A M软件来自动编制数控加工程序已经成为现实,但自动生成的程序不能直接应用于生产,所以各种“疑难杂症”的解决往往还要依靠手动编程。手动编程可以使用变量编程即用户宏程序,它是FANU C数控系统中的特殊编程功能,其实质就是带有变量的子程序,用户宏程序本体中既可以使用变量进行编程,还可以用宏指令对这些变量进行赋值、运算等处理,从而将有规律的形状或尺寸用最短的程序段表示出来,编写的程序清晰简洁、逻辑严密、通用性强,在机械加工中得到了广泛应用。
一、宏指令的基本理论
FANUC系统提供两类用户宏指令,即A类宏指令和B类宏指令。早期的FANU C系统中曾广泛使用A类宏指令,主要特征为使用G65代码作为宏指令专用代码,包括宏变量的赋值、运算、条件调用等。FANUC 0i系统使用B类宏指令,其可以兼容A类宏指令,且功能更强大,编程更直观。因此本文重点介绍B类宏指令的基本概念及其用法。
1.变量
普通加工程序直接用数值指定G代码和移动距离,例如:G01 X150.0;当使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或由M D I方式设定、修改。例如:#1=#22=100;G0l X#l F0.1;其与G01 X100 F0.1效果一样。
(1)变量的表示
一般的编程中允许对变量命名,用户宏程序不可以,一个变量需用“#”号和后面的变量号指定。变量号可以是数值或表达式,但必须注意此时表达式必须封闭在“[]”中。例如:#1(主要用于A类宏指令);#[#1+#3+5]若#1=100,#3=2,则该变量表示#107。
(2)变量的类型
变量根据变量号可以分成4种类型(见表1)。
(3)变量值范围
局部变量和公共变量可以是0值或以下范围中的值:-1047~-10-29或10-29~1047,若计算结果超出该范围,则发出报警NO.111。
(4)变量的引用
在程序中的地址后指定变量号即可引用其变量值。例如:G00 X#1 Z#2;当用表达式指定变量时,必须将表达式放在括号中,例如:G01X[#2+#5] F#1。被引用变量的值根据地址的最小设定单位自动地舍入。
例如:当C N C把10.1428赋值给变量#102,且以1u m为单位执行G00 X#102语句时,实际指令值为10.143。改变引用变量的值的符号,要把“—”号放在“#”的前面。即:G00 X —#120。
(5)关于变量的其他说明
①表达式可以表示变量号和变量,且两者并不相同。例如:X#[#1+#2]和X [#1+#2]不相等。
②在程序中定义变量时,小数点可以省略。例如:当定义#1=108;变量#1的实际值是108.000。
③若变量值未定义即为“空”变量。当引用未定义的变量并执行时,变量及地址字都被忽略。例如:当变量#130的值是0,变量#150的值为空时,执行G00 X#130 Z#150;程序的结果为G00 X0。
④变量#0总是空变量。其不能写,只能读。
⑤程序号、顺序号和任选程序跳转号不能使用变量。例如:O#2,/#5G00X80;N#6Z100;等语句不能在程序中出现。
2.变量的算术和逻辑运算
宏程序可以利用变量进行算术和逻辑运算,例如减法:#i=#j-#k;运算符右边的表达式可包含常量和“/”或由函数、运算符组的变量。表达式中的变量#j和#k可以用常数赋值,左边的变量也可以用表达式赋值。
(1)运算符的优先级
按照优先的先后顺序依次是:函数→乘和除运算(*,/,AND,MOD)→加和减运算(+,﹣,OR,X OR)。用“[]”可以改变运算的优先级,最里层的“[]”优先运算,“[]”最多可以嵌套使用5级(包括函数内部使用的括号)当超出5级时,会出现NO.118报警。
(2)变量的赋值
①直接赋值
变量可以在操作面版上用M D I方式直接赋值,也可以在程序中以等式方式赋值,但等号左边不能用表达式。
如:#110=60;
#110=40+30;
②引用赋值
宏程序以子程序方式出现,所用的变量可在宏调用时赋值。如:G65 P0060 X120 Z30 F100;此程序段中,X,Z不代表进给字,而是对应于宏程序中的变量号,变量的具体数值由引数后的数值决定。
二、宏程序的功能语句
在程序中,使用G O T O和I F语句可以起到改变和控制程序流向的作用。有4种转移和循环操作可供使用:
1.无条件转移语句(GOTO)
转移到有顺序号m的程序段,如:G O T O1;(转移到第一行)。
2.条件转移IF[表达式]GOTO m如果条件表达式满足,转移到标有顺序号m的程序段;如果条件不满足,则执行下一个程序段(如图1所示)。
3.条件转移IF[表达式]THEN
如果表达式满足,执行预先决定的宏程序语句,且只执行一个宏程序语句。例如:I F[#1E Q#3] T H E N #4=8;表示如果#1和#3的值相同,将8赋给#4。
4.循环功能(WHILE)语句
如果WHIL E后指定的表达式条件满足,执行D O到E N D之间的程序;否则,转到E N D后的程序(如图2所示)。
三、宏程序的调用
宏程序的调用可以通过指令M98或G65来实现,使用M98方式调用和子程序调用格式一样,但使用前必须了解宏程序使用了哪些变量,并对变量赋值。G65指令称为宏程序非模态调用指令,其使用格式如:G65 P0040 L6自变量地址;P为宏程序号。L为调用次数,缺省时为1次。自变量地址为用户使用系统提供的自定义地址号表达的变量值。
四、宏程序在椭圆加工中的应用实例
一带有椭球面的工件(如图3所示)。长轴a=40㎜,短轴b=20㎜。
椭圆标准方程为:(X-m)2
/b2
+(Z-n)2
/a2
=1,m,n
分别为X方向和Z方向中心坐标。
参数方程:Z=20cosΦ X=2×10sinΦ
椭球的中心为图3中的(0,0)点,但一般工件坐标系建立在工件的右端面,为了让椭球的中心与工件坐标系重合,通过程序将椭球的中心向右移动一个长半轴即#103=20,这样才能顺利地完成工件的加工。手工编制加工程序:
O0005
N10 G98;
N20 T0202;
N30 M03 S800;
N40 G00 X100 Z100;
N50 G00 X30 Z10;
N60 G73 U2 W2 R5;
N70 G73 P80 Q140 U0.5 W0.1 F100;
N80 G01 X0 Z0 F50;
N90 M98 P0002;
N100 G01 X20 Z-50;
N110 Z-60;
N120 G01 X28;
N130 G00 X100;
N140 Z10;
N150 M00;
N160 G42 X25 Z2;
N170 M03 S1000;
N180 G70 P80 Q140 F60;
N190 G40 G00 X100;
N200 Z100
N210 M30;
子程序
N10 T0202;
N20 M03 S500;
N30 G01 X30 Z10 F50;
N40 #101=20;
N50 #102=10;
N60 #103=20;
N70 #104=SQRT[#101*#101-#103*#103];
N80 G01 X#104 Z[#103-20];
N90 #103=#103-0.5;
N100 IF [#103GT-15] GO TO 70;
N110 M99;(返回主程序)
工件三维图如图4所示。
2021-09
星瀚系列是宇匠数控打造的颠覆性产品,在高精度加工的情况下保证高速、高刚的特性,是真正意义的高速加工中心,其性能及质量可媲美进口高速加工中心。同时可配置超声波系统与石墨集尘系统,亦可运用在陶瓷等硬脆料、石墨等高粉尘料的加工;… [了解更多]
2021-09
星瀚S系列是宇匠数控打造的颠覆性产品,采用全闭环设计,在高精度加工的情况下保证高速、高刚的特性,是真正意义的高速加工中心,其性能及质量可媲美进口高速加工中心。同时可配置超声波系统与石墨集尘系统,亦可运用在陶瓷等硬脆料、石墨等高粉尘料的加工;… [了解更多]
2021-09
TC系列超声波陶瓷雕铣机,是利用了超声波高频振动原理作用于刀具,使刀具产生了16KHz-40KHz(每秒16000-40000次)的连续高强度脉冲冲击,带动磨头冲击工作。当工件的局部应力远远超过材料脆裂极限,材料局部破碎去除。 适用范围 特别适用于陶瓷(氧化锆、氧化铝、氮化铝… [了解更多]
2020-10
1 问题的提出数控加工夹具是数控CNC机械制造加工过程中用来 固定加工对象,使之占有正确的位置,以满足加工工艺条件、迅速、方便、安全地安装工件的装置。夹具通常由定位元件、夹紧装置 、对刀引导元件、分度装置、连接元件及夹具体等组成[1]。图1所示零件是应用于系列矿用防爆电器产品上的… [了解更多]
2019-09
0 引言 动梁龙门移动式加工中心适用于航空、重机、机电、造船、发电、核电、机床、印刷、轻纺、模具制造行业半精加工和精加工,也能用于粗加工。为了防止在加工中动梁重心偏移而影响加工精度和产品质量,大森公司研制开发 16i-g 系统用于威海华东数控动梁龙门移动式镗铣XKW2850 机… [了解更多]