数控编程中有时候用常量编程无法获得预期的加工效果,这是可以用宏程序达到,利用计算机的计算能力,人为的将一些不好计算的值表示为变量,这既是宏程序。车工中宏程序的应用主要体现在车非圆曲线,大螺距梯形螺纹上面,而铣工和加工中心则应用宏程序较多,因为他们加工的多维空间坐标系
数控加工中宏程序的编制方法首都航天机械公司商学谦FANUC宏程序简介 在数控编程中,宏程序编程灵活、高效、快捷。宏程序不仅可以实现象子程序那样,对编制相同加工 *** 作的程序非常有用,还可以完成子程序无法实现的特殊功能,例如,型腔加工宏程序、固定加工循环宏程序、球面加工宏程序、锥面加工宏程序等。 FANUC宏程序特殊用法 宏程序还可以实现系统参数的控制,如,坐标系的读写、刀具偏置的读写、时间信息的读写、倍率开关的控制等。 SIEMENS参数编程 与FANUC类似,但功能要弱一些。变量以“R”开始,如:R0、R1、R99。不包含系统变量,系统变量以 “$”开头。 FANUC宏程序的构成 FANUC宏程序的变量Ⅰ FANUC宏程序的变量Ⅱ FANUC宏程序的变量Ⅲ FANUC宏程序的变量Ⅳ 刀具补偿存储器C的系统变量当偏置组数小于等于200时,也可以用#2001——#2400刀具补偿存储器C用G10指令进行设定P:刀具补偿号R:绝对值指令(G90)方式时的刀具补偿值。增量值指令(G91)方式时的刀具补偿值为该值与指定的刀具补偿号的值相加。自动运行控制的系统变量自动运行控制的系统变量攻丝加工循环工件原点偏移值的系统变量Ⅰ工件原点偏移值的系统变量Ⅱ工件原点偏移值的系统变量Ⅲ工件原点偏移值的系统变量Ⅳ工件原点偏移值的系统变量Ⅴ工件原点偏移值的系统变量Ⅵ工件原点偏移值的系统变量Ⅶ工件原点偏移值的系统变量Ⅷ用G10改变工件坐标系零点偏移值 FANUC宏程序运算符ⅠFANUC宏程序运算符ⅡFANUC宏程序运算符ⅢFANUC宏程序运算符ⅣFANUC宏程序的转移和循环Ⅰ 无条件转移:GOTOn (n为顺序号,1——99999) 例:GOTO10为转移到N10程序段 FANUC宏程序的转移和循环Ⅱ 条件转移:(IF语句)IF [条件表达式] GOTOn 当指定的条件表达式满足时,转移到标有顺序号n的程序段,如果指定的条件表达式不满足时,执行下个程序段FANUC宏程序的转移和循环Ⅲ 条件转移:(IF语句)IF [条件表达式] GOTOn FANUC宏程序的转移和循环Ⅳ IF [条件表达式] THEN 当指定的条件表达式满足时,执行预先决定的宏程序语句。 例:IF [#1EQ #2] THEN #3=0 ; FANUC宏程序循环ⅠFANUC宏程序循环Ⅱ FANUC宏程序循环Ⅲ FANUC宏程序循环Ⅳ FANUC宏程序的条件表达式运算符 FANUC宏程序的调用ⅠFANUC宏程序的调用ⅡFANUC宏程序的调用ⅢFANUC宏程序的调用ⅣFANUC宏程序的G代码调用FANUC宏程序的G代码调用FANUC宏程序的M代码调用FANUC宏程序中刀具半径补偿
现行的数控程序的编制中,主要有两种编程方式:手工编程和自动编程。虽然自动编程运用得越来越广泛,但手工编程在某些领域也是不可或缺的一种编程手段。手工编程至少在此以下几方面有着自己的优势:其一,熟练的程序员编制的手工程序加工效率高于自动编程;其二,熟悉手工编程,对自动程序的修改是不无裨益的;其三,自动编程的所敲定的走刀路线限制了其加工工艺,通过手工编程能够得到弥补。
在手工编程过程中,用户宏程序的编制,能极大提高程序编制的效率,因此,我们在数控教学及训练过程中,必须把用户宏程序的编制作为我们数控教学的重要内容之一。从历年全国数控大赛的试题中也不难发现,用户宏程序的编制是运用得极其频繁的。但是,我们很难在目前的教材中找到完整的宏程序的编写的方法及思路。为此,笔者提出了一整套设计用户宏程序的方法,通过利用流程图来设计用户宏程序,提高了编程的效率。
二、用户宏程序简介
用户宏程序有A、B两种,A类宏程序用G65指令编写,其格式如下:
G65 Hm P#i Q#j R#k
其中,m—01~99表示运算命令或转移命令功能;
#i—存入运算结果的变量名;
#j—进行运算的变量名1,可以是常数,常数直接表示,不带#;
#k—进行运算的变量名2,也可以是常数。
意义, #i=#j○#k,表示运算符号,常用意义如表1
表1
G代码
H代码
功能
定义
G65
H01
赋值
#i=#j
G65
H02
加法
#i=#j+#k
G65
H03
减法
#i=#j-#k
G65
H04
乘法
#i=#j×#k
G65
H05
除法
#i=#j÷#k
G65
H80
无条件转移
转向N
G65
H81
条件转移1
IF #j=#k,GOTO N
G65
H82
条件转移2
IF #j≠#k,GOTO N
G65
H83
条件转移3
IF #j>#k,GOTO N
G65
H84
条件转移4
IF #j<#k,GOTO N
G65
H85
条件转移5
IF #j≥#k,GOTO N
G65
H86
条件转移6
IF #j≤#k,GOTO N
G65
H99
产生P/S报警
产生500+1号P/S报警
除此以外,G65指令还可以实现逻辑运算、开平方、取绝对值、三角运算及复合运算等,相关指令见有关书籍,这里不一一介绍。需要指出的是,不同的数控系统,其功能的多少也不一样,用户可参考有关系统的说明书。
B类宏程序由控制语句,调用语句所组成。宏程序可以与主程序做在一起,也可以单独做成一个子程序,然后用G65指令调用。调用方法如下:
G65 P(程序号)〈引数赋值〉或G65 P(程序号) L(循环次数)〈引数赋值〉
所谓引数赋值,是指用A、B、C、D等地址给变量#1、#2、#3、#4等赋值。
B类宏程序的控制指令有三类,与C语言等高级程序设计语言的控制指令很类似。一类是IF语句,格式为:
IF[条件式]GOTO n (n即顺序号)
条件式成立时,从顺序号为n的程序段往下执行,条件式不成立时,执行下一下程序段;第二类是WHILE语句,格式为:
WHILE[条件式] DO m
.
.
.
END m
条件式成立时,从DO m的程序段到END m的程序段重复执行,条件式不成立时,则从END m的下一程序段执行。
第三类是无条件转移指令,格式为:GOTO n。
三、运用流程图编写用户宏程序的一般步骤
运用流程图编写用户宏程序的一般步骤为:一分析零件结构,确定宏程序加工的内容,找出加工工艺路线的律;二将零件加工路线规律用流程图表达出来,并进一步分清楚哪些是程序编制过程中的变量,哪些是常量,从而将一般的流程变成程序流程图;三根据程序流程图,编写零件的加工程序。
四、应用举例
(一)宏程序应用实例一
如图1所示,在一根轴上加工N个槽,每个槽的宽度为a1,槽的间距为a2,槽底直径为b1,棒料直径b2,并且设所给材料足够长,试编写程序加工该零件,现有一零件参数为N=100个槽,槽底直径b1=30mm,槽宽a1=5mm,工件直径b2=40mm,间隔a2=2mm,刀宽=3mm,现编写程序加工。图11零件工艺过程分析
该零件是一个比较简单的例子,在压面机械上用得较多。零件的精度要求不高,为了使程序有更广泛的适应性,将宏程序做成一个子程序,用主程序来调用实现零件的加工。加工时将坐标原点选择在如图所示的位置,X轴离第一个槽的距离为一个间距a2的距离。
零件的加工过程如下将:将刀具移至加工起点→进刀→切削第一个槽→计算下一槽的位置并将刀具移到此位置→加工下一个槽……如此至最后一个槽加工完为止。
将此过程画成流程图,如图2(a)所示。
(a) (b)
图2
2零件加工过程中所使用的变量
通过分析,要加工该零件,需要如下一些变量:
工件直径#200= b2
槽底直径#201= b1
槽宽#202= a1
槽间间隔#203= a2
切槽刀宽度#204
每加工一个槽后,切槽刀在Z轴方向移动的距离#205(等于槽间距加上槽宽)
槽的起点坐标Xs=#206,Zs=#207
槽加工终点的坐标Xf=#208,Yf=#209
计算槽数目的变量#215
加工槽的总数#216
由此画出编制程序所用的流程图,如图2(b)所示。
3根据程序流程图编制程序
宏程序O9061
N10 G65 H83 P160 Q#204 R#202 如果刀宽大于槽完,则结束
N20 G65 H01 P#215 Q0 计数器变量清零
N30 G65 H02 P#205 Q#202 R#203 计算#205
N40 G65 H02 P#206 Q#200 R5 工件直径加上5mm作为X方向起点
N50 G65 H02 P#207 Q#203 R#204 槽的间距加上一个刀宽
N60 G65 H01 P#207 Q#207 取负值后作为第一个槽的Z向起点
N70 G65 H01 P#208 Q#201 槽底直径作为槽终点的X坐标
N80 G65 H01 P#209 Q#205 第一个槽终点Z向坐标
N90 G00 X#206 Z#207 M08 定位到槽加工的位置
N100 G75 R1
N110 G75 X#208 Z#209 P2 Q#204 F20 加工槽
N120 G65 H03 P#207 Q#207 R#205 下一个槽起点Z向坐标计算
N130 G65 H03 P#209 Q#209 R#205 下一个槽终点Z向坐标计算
N140 G65 H02 P#215 Q#215 R1 槽计数器加1
N150 G65 H84 P90 Q#215 R#216 判断槽是否加工完毕
N160 M08
N170 M99 结束
主程序 O0001
N10 G65 H01 P#200 Q40 工件直径赋值
N20 G65 H01 P#201 Q30 槽底直径赋值
N30 G65 H01 P#202 Q5 槽宽赋值
N40 G65 H01 P#203 Q2 槽间间隔赋值
N50 G65 H01 P#204 Q3 切槽刀宽赋值
N60 G65 H01 P#216 Q100 槽数赋值
N70 G00 X100 Z100 起刀点位置
N80 M98 P9061 调用宏程序
N90 M30 程序结束
(二)宏程序应用实例二
对于一些大悬伸(加工深度与刀具直径之比较大)的零件,用普通加工方法总难达到理想效果,此时用插铣法容易保证零件精度,如图3所示的零件,尺寸80很难保证,用插铣法后获得了比较好的效果。曾经有工厂做过类似的程序,但程序只是针对零件本身,适应性不强,当零件的尺寸发生变化后,程序还得发生较大修改。笔者针对这种情况,将程序分为主程序和子程序,当零件的尺寸发生变化后,只需要修改主程序即可,非常方便。
1加工工艺分析
传统加工工艺方法采用多次重复加工。很难消除让刀,并且造成加工应力,最后由于应力释放造成零件的内腔变小。为了解决这个问题,我们将加工分为粗加工和精加工,粗加工采用普通的工艺方法,精加工采用插铣。
建立如图3所示的坐标系,为了保证加工质量,防止划伤已加工过的表面,编程时避免使用钻孔循环指令。加工轨迹如图4所示,在YZ平面内进行以下加工步骤:加工第一刀→沿圆弧退刀→返回Z=3处→沿圆弧进刀→沿X方向移动一个步距→加工第二刀→…。
加工过程中,粗加工尺寸80按796加工,而精加工采用宏程序编制高速插铣程序。精加工的具体参数如表2所示
图3零件图及坐标系 图4刀具路径表2精加工参数
加工方式
加工材料
刀具
步距
设置安全高度
顺铣
铝合金
Φ18整体硬质合金加长球头刀
0.05
Z=3
2加工流程图
为增强程序的适应性,本程序刀分为子程序和主程序来编写,子程序起始位置为(0,0,50),刀具在加工过程中的基本路线是按前面所给出的路线来走刀。
由此画出加工流程图如图5(a)所示。(a) (b)
图5
3程序所使用的变量及程序流程图
本程序中所使用的变量如下:
需加工部位X方向的长度:#1;
需加工部位Y方向的长度:#2;
需加工部位Z方向的深度:#3;
X方向的步距:#4;
走刀轨迹中,退(或进)刀时的半径:#5(本例图4中的R10);
中间变量:#6、#7、#8、#9
由所确定的变量及加工流程图,画出程序流程图如图5(b)所示。
4编制程序
子程序:%9001
N10 #1=#1/2 #1变量取1/2作为X坐标
N20 #2=#2/2 #2变量取1/2作为Y坐标
N30 G00 X#1 X方向定位到加工位置
N40 G41 D1 Y#2 Y方向定位到加工位置
N50 G01 Z3 F3000 M08 下降下安全高度,开冷却液
N60 #6=-(#3-#5) 计算加工终点Z向坐标
N70 #7=#2-2#5 计算退刀终点Y坐标
N80 G01 Z#6 插铣加工
N90 G02 Y#7 R#5 退刀
N100 G01 Z3 返回
N110 G02 Y#2 R#5 进刀
N120 #8=#8+#4 X方向总加工长度计数
N130 G91 G01 X-#4 X方向走一个步距
N140 IF #8LE#1 GOTO 80 判别第一侧是否加工完
N150 G90 Y-#2 移至另一侧
N160 G01 Z#6 插铣加工另一侧
N180 G02 Y-#7 R#5 退刀
N190 G01 Z3 返回安全高度
N200 G02 Y-#2 R#5 进刀
N210 #9=#9+#4 X方向总加工长度计数
N220 G91 G01 X#4 X方向移动一个步距
N230 IF #9LE#1 GOTO 160 判别另一侧是否加工完
N240 G90 G40 G00 X0 Y0 M09 X、Y方向返回起始点
N250 Z50 Z方向返回起始点
N260 M99 宏程序结束
主程序:%1010
N10 T01 选一号刀
N20 M06 换刀
N30 G00 G90 G54 G19 X0 Y0 S5000 M03 定位到起始位置,选择坐标平面及坐标系,启动主轴。
N40 G43 H01 Z50 Z方向补偿
N60 G65 P9001 A200 B8005 C90 D0 E0 F0 I005 J10 K0 调用宏程序并给相关变量赋值
N70 M05 停止主轴
N80 G49 Z50 Z方向取消补偿
N90 M30 程序结束
五、结束语
利用流程图编制用户宏程序,思路清晰,所编制的程序适应性好,是一种值得推广的方法。
这么说吧,关闭程序保护开关
在编辑状态(EDIT)然后在MDI键盘按下PROG(程序显示)
输入O0093再按插入键(INSERT)
!就可以新建程序O0092!
你要有程序才能解释 给你点例子吧 数控车床宏程序编程实例(FANUC)O0001; G98 #1=12 #2=112 #3=106 #4=102 #5=99 #6=98 #7=015 #8=01 #9=005 #10=003 #15=#1 M03 S600 IF[#15GE#1]GOTO146 M98 P167000 N146 #15=#15-#7 G01 #15 F300 G32 U221 W-26 F3 G00 X20 G00W26 IF[#15GE#2]GOTO146 M98P147000 N200#15=#15-#8 G01 #15 F300 G32 U221 W-26 F3 G00 X20 G00W26 IF[#15GE#3]GOTO200 M98P127000 N211#15=#15-#9 G01 #15 F300 G32 U221 W-26 F3 G00 X20 G00W26 IF[#15GE#4]GOTO211 M98P107000 N231#15=#15-#10 G01 #15 F300 G32 U221 W-26 F3 G00 X20 G00W26 IF[#15GE#5]GOTO231 M98 P107000 N250#15=#15-#10 G01 #15 F300 G32 U221 W-26 F3 G00 X20 G00 W26 IF[#15GE#6]GOTO250 M05 M30 O7000; G01 X#15 F300 G01 W-01 F300 G32 U221 W-26 F3 上面是数控车的宏程序,现在大家用的程序是普通程序一般的普通加工用宏程序编是很复杂的,但是像一些复杂零件想椭圆,双曲线,抛物线那些不规则的不能用G02 G03直接加工的零件就要用宏程序 数控车本来是很好学的但是想学的好,成为高手,宏程序直接成为高手跟菜鸟的分水岭,每年的数控车技能大赛最后的一个 *** 作题一般都是加工椭圆的 支持宏程序也是高档数控车床与抵挡数控车之间的区别,低档的数控车可以说只支持普通的指令像G00 G01 G02 G03 而没有循环系统像G70 G71 T72 T73这样的精车 外圆 端面固定形状这样的循环指令,这些中档的数控车有,但是它却不支持宏程序,现在新出的高档的法兰克数控系统一般都支持宏程序 更多更详细的编程方法见仁神的 >
现成的 用12的球头刀
圆柱上面 有个半球
编写:
主程序
O123
90G80G49G40
G0G90G54X40Y0S1600M3
G43H1Z100M8
Z10
G1Z0F300
M98P110L15
G90G1Z20F500
G1X40Y0
M98P210
G91G28Z0
M5
G91G28Y0
M30
子程序 一 先加工 圆柱 30个深度
O110
G91Z-2F500
G90G41G1X28D1
G2X28I-28
G01X40Y0
M99
子程序二 加工半球
O210
#24=28
#26=-20
#1=20
#2=0
#18=20
N29G1Z#26
X#24
G2X#24Y0I-#24
#2=#2+01
#1=SQRT[#18#18-#2#2]
#24=#1+8
#26=-20+#2
IF[#26LE0]GOTO29
G1Z20
G01X0Y40
M99
一、非圆曲面类的宏程序的编程技巧
1、非圆曲面可以分为两类;
(1)、方程曲面,是可以用方程描述其零件轮廓的曲面的。如抛物线、椭圆、双曲线、渐开线、摆线等。
这种曲线可以用先求节点,再用线段或圆弧逼近的方式。以足够的轮廓精度加工出零件。选取的节点数目越多,轮廓的精度越高。然而节点的增多,用普通手工编程则计算量就会增加的非常大,数控程序也非常大,程序复杂也容易出错。不易调试。即使用计算机辅助编程,其数据传输量也非常大。而且调整尺寸补偿也很不方便。这时就显出宏程序的优势了,常常只须二、三十句就可以编好程序。而且理论上还可以根据机床系统的运算速度无限地缩小节点的间距,提高逼近精度。
(2)、列表曲面,其轮廓外形由实验方法得来。如飞机机翼、汽车的外形由风洞实验得来。是用一系列空间离散点表示曲线或曲面。这些离散点没有严格一定的连接规律。而在加工中则要求曲线能平滑的通过各坐标点,并规定了加工精度。加工列表曲线的方法很多,可以采用计算机辅助编程,利用离散点形成曲面模型,再生成加工轨迹和加工程序。对于一些老机床或无法传送数据的机床,我们也可以将轮廓曲线按曲率变化分成几段,每段分别求出插值方程。采用宏程序加密逼近曲线的方法。
2、非圆曲面类的宏程序的编程的要点有:
建立数学模型和循环体
(1)、数学模型是产生刀具轨迹节点的一组运算赋值语句。它可以计算出曲面上每一点的坐标。它主要从描述其零件轮廓的曲面的方程转化而来。
(2)、循环体是由一组或几组循环指令和对应的加法器组成。它的作用是将一组节点顺序连接成刀具轨迹,再依次加工成曲面。
if后加个条件语句then后加个控制语句。
例如:AA:
程序
if
X<0
then
goto
AA
就是如果程序中给个变量,然后这个变量在满足X<0这个条件时,程序自动从AA:语句后自动运行。不知道我说的明白不明白!
以上就是关于什么是数控编程中的用户宏程序如何应用全部的内容,包括:什么是数控编程中的用户宏程序如何应用、数控车床宏程序编程祥解、数控宏程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)