分类:推荐论文 时间:关注:(1)
多线螺纹宏程序的编程应用
张传华
摘 要 本文根据宏程序的特点,研究出切实可行的多线螺纹加工程序,该程序结构简单,具备嵌套循环加工的特点,适合于任何形式的多线螺纹加工,用户只须改变相关变量赋值,调用宏程序即可加工出所需的螺纹,其通用性、灵活性强。
关键词 多线螺纹;数控系统 ;宏程序编程;简单快捷
一、宏程序编程特点
1. 宏变量
普通加工程序直接用数值指定G代码和移动距离,例如G01X100,使用用户宏程序时,数值可以直接指定或用变量指定。由#+数字组成宏变量,数字所处区间决定了宏变量所属于的范围。如下表所示:
变量根据变量号可以分成四种类型:
变 量 号 变量类型 功 能
#0 空变量 该变量总是空,没有值能赋给该变量。
#1-#33 局部变量 局部变量只能用在宏程序中存储数据,例如,运算结果。当断电时,局部变量被初始化为空。调用宏程序时,自变量对局部变量赋值。
#100-#199
#500-#999 公共变量 公共变量在不同的宏程序中的意义相同。当断电时,变量#100-#199初始化为空,变量#500——#999的数据保存,即使断电也不丢失。
#1000- 系统变量 系统变量用于读和写CNC运行时的各种数据,例如,刀具的当前位置和补偿值。
宏变量的引用:为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在括号中。当改变引用的变量值的符号时,要把符号放在#的前面。
例如:G01X[#1+#2]
G0X-#1
当变量值未定义时,这样的变量成为“空”变量。变量#0总是空变量。它不能写,只能读。此外,需要注意的是程序号,顺序号和任选程序段跳转号不能使用变量。
2.条件运算符
运算符由两个字母组成,用于两个值的比较,以决定他们是相等还是一个值小于或大于另一个值。注意:不能使用不等符号。
EQ(=),NE(≠),GT(>),
GE(≥),LT(<),LE(≤)
功能 格式 备注
定义 #i=#j
加法
减法
乘法
除法 #i=#j+#k;
#i=#j-#k;
#i=#j*#k;
#i=#j/#k;
正弦
反正弦
余弦
反余弦
正切
反正切 #i=SIN[#j];
#i=ASIN[#j];
#i=COS[#j];
#i=ACOS[#j];
#i=TAN[#j];
#i=ATAN[#j]/ [#k]; 角度以度指定,90°30′表示为90.5度。
平方根
绝对值
舍入
上取整
下取整
自然对数
指数函数 #i=SQRT[#j];
#i=ABS[#j];
#i=ROUND[#j];
#i=FLX[#j];
#i=FUP[#j];
#i=LN[#j];
#i=EXP[#j];
或
异或
与 #i=#j OR#k;
#i=#j XOR#k;
#i=#j AND#k; 逻辑运算一位一位地按二进制数执行。
从BCD转为BIN
从BIN转为BCD #i=BIN[#j];
#i=BCD[#j]; 用于与PMC的信号交换。
3.转移和循环
在宏程序中,使用GOTO语句和IF语句可以改变控制的流向。有三种转移和循环操作可供使用。
(1)无条件转移语句(GOTO语句)
格式:GOTOn n表示顺序号(1~99999)
例如:GOTO 1 (表示顺序号为1)
(2)条件转移语句(IF语句)
格式1:IF[条件表达式] GOTOn
如果指定的条件表达式满足时,转移到标有顺序号n的程序段;如果指定的条件不满足,执行下个程序段。
例如:IF[#1GT10] GOTO2;
N2 G0X10; 如果#1大于10,转移到顺序号N2的程序段。
格式2:IF[条件表达式] THEN
如果条件表达式满足,执行预先决定的宏程序语句。只执行一个宏程序语句。
例如:IF[#1EQ#2].THEN #3=0;
如果#1和#2的值相同,0赋给#3。
(3)循环(WHILE语句)
格式:WHILE [条件式] DO m;
……
END m;
式中:m——循环执行范围的识别号,只能是1、2和3,否则系统报警。
注意:DO—END循环能够按需要使用多次,即循环嵌套。
循环嵌套:
DO—END循环嵌套:
WHILE [条件式1] DO 1;
……
WHILE [条件式2] DO 2;
……
WHILE [条件式3] DO 3;
……
END 3;
……
END 2
……
END 1;
二、多线螺纹加工宏程序设计思路
由于大多数经济型数控机床的硬件配置中,主轴没有分度的功能,所以一般采用轴向分线的方法进行多线螺纹车削。多线螺纹加工设计思路如下:

如图1所示,首先对有关螺纹参数如螺纹线数(分线距离)、外径、底径、导程、螺纹切削长度等进行赋值,利用条件转移功能进行螺纹加工线数距离的比较,其中,在加工第I个线数螺纹时,还要进行螺纹深度加工的比较,若螺纹深度加工没有达到所需的螺纹底径尺寸,X方向变量赋值,继续循环加工,直至达到尺寸要求为止,再进行线数距离Z方向变量赋值(移动一个螺距)的螺纹切削加工,直至所有线数加工完毕。
这种编程思路的特点是,不论加工何种螺纹,线数多少,只需对螺纹有关参数进行赋值,即可实现对多线螺纹的加工,具备螺纹加工的通用性和灵活性,且结构简单。
三、程序编制比较
图2所示是一直径为φ30mm的5线普通粗牙螺纹零件图,其导程为10 mm。

(1)在FANUC数控系统加工,采用G76指令编程如下:
O001
G0 X100 Z100;
S500 M3;
G0 X32 Z10; 快速定位
G76 P020000 Q20 R0.02;
G76 X27.4 Z-100 P1300 Q400 F10; 加工第1头螺纹
G0 X32 Z12; 移动一个螺距
G76 P020000 Q20 R0.02;
G76 X27.4 Z-100 P1300 Q400 F10; 加工第2头螺纹
G0 X32 Z14; 移动一个螺距
G76 P020000 Q20 R0.02;
G76 X27.4 Z-100 P1300 Q400 F10; 加工第3头螺纹
G0 X32 Z16; 移动一个螺距
G76 P020000 Q20 R0.02;
G76 X27.4 Z-100 P1300 Q400 F10; 加工第4头螺纹
G0 X32 Z18; 移动一个螺距
G76 P020000 Q20 R0.02;
G76 X27.4 Z-100 P1300 Q400 F10; 加工第5头螺纹
G0 X100 Z100;
M5;
M30;
(2)在FANUC数控系统加工,根据宏程序结构图编制多线螺纹加工程序如下:
O0001;
G0 X100 Z100;
S500 M3;
#1=0.1; (在X方向加工切入深度增量)
#2=30; (螺纹外径)
#3=105; (切削长度)
#4=27.4; (螺纹底径)
#5=10; (第一线螺纹Z方向的定位)
#6=2; (螺距)
#7=30 (X方向加工初始值)
#8=28 (最后线数螺纹Z方向的定位)
#9=10; (导程)
WHILE [#5LE#8] DO1; (分线距离加工比较)
WHILE[#7GT#4]DO2; (螺纹牙深加工比较)
G00 X[#7-#1] Z#5; (横向加工进刀位置)
G32 W[-#3] F#9; (螺纹切削)
G00 X[#2+10]; (X方向退刀)
W#3; (Z方向退刀)
#7=#7-0.1; (牙深变量)
END2;
#7=#2; (恢复X方向加工的初始值)
#5=#5+#6; (分线距离变量)
END1;
G00 X100 Z100 ;
M5;
M30;
比较上述两种程序编制方法可见:用G76指令加工多头螺纹比较繁锁,用宏程序编制简单快捷。而且若用宏程序编制,只要改变螺纹的参数赋值就可以加工出不同尺寸、不同线数的多线螺纹。
多线螺纹宏程序的编程应用
张传华
广东省湛江市技师学院 524037
摘 要 本文根据宏程序的特点,研究出切实可行的多线螺纹加工程序,该程序结构简单,具备嵌套循环加工的特点,适合于任何形式的多线螺纹加工,用户只须改变相关变量赋值,调用宏程序即可加工出所需的螺纹,其通用性、灵活性强。
关键词 多线螺纹;数控系统 ;宏程序编程;简单快捷
一、宏程序编程特点
1. 宏变量
普通加工程序直接用数值指定G代码和移动距离,例如G01X100,使用用户宏程序时,数值可以直接指定或用变量指定。由#+数字组成宏变量,数字所处区间决定了宏变量所属于的范围。如下表所示:
变量根据变量号可以分成四种类型:
变 量 号 变量类型 功 能
#0 空变量 该变量总是空,没有值能赋给该变量。
#1-#33 局部变量 局部变量只能用在宏程序中存储数据,例如,运算结果。当断电时,局部变量被初始化为空。调用宏程序时,自变量对局部变量赋值。
#100-#199
#500-#999 公共变量 公共变量在不同的宏程序中的意义相同。当断电时,变量#100-#199初始化为空,变量#500——#999的数据保存,即使断电也不丢失。
#1000- 系统变量 系统变量用于读和写CNC运行时的各种数据,例如,刀具的当前位置和补偿值。
宏变量的引用:为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在括号中。当改变引用的变量值的符号时,要把符号放在#的前面。
例如:G01X[#1+#2]
G0X-#1
当变量值未定义时,这样的变量成为“空”变量。变量#0总是空变量。它不能写,只能读。此外,需要注意的是程序号,顺序号和任选程序段跳转号不能使用变量。
2.条件运算符
运算符由两个字母组成,用于两个值的比较,以决定他们是相等还是一个值小于或大于另一个值。注意:不能使用不等符号。
EQ(=),NE(≠),GT(>),
GE(≥),LT(<),LE(≤)
功能 格式 备注
定义 #i=#j
加法
减法
乘法
除法 #i=#j+#k;
#i=#j-#k;
#i=#j*#k;
#i=#j/#k;
正弦
反正弦
余弦
反余弦
正切
反正切 #i=SIN[#j];
#i=ASIN[#j];
#i=COS[#j];
#i=ACOS[#j];
#i=TAN[#j];
#i=ATAN[#j]/ [#k]; 角度以度指定,90°30′表示为90.5度。
平方根
绝对值
舍入
上取整
下取整
自然对数
指数函数 #i=SQRT[#j];
#i=ABS[#j];
#i=ROUND[#j];
#i=FLX[#j];
#i=FUP[#j];
#i=LN[#j];
#i=EXP[#j];
或
异或
与 #i=#j OR#k;
#i=#j XOR#k;
#i=#j AND#k; 逻辑运算一位一位地按二进制数执行。
从BCD转为BIN
从BIN转为BCD #i=BIN[#j];
#i=BCD[#j]; 用于与PMC的信号交换。
3.转移和循环
在宏程序中,使用GOTO语句和IF语句可以改变控制的流向。有三种转移和循环操作可供使用。
(1)无条件转移语句(GOTO语句)
格式:GOTOn n表示顺序号(1~99999)
例如:GOTO 1 (表示顺序号为1)
(2)条件转移语句(IF语句)
格式1:IF[条件表达式] GOTOn
如果指定的条件表达式满足时,转移到标有顺序号n的程序段;如果指定的条件不满足,执行下个程序段。
例如:IF[#1GT10] GOTO2;
N2 G0X10; 如果#1大于10,转移到顺序号N2的程序段。
格式2:IF[条件表达式] THEN
如果条件表达式满足,执行预先决定的宏程序语句。只执行一个宏程序语句。
例如:IF[#1EQ#2].THEN #3=0;
如果#1和#2的值相同,0赋给#3。
(3)循环(WHILE语句)
格式:WHILE [条件式] DO m;
……
END m;
式中:m——循环执行范围的识别号,只能是1、2和3,否则系统报警。
注意:DO—END循环能够按需要使用多次,即循环嵌套。
循环嵌套:
DO—END循环嵌套:
WHILE [条件式1] DO 1;
……
WHILE [条件式2] DO 2;
……
WHILE [条件式3] DO 3;
……
END 3;
……
END 2
……
END 1;
二、多线螺纹加工宏程序设计思路
由于大多数经济型数控机床的硬件配置中,主轴没有分度的功能,所以一般采用轴向分线的方法进行多线螺纹车削。多线螺纹加工设计思路如下:
图1宏程序结构图
如图1所示,首先对有关螺纹参数如螺纹线数(分线距离)、外径、底径、导程、螺纹切削长度等进行赋值,利用条件转移功能进行螺纹加工线数距离的比较,其中,在加工第I个线数螺纹时,还要进行螺纹深度加工的比较,若螺纹深度加工没有达到所需的螺纹底径尺寸,X方向变量赋值,继续循环加工,直至达到尺寸要求为止,再进行线数距离Z方向变量赋值(移动一个螺距)的螺纹切削加工,直至所有线数加工完毕。
这种编程思路的特点是,不论加工何种螺纹,线数多少,只需对螺纹有关参数进行赋值,即可实现对多线螺纹的加工,具备螺纹加工的通用性和灵活性,且结构简单。
三、程序编制比较
图2所示是一直径为φ30mm的5线普通粗牙螺纹零件图,其导程为10 mm。
图2 加工零件图
(1)在FANUC数控系统加工,采用G76指令编程如下:
O001
G0 X100 Z100;
S500 M3;
G0 X32 Z10; 快速定位
G76 P020000 Q20 R0.02;
G76 X27.4 Z-100 P1300 Q400 F10; 加工第1头螺纹
G0 X32 Z12; 移动一个螺距
G76 P020000 Q20 R0.02;
G76 X27.4 Z-100 P1300 Q400 F10; 加工第2头螺纹
G0 X32 Z14; 移动一个螺距
G76 P020000 Q20 R0.02;
G76 X27.4 Z-100 P1300 Q400 F10; 加工第3头螺纹
G0 X32 Z16; 移动一个螺距
G76 P020000 Q20 R0.02;
G76 X27.4 Z-100 P1300 Q400 F10; 加工第4头螺纹
G0 X32 Z18; 移动一个螺距
G76 P020000 Q20 R0.02;
G76 X27.4 Z-100 P1300 Q400 F10; 加工第5头螺纹
G0 X100 Z100;
M5;
M30;
(2)在FANUC数控系统加工,根据宏程序结构图编制多线螺纹加工程序如下:
O0001;
G0 X100 Z100;
S500 M3;
#1=0.1; (在X方向加工切入深度增量)
#2=30; (螺纹外径)
#3=105; (切削长度)
#4=27.4; (螺纹底径)
#5=10; (第一线螺纹Z方向的定位)
#6=2; (螺距)
#7=30 (X方向加工初始值)
#8=28 (最后线数螺纹Z方向的定位)
#9=10; (导程)
WHILE [#5LE#8] DO1; (分线距离加工比较)
WHILE[#7GT#4]DO2; (螺纹牙深加工比较)
G00 X[#7-#1] Z#5; (横向加工进刀位置)
G32 W[-#3] F#9; (螺纹切削)
G00 X[#2+10]; (X方向退刀)
W#3; (Z方向退刀)
#7=#7-0.1; (牙深变量)
END2;
#7=#2; (恢复X方向加工的初始值)
#5=#5+#6; (分线距离变量)
END1;
G00 X100 Z100 ;
M5;
M30;
比较上述两种程序编制方法可见:用G76指令加工多头螺纹比较繁锁,用宏程序编制简单快捷。而且若用宏程序编制,只要改变螺纹的参数赋值就可以加工出不同尺寸、不同线数的多线螺纹。