欢迎来到上海鼎亚精密机械设备有限公司官方网站! 收藏本站| 关于鼎亚| 炮塔铣床调试维修视频
全国统一热线
400-000-7705
热门关键词:
当前位置:首页>>鼎亚动态>>常见问题数控宏程序的编程及应用

数控宏程序的编程及应用

文章出处: 人气:1162 发表时间:2020-11-10 16:03:02
1. 什么场合会用到宏程序编程?
其实说起来宏就是用公式来加工零件,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加一个量,那么宏就会自动算出X坐标并且进行切削, 实际上宏在程序中主要起到的是运算作用。

手工编程加工公式曲线(计算简单,输入快捷)
有规律的切削路径(作为一个切削模块)
程序间的控制(程序的调度)
刀具的管理(刀具的磨损)
自动测量(机内测头)
2. 什么叫宏程序?
在编程时,我们会把能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来调用它们,使用时只需给出这个总指令就能执行其功能所存入的这一系列指令称作用户宏程序本体,简称宏程序。
这个总指令称作用户宏程序调用指令。在编程时,编程员只要记住宏指令而不必记住宏程序。
3. 用户宏程序与普通程序的区别
1)在用户宏程序本体中,能使用变量,可以给变量赋值,变量间可以运算,程序可以跳转。
2)普通程序中,只能指定常量,常量之间不能运算,程序只能顺序执行,不能跳转,因此功能是固定的,不能变化。
3)用户宏功能是用户提高数控机床性能的一种特殊功能,在相类似工件的加工中巧用宏程序将起到事半功倍的效果。
4. 变量的三种类型
数控系统变量表示形式为“#”后跟1~4位数字,变量种类有三种:
(1)局部变量:#1~#33是在宏程序中局部使用的变量,它用于自变量转移。
(2)公用变量:用户可以自由使用,它对于由主程序调用的各子程序及各宏程序来说是可以公用的。#100~#149在关掉电源后,变量值全部被清除,而#500~#509在关掉电源后,变量值则可以保存。
(3)系统变量:由后跟4位数字来定义,它能获取包含在机床处理器或NC内存中的只读或读/写信息,包括与机床处理器有关的交换参数、机床状态获取参数、加工参数等系统信息。
5. 宏程序的特点
宏程序可使用变量,可用变量执行相应操作;实际变量值可由宏程序指令赋给变量。
6. 指令
(1)宏程序的简单调用格式
宏程序的简单调用是指在主程序中,宏程序可以被单个程序段单次调用。
调用指令格式:
G65 P(宏程序号)L(重复次数)(变量分配)。
其中:G65―宏程序调用指令;
P(宏程序号)―被调用的宏程序代号;
L(重复次数)―宏程序重复运行的次数,重复次数为1时,可省略不写;
(变量分配)―为宏程序中使用的变量赋值。
宏程序与子程序相同的一点是,一个宏程序可被另一个宏程序调用,最多可调用4重。
(2)宏程序的编写格式
宏程序的编写格式与子程序相同。其格式为:
0~(0001~8999为宏程序号)
N10 指令
N~ M99
上述宏程序内容中,除通常使用的编程指令外,还可使用变量、算术运算指令及其它控制指令。变量值在宏程序调用指令中赋给。
7. FANUC系统宏程序应用
(1)宏程序切槽


1)WHILE语句
G00 X52 Z2;
#2= 14;   
是刀具z向的起刀点(因为刀宽为4mm,所以起刀点定在Z 14的位置)
WHILE〔#2 GE 30〕DO2;   
是z方向的约束条件,当z等于 30时,z向就不再移动
G00 Z〔#2〕;   
z方向的当前位置
#2=#2 2;   
z方向的移动步距,每次移动2mm
#1=52;  
是x方向的起刀点
WHILE〔#1 GE 20〕DO1;  
X方向的约束条件,当直径等于20时就不再切削
G01 X〔#1〕F0.2;  
x方向的切深
G00 X〔#1+1〕;  
x方向的相对退刀量
#1=#1 1;  
x方向的步距(每次切1mm)
END1;
G00 X52;
END2;
完整程序:
O1234;
G40 G97 G99;                  
T0101;                           
S1000 M3;                        
G00 X52 Z2;                    
#2= 14;                          
WHILE〔#2GE 30〕DO2;    END1;
G00 Z〔#2〕;                    
#2=#2 2;                        
#1=52                           
WHILE〔#1GE20〕DO1;
G01X〔#1〕F0.2;
G00X〔#1+1〕;
#1=#1 1;
G00 X52;
END2;
G00 X150 Z150;
M30;
2)IF语句
G00 X52 Z 2;
#1= 14;  
是刀具的z向起刀点(刀宽为4mm)
N2 #1=#1 2;   
是z方向的移动步距
#2=52;  
为x方向的起刀点
N1#2=#2 1;  
是x方向的步距(每次切深1mm)
G01 X〔#2〕F0.2;  
X方向的当前位置
G00 X〔#2+1〕;   
X方向的相对退刀量
IF 〔#2 GE 21〕GOTO1;      
x方向的约束条件(当x的数值切到20时就进行下面程序,不再返回)
G00 X52;   
X退刀到52的位置
G00 Z〔#1〕;   
Z方向的当前位置
IF 〔#1 GE 30〕GOTO2;   
Z方向的约束条件,当z等于 30时,z向就不在移动
完整程序:
O1234;
G40G97G99;                    
T0101;                           
S1000M3;                        
G00 X52 Z 2;                  
#1= 14;                          
N2 #1=#1 2;                    
#2=52;                           
N1#2=#2 1;                     
G01 X〔#2〕F0.2;
G00 X〔#2+1〕;
IF〔#2GE21〕GOTO1;
G00X52;
G00Z〔#1〕;
IF〔#1GE 30〕GOTO2;
G00X200;
Z200;
M5;
M30;
(2)椭圆编程
1)椭圆WHILE语句的标准格式:
#1=a;  
a :为刀具的起刀点在相对椭圆的轴线Z的正方向a mm处
WHILE〔#1 GE b〕DO1;   
b: 为椭圆加工的终点在相对椭圆的轴线Z的负方向b mm处(如果加工的是一个完整的半椭圆,那a、b是数值相同符号不同的两个数值)
#2= c*SQRT〔1 #1*#1/d*d〕;   
c: 椭圆的短半轴      
d: 椭圆的长半轴(根据椭圆公式求#2,长半轴为d,短半轴为c,#2代表X的数值,#1为Z的数值,SQRT是开方的意思)
G01 X〔±2*#2+e〕Z〔#1±f〕;
e: 椭圆的X向轴线相对工件坐标系的偏移量(直径值)
f: 椭圆的Z向轴线相对工件坐标系的偏移量
#1=#1 1;步距(每次移动1mm)
END1;
注意事项:当车削凹椭圆时X后括号中的“±”取“﹣”;当车削凸椭圆时X后括号中的“±”取“+”。
当椭圆的X轴线向正向偏移则Z后括号中的“±”取“+”;当椭圆的X向轴线向负向偏移则Z后括号中的“±”取“﹣”
2)椭圆IF语句的标准格式
#1=a;
a: 为刀具的起刀点在相对椭圆的轴线Z的正方向a mm处
N1#2=b*SQRT〔1 #1*#1/c*c〕;
b:椭圆的短半轴c:椭圆的长半轴(根据椭圆公式X/c+ Y/b=1,SQRT是开方的意思)
G01X〔±2*#2+d〕Z〔#1±e〕F0.2; d:椭圆的X向轴线相对坐标零点的偏移量(直径值)e:椭圆的Z向轴线相对零面的偏移量
#1=#1 1;  
步距(每次移动1mm)
IF〔#1 GE f〕GOTO1   
f:椭圆加工的终止

注意事项:当车削凹椭圆时X后括号中的“±”取“﹣”;当车削凸椭圆时X后括号中的“±”取“+”。当椭圆的X轴线向正向偏移则Z后括号中的“±”取“+”;当椭圆的X向轴线向负向偏移则Z后括号中的“±”取“﹣”。


WHILE语句
#1=20;
WHILE〔#1GE 20〕DO1;
#2=10*SQRT〔1 #1*#1/400〕;
G01X〔 2*#2+50〕Z〔#1 25〕;
#1=#1 1;
END1;
IF语句
#1=20;
N1#2=10*SQRT〔1 #1*#1/400〕;
G01X〔 2*#2+50〕Z〔#1 25〕F0.2;
#1=#1 1;
IF〔#1GE 20〕GOTO1;
完整程序
O1234;
G40G97G99;               
T0101;                    
S1000 M3;                  
G00 X50 Z2;               
G73 U5 R5;               
G73 P10 Q20 U0.5 F0.2;      
N10 G0 G42 Z 5;            
#1=20;                  
WHILE〔#1GE 20〕DO1;      
#2=10*SQRT〔1 #1*#1/400〕;
G01X〔 2*#2+50〕Z〔#1 25〕F0.2;
#1=#1 1;
END1;
G00 X50;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
IF语句完整格式省略,(IF语句也一样,只要加上循环就可以),在FANUC 0i系统中宏程序只能加在G73中。


此文关键字:数控,宏程序,编程,应用
首页| 加工中心| 高速钻攻中心| 数控铣床| 龙门加工中心| 产品中心| 网站地图| 关于鼎亚|