宏程序表达式

2024-08-25

宏程序表达式(共5篇)

宏程序表达式 篇1

摘要:FANUC系统的宏程序在实际的数控编程加工中有其自己的特点, 可以使很多较复杂的程序简单化, 大大提高了程序的可读性和加工效率。

关键词:宏程序,图形旋转指令,加工效率

1 宏程序的转移指令

1.1 分支语句

格式一GOTO n;

无条件转移语句, 当执行该程序时, 无条件转移到n程序段执行。

格式二IF[条件表达式]GOTO n;

有条件转移语句, 如果条件成立, 则转到N1000程序段执行, 如果条件不成立, 则执行下一句程序。

1.2 循环指令

WHILE[条件式]DO m (m=1、2、3、…)

……

END m;

当条件满足时, 就循环执行WHILE与END之间的程序段m次, 当条件不满足时, 就执行END m的下一个程序段。

2 用宏程序编制五角星加工程序

已知:毛坯ф100×30, 加工如图1的五角星, 切深3 mm, 毛坯材料为硬铝。

工艺分析:五角星是关于中心对称, 所以可使用图形旋转指令分别加工五个角。采用顺铣, 刀具选用直径10 mm的三刃立铣刀。

编程分析:

1) 内循环:先加工每个角, 每个角从外层到里层, 从粗加工到精加工, 用刀具半径补偿完成, 每次的路线相同, 刀补指不同 (刀补号用变量#102表示)

2) 外循环:每个角完成后, 用图形旋转指令分别完成剩余角的加工, 旋转角度用变量#101表示。

注:考虑到刀具半径补偿使用时不能产生过切, 所以粗加工 (角的图形用延长线坐标表示) 和精加工 (角的图形用圆弧坐标表示) 的程序不同, 分别表示。

以上程序如果用常规的程序来编制, 就非常的长, 编程人员的工作量将大大增加, 所以我们通过宏程序的编制, 把看似复杂的程序简单化, 符合我们编制程序的原则:越简单越好, 越实用越好。

3 结语

宏程序的实质就是循环, 将很多结构相似的程序提炼出来变成循环, 让变量变化, 不同的循环将产生了不同的加工, 看似很长的程序, 被无形中分解成很多循环, 我们只需编制出其中的一个循环, 就可以代替冗长的程序, 这就是宏程序, 看似很难, 但真正掌握后将非常简单, 非常有用, 是每一个优秀编程人员的基本功。

参考文献

[1]郝永刚, 样轶峰, 李刚.宏程序与CAM在数控大赛微标加工中的实践[J].新技术新工艺, 2011 (7) .

[2]韩全立, 王宏颖.宏程序在数控编程中的应用技巧及编程实例[J].机床与液压, 2010 (6) .

宏程序表达式 篇2

什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。宏程序具有如下些特点:

1.使用了变量或表达式(计算能力),例如:(1)G01X[3+5];有表达式3+5(2)G00X4F[#1];有变量#1(3)G01Y[50*SIN[3]];有函数运算 2.使用了程序流程控制(决策能力),例如:(1)IF#3GE9;有选择执行命令 „„ ENDIF(2)WHILE#1LT#4*5;有条件循环命令 „„ ENDW 二.用宏程编程有什么好处? 1.宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;

2.宏程序可以完成图形一样,尺寸不同的系列零件加工; 3.宏程序可以完成工艺路径一样,位置不同的系列零件加工; 4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;

5.使用宏程序能极大地简化编程,精简程序。适合于复杂零件加工的编程。一.宏变量及宏常量 1.宏变量

先看一段简单的程序: G00X25.0 上面的程序在X轴作一个快速定位。其中数据25.0是固定的,引入变量后可以写成: #1=25.0;#1是一个变量 G00X[#1];#1就是一个变量

宏程序中,用“#”号后面紧跟1~4位数字表示一个变量,如#1,#50,#101,„„。变量有什么用呢?变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号„„,变量的使用,给程序的设计带来了极大的灵活性。使用变量前,变量必需带有正确的值。如 #1=25 G01X[#1];表示G01X25 #1=-10;运行过程中可以随时改变#1的值 G01X[#1];表示G01X-10 用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、„„等各种代码后的数字。如: #2=3 G[#2]X30;表示G03X30 例1使用了变量的宏子程序。%1000 #50=20;先给变量赋值 M98P1001;然后调用子程序 #50=350;重新赋值

M98P1001;再调用子程序 M30 %1001 G91G01X[#50];同样一段程序,#50的值不同,X移动的距离就不同 M99 2.局部变量

编号#0~#49的变量是局部变量。局部变量的作用范围是当前程序(在同一个程序号内)。如果在主程序或不同子程序里,出现了相同名称(编号)的变量,它们不会相互干扰,值也可以不同。例 %100 N10#3=30;主程序中#3为30 M98P101;进入子程序后#3不受影响 #4=#3;#3仍为30,所以#4=30 M30 %101 #4=#3;这里的#3不是主程序中的#3,所以#3=0(没定义),则:#4=0 #3=18;这里使#3的值为18,不会影响主程序中的#3 M99 3.全局变量

编号#50~#199的变量是全局变量(注:其中#100~#199也是刀补变量)。全局变量的作用范围是整个零件程序。不管是主程序还是子程序,只要名称(编号)相同就是同一个变量,带有相同的值,在某个地方修改它的值,所有其它地方都受影响。例 %100 N10#50=30;先使#50为30 M98P101;进入子程序

#4=#50;#50变为18,所以#4=18 M30 %101 #4=#50;#50的值在子程序里也有效,所以#4=30 #50=18;这里使#50=18,然后返回 M99 为什么要把变量分为局部变量和全局变量?如果只有全局变量,由变量名不能重复,就可能造成变量名不够用;全局变量在任何地方都可以改变它的值,这是它的优点,也是它的缺点。说是优点,是因为参数传递很方便;说是缺点,是因为当一个程序较复杂的时候,一不小心就可能在某个地用了相同的变量名或者改变了它的值,造成程序混乱。局部变量的使用,解决了同名变量冲突的问题,编写子程序时,不需要考虑其它地方是否用过某个变量名。什么时候用全局变量?什么时候用局部变量?在一般情况下,你应优先考虑选用局部变量。局部变量在不同的子程序里,可以重复使用,不会互相干扰。如果一个数据在主程序和子程序里都要用到,就要考虑用全局变量。用全局变量来保存数据,可以在不同子程序间传递、共享、以及反复利用。

华中数控宏程序编程实例(1)宏程序编抛物线车削 %0342 T0101M03S600 G00X20.5Z2 #11=12;B初值

巧用宏程序编制特殊零件通用程序 篇3

1 宏程序编程实例

1.1 编制一个如下图所示铣削凸球面类零

件的曲面通用程序, 假设凸球面的半径I、最终加工深度T

工艺分析:加工此类零件曲面, 一般采用分层铣削的方式进行;手工编制零件的宏程序时, 先用平底立铣刀由上而下 (或由下而上) 以等高方式逐层切削, 每层采用G02/G03圆弧插补铣削。为了保证加工余量的均衡, 在Z向分段, 以0.1mm~0.4mm为一个步距, 并把Z作为自变量, 圆弧半径作为Z的函数。为了适应不同的凸半球、不同的起始点和不同的步距, 我们可以编制一个只用变量不用具体数据的宏程序, 然后在主程序中呼出该宏程序的用户宏指令段内为上述变量赋值。这样, 对于不同的凸半球、不同的起始点和不同的步距, 不必更改程序, 而只要修改主程序中用户宏指令段内的赋值就可以了。

加工程序:该程序适用于H N C—2 1/22M华中世纪星数控系统。

局部变量的含义:

#23=X0;X0为凸半球球心的X绝对坐标值。

#24=0Y;0Y为凸半球球心的Y绝对坐标值。

#25=T;T为凸半球最终加工深度。

#7=H;H为凸半球球顶Z绝对坐标值。

#8=I;I为凸半球的圆弧半径。

#9=J;J为立铣刀半径。

#16=Q;Q为Z向下刀每次的深度。

#5=F;F为切削速度。

#2=C;C为切入圆弧半径。

%0001;宏程序号 (用平底立铣刀粗、精加工凸半球) 。

N001#36=#16m

N002 G90 G00 X[#23+#8+#9+#2]Y[#24];指令刀具移动到X轴上。

N003 Z[#7];刀具迅速下降到工件上方安全距离。

N004 WHILE#7GE#25。

N005#7=#7-#16;任意层的Z向高度坐标计算。

N006#30=SQRT[#8*#8-[#8-#36]*[#8-#36]];刀具中心轨迹在任意层的圆弧半径计算。

N007 G90 G01 Z[#7]F[3*#45];刀具直接下降到当前层高。

[#24-#2];直线插补到切入圆起点。

N009 G91 G02 X[-#2]Y[#2]R[#2]F[#5];以四分之一圆弧方式切线切入。

N010 G03 I-[#30+#9];在当前层高上进行整圆插补。

N011 G02 X[#2]Y[#2]R[#2];以四分之一圆弧方式切线切出。

N012 G01 Y[-#2];直线插补到X轴上。

N013#36=#36+#16。

N014 ENDW;返回循环体。

N015 G90 G00 Z100;快速抬刀。

N016 M99;程序结束。

1.2 机械零件制造中经常需要加工相邻面倒R圆滑过渡的零件

倒圆角的宏程序编程:HNC-21/22M华中世纪星数控系统对相邻面倒R的宏程序编制局部变量含义。

#23=X0;X0为零件中心的工件横向绝对坐标值;

#24=0Y;0Y为零件中心的工件纵向绝对坐标值;

#17=R;R为刀具起始切削安全高度;

#8=I;I为基准孔的直径尺寸值;

#9=J;J为倒圆半径的尺寸值;

#3=D;D为刀具半径;

#1=B;B为角步距初始角度值;

#4=E;E为角步距递增均值;

#5=F;F为切削进给速度;

%183。

N001#32=#9;倒圆半径的尺寸值赋给中间变量#3 2。

N002 G90 G00 X[#23]Y[#24];指令刀具移到工件基准孔上方。

N003 Z[#17];刀具快速下降到工件基准孔上方安全距离。

N004 WHILE#1LE90;如果#1大于90, 则程序跳转至N014程序段。

N005#1=#1+#4;角步距叠加一个均值。

N006#30=[#8/2+#9]-[#9+#3]*COS[#1*PI/180]。

N007 X= (基准孔半径+倒圆半径) - (倒圆半径+刀具半径) ×COS (β) 。

N008#31=[#9+#3]*SIN[#1*PI/180]。

N009 Z= (倒圆半径+刀具半径) ×SIN (β) 。

N010#32=#32-#31。

N011 G01 Z[-#32]F[3*#5];刀具以工进速度移动到工件表面下一个倒圆半径值。

N012 X[#23+#30]Y0 F[#5];直线插补到基准孔侧。

N013 G03 I[-#30]J0;整圆插补。

N014 ENDW;返回循环体。

N015 G00 X[#23]Y[#24];刀具快速回到基准孔中心。

N016 Z[#17+50];刀具快速抬起离开工作。

N017 M99;宏程序结束并返回主程序。

2 宏程序编程的技巧

宏程序与普通程序相比较, 一般程序的程序字为常量, 一个程序只能描述一个几何形状, 所以缺乏灵活性与适用性。而用户宏程序本体中可以使用变量进行编程, 还可以用宏指令对这些变量进行赋值, 运算等处理, 从而可以使用宏程序执行一些有规律变化的动作。

在工艺分析时, 首先要明确被加工零件的材料、结构特点、尺寸参数、主要加工表面及加工精度和表面质量要求, 根据这些信息确定加工方法和加工方式, 然后拟定零件加工的工艺步骤即工艺路线, 最后确定走刀路线及对刀点、起刀点的位置并设计切入、切出方式。

参考文献

[1]冯志刚.数控宏程序编程方法、技巧与实例[M].机械工业出版社.

用户宏程序加工实例 篇4

下面以实际椭圆加工为实例, 见图1。椭圆的标准数学方程为:

加工方程;

Z自变量→因变量X

程序;

o0001;程序名

G0G40G97G99M03S800T0101F0.1;定义程序参数

Z2;刀具Z向循环起点

X30;刀具X向循环起点

X0;轮廓X向起点

G1Z0;轮廓Z向起点

#1=24;椭圆长半轴赋值

#2=12;椭圆段半轴赋值

#3=0;被加工椭圆起点Z向坐标

#4=24;被加工椭圆终点Z向坐标

N5 IF[#4 LT#3]G0T025;判断是否走到终点

#5=2*[#2*SQRT[1-#4*4/#1/#1]];计算图纸中X向坐标

G01 X[#5]Z[#4-24.];进刀

#4=#4-0.1;变量依次递减

GOTO5;跳出循环语句

N25 X30;循环判断

G00 X150Z150;退刀

M30;程序结束

1注意

(1) 确定所需加工轮廓的公式, 并将其转化为与机床相同的坐标轴。

(2) 根据实际情况选择一个合适的轴作为自变量 (即尽量使自变量和因变量的值是一一对应关系) 。

(3) 根据图纸确定原始曲线坐标系, 在原始曲线坐标系下确定曲线的开始点和终止点。

(4) 确定在编程过程中所使用的变量个数及变量号。

(5) 将各种信息填入到下列通用格式中。

(6) 在根据加工情况增加一些辅助功能, 例如;冷却液的开关, 语句的循环、粗加工等。

(7) 最后检查和调试宏程序, 注意其格式, 赋值和格式。

2结论

用户宏功能是用户提高数控机床性能的一种特珠功能, 在相类似工件的加工中巧用宏程序将起到事半功倍的效果。对于数控编程的一般使用者来说, 学习宏程序也非常有助于提高数控加工工艺水平。

摘要:用户宏功能的最大特点是在用户宏功能主体中能够使用变量;变量之间还能够进行运算;用户宏功能指令可以把实际值设定为变量, 使用户宏功能更具通用性, 使程序更加简单明了。

关键词:宏程序,椭圆,编程

参考文献

[1]孙德茂.数控机床车削加工直接编程技术[M].北京:机械工业出版社, 2005.

[2]尹玉珍.数控车削编程与考级 (FANU Coi_TB系统) [M].北京:化学工业出版社, 2006.

[3]王苗.C语言程序设计[M].北京:中国铁道出版社, 2005.

[4]薛金星, 主编.高中数学基础知识手册[M].北京:北京教育出版社, 2003.

宏程序表达式 篇5

现在大家一般用UG、Mastcam、Pro/E等CAD/CAM软件在计算机上制作三维立体模型,再选择刀具、机床、走到路径等,最后生成加工程序。在加工时再将程序传输进机床数控系统中,才能进行加工。这样的过程是比较繁琐的,特别对于单件小批量生产的零件来说,每调整一次加工参数(修改刀具、层降、步距、计算精度)都必须重新进行“选择刀具、机床、走到路径等,最后生成加工程序”这整个过程,而且加工程序一般都比较大,要占用较多机床数控系统的有限的存储空间。若采用数控宏程序来编写数控加工程序,只需要对各项加工参数所对应的自变量赋值作出个别调整,就能重新进行加工。而且数控宏程序是由机床数控系统直接进行插补运算,程序简短,机床运行简洁高效,程序可读性强。正好我们接到一批名为振动料斗的数控加工零件,经分析很适合采用数控宏程序来编写数控加工程序,于是决定用数控宏程序来编写数控加工程序进行加工。

1 加工方法及坐标计算分析

振动料斗零件是一个较典型的盘类零件,其中部有沿图表所示渐升的阿基米德螺旋线形成的V形截面的槽,是振动筛选送料机上的一个关键零件,参见图1零件图。

通过对振动料斗的外形和主要加工部位的分析,参阅图1振动料斗零件图,用具有X、Y、Z三轴联动功能的立式数控铣床或立式加工中心来加工振动料斗中部的螺旋V形截面槽都可行[1]。根据现有条件决定采用台湾友嘉FMV—1000A立式加工中心来加工[2]。将零件φ195外圆轴线与机床Z轴的轴线重合装夹零件即可,φ195外圆下端面与XY平面平行,以图1中距φ195外圆下端面8.64mm的平面为XY平面,此处φ195圆心为O点,建立的加工坐标系如图1所示。这样便确定了可实现该零件正确加工的坐标设置和零件装夹方式。

由振动料斗零件图(图1)可以知道振动料斗中部的V形槽在XY平面上是两段阿基米德螺线形成的,并告知了其极坐标方程式:从A点到B点其极坐标方程为ρ=44.0+0.591*(π*(θ+360)/180),从B点到G点其极坐标方程为ρ=47.716+3.312*(π*θ/180)。将极坐标方程式转化为直角坐标方程式就能计算出X、Y值,V形槽Z方向的变化却是按图中的角度θ与升程Z坐标图变化的(如图2所示),其中A点到B点的Z值变化与角度θ的关系是线性变化的。但是B点到G点的Z值变化是由一随角度θ的变化而变化的线性方程式与B点到C点、C点到D点、D点到E点、E点到F点、F点到G点等的Z值变化随相应角度θ的变化而变化的各线性方程式复合而成的[4]。

其高度方向升程Z变化与角度θ关系如图2所示。

以图1中距φ195外圆下端面8.64mm的平面为XY平面,此处φ195圆心为原点(X0,Y0),建立的加工坐标系如图1所示。磨制角度与V形槽角度一致的成形铣刀直径φ40mm。加工时,成形铣刀从A点开始加工,设该处极坐标角度为变量#2,由前分析从A点到B点,即#2为-360°至0°,相应的极坐标极径为#3,由告知的极坐标方程可知#3=44.0+0.591*[3.142*[#2+360]/180],则该处的X,Y坐标则为:#4=#3*COS[#2/180*3.142],#5=#3*SIN[#2/180*3.142],而Z坐标则为#6=3.346+3.346*[#2/360]。从B点到C点,即#2为0°至90°,相应的极坐标极径为变量#3,由告知的极坐标方程可知#3=47.716+3.312*[3.142*#2/180],则该处的X,Y坐标则为:#4=#3*COS[#2/180*3.142],#5=#3*SIN[#2/180*3.142],而Z坐标则为两个方程式合成#6=#7+#8,#7=2.982*[3.142*#2/180],#8=-3.346+#2*[3.346-1.204]/90。从C点到D点,即#2为90°至270°,P,X,Y的计算方程式不变,因为从C点到G点的极坐标方程相同,而Z坐标则为两个方程式合成#6=#7+#8,#7=2.982*[3.142*#2/180],#8=-1.204。从D点到E点,即#2为270°至360°,P,X,Y的计算方程式不变,Z坐标则为两个方程式合成#6=#7+#8,#7=2.982*[3.142*#2/180],#8=-1.204+[1.204-0.803]*[#2-270]/90。从E点到F点,#2为360°至540°,#6=#7+#8,#7=2.982*[3.142*#2/180],#8=-0.803。从F点到G点,#2为540°至720°,#6=#7+#8,#7=2.982*[3.142*#2/180],#8=-0.803+[0.803-0.401]*[#2-540]/180。

由此可知,只需计算出V形槽上任意点的X,Y,Z坐标值,就能将该零件加工出来。

2 数控宏程序的分析和编写

综上分析可得出宏程序流程如图3所示[3],该流程图仅为其中第一段,其余段由于和该段相似可以省略。

于是得出下面应用宏程序编写的数控加工程序[2,3],该程序仅为其中A—B—C段,其余段与B—C段相似,故省略。

这个数控宏程序共有30句程序,如果采用CAD/CAM软件编程至少有450句程序,由此可见数控宏程序的简炼、高效。

3 结束语

运用宏程序所编写的数控加工程序,加工出了合格的振动料斗,经用户使用反映效果很好。这位用户又将形状相同,尺寸大小不同的几种振动料斗交给我们加工。我们只是在原有程序基础上,修改了尺寸大小相关的几个参数(变量),就完成了零件的数控编程,很快加工出了合格的产品。

经过这几次编程加工,我们发现运用宏程序来编制加工规则曲线、曲面(比如球面、椭圆、双曲线、螺旋线等)的数控加工程序相对CAD/CAM软件是有优势的。宏程序编程对于形状相同,尺寸大小不同的零件可采用同一程序,只需修改相关参数(变量)即可。对于同一零件的粗、精加工,也不用像CAD/CAM软件编程那样作两个程序,只需修改相应步距参数就能分别完成粗、精加工。另外宏程序简明直观,运行高效。当然,对于主要由不规则复杂曲面构成的模具成形零件采用宏程序编程是很困难的,采用CAD/CAM软件编程就很有优势。

总之,我们要合理利用宏程序在编制规则曲线、曲面上的优势,使我们在编制规则曲线、曲面类里零件时编程更迅速,加工更高效,提高生产效率。

参考文献

[1]东芝机械加工中心研究会著.加工中心实用技术[M].机械工业出版社,1990.

[2]台湾友嘉公司.FMV—1000A编程证明书.

[3]李锋编著.数控宏程序实例教程[M].化学工业出版社,2010.

上一篇:新闻选择图式下一篇:质量节点控制