宏程序是数控加工专业高级工、技师和高级技师应掌握的内容。笔者在与企业
的交流中得知,有许多职工没有系统地学习过数控知识,尤其是宏程序这一块了解得很少,因此笔者特撰写本篇稿子,希望通过文中椭圆加工的宏 程序能够对其他非圆曲线的编写加工起到举一反三、抛砖引玉的作用。
在数控车床上加工非圆曲线的零件是企业生产及数控大赛经常涉及到的, 非圆曲线包括了椭圆、双曲线、抛物线 和正弦曲线等。如图1所示,为一典型 的椭圆零件, 编程加工时可采用“四心 法”和“直线逼近法”。四心法计算编 程简单,但椭圆的加工精度低。当要求 加工精度高,编程相对简单,程序量精 简时,则可以采用直线逼近法。直线逼 近法加工椭圆时只要步距足够小,就能加工出标准的椭圆。目前数控系统都还没有提供完善的非圆曲线插补功能,编 程时则要采用数控系统自带的另一种编 程方法:FANUC 系统采用宏程序编程,SINUMERIK 系统采用R 参数编程,FAGOR 系 统采用计算机高级语言编程。 下面主要介绍F A N U C 0i-T C 系统中 的B 类宏程序。
一、宏程序
数控程序中含有变量的程序称为宏程序。
宏程序可以让用户利用数控系统提供的变量、数学运算、逻辑判断和程序循环等功能,来实现一些特殊的用法,从而使得编制同样的加工程序更加简便。
1. 变量
普通加工程序直接用数值指定G 代码和移动距离,例如,GO1和X100. 0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用M D I 面板上的操作改变。 如:#1=#2+100或G01 X#1 F300。
(1)变量的表示及类型 一般编程方法允许对变量命名,但用户宏程序不行。变量用变量符号“#” 和后面的变量号指定。例如:#1、#100 等。表达式可以用于指定变量号。此时,表达式必须封闭在括号中。例如:#[#1+#2-12]。
变量根据变量号可以分成四种类型,如表1所示。
(2)变量的运算
变量常用算术、逻辑运算和运算符(如表2和表3所示) 。运算符右边的表达式可包含常量,或由函数或运算符 组成的变量。表达式中的变量“#j”和“#k”可以用常数赋值。左边的变量也 可以用表达式赋值。
其中有些需要注意的问题:1) 角 度单位。函数正弦、余弦、正切、反正弦、反余弦和反正切的角度单位是度(°) 。例如:90°30′表示为90.5°。
2) 运算符的优先级。按照优先级的先后顺序依次是:函数→乘和除运算 (* 、/、AND 、MOD)→加和减运算(+、-、OR 、XOR) 。3) 括号嵌套。括号用于改变运算优先级。括号最多可以嵌套使用5级,包括函数内部使用的括号。
2. 功能语句
(1)无条件转移(GOTO)语句转移到有顺序号n 的程序段。格式为:GOTOn ,其中n 表示程序段号。
例:GOTO1,表示转移到第一程序段。
再如:GOTO#10,表示转移到变量#10决定的程序段。
(2)条件转移(IF)语句
在IF 后指定一条件,当条件满足时,转移到顺序号为n 的程序段,不满足则执行下一程序段。
格式为:IF [表达式] GOTO n 。
(3)循环(WHILE)语句
在WHILE 后指定一条件表达式,当条件满足时,执行D O 到E N D 之间的程序(然后返回到W H I L E 重新判断条件) ,不满足则执行END 后的下一程序段。
格式为:WHILE[条件式]DOm;
(m=1,2,3循环执行范围的识别号,)
…
…
END m;
其中m 只能是1、2 和3,否则系统报警。DO ——END 循环能够按需要使用多次,即循环嵌套。
二、编程实例分析
1. 零件1
如图1所示零件,该零件编程时以 椭圆右端中心O 点作为编程原点,由于加 工的椭圆极角θ 为90°,所以可以采用 将椭圆极角设为自变量,当椭圆极角从 O 点(0°) 逐渐增加到A 点(90°) 时, 根据椭圆参数方程求得椭圆OA 段上每个点所对应的短轴值和长轴值,然后再算出椭圆O A 段上每个点在工件坐标系中所对应的X 值和Z 值,从而加工出椭圆。编 程中采用条件转移(IF)语句。
该椭圆的参数方程:
椭圆极角。其加工程序为: O0001 ,其中,X 表示椭圆长轴值;Y 表示椭圆短轴值;θ 表示
G97 G99
T0101
M03 S1000
G00 X65 Z5
#1=0 将椭圆极角设为自变量,赋值为0°
N10 #2=25*SIN[#1] 参数方程中椭圆短轴值
#3=40*COS[#1] 参数方程中椭圆长轴值
#4=#2*2 椭圆OA 段上各点在工件坐标系中X 坐标值,*2为直径值
#5=#3-40 椭圆O A 段上各点 在工件坐标系中Z 坐标值,#3-40=-(40-#3)
G01 X#4 Z#5 F0.1 加工椭圆
#1=#1+0.1 自变量椭圆极角每次 增量为0.1°
IF [#1LE90] GOTO10 如果#1小 于且等于90°,则返回到N10程序段不 满足则执行下一程序段
X65
G00 X100 Z100
M05
M30
2. 零件2
如图2 所示零件,该零件编程时以其右端中心O 点作为编程原点,如果用椭圆极角编程,则要计算出B 点处的椭圆极角,比较繁琐。从零件图给出的尺寸可知A 点对应的椭圆短轴值为7mm ,B 点对应的椭圆短轴值为(60-56)/2=2(mm),因此我们可以将椭圆短轴设为自变量,数值由A 点的7mm 逐渐减少到B 点的2mm ,然后根据椭圆标准方程,求得所对应的长轴变化值,最后再算出椭圆AB 段每个点在工件坐标系中对应的X 值和Z 值,从而加工出该零件的椭圆部分。 编程中采用循环(WHILE)语句。
由该椭圆的标准方程
得:
其加工程序为:
O0002
G97 G99
T0101
M03 S1000
G00 X65 Z5
X46
G01 Z-5 F0.1 : 。其中,X 表示椭圆长轴值;Y 表示椭圆短轴值。
#1=7 将椭圆短轴设为自变量,赋 值为7mm
WHILE [#1GE2] DO1 #1如满足 大于且等于2,则执行DO 到END 之间的 程序,否则转到END 后的下一程序段
#2=10/7*SQRT[49-#1*#1] 由椭 圆的标准方程推算出椭圆长轴值
#3= [30-#1]*2 椭圆AB 段上各点在工件坐标系中X 坐标值,*2为直径值
#4=-[#2+5] 椭圆AB 段上各点在工件坐标系中Z 坐标值
G01 X#3 Z#4 F0.1 加工椭圆
#1= #1-0.1 自变量椭圆短轴每次 减量为0.1mm
END1 循环结束 Z-26
X100
G00 Z100
M05
M30
三、小结
宏程序是数控加工专业高级工、技师和高级技师应掌握的内容。笔者在与企业
的交流中得知,有许多职工没有系统地学习过数控知识,尤其是宏程序这一块了解得很少,因此笔者特撰写本篇稿子,希望通过文中椭圆加工的宏 程序能够对其他非圆曲线的编写加工起到举一反三、抛砖引玉的作用。
在数控车床上加工非圆曲线的零件是企业生产及数控大赛经常涉及到的, 非圆曲线包括了椭圆、双曲线、抛物线 和正弦曲线等。如图1所示,为一典型 的椭圆零件, 编程加工时可采用“四心 法”和“直线逼近法”。四心法计算编 程简单,但椭圆的加工精度低。当要求 加工精度高,编程相对简单,程序量精 简时,则可以采用直线逼近法。直线逼 近法加工椭圆时只要步距足够小,就能加工出标准的椭圆。目前数控系统都还没有提供完善的非圆曲线插补功能,编 程时则要采用数控系统自带的另一种编 程方法:FANUC 系统采用宏程序编程,SINUMERIK 系统采用R 参数编程,FAGOR 系 统采用计算机高级语言编程。 下面主要介绍F A N U C 0i-T C 系统中 的B 类宏程序。
一、宏程序
数控程序中含有变量的程序称为宏程序。
宏程序可以让用户利用数控系统提供的变量、数学运算、逻辑判断和程序循环等功能,来实现一些特殊的用法,从而使得编制同样的加工程序更加简便。
1. 变量
普通加工程序直接用数值指定G 代码和移动距离,例如,GO1和X100. 0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用M D I 面板上的操作改变。 如:#1=#2+100或G01 X#1 F300。
(1)变量的表示及类型 一般编程方法允许对变量命名,但用户宏程序不行。变量用变量符号“#” 和后面的变量号指定。例如:#1、#100 等。表达式可以用于指定变量号。此时,表达式必须封闭在括号中。例如:#[#1+#2-12]。
变量根据变量号可以分成四种类型,如表1所示。
(2)变量的运算
变量常用算术、逻辑运算和运算符(如表2和表3所示) 。运算符右边的表达式可包含常量,或由函数或运算符 组成的变量。表达式中的变量“#j”和“#k”可以用常数赋值。左边的变量也 可以用表达式赋值。
其中有些需要注意的问题:1) 角 度单位。函数正弦、余弦、正切、反正弦、反余弦和反正切的角度单位是度(°) 。例如:90°30′表示为90.5°。
2) 运算符的优先级。按照优先级的先后顺序依次是:函数→乘和除运算 (* 、/、AND 、MOD)→加和减运算(+、-、OR 、XOR) 。3) 括号嵌套。括号用于改变运算优先级。括号最多可以嵌套使用5级,包括函数内部使用的括号。
2. 功能语句
(1)无条件转移(GOTO)语句转移到有顺序号n 的程序段。格式为:GOTOn ,其中n 表示程序段号。
例:GOTO1,表示转移到第一程序段。
再如:GOTO#10,表示转移到变量#10决定的程序段。
(2)条件转移(IF)语句
在IF 后指定一条件,当条件满足时,转移到顺序号为n 的程序段,不满足则执行下一程序段。
格式为:IF [表达式] GOTO n 。
(3)循环(WHILE)语句
在WHILE 后指定一条件表达式,当条件满足时,执行D O 到E N D 之间的程序(然后返回到W H I L E 重新判断条件) ,不满足则执行END 后的下一程序段。
格式为:WHILE[条件式]DOm;
(m=1,2,3循环执行范围的识别号,)
…
…
END m;
其中m 只能是1、2 和3,否则系统报警。DO ——END 循环能够按需要使用多次,即循环嵌套。
二、编程实例分析
1. 零件1
如图1所示零件,该零件编程时以 椭圆右端中心O 点作为编程原点,由于加 工的椭圆极角θ 为90°,所以可以采用 将椭圆极角设为自变量,当椭圆极角从 O 点(0°) 逐渐增加到A 点(90°) 时, 根据椭圆参数方程求得椭圆OA 段上每个点所对应的短轴值和长轴值,然后再算出椭圆O A 段上每个点在工件坐标系中所对应的X 值和Z 值,从而加工出椭圆。编 程中采用条件转移(IF)语句。
该椭圆的参数方程:
椭圆极角。其加工程序为: O0001 ,其中,X 表示椭圆长轴值;Y 表示椭圆短轴值;θ 表示
G97 G99
T0101
M03 S1000
G00 X65 Z5
#1=0 将椭圆极角设为自变量,赋值为0°
N10 #2=25*SIN[#1] 参数方程中椭圆短轴值
#3=40*COS[#1] 参数方程中椭圆长轴值
#4=#2*2 椭圆OA 段上各点在工件坐标系中X 坐标值,*2为直径值
#5=#3-40 椭圆O A 段上各点 在工件坐标系中Z 坐标值,#3-40=-(40-#3)
G01 X#4 Z#5 F0.1 加工椭圆
#1=#1+0.1 自变量椭圆极角每次 增量为0.1°
IF [#1LE90] GOTO10 如果#1小 于且等于90°,则返回到N10程序段不 满足则执行下一程序段
X65
G00 X100 Z100
M05
M30
2. 零件2
如图2 所示零件,该零件编程时以其右端中心O 点作为编程原点,如果用椭圆极角编程,则要计算出B 点处的椭圆极角,比较繁琐。从零件图给出的尺寸可知A 点对应的椭圆短轴值为7mm ,B 点对应的椭圆短轴值为(60-56)/2=2(mm),因此我们可以将椭圆短轴设为自变量,数值由A 点的7mm 逐渐减少到B 点的2mm ,然后根据椭圆标准方程,求得所对应的长轴变化值,最后再算出椭圆AB 段每个点在工件坐标系中对应的X 值和Z 值,从而加工出该零件的椭圆部分。 编程中采用循环(WHILE)语句。
由该椭圆的标准方程
得:
其加工程序为:
O0002
G97 G99
T0101
M03 S1000
G00 X65 Z5
X46
G01 Z-5 F0.1 : 。其中,X 表示椭圆长轴值;Y 表示椭圆短轴值。
#1=7 将椭圆短轴设为自变量,赋 值为7mm
WHILE [#1GE2] DO1 #1如满足 大于且等于2,则执行DO 到END 之间的 程序,否则转到END 后的下一程序段
#2=10/7*SQRT[49-#1*#1] 由椭 圆的标准方程推算出椭圆长轴值
#3= [30-#1]*2 椭圆AB 段上各点在工件坐标系中X 坐标值,*2为直径值
#4=-[#2+5] 椭圆AB 段上各点在工件坐标系中Z 坐标值
G01 X#3 Z#4 F0.1 加工椭圆
#1= #1-0.1 自变量椭圆短轴每次 减量为0.1mm
END1 循环结束 Z-26
X100
G00 Z100
M05
M30
三、小结