首页 理论教育 数控机床程序的6要素及程序结束标记

数控机床程序的6要素及程序结束标记

时间:2023-06-30 理论教育 版权反馈
【摘要】:在数控机床上,将O1234称为程序号,M30称为程序结束标记。程序结束标记程序的结束标记用M代码表示,它必须写在程序的最后,代表着一个加工程序的结束。M02和M30都可用作加工主程序的结束标记。如果是子程序,用M99表示子程序结束。以上6点称为程序段的6要素。

数控机床程序的6要素及程序结束标记

1.地址格式

数字控制的早期应用中,出现了3种当时非常重要的格式。

分隔符顺序格式,只用在NC中,没有小数点

② 固定格式,只用在NC中,没有小数点。

③ 字地址格式,用在NC或CNC中,有小数点。

前两种格式只在早期的控制系统中使用,20世纪70年代早期就已经被淘汰了,现在根本不使用它们,替代它们的是更为便利的字地址格式。

字地址格式是基于一个字母和一个或多个数字的组合,如:G01、X123.456等。通常,每一个不同的地址都代表一类指令代码,而同类指令则通过扩展名的数字加以区别。因此,在字地址格式中,地址和数字的组合形成程序字,它也是组成CNC程序的基本单元。表4-5列出了FANUC数控系统最常用的字地址含义。

2.程序格式

数控机床的加工程序,以程序字作为最基本的单位,程序字的集合构成了程序段,程序段的集合构成了完整的加工程序。加工零件不同,数控加工程序也不同,但有的程序段(或程序字)是所有程序都必不可少的,有的却是可以根据需要选择使用的。下面是一加工程序实例。

4-5 FANUC常用字地址含义

978-7-111-34755-2-Chapter04-22.jpg

978-7-111-34755-2-Chapter04-23.jpg

从上面的程序中可以看出:程序以O1234开头,以M30结束。在数控机床上,将O1234称为程序号,M30称为程序结束标记。程序中的每一行称为一个程序段,以“;”作为结束标记。程序号、程序结束标记、加工程序段是任何加工程序都必须具备的3要素。

(1)程序号

程序号必须位于程序的开头,它一般由字母O和若干位数字组成。根据采用的标准和数控系统的不同,有时也可以由字符%(如:SIEMENS数控系统)或字母P和若干位数字组成。程序号是零件加工程序的代号,它是加工程序的识别标记,不同程序号对应着不同的零件加工程序。

程序号编写时应注意以下几点。

①程序号必须写在程序的最前面,并占一单独的程序段。

②在同一数控机床中,程序号不可以重复使用。

③程序号O9999、O-9999(特殊用途指令)、O0000在数控系统中通常有特殊的含义,在普通加工程序中应尽量避免使用。

④在某些系统(如:SIEMENS系统)中,程序号除可以用字符%代替O外,还可以直接用多字符程序名(如:TEST)代替程序号。

(2)程序结束标记

程序的结束标记用M代码表示,它必须写在程序的最后,代表着一个加工程序的结束。M02和M30都可用作加工主程序的结束标记。如果是子程序,用M99表示子程序结束。

(3)程序段

加工程序段处在程序号和程序结束标记之间是加工程序最主要的组成部分。加工程序段的长度和程序段数量,一般仅受数控系统的功能与存储器容量的限制。

加工程序段作为程序最主要的组成部分,通常由N及若干位的数字(称顺序号或程序段号)开头,以程序段结束标记CR(或LF)结束;实际使用时用“;”表示CR(或LF),作为结束标记。

对于一个完整的加工程序段,除程序段号、程序段结束标记“;”外,其主体部分应具备如下6个要素,必须在程序段中明确以下几点。

① 移动的目标是哪里?

② 沿什么样的轨迹移动?

③ 移动速度要多快?

④ 刀具的切削速度是多少?

⑤ 选择哪一把刀移动?

⑥ 机床还需要哪些辅助动作?

以上6点称为程序段的6要素。如:对于以下程序段:

N10 G90 G01 X100 Y100 F200 S500 T02 M03;

其6要素的定义如下。

① 移动的目标:X100、Y100(终点坐标值)。

② 移动轨迹:G01(直线插补)。

③ 移动速度:F100。

④ 刀具的切削速度:S300(主轴转速)。

⑤ 选择的刀具:T02(2号刀具)。

⑥ 机床辅助动作:M03(主轴正转)。

以上加工程序段是具备“6要素”的基本程序段,在实际加工程序中(如:圆弧插补、刀具补偿、固定循环等程序段)有时还需要更多的参数。

在绝大部分系统中,程序段号的作用仅仅是作为“跳转”或“程序检索”的目标标示。因此,它的前后次序可以颠倒,也可以忽略,在不同的程序内还可以重复使用。但是在同一程序段内,程序段号不可以重复使用。

程序段号也可以由数控系统自动生成,程序段号的递增量可以通过“系统参数”进行设置。(www.xing528.com)

在实际加工程序中,段号N前面可以加“/”符号,这样的程序段称为“可跳过程序段”。如:

/N100 G00 X100 Y100;

可跳过程序段的特点是可以由操作者对程序段的执行情况进行控制。当操作机床,使系统的“跳过程序段”信号生效时,程序执行时将跳过这些程序段;当“跳过程序段”信号无效时,程序段照常执行。

为了方便检查、阅读,在许多数控系统中允许对程序段加注释,注释可以作为对操作者的提示显示在荧屏上,但实际机床的动作与是否加注释、注释的内容均无关。程序段的注释应加在圆括号“()”之内,并放在程序段的最后,不允许将注释插在地址和数字之间。如:

N 5 X1002200(SHAFT);正确的注释

N 5 X100 Z(SHAFT)200;这样的注释通常不允许

(4)模态代码、非模态代码

根据加工程序段的基本要求,为了保证动作的正确执行,每一程序段都必须具备“6要素”。这样,在实际编程中,必将出现大量的重复指令,使程序显得十分复杂和冗长。为了避免出现以上情况,在数控系统中规定了这样一些代码指令:它们在某一程序段中指令之后,可以一直保持有效状态,直到撤销这些指令;这些代码指令,称为“模态代码”。而仅在编入的程序段生效的代码指令,称为“非模态代码”,也称“单段有效代码”。

“模态代码”和“非模态代码”的具体规定,可以查阅数控系统生产厂家提供的编程说明书。一般来说,绝大多数常用的G代码、全部S、F、T代码均为“模态代码”,M代码的情况决定于机床生产厂家的设计。

(5)代码分组

利用模态代码可以大大简化加工程序,但是,由于它的“连续有效”性,使得其撤销必须由相应的指令进行,“代码分组”的主要作用就是为了撤销“模态代码”。

所谓“代码分组”,就是将系统不可能同时执行的代码指令归为一组,并予以编号区别。同一组的代码有相互取代的作用,由此来撤销“模态代码”。

此外,为了避免编程人员在程序编写中出现的指令代码遗漏,像计算机一样,数控系统中也对每一组的代码指令,都取其中的一个作为开机默认代码,此代码在开机或系统复位时可以自动生效。

对于分组代码的使用应注意以下两点。

① 同一组的代码在一个程序段中只能有一个生效,当编入两个以上时,一般以最后输入的代码为准;但不同组的代码可以在同一程序段中编入多个。

② 对于开机默认的模态代码,若机床在开机或复位状态下执行该程序,程序中允许不进行编写。

表4-6和表4-7分别给出了FANUC数控车床和加工中心的G代码。表中带*的G代码为通常情况下的系统开机默认G代码。可通过修改系统参数的设定,来改变系统的开机默认G代码。在G代码组00中,除G10、G11外其余的G代码均为非模态代码;其余各组G代码均为模态代码。在同一程序段中,可以指令任意个数的不同组G代码;当指令了2个以上同一组G代码时,通常只有最后输入的G代码有效。

4-6 FANUC数控车床G代码

978-7-111-34755-2-Chapter04-24.jpg

(续)

978-7-111-34755-2-Chapter04-25.jpg

(续)

978-7-111-34755-2-Chapter04-26.jpg

4-7 FANUC加工中心/数控铣床G代码

978-7-111-34755-2-Chapter04-27.jpg

(续)

978-7-111-34755-2-Chapter04-28.jpg

在数控车床中,有3种代码体系,可通过系统参数进行选择。其中代码体系A在数控车床中使用最为广泛。若是G代码体系A的情形,其绝对/增量指令不是由G代码(G90/G91)来区分,而是由地址字(X/U、Z/W、C/H、Y/V)来区分。另外,钻孔用固定循环的返回点平面,仅限初始平面。

(6)主程序与子程序

机床的加工程序可以分为主程序和子程序两种。主程序是零件加工程序的主体部分,它是一个完整的零件加工程序。主程序和被加工零件及加工要求一一对应,不同的零件或不同的加工要求,都有唯一的主程序。

为了简化编程,有时可以将一个程序或多个程序中的重复的动作,编写为单独的程序,并通过程序调用的形式来执行这些程序,这样的程序称为子程序。就程序结构和组成而言,子程序和主程序并无本质区别,但在使用上,子程序具有以下特点。

① 子程序可以被任何主程序或其他子程序所调用,并且可以多次循环执行。

② 被主程序调用的子程序,还可以调用其他子程序,这一功能称为子程序的嵌套

③ 子程序执行结束,能自动返回到调用的程序中。

④ 子程序一般都不可以作为独立的加工程序使用,它只能通过调用来实现加工中的局部动作。

在大多数数控系统中,子程序的程序号和主程序号的格式相同,即:也用O及数字组成。但其结束标记必须使用M99,才能实现程序的自动返回功能。

对于采用M99作为结束标记的子程序,其调用可以通过辅助机能中的M98代码指令进行。但在调用指令中子程序的程序号由地址P规定,常用的子程序调用指令有以下3种格式。

格式一:M98 P□□□□;

作用:调用子程序O□□□□一次。如:N15 M98 P0123为调用子程序O0123一次,子程序号的前0可以省略,即可以写成N15 M98 P23的形式。

格式二:M98 P□□□□L××××;

作用:连续调用子程序O□□□□多次,地址L扩展名的××××代表调用次数。如:N15 M98 P0200 L2;为调用子程序O0200两次。同样,子程序号、循环次数的前0均可以省略。

格式三:M98 P××××□□□□;

作用:调用子程序O□□□□多次,地址P扩展名的数字中,前四位××××代表调用次数,后四位□□□□代表子程序号。注意:利用这种格式时,调用次数的前0可以省略,即0002可以省略成2;但子程序号□□□□的前0不可以省略,即0200不可以省略成200,如:N15 M98 P20200;为调用子程序O0200两次,但N15 M98 P2200则表示调用子程序O2200一次。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈