APP下载

宏程序编程的优点及在数控车床加工中的应用

2012-11-11张卫东

长春大学学报 2012年4期
关键词:程序段宏程序赋值

张卫东

(吉林工程技术师范学院 机械工程学院,长春 130052)

宏程序编程的优点及在数控车床加工中的应用

张卫东

(吉林工程技术师范学院 机械工程学院,长春 130052)

通过对FANUC-oi数控系统B类用户宏程序编程特点的介绍,与其他编程方式相比的优点,并通过具体的编程实例,来说明宏程序在数控车床生产加工实践中仍然具有其他编程方式所不具备的优势,在数控加工领域,尤其是数控车加工领域,依然具有广泛的应用空间。

宏程序;优点;数控车床;应用

1 宏程序的定义及编程特征

1.1 定义

一组以子程序的形式存储且带有变量的程序叫做宏程序,或叫用户宏程序。调用宏程序的指令叫做宏程序调用指令简称宏指令。

宏程序是数控系统所具有的特殊编程功能,其实质是把一组实现某种功能的指令,以子程序的形式预先存储在系统存储器中,通过调用指令执行这一功能。在主程序中,编入相应的调用指令就能实现这些功能。

1.2 特征

早期的数控程序只有主程序,后来又可以使用子程序和多层嵌套。运行这种程序,系统只能做插补运算(如圆弧、直线),无法进行其他运算(如椭圆等)。而宏程序由于将变量引入加工程序,且允许使用逻辑判断语句。所以,对于不同零件、不同部分具有相似形状的零件,通过变量编程,增加了程序的通用性和灵活性。

2 宏程序与其他编程方式相比的优点

2.1 与普通程序相比较

普通程序中只能使用常量,常量之间不能运算,程序只能顺序执行,不能跳转,一个程序只能描述一个几何形状,缺乏适用性和灵活性;宏程序可以使用变量,并给变量赋值,变量之间可以运算,程序运行可以跳转,能执行一些有规律变化的动作(如椭圆、抛物线等)。

2.2 与自动编程软件生成的程序相比较

(1)到目前为止,在数控加工领域,各种CAD/CAM软件逐渐普及,有些编程人员不论程序大小、加工难易,都习惯并乐于使用CAD/CAM软件来编程加工。而CAD/CAM软件生成的程序通常都很大,容易突破系统内部程序存储空间的限制,因此,绝大部分程序不得不通过RS-232串口通信来实现DNC在线加工的方式进行。如FANUC-oi、三菱M60、西门子802C等主流数控系统,系统所支持的最大传输波特率为19200bit/s,即便如此当计算精度高、进给速度大时,程序传输速率往往无法跟上机床的节拍,在加工中,可以看到机床的进给运动有明显的断续、迟滞。实践证明,波特率越高,传输越不稳定,导致DNC加工方式下的加工效率大打折扣。而宏程序的程序段较少,一个合理、优化的宏程序一般不会超过60行,字节数不超过2KB。FANUC-oi系统标准配置的内部系统存储空间一般为128KB或256KB,完全可以容纳复杂的宏程序。

(2)在零件的批量生产中,其最基本也是最重要的原则是:在保证质量的同时,以尽可能少的时间,加工尽可能多的产品,来降低生产成本。另外零件的尺寸精度与形状位置精度等方面必须保证高度的一致性,这就要求操作者能够非常方便的调整程序中的各项加工参数(如刀具尺寸、补偿值、进给速度等等),如果其中任何一项参数发生变化,自动编程软件就要根据变化后的参数重新计算刀具轨迹,在经过后置处理生成程序,这个过程十分繁琐,且非常耗时。而使用宏程序,就能体现出其“一次编程,受益终生”的优点。即操作者不需要修改程序,只需对各加工参数所对应的自变量赋值做个别调整,就能迅速地将程序调整到最优化的状态,以提高生产效率,降低生产成本。

(3)在数控车床所加工的盘类、轴类零件的形状主要由凹槽、圆孔、回转面等组成,其几何因素主要由点、直线、圆弧以及椭圆、抛物线等构成,这些都是基于三角函数、解析几何的应用,均可用三角函数表达式和参数方程加以表述,而这正是宏程序的强项,可发挥其强大的作用。

此外,在加工一些有特殊应用的零件时,如变距螺纹、锥度螺纹的加工以及钻深可变式深孔钻加工等,自动编程软件不会轻易地解决,但在这些方面宏程序却可发挥其优势。

3 FANUC-oi数控车床系统的用户宏程序简介

FANUC系统提供两种用户宏程序,即A类和B类宏程序。A类宏程序是FANUC系统的标准配置,尤其是早期的型号如FANUC-oTD等,但由于需使用“G65Hm”格式的宏指令来表述各种数学运算和逻辑关系,可读性差,极不直观,所以很少使用。B类宏程序虽非其标准配置,但绝大多数的FANUC系统都支持B类宏程序如FANUC-oi系列型号,由于可通过其系统操作面板上的“+”、“-”、“*”、“/”、“=”、“[]”等符号进行赋值和数学运算,极为方便、直观,所以在实际生产加工中得到广泛的应用。

本文将主要介绍B类宏程序。

3.1 变量

普通的加工程序直接用数字指定G代码和移动量,如G01 X100.0。使用用户宏程序时,除了可直接指定数值外,还可以指定变量号,可通过程序或MDI操作面板来改变该数值,如#1=#2+100;

G01 X#1 F300;

3.1.1 变量的表示方法

当指定一个变量时,在“#”号的后面指定变量号,如#5、#109、#1005等。此外,还可以用表达式进行表示,但其表达式必须全部写入中括号“[]”中,如#[#100]、#[#1001 -1]、#[#6/2]等

3.1.2 变量的种类

根据变量号,变量分为四种:局部变量、公共变量、系统变量、空变量。各种变量的用途、特性等各不相同。其功能、种类等见表1。

表1 变量功能表

3.1.3 变量的赋值

赋值是将一个数值赋予一个变量。如#1=10,它表示#1的值是10。#1是变量,“#”号是变量符号,10是赋予变量#1的值,“=”是赋值符号。

在给变量赋值时,还应注意以下几点:

(1)赋值符号“=”两边的内容不可随意互换。

(2)一个赋值语句只能给一个变量赋值。

(3)可以多次给一个值赋值,但最后赋的值生效。

(4)辅助功能代码(M、S、T等)的变量有最大值限制。

3.2 运算指令

宏程序具有赋值、逻辑运算、函数运算等功能,其运算类似于数学运算,且运算顺序与数学运算相同,用各种数学符号表示,变量之间进行的运算表述的形式为:#i=(表达式)。需注意的是:

(1)函数 SIN、COS 等的角度单位是°'和″时必须换算成°。如 60°30'应表示为 60.5°。

(2)赋值语句有运算功能,其运算顺序与数学运算顺序相同,依次为:函数运算、乘除运算、加减运算。

FANUC-oi系统B类宏程序常用的运算指令见表2。

表2 FANVC-oi系统B类宏程序常用运算指令

3.3 控制指令

控制指令可以控制用户宏程序的程序流程,即起到控制程序流向的作用。FANUC-oi系统宏程序的控制指令有以下几种:

3.3.1 无条件转移语句

格式为:GOTO n n为程序段号。例如GOTO 200;含义是,当执行该程序段时,将无条件转移到N200程序段执行。

3.3.2 有条件转移语句

格式一为:IF[条件表达式]GOTO n.。例如 IF[#1NE#100]GOTO 200;含义是如果#1不等于#100,则转移到N200程序段执行。

格式二为:IF[条件表达式]THEN。例如IF[#1EQ#2]THEN#3=10;含义是如果#1与#2的值相同,10赋值给#3。

3.3.3 循环语句

格式为:WHILE[条件表达式]DO m(m=1,2,3)

……….

END m;含义是,当指定的条件满足时,就循环执行从DO至END之间的程序段,反之,执行END之后的程序段。

FANUC-oi系统宏程序条件表达式的含义、条件、注释及示例见表3。

表3 FANVC-oi系统宏程序条件表达式的含义、条件、注释

使用控制指令时应注意

(1)条件表达式必须插在两个变量或变量与常量中间,且用“[]”封闭,表达式可以替代变量,不能使用不等号。

(2)DO循环可以三重嵌套,条件转移可以跳出循环,但不能进入循环区内。

(3)WHILE语句中的DO m与END m必须成对使用,且DO m一定要在END m指令之前。

(4)当指定DO而没有指定WHILE语句时,从DO到END之间的程序段将会无限循环。

WHILE语句与IF语句从实现的功能来看,具有很高程度的相互替代性,从使用的限制来看,IF语句受到的限制更小,因此使用更灵活。

3.4 宏程序的格式及调用指令

3.4.1 宏程序的格式

宏程序的的编写格式与子程序相同,格式为:

在上述内容中,可以使用普通的编程指令,也可以使用变量、逻辑指令、运算指令等。变量值在宏程序调用指令中赋值。

3.4.2 宏程序调用指令

宏程序调用一般用以下方法:非模态调用指令G65,模态调用指令G66、G67,G代码调用、M代码调用、T代码调用等。

(1)非模态调用指令G65

格式:G65 P L;引数赋值

说明:G65宏程序调用指令

P宏程序的程序号

L重复次数(1~9999),省略该值时,系统默认1次

G65可调用地址P指定的宏程序,并将赋值的数据传送至用户宏程序中,因该指令是非模态指令。所以,只在G65程序段调用宏程序。

引数赋值由地址符及数值组成,给变量赋予实际数值。

引数赋值共有两种类型,即类型Ⅰ和类型Ⅱ,分别见表4、表5。

表4 引数赋值类型Ⅰ

表5 引数赋值类型Ⅱ

在使用引数赋值时,应注意:

①任何变量前必须指定调用指令G65。

②地址G、L、N、O和P不能在自变量中使用。

③不需指定的地址可省略,则该地址对应的变量为空。

④地址可以不按字母顺序指定,但需符合字母地址的格式,而I、J、K必须按字母顺序指定。

⑤类型Ⅱ用于传递如三维坐标值,使用A、B、C各一次,I、J、K各十次,IJK的下标(1~10)用于确定自变量的指定顺序,实际编程中不写。

⑥类型Ⅰ和类型Ⅱ混合使用时,由系统内部自动识别,后指定的变量类型有效。

(2)模态调用指令G66

说明:G66 宏程序调用指令

P宏程序的程序号

L重复次数(1~9999),省略该值时,系统默认1次

G67 取消指令

当使用模态调用指令G66后,每执行一段轴移动指令的程序段,宏程序就被调用一次。指定G67取消指令,其后面的程序段就不再执行模态宏程序调用。使用G66指令应注意:

①G66必须在变量前指定。

②在G66程序段中,以及无移动指令的程序段中,不能调用宏程序。

③调用可以嵌套四级,包括非模态指令G65和模态指令G66,但不包括子程序调用指令M98。

④每次执行G66指令时,不再设定局部变量。

4 编程实例

在数控车削编程加工中,尤其是在非圆曲线类(椭圆、双曲线、抛物线)等零件的编程加工中,宏程序可体现出简洁、方便、通用性好等优点。

例1:在配备FANUC-oi操作系统的数控车床上加工如图1所示抛物线零件,设抛物线开口距离为V,抛物线的一般方程为X2=±2PZ或Z2=±2PX。编制零件抛物线部分的宏程序。

图1 待编程加工的抛物线零件

工艺分析:编程时,将工件坐标系原点设置在抛物线顶点上,采用拟合法,即在X向分段,以0.2~0.5毫米为一个步距,X为自变量,Z为X的函数。我们可以编制一个只用变量不用具体数据的宏程序,然后在主程序中调出该宏程序,为上述变量赋值。这样,对于不同抛物线、不同起始点、不同步距的抛物线曲线类零件,只需修改用户宏指令段内的赋值数据,而无需重新编制程序。

抛物线一般方程可转换为:Z=±X2∕2P或X=±Z2∕2P。

用变量表示为:#26= ±[#24* #24]∕[2* #16]或#24= ±[#26* #26]∕[2* #16]

自变量含义:#24=X;X为抛物线顶点的横向绝对坐标值

#26=Z;Z为抛物线顶点的纵向绝对坐标值

#17=Q;Q为抛物线焦点坐标在Z轴上绝对值的2倍

#22=V;V为抛物线的开口距离

#6=K;K为X向递减均值

#9=F;F为进给速度

参考程序见表6。

表6 参考程序表

续表

5 结语

随着数控技术、软件技术的不断发展,在数控加工领域,各种自动编程软件得到了很大程度的普及,但其缺点也是显而易见的,工作量大、加工参数不易修改、在线加工时的传输速度影响加工效率等等。本文通过对用户宏程序的介绍及对编程实例的分析,说明其具有灵活、通用、简捷等优点,特别是在数控车批量生产以及非圆曲线回转体零件的编程加工方面具有的,其他编程方式所没有的强大优越性。综上所述,宏程序因其具有的众多优势和优点,而使其依然具有强大的生命力及广泛的应用空间。

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

[2]周晓宏.数控车床操作技能考核培训教程[M].北京:中国劳动社会保障出版社,2009.

Advantages of Macro Programming and Applications in CNC Lathe Processing

ZHANG Wei-dong

(College of Mechanical Engineering,Jilin Teachers'Institute of Engineering and Technology,Changchun 130052,China)

Based on introducing the characteristics of macro programming by B class users in FANUC-oi numerical control system,this article gives the advantages compared to other programming.Through concrete programming examples,it shows that macro program has the advantages that other programming ways don't have in numerical control lathe processing,which have extensive application space in numerical control processing field,especially in CNC lathe processing field.

macro program;advantage;numerical control lathe;application

TG519.1

A

1009-3907(2012)04-0388-07

2012-02-27

张卫东(1969-),男,吉林长春人,实验师,技师,主要从事数控加工研究。

责任编辑:吴旭云

猜你喜欢

程序段宏程序赋值
关于1 1/2 … 1/n的一类初等对称函数的2-adic赋值
L-代数上的赋值
基于WinCC的物料小车控制系统设计与仿真
椭球槽宏程序编制及其Vericut仿真
数控系统手轮回退功能的研究与实现*
基于NC程序段的提高数控加工监控阈值与信号同步的方法*
强赋值幺半群上的加权Mealy机与加权Moore机的关系*
利用赋值法解决抽象函数相关问题オ
基于Vericut的四轴数控加工宏程序仿真研究
G代码B类宏程序在数控切割参数化图形库中的应用