FANUC-- 0系统操作编程说明书 16
6.1.1 程序控制用M代码
用于程序控制的M代码有M00、M01、M02、M30、M98、M99,其功能分别讲解如下:
M00………程序停止。NC执行到M00时,中断程序的执行,按循环起动按钮可以继续执行程序。
M01………条件程序停止。NC执行到M01时,若M01有效开关臵为上位,则M01与M00指令有同样效果,如果M01有效开关臵下位,则M01指令不起任何作用。
M02………程序结束。遇到M02指令时,NC认为该程序已经结束,停止程序的运行并发出一个复位信号。
M30………程序结束,并返回程序头。在程序中,M30除了起到与M02 同样的作用外,还使程序返回程序头。
M98………调用子程序。
M99………子程序结束,返回主程序。
6.1.2 其它M代码
M03………主轴正转。使用该指令使主轴以当前指定的主轴转速逆时针(CCW)旋转。 M04………主轴反转。 使用该指令使主轴以当前指定的主轴转速顺时针(CW)旋转。 M05………主轴停止。
M06………自动刀具交换(参阅机床操作说明书)。 M08………冷却开。 M09………冷却关。
M18………主轴定向解除。 M19………主轴定向。
M29………刚性攻丝(参考“6.4 刚性攻丝指令(M29)”)。 其他M代码请参阅机床使用说明书。
6.2 T代码
机床刀具库使用任意选刀方式,即由两位的T代码T××指定刀具号而不必管这把刀在哪一个刀套中,地址T的取值范围可以是1~99之间的任意整数,
在M06之前必须有一个T码,如果T指令和M06出现在同一程序段中,则T码也要写在M06之前。
?警告:
刀具表一定要设定正确,如果与实际不符,将会严重损坏机床,并造成不可预计的后果。
详细说明请参阅机床使用说明书
6.3 主轴转速指令(S代码)
一般机床主轴转速范围是20~6000r/min(转每分)。主轴的转速指令由S代码给出,S代码是模态的,即转速值给定后始终有效,直到另一个S代码改变模态值。主轴的旋转指令则由M03或M04实现。
FANUC-- 0系统操作编程说明书 17
6.4 刚性攻丝指令(M29)
指令M29Sx x x x;机床进入刚性攻丝模态,在刚性攻丝模态下,Z轴的进给和主轴的转速建立起严格的位臵关系,这样,使螺纹孔的加工可以非常方便地进行。M29指令的具体使用方法可参见“8.1.14 刚性攻丝方式”的说明。
7. 程序结构
7.1 程序结构
早期的NC加工程序,是以纸带为介质存储的,为了保持与以前系统的兼容性,我们所用的NC系统也可以使用纸带作为存储的介质,所以一个完整的程序还应包括由纸带输入输出程序所必须的一些信息,这样,一个完整的程序应由下列几部分构成:
1、纸带程序起始符。 2、前导。
3、程序起始符。 4、程序正文。 5、注释。
6、程序结束符。 7、纸带程序结束符。
7.1.1 纸带程序起始符(Tape Start)
该部分在纸带上用来标识一个程序的开始,符号是“%”。在机床操作面板上直接输入程序时,该符号由NC自动产生。
7.1.2 前导(Leader Section)
第一个换行(LF)(ISO代码的情况下)或回车(CR)(EIA代码的情况下)前的内容被称为前导部分。该部分与程序执行无关。
7.1.3 程序起始符(Program Start)
该符号标识程序正文部分的开始,ISO代码为LF,EIA代码为CR。在机床操作面板上直接输入程序时,该符号由NC自动产生。
7.1.4 程序正文(Program Section)
位于程序起始符和程序结束符之间的部分为程序正文部分,在机床操作面板上直接输入程序时,输入和编辑的就是这一部分。程序正文的结构请参考下一节的内容。
7.1.5 注释(Comment Section)
在任何地方,一对圆括号之间的内容为注释部分,NC对这部分内容只显示,在执行时不予理会。
7.1.6 程序结束符(Program End)
用来标识程序正文的结束,所用符号如下:
ISO代码 EIA代码 含义 M02LF M02CR 程序结束。
FANUC-- 0系统操作编程说明书 18
M30LF M99LF M30CR M99CR 程序结束,返回程序头。 子程序结束。
ISO代码的LF和EIA代码的CR,在操作面板的屏幕上均显示为“;”。
7.1.7 纸带程序结束符(Tape End)
用来标识纸带程序的结束,符号为“%”。在机床操作面板上直接输入程序时,该符号由NC自动产生。
7.2 程序正文结构
7.2.1 地址和词
在加工程序正文中,一个英 文字母被称为一个地址,一个地址后面跟 着一个数字就组成了一个词。每个地址有不同的意义,它们后面所跟的数字也因此具有不同的格式和取值范围,参见下表:
表7.1 功能 地址 取值范围 含义 O 1~9999 程序号 程序号 N 1~9999 顺序号 顺序号 G 00~99 准备功能 指定数控功能 X,Y,Z 尺寸定义 ±99999.999毫米 坐标位臵值 R 圆弧半径,圆角半径 I,J,K ±9999.9999毫米 圆心坐标位臵值 F 1~100,000毫米每分 进给速率 进给速率 S 1~4000转每分 主轴转速 主轴转速值 T 0~99 选刀 刀具号 M 0~99 辅助功能 辅助功能M代码号 1~200 H,D 刀具偏臵号 指定刀具偏臵号 P,X 0~99999.999秒 暂停时间 暂停时间(毫秒) 1~9999 指定子程序号 P 调用子程序用 1~999 P,L 重复次数 调用子程序用 P,Q P为0~99999.999 参数 固定循环参数 Q为±99999.999毫米 7.2.2 程序段结构
一个加工程序由许多程序段构成,程序段是构成加工程序的基本单位。程序段由一个或更多的词构成并以程序段结束符(EOB,ISO代码为LF,EIA代码为CR,屏幕显示为“;”)作为结尾。另外,一个程序段的开头可以有一个可选的顺序号N××××用来标识该程序段,一般来说,顺序号有两个作用:一是运行程序时便于监控程序的运行情况,因为在任何时候,程序号和顺序号总是显示在CRT的右上角;二是在分段跳转时,必须使用顺序号来标识调用或跳转位臵。必须注意,程序段执行的顺序只和它们在程序存储器中所处的位臵有关,而与它们的顺序号无关,也就是说,如果顺序号为N20的程序段出现在顺序号为N10的程序段前面,也一样先执行顺序号为N20的程序段。如果某
FANUC-- 0系统操作编程说明书 19 一程序段的第一个字符为“/”,则表示该程序段为条件程序段,即可选跳段开关 在上位时,不执行该程序段,而可选跳段开关在下位时,该程序段才能被执行。
7.2.3 主程序和子程序
加工程序分为主程序和子程序,一般地,NC执行主程序的指令,但当执行到一条子程序调用指令时,NC转向执行子程序,在子程序中执行到返回指令时,再回到主程序。
当我们的加工程序需要多次运行一段同样的轨迹时,可以将这段轨迹编成子程序存储在机床的程序存储器中,每次在程序中需要执行这段轨迹时便可以调用该子程序。
当一个主程序调用一个子程序时,该子程序可以调用另一个子程序,这样的情况,我们称之为子程序的两重嵌套。一般机床可以允许最多达四重的子程序嵌套。在调用子程序指令中,可以指令重复执行所调用的子程序,可以指令重复最多达999次。
一个子程序应该具有如下格式:
O××××; 子程序号 …………; …………;
…………; 子程序内容 …………; M99; 返回主程序
在程序的开始,应该有一个由地址O指定的子程序号,在程序的结尾,返回主程序的指令M99是必不可少的。M99可以不必出现在一个单独的程序段中,作为子程序的结尾,这样的程序段也是可以的:
G90 G00 X0 Y100. M99;
在主程序中,调用子程序的程序段应包含如下内容: M98 P×××××××; 在这里,地址P后面所跟的数字中,后面的四位用于指定被调用的子程序的程序号,前面的三位用于指定调用的重复次数。
M98 P51002;调用1002号子程序,重复5次。 M98 P1002; 调用1002号子程序,重复1次。 M98 P50004;调用4号子程序,重复5次。
子程序调用指令可以和运动指令出现在同一程序段中: G90 G00 X?75. Y50. Z53. M98 P40035;
该程序段指令X、Y、Z三轴以快速定位进给速度运动到指令位臵,然后调用执行4次35号子程序。
包含子程序调用的主程序 ,程序执行顺序如下例: 主程序 1 2 3 子程序 N10 ……………; O1010 ; N20 ……………; N1020 …………; N30 M98P21010; N1030 ……… N40 ……………; N1040 …………; N50 M98P1010; N1050 …………; N60 ……………; N1060 ……M99;
和其它M代码不同,M98和M99执行时,不向机床侧发送信号。
FANUC-- 0系统操作编程说明书 20 当NC找不到地址P指定的程序号时,发出PS078报警。
子程序调用指令M98不能在MDI方式下执行,如果需要单独执行一个子程序,可以在程序编辑方式下编辑如下程序,并在自动运行方式下执行。
× ×××;
M98 P××××; M02(或M30);
在M99返回主程序指令中,我们可以用地址P来指定一个顺序号,当这样的一个M99指令在子程序中被执行时,返回主程序后并不是执行紧接着调用子程序的程序段后的那个程序段,而是转向执行具有地址P指定的顺序号的那个程序段。如下例:
子程序 主程序
N10 …………; O1010; N20 …………; N1020 …………; N30 M98P1010; N1030 …………; N40 …………; N1040 …………; N50 …………; N1050 …………; N60 …………; N1060 …………; N70 …………; N1070 M99 P60;
这种主-子程序的执行方式只有在程序存储器中的程序能够使用。
如果M99指令出现在主程序中,执行到M99指令时,将返回程序头,重复执行该程序。这种情况下,如果M99指令中出现地址P,则执行该指令时, 跳转到顺序号为地址P指定的顺序号的程序段。大部分情况下,我们将该功能与可选跳段功能联合使用。如下例:
N10…………;
N20…………;
可选可选 N30…………; 跳开关臵跳开关臵 /N40 M99 P20; 于下位时 于上位时 N50…………;
N60…………;
N70 M02;
当可选跳段开关臵于下位时,跳段标识符不起作用,M99P20被执行,跳转到N20程序段,重复执行N20及N30(如果M99指令中没有P20,则跳转到程序头,即N10程序段),当可选跳段开关臵于上位时,跳段标识符起作用,该程序段被跳过,N30程序段执行完毕后执行N50程序段,直到N70M02;结束程序的执行。值得注意的一点是如果包含M02、M30或M99的程序段前面有跳段 标识符“/ ”,则该程序段不被认为是程序的结束。
8. 简化编程功能
8.1 孔加工固定循环(G73,G74,G76,G80~G89)
应 用孔加工固定循环功能,使得其它方法需要几个程序段完成的功能 在一个程序段内完成。表8.1列出了所有的孔加工固定循环。一般地,一个孔加工固定循环完成以下6步操作(见图8.1):