宏程序的编制在数控加工中的应用

(整期优先)网络出版时间:2009-01-11
/ 3

宏程序的编制在数控加工中的应用

张雨

【关键词】宏程序数控加工应用变量传值调用

1.数控加工程序编制的方法和现状。要说数控系统的种类有多少或数控机床的结构形式共有多少个?恐怕即使从事数控加工多年的人士也很难说出一个准确的数字,但要说起数控加工程序编制的方法来,则几乎连一个初学者也能马上告诉你:分手工编程和计算机自动编程两类。由于受数控系统指令集规模的限制,致使可插补的线形比较单一(通常只有直线或圆弧),所以手工编程常用于形状简单、精度要求较高、批量较大的产品的加工和制造。而形状复杂、批量较小、精度要求一般的零件则多采用计算机自动编程的方法。

以一汽集团为例,其从事零部件生产的企业(比如:车桥公司、轿车公司、一汽大众等等)基本都是采用手工编程的形式,而模具类零件则都采用计算机自动编程。久而久之就使人们产生了一种误解:“认为具有复杂轮廓的零件只能通过自动编程进行加工,而手工程序只能完成简单轮廓的加工,将来自动编程将是手工程序的取代者”。

其实,目前数控系统广泛提供的宏程序(或称参数子程序)功能完全可以完成复杂轮廓(可以以数学方程表达)的加工,同时它还具有许多自动编程无法比拟的特点。

2.宏程序的特点和作用。宏程序或称参数子程序,由于其引入了变量、流程控制和数学(代数和逻辑)运算功能,所以就具有以下优点:

①由于可以使用变量,使程序具有更加柔性化和智能化。

②流程控制指令的使用,可以使加工程序具有分析功能并更容易实现执行次数的控制。

③代数和逻辑运算的应用,则为完成各类数学曲线和曲面的加工提供了基础和保障。

由于上述特点的存在,可以根据数控加工的需要来编制以下几类宏程序:

①用于加工数学曲线(或曲面)所构成的零件轮廓(如:圆锥曲线宏程序、渐开线宏程序、球面加工宏程序、锥台加工宏程序等等)。

②用于完成不同工艺特征的粗、精加工(如:圆型腔加工宏程序、方型腔加工宏程序、倒角加工宏程序等等)。

③与辅助装置配合完成特定工作任务(如:用测量探头的检测宏程序、指挥换刀机构的换刀宏程序、刀具破损检测宏程序、专用夹具控制宏程序等等)。

④不同种类设备的专用加工宏程序(如:滚齿加工专用宏程序、数控磨床专用宏程序)。

⑤其他(如:与外部通信的宏程序、实现多品种混流生产的分支宏程序等等)。

3.宏程序在典型零件加工中的应用。下面以笔者编程和加工过的一些零件为例,介绍一下宏程序的具体应用:

3.1渐开线凸轮的铣削:如图1—1所示,被加工的(刹车用)凸轮为渐开线轮廓,而且有0.03mm的轮廓度要求。从前采用的是CAM软件编制轮廓加工程序,但生成G代码以后,由于不便使用半径补偿功能,所以刀具稍有磨损就必须更换,这样大大的增加了制造成本。

经过对被加工零件轮廓的分析(零件图见附件一),决定以宏程序完成上述零件的加工,首先根据基圆半径得出渐开线的参数方程:

x=20×cos(afa)+pi×20×afa/180×sin(afa)

y=20×sin(afa)-pi×20×afa/180×cos(afa)

39.1<afa<166.5

Pi=3.14159

其中afa为压力角,也是参数方程的自变量,经过分析压力角在39.1度附近时,每增加3度轮廓逼近误差小于0.02mm,因此选择压力角每次递增2度以提高加工速度。

然后开始编制宏程序,先进行变量分配:

#1为压力角afa

#2为常数pi=3.14159

#3为基圆半径

#4节点坐标x

#5节点坐标y

#6为压力角afa终了值

编写宏程序代码:

O0022程序名

#2=3.14159常数pi赋值

WHILE[#1LT#6]DO1循环体头

#4=#3*COS[#1]+#2*#3*#1/180*SIN[#1]计算节点X

#5=#3*SIN[#1]-#2*#3*#1/180*COS[#1]计算节点Y

G01X#4Y#5F200按节点进给

#1=#1+2自变量递增

END1

#4=#3*COS[#6]+#2*#3*#1/180*SIN[#6]计算节点X

#5=#3*SIN[#6]-#2*#3*#1/180*COS[#6]计算节点Y

G01X#4Y#5F200最后一点加工

M99程序尾

调用格式:G65P0022A39.1C20K166.5传递变量#1=39.1、#3=20、#6=166.5

对应主程序为

O0012

G90G49G80G21G40G69

G54G00X80.Y15.

G43Z0.H01

M3S600

Z-48.

G01G42X40.D01引入半径补偿

G65P0022A39.1C20K166.5宏程序调用

G03X-71.33Y-2.02R15.加工过度圆弧

G02X-38.42Y-17.34R48.加工过度圆弧

X-31.Y-25.2R15.加工过度圆弧

G01G40X-45.取消半径补偿

G68X0Y0R180.图形旋转180度

G01G42X40.D01引入半径补偿

G65P0022A39.1C20K166.5宏程序调用

G03X-71.33Y-2.02R15.加工过度圆弧

G02X-38.42Y-17.34R48.加工过度圆弧

X-31.Y-25.2R15.加工过度圆弧

G01G40X-45.取消半径补偿

G69取消图形旋转

G00G49Z200.

X100.Y100.

M5

M30

不难看出使用了传值调用的办法后,该宏程序示例可以被运用至其它包含渐开线轮廓的零件加工中(只需根据渐开线的参数变更变量#1、#3、#6即可)。

3.2支撑件上的减重坑加工:如图2-1所示,为一支撑件在该制件上须加工多个倒棱锥形减重坑(侧壁须有2~5度的斜度),而且规格不同,若以子程序完成加工须针对每一个规格编制一个子程序,工作量和难度都较大,而以自动编程完成零件的加工又由于基础尺寸太大,因而程序量很大。

分析后准备编制对应的宏程序完成零件的粗、精加工,通过改变调用时的参数值来实现不同规格减重坑的加工,由于各个减重坑的基本截面形状都是矩形,而且侧壁有斜度,因此可以将宏程序的工作过程概括如下:刀具在每一个层深上完成一个矩形型腔的加工如图2-2所示,而每发生一次层深的变化被加工的型腔尺寸都按必须规律减小。

A、实现每层轮廓加工,是依靠不断修改刀具补偿值来实现的,具体如下:

*变量分配:

#1矩形宽度

#2矩形高度

#3刀具直径

#33刀补值

*代码:

O0111

#33=[#1-#3]/2计算刀具补偿值的初值

IF[#1LT#2]THEN#33=[#2-#3]/2计算刀具补偿值的初值(根据长边指定)

WHILE[#33GT[#3/2]]DO1循环指令(刀补值等于刀具半径时结束)

#33=#33–0.8*#3变化刀补值(行距为0.8倍的刀具直径)

IF[#33LT#3/2]THEN#33=#3/2若计算后的刀补值小于刀具半径,则刀补值等于刀具半径

G10L12P01R#33将刀补值写入系统(写入一号补偿)

G41G01Y[#2/2]D01引入刀补(一号补偿)

X[-#1/2]轮廓铣削

Y[-#2/2]轮廓铣削

X[#1/2]轮廓铣削

Y[#2/2]轮廓铣削

X0轮廓铣削

G40Y0撤消补偿

END1循环结束

G52X0Y0

M99程序结束

B、在不同截面变量多次调用上述程序,实现分层加工(如图2-3所示):

*变量分配:

#1矩形宽度

#2矩形高度

#3刀具直径

#24轮廓原点X坐标

#25轮廓原点Y坐标

#7每层切深

#8终了Z高度

#26起始Z高度

#11侧壁倾斜角度

*代码:

O0112

G52X#24Y#25平移坐标系

G90G00X0Y0定位至行腔中心

Z#26+2定位至行腔之上2mm处

G01Z#26F100工进至行腔上表面

WHILE[#26GT#8]DO1进入循环,以深度为截止条件

#26=#26–ABS[#7]改变深度数值

IF[#26LT#8]THEN#26=#8判断到达终点否

#1=#1-2*#7*TAN[#11]计算本层的矩形宽度

#2=#2-2*#7*TAN[#11]计算本层的矩形高度

G01Z#26F60下切至本层深度

G65P0011A#1B#2C#3以计算出的矩形参数调用每层加工程序

END1完成循环

G00Z#26+50提刀至安全高度

G52X0Y0取消平移坐标系

M99宏程序结束

主程序调用上述宏程序,可以完成在各个位置的型腔加工,例如:

O0010

G54G90G80G40G49G69设定程序执行环境

T01M06换刀

G00G43Z50H01引入长度补偿

M03S1200启动主轴

G65P0012A80B60C12D0.8E-41.3H3.0X165.Y-50.Z0.调宏程序加工型腔1

G00G90Z100退刀Z向

Y300.退刀Y向

M05主轴停

M01程序停(检查尺寸)

M03启动主轴

G65P0012A80B60C12D0.8E-41.3H3.0X-165.Y-50.Z0.调宏程序加工型腔2

………

……….

M05

M30

通过上述两个零件的加工,可以看到对于集合结构清晰,且能以数学方式描述的零件来说,宏程序与自动编程相比较有很多的优势,比如:程序短小便于修改、通用性强更容易实现代码重用、因可以引入刀补使控制加工精度更容易、可以充分使用NC系统的特殊功能……。所以有效的利用宏程序可以提高工作效率,确保产品质量和简化工作流程。

4.“通用宏程序集”的编写和意义。目前宏程序加工多用于单件或小批量生产的环境中,操作者会根据加工的需要自行编制满足需要的宏程序,当零件完成后,它就会被从NC系统中删除,而其他人则无法共享这一工作成果。再者由于能力和知识水平(特别是数学基础)所限,从业者通常只能在参阅资料的基础上简单的套用公式,而缺乏对于零件几何结构的正确分析,因此所编制的宏程序使用范围较窄,缺乏推广的意义。

通过较长时间的实践,笔者认为实现具有较强通用性的宏程序是可行的,也是具有现实意义的,不难看出:在上述的两个实例中所完成的宏程序已经具有较好的通用性了。但要编写通用性更好、更稳定易用的“通用宏程序集”,还要注意以下问题:

①合理的使用各种变量。

②严谨的逻辑结构,正确的算法。

③简明、易用的调用接口。

④必要的错误拦截和系统环境的保护。

下面以一个通用(FANUC系统)的椭圆程序为例来说明上述观点:

变量选用:

#1椭圆长半轴

#2椭圆短半轴

#3轮廓度要求

#4参数角度递增量

#8参数角度终了值

#9参数角度起始值

#20椭圆长轴与X轴角度

#24椭圆心X

#25椭圆心Y

#29中间变量

#30角度自变量

#31中间变量

#32椭圆节点X

#33椭圆节点Y

可以看到#3和#4两个变量的作用相同——都是获得逼近步长,用户只需根据自己的需求来选择其中一个即可。这样使程序更具有易用性。

同时在变量的选择上也尽量使之调用的名字与其实际意义相近,比如:

A#1

B#2

I#3

E#8

F#9

X#24

Y#25

代码:

O0077

IF[[#3NE#0]AND[#4NE#0]]GOTO3000

G90G52X0Y0

G68X0Y0R#20

G41G01X#1+20Y0D01

#29=[#1-#3]*[#1-#3]/[#1*#1]

#31=SQRT[1-#29]/#2

IF[#4EQ#0]THEN#4=ATAN[#31]

#30=#9

WHILE[#30LT#8]DO1

#30=#30+#4

IF[#30GT#8]THEN#30=#8

#32=#1*SIN[#30]

#33=#2*COS[#30]

G01X#32Y#33F200

END1

G40X#1+20Y0

G69

G52X0Y0

GOTO4000

N3000#3000=“*******”

N4000M99

格式说明:

格式一:G65P0077A30.B15.C0.05E180.F30.T5.X0Y50.

当希望按轮廓度要求加工时给出C0.05(其中0.05为轮廓度要求),程序会自动选择步长。

格式二:G65P0077A30.B15.I3.E180.F30.T5.X0Y50.

希望按给定步长进行加工时给出I3.(其中递增角度为3度)。

当用户将变量I,J同时赋值时将产生错误报警信息“******”,否则程序将按要求完成轮廓的加工。

通过上例可以发现只要认真分析加工需要,就可以编写出有实用意义的通用宏程序,将这些程序汇集起来就可以实现加工经验的交流和工作成果的共享,并能不断提高操作工人的技术水平,为我国尽快地从制造大国向制造强国转变作出应有的贡献。

附件一渐开线凸轮轴零件图

渐开线参数:基圆半径20mm,压力角范围39.1—166.5

A、可按压力角39.1度代入方程。

B、可按压力角166.5度代入方程。

C、-71.33,-2.02

D、-38.42,-17.34

E、-31.,-25.2

参考文献

1陈海舟.数控铣削加工宏程序及应用实例.机械工业出版社,2006.05

2FANUCSeries0i—MODELC操作手册.FANUCltd

3菜复之.实用数控加工技术.兵器工业出版社,1995.04