3.3 SIEMENS数控系统程序编制
德国SIEMENS公司的SINUMERIK系列数控系统主要有SINUMERIK 3系列、SINUMERIK 8系列、SINUMERIK 810/820系列、SINUMERIK 850/880系列、SINUMERIK 840C/D系列、SINUMERIK 802S/C/D系列等产品。本节选择对SINUMERIK 802D数控系统程序指令以及编制技术进行系统介绍。
3.3.1 SIEMENS数控系统的基本G指令
SIEMENS系统的基本G指令及含义见表3-3。
表3-3 基本G指令及含义
下面对常用G指令进行简单介绍。
(1)G0:快速线性移动
①功能 轴快速移动,G0用于快速定位刀具,没有对工件进行加工。可以在几个轴上同时执行快速移动,由此产生一线性轨迹。机床数据中规定每个坐标轴快速移动速度的最大值,一个坐标轴运行时就以此速度快速移动。如果快速移动同时在两个轴上执行,则移动两个轴可能的最大速度。
编程格式:G0 X~ Z~
②说明 用G0快速移动时在地址F编程的进给速度无效。G0是模态代码,一直有效,直到被G功能组中其他的指令(G1、G2、G3等)取代为止。目标点的位置坐标(X,Z)可以用绝对位置数据(G90)、增量位置数据(G91)输入。
G功能组中还有其他的G指令用于定位功能。在用G60准确定位时,可以在窗口下选择不同的精度,另外用于准确定位还有一个程序段方式有效指令G9,在进行准确定位时请注意选择。
(2)G1:带进给速度的线性插补
①功能 刀具以直线从起始点移动到目标点,以地址F下编程的进给速度运行。所有的坐标轴可同时运行。
编程格式:G1 X~ Z~
②说明 G1一直有效,直到被G功能组中其他的指令(G0、G2等)取代为止。目标点的位置坐标(X,Z)可以用绝对位置数据(G90)增量位置数据(G91)输入。另外,进给速度由F指令决定,F指令也是模态指令,可由G0指令取消。如果在G1程序段之前的程序段没有F指令,而现有的G1程序段中也没有F指令,则机床不运动。
(3)G2/G3:圆弧插补
①功能 刀具以圆弧轨迹从起始点移动到终点,方向由G指令确定。其中,G2为顺时针方向;G3为逆时针方向。在地址F下编程的进给速度决定圆弧插补速度。圆弧可以按下述不同的编程格式表示。
圆心坐标和终点坐标:G2 X~Z~I~K~
半径和终点坐标: G2 X~Z~CR~
圆心和张角: G2 I~K~AR~
张角和终点坐标: G2 X~Z~AR~
②说明 G2和G3一直有效,直到被G功能组中其他的指令(G0、G1等)取代为止。
采用绝对值编程时,X、Z表示圆弧终点在工件坐标系中的坐标值;采用增量值编程时,X、Z表示圆弧终点相对于圆弧起点的增量值。
用半径CR方式编程时,由于在同一个半径CR的情况下,从圆弧的起点到终点有两种可能的圆弧,因此在编程时规定,圆心角小于或等于180°的圆弧CR值为正;圆心角大于180°的圆弧的CR值为负。
圆心坐标I、K为圆弧起点到圆弧中心所作矢量分别在Y轴、Z轴方向上的分矢量,当分矢量与坐标轴的方向一致时为“+”号,反之取为“-”号。
插补圆弧尺寸必须在一定的公差范围之内。系统比较圆弧起始点和终点处的半径,如果其值在公差范围之内,则可精确设定圆心;若超出公差范围,则给出报警。公差值可通过机床数据设定。
(4)CIP:通过中间点进行圆弧插补
①功能 如果不知道圆弧的圆心、半径或张角,但已知圆弧轮廓上三个点的坐标,则可以使用CIP功能。
通过起始点和终点之间的中间点位置确定圆弧的方向。CIP一直有效,直到被G功能组中其他的指令(G0、G1、G2等)取代为止。
编程格式:CIP X~ Z~ I1= K1=
②说明 可设定的位置数据输入G90或G91指令对终点和中间点有效。
③编程示例(图3-54)
图3-54 CIP应用示例
N5 G90 Z17 X20 N10 CIP Z57 X20 I1=40 K1=37
(5)G33:恒螺距螺纹切削
①功能 用G33功能可以加工下述各种类型的恒螺距螺纹,圆柱螺纹;圆锥螺纹;外螺纹/内螺纹;单螺纹和多重螺纹;多段连续螺纹。
编程格式:G33 X~ Z~ I~ K~ SF=~
前提条件是主轴上有位移测量系统。G33一直有效,直到被G功能组中其他的指令(G0、G1、G2、G3等)取代为止。
注意:螺纹长度中要考虑导入空刀量和退出空刀量(图3-55)。
图3-55 螺纹加工
在具有两个坐标轴尺寸的圆锥螺纹加工中,螺距地址I或K下必须设置较大位移(较大螺纹长度)的螺纹尺寸,另一个较小的螺距尺寸不用给出。
②说明 右旋和左旋螺纹由主轴旋转方向M3和M4确定(M3为右旋,M4为左旋)。在地址S下编程主轴转速,此转速可以调整。
起始点偏移SF=~
在加工螺纹中,切削位置偏移以后以及在加工多头螺纹时均要求起始点偏移一位置。在G33螺纹加工中,在地址SF下编程起始点偏移量(绝对位置)。如果没有编程起始点偏移量,则设定数据中的值有效。
注意:编程的SF值也始终登记到设定数据中。
如果多个螺纹段连续编程,则起始点偏移只在第一个螺纹段中有效,也只有在这里才适用此参数(图3-56)。
图3-56 多段连续螺纹加工示例
在G33螺纹切削中,轴速度由主轴转速和螺距的大小确定。在此F下编程的进给速度保持存储状态,但机床数据中规定的轴最大速度(快速定位)不允许超出。
注意:在螺纹加工期间,主轴修调开关必须保持不变;进给修调开关无效。
(6)G4:暂停
①功能 通过在两个程序段之间插入一个G4程序段,可以使加工中断给定的时间,比如自由切削。G4程序段(含地址F或S)只对自身程序段有效,并暂停所给定的时间。在此之前编程的进给量F和主轴转速S保持存储状态。
编程格式:
G4 F~;暂停时间(s)
G4 S~;暂停主轴转速
②说明 G4 S~只有在受控主轴情况下才有效。G4指令是非模态代码,只对自身程序段有效。
(7)G74:回参考点
①功能 用G74指令实现NC程序中回参考点功能,每个轴的方向和速度存储在机床数据中。机床参考点也是机床的一个固定点,其固定位置由Z向和X向的机械挡块来确定。当发出回参考点的指令时,装在纵向和横向滑板上的行程开关碰到相应的挡块后,由数控系统控制滑板停止运动,完成回参考点的操作。
编程格式:G74 X1=0 Z1=0
②说明 G74需要一独立程序段,并按程序段方式有效。在G74之后的程序段中原先“插补方式”组中的G指令(G0、G1、G2等)将再次生效。
注意:程序段中,X和Z下编程的数值不识别。
(8)G75:返回固定点
①功能 用G75可以返回到机床中某个固定点,比如换刀点。固定点位置固定地存储在机床数据中,它不会产生偏移。每个轴的返回速度就是其快速移动速度。
编程格式:G75 X1=0 Z1=0
②说明 G75需要一独立程序段,并按程序段方式有效。在G75之后的程序段中原先“插补方式”组中的G指令(G0、G1、G2等)将再次生效。
注意:程序段中,X和Z下编程的数值不识别。
(9)G25/G26:主轴转速下/上限
①功能 通过在程序中写入G25或G26指令和地址S下的转速,可以限制特定情况下主轴的极限值范围。与此同时,原来设定数据中的数据被覆盖。
G25或G26指令均要求一独立的程序段,原先编程的转速S保持存储状态。
编程格式:
G25 S~;限制主轴转速下限
G26 S~;限制主轴转速上限
②说明 主轴转速的最高极限值在机床数据中设定。通过面板操作可以激活用于其他极限情况的设定参数。在车床中,对于G96功能——恒定切削速度,还可以附加编程一个转速最高极限。
(10)G40:取消刀尖半径补偿
①功能 用G40取消刀尖半径补偿,此状态也是编程开始时所处的状态。G40之前的程序段刀具以正常方式结束(结束时补偿矢量垂直于轨迹终点处切线),与起始角无关。在运行G40程序段之后,刀尖到达编程终点。在选择G40程序段编程终点时要始终确保不会发生碰撞。
编程格式:G40 X~ Z~
②说明 只有在线性插补(G0、G1)情况下才可以取消补偿运行。编程两个坐标轴,如果只给出一个坐标轴的尺寸,则第二个坐标轴自动以在此之前最后编程的尺寸赋值。
(11)G41/G42:刀尖半径补偿
①功能 刀具必须有相应的D号才能有效。刀尖半径补偿通过G41/G42生效。控制器自动计算出当前刀具运行所产生的与编程轮廓等距离的刀具轨迹。必须处于G18有效状态。
编程格式:
G41 X~ Z~;在工件轮廓左边刀补有效
G42 X~ Z~;在工件轮廓右边刀补有效
注意:只有在线性插补时(G0、G1)才可以进行G41/G42的选择。编程两个坐标轴,如果只给出一个坐标轴的尺寸,则第二个坐标轴自动地以最后编程的尺寸赋值。
②说明 在通常情况下,在G41/G42程序段之后紧接着工件轮廓的第一个程序段。但轮廓描述可以由其中某一个没有位移参数(比如只有M指令)的程序段中断。
以G42为例,刀尖位置如图3-57所示时进行刀尖半径补偿的程序如下。
N10 T~F~; N15 X~Z~; P0起始点 N20 G1 G42 X~Z~; 工件轮廓右边补偿,P1 N30 X~Z~; 起始轮廓,圆弧或直线
图3-57 G42应用示例
(12)G54~G57、G500、G53:工件装夹——可设定的零点偏置
①功能 可设定的零点偏置给出工件零点在机床坐标系中的位置(工件零点以机床零点为基准偏移)。
当工件装夹到机床上后求出偏移量,并通过操作面板输入到规定的数据区。程序可以选择相应的G功能G54~G57激活此值。
②说明
G54——第一可设定零点偏置。
G55——第二可设定零点偏置。
G56——第三可设定零点偏置。
G57——第四可设定零点偏置。
G500——取消可设定零点偏置。
G53——按程序段方式取消可设定零点偏置。
(13)G9:准确定位
①功能 针对程序段转换时不同的性能要求提供G9功能用于准确定位。
②说明 指令G9仅对自身程序段有效。
(14)G71/G70:公制尺寸/英制尺寸
①功能 工件所标注尺寸的尺寸系统可能不同于系统设定的尺寸系统(英制或公制),但这些尺寸可以直接输入到程序中,系统会完成尺寸的转换工作。其中,G70为英制尺寸;G71为公制尺寸。
②说明 系统根据所设定的状态把所有的几何值转换为公制尺寸或英制尺寸(这里刀具补偿值和可设定零点偏置值也作为几何尺寸)。同样,进给速度F的单位分别为mm/min或in/min。基本状态可以通过机床数据设定。本说明中所给出的例子均以基本状态为公制尺寸作为前提条件。
用G70或G71编程所有与工件直接相关的几何数据。比如:在G0、G1、G2、G3、G33功能下的位置数据X,Z;插补参数I,K(也包括螺距);圆弧半径CR;可编程的零点偏置(G158)。
其他与工件没有直接关系的几何数值,如进给速度、刀具补偿、可设定的零点偏置等,均与G70/G71的编程无关。
(15)G90/G91:绝对/增量位置数据
①功能 G90和G91指令分别对应绝对位置数据输入和增量位置数据输入。其中G90表示坐标系中目标点的坐标尺寸,G91表示待运行的位移量。G90/G91适用于所有坐标轴。这两个指令不决定到终点位置的轨迹,轨迹由G功能组中的其他G功能指令决定(G0、G1、G2、G3等)。其中,G90为绝对尺寸;G91为增量尺寸。
②说明 绝对位置数据输入G90:在绝对位置数据输入中尺寸取决于当前坐标系(工件坐标系或机床坐标系)的零点位置。零点偏置有以下几种情况:可编程零点偏置、可设定零点偏置或者没有零点偏置。程序启动后G90适用于所有坐标轴,并且一直有效,直到在后面的程序段中由G91(增量位置数据输入)替代为止(模态有效)。
增量位置数据输入G91:在增量位置数据输入中,尺寸表示待运行的轴位移。移动的方向由坐标符号决定。G91适用于所有坐标轴,并且可以在后面的程序段中由G90(绝对位置数据输入)替换。只有在线性插补(G0、G1)情况下才可以取消补偿运行。编程两个坐标轴,如果只给出一个坐标轴的尺寸,则第二个坐标轴自动以在此之前最后编程的尺寸赋值。
(16)G94/G95:进给速度
①功能 指令G94/G95分别从不同的单位定义了进给速度。
编程格式:
G94 F~;单位mm/min
G95 F~;单位mm/r
②说明 F是所希望的进给速度。系统默认的设置为G95,且G94/G95更换时要求写入一个新的地址F。
(17)G96/G97:恒定切削速度生效/取消
①功能 恒定切削速度生效/取消。前提条件是主轴为受控主轴。
②说明 G96功能生效以后,主轴转速随着当前加工工件直径(横向坐标轴)的变化而变化,从而始终保证刀具切削点处编程的切削速度S为常数(主轴转速×直径=常数)。
从G96程序段开始,地址S下的转速值作为切削速度处理。G96为模态有效,直到被G功能组中一个其他G指令(G94、G95、G97)替代为止。
编程格式:
G96 S~ LIMS=~ F~ ;恒定切削生效
G97 ;取消恒定切削速度
G96参数含义见表3-4。
表3-4 G96参数含义
提示:此处进给速度始终为旋转进给速度,单位为mm/r。如果在此之前为G94有效而非G95有效,则必须重新写入一合适的地址F值。
用G0进行快速移动时不可以改变转速。此外,如果以快速运行回轮廓,并且下一个程序段中含有插补方式指令G1或G2、G3、G5(轮廓程序段),则在用G0快速移动的同时已经调整用于下面进行轮廓插补的主轴转速。
用G97指令取消“恒定切削速度”功能。如果G97生效,则地址S下的数值又恢复为G97指令中S所指定的转速。单位为r/min。如果没有重新写地址S,则主轴以原先G96功能生效时的转速旋转。
注意:G96功能也可以用G94或G95指令(同一个G功能组)取消。在这种情况下,如果没有写入新的地址S,则主轴按在此之前最后编程的主轴转速S旋转。
(18)DIAMOF/DIAMON:半径/直径数据尺寸
①功能 车床中加工零件时通常把X轴(横向坐标轴)的位置数据作为直径数据编程,控制器把所输入的数值设定为直径尺寸,这仅限于X轴。程序中在需要时也可以转换为半径尺寸。
编程格式:
DIAMOF;半径数据尺寸
DIAMON;直径数据尺寸
②说明 用DIAMOF/DIAMON指令把X轴方向的终点坐标作为半径数据尺寸或直径数据尺寸处理。显示工件坐标系中响应的实际值。
3.3.2 SIEMENS数控系统的基本M指令
SIEMENS数控系统的基本M指令及含义见表3-5。
表3-5 SIEMENS数控系统的基本M指令及含义
(1)M指令功能
①功能 利用辅助功能M可以设定一些开关操作,如“打开/关闭冷却液”等。除少数M功能被数控系统生产厂家固定地设定了某些功能之外,其余部分均可供机床生产厂家自由设定。
在一个程序段中最多可以有5个M功能。
编程格式:M~
②说明 M功能在坐标轴运行程序段中的作用情况:如果M0、M1、M2功能位于一个有坐标轴运行指令的程序段中,则只有在坐标轴运行之后这些功能才会有效;对于M3、M4、M5功能,则在坐标轴运行之前信号就传送到内部的接口控制器中,只有当受控主轴按M3或M4启动之后,才开始坐标轴运行,在执行M5指令时并不等待主轴停止,坐标轴已经在主轴停止之前开始运动;其他M功能信号与坐标轴运行信号一起输出到内部接口控制器上。如果有意在坐标轴运行之前或之后编程一个M功能,则需插入一个独立的M功能程序段。
(2)计算参数R
①功能 要使一个NC程序不仅仅适用于特定数值下的一次加工,或者必须要计算出数值,这两种情况均可以使用计算参数,可以在程序运行时由控制器计算或设定所需要的数值;也可以通过操作面板设定参数数值。如果参数已经赋值,则它们可以在程序中对由变量确定的地址进行赋值。
编程格式:R0=~ 到R249=~
②说明 一共有250个计算参数可供使用。
R0~R99:可以自由使用。
R100~R249:加工循环传递参数。
如果没有用到加工循环,则这部分计算参数也同样可以自由使用。
可以在以下数值范围内给计算参数赋值:±(0.0000001~99999999)(8位,带符号和小数点),在取整数值时可以去除小数点。正号可以一直省去。
用指数表示法可以赋值更大的数值范围:±(10-300~10+300),指数值写在EX符号之后。
最大符号数:10(包括符号和小数点)
EX值范围:-300~+300
注意:一个程序段中可以有多个赋值语句;也可以用计算表达式赋值。
给其他的地址:通过给其他的NC地址分配计算参数或参数表达式,可以增加NC程序的通用性。可以用数值。
赋值:算术表达式或R参数对任意NC地址赋值,但对地址N、G和L例外。赋值时在地址符之后写入符号“=”。赋值语句也可以赋值一负号。给坐标轴地址(运行指令)赋值时,要求有一独立的程序段。例如“N10 G0 X=R2;”给X轴赋值。
3.3.3 SIEMENS数控系统的基本T指令
SIEMENS数控系统的基本T指令及含义见表3-6。
表3-6 SIEMENS数控系统的基本T指令及含义
(1)T指令
①功能 T指令可以选择工具。在此,是用T指令直接更换刀具还是仅仅进行刀具的预选,这必须要在机床数据中确定。
用T指令直接更换刀具(比如车床中常用的刀具转塔刀架),或者仅用T指令预选刀具,另外还要用M6指令才可进行刀具的更换(参见“辅助功能M”)。
编程格式:T~; 刀具号1~32000
②说明 系统中最多同时存储10把刀具。
(2)刀具补偿号D
①功能 一个刀具可以匹配从1到9几个不同补偿的数据组(用于多个切削刃)。用D及其相应的序号可以编程一个专门的切削刃。
编程格式:D~;刀具补偿号1~9
注意:如果没有编写D指令,则D1自动生效。如果编程D0,则刀具补偿值无效。
②说明 系统最多可以同时存储30个刀具补偿数据组。刀具调用后,刀具长度补偿立即生效;如果没有编程D号,则D1值自动生效。先编程的长度补偿先执行,对应的坐标轴也先运行。刀具半径补偿必须与G41/G42一起执行。
(3)补偿存储器
在补偿存储器中有如下内容:几何尺寸、长度和半径。
①几何尺寸由许多分量组成:基本尺寸和磨损尺寸。控制器处理这些分量,计算并得到最后尺寸(比如总和长度、总和半径)。在激活补偿存储器时这些最终尺寸有效。
由刀具类型指令和G17、G18指令确定如何在坐标轴中计算出这些尺寸值。
由刀具类型可以确定需要哪些几何参数以及怎样进行计算(钻头或车刀),且仅以百位数的不同进行区分。
类型 2xy:钻头
类型 5xy:车刀
xy可以为任意参数,用户可以根据自己的需要进行设定。
在刀具类型为5 xy(车刀)时还需给出刀尖位置参数。
②刀具参数 在DP~的位置上填上相应的刀具参数的数值。适用哪些参数,则取决于刀具类型。不需要的刀具参数填上数值零。刀具参数见表3-7。
表3-7 刀具参数
在引入中心孔钻削概念时必须要转换到G17,钻头的长度补偿为Z轴方向。在钻削结束之后用G18转换回车刀正常的补偿。
3.3.4 SIEMENS数控系统的基本参数指令
常用参数指令含义见表3-8。
表3-8 SIEMENS数控系统的基本参数含义
下面介绍几种常用参数及其使用。
(1)SPOS:主轴定位功能
①前提条件 主轴必须设计成可以进行位置控制运行。
②功能 SPOS可以把主轴定位到一个确定的转角位置,然后主轴通过位置控制保持在这一位置。定位运行速度在机床数据中规定。从主轴旋转状态(顺时针旋转/逆时针旋转)进行定位时定位运行方向保持不变;从静止状态进行定位时定位运行按最短位移进行,方向从起始点位置到终点位置。
③说明 主轴首次运行时,也就是说,测量系统还没有进行同步时,定位运行方向在机床数据中规定。主轴定位运行可以与同一程序段中的坐标轴运行同时发生。当两种运行都结束以后,此程序段才结束。
(2)倒圆、倒角
①功能 在一个轮廓拐角处可以插入倒角或倒圆,其指令与加工拐角的轴运动指令一起写入到程序段中。
编程格式:
CHF=~;插入倒角,数值为倒角长度
RND=~;插入倒圆,数值为倒圆半径
CHF在直线轮廓之间、圆弧轮廓之间以及直线轮廓和圆弧轮廓之间切入一直线并倒去棱角。RND在直线轮廓之间、圆弧轮廓之间以及直线轮廓和圆弧轮廓之间切入一圆弧,圆弧与轮廓进行切线过渡。
②说明 如果其中一个程序段轮廓长度不够,则在倒圆或倒角时会自动削减编程值。如果几个连续编程的程序段中有不含坐标轴移动指令的程序段,则不可以进行倒角、倒圆。
(3)进给速度F
①功能 进给速度F是刀具轨迹速度,它是所有移动坐标轴速度的矢量和。坐标轴速度是刀具轨迹速度在坐标轴上的分量。进给速度F在G1、G2、G3、G5插补方式中生效,并且一直有效,直到被一个新的地址F取代为止。
进给速度F的单位由G功能确定,即G94和G95。
编程格式:
G94;直线进给速度,单位是mm/min
G95;旋转进给速度,单位是mm/r(只有主轴旋转才有意义)
②说明 对于车床,G94和G95的作用会扩展到恒定切削速度G96和G97功能,它们还会对主轴转速S产生影响。G94和G95更换时要求写入一个新地址F。
(4)主轴转速S:旋转方向
①功能 当机床具有受控主轴时,主轴的转速可以编程在地址S下,单位是r/min。旋转方向与主轴运动起始点和终点通过M指令规定(参见“辅助功能M”)。
编程格式:S~
提示:在S值取整情况下可以去除小数点后面的数据,比如S270。
②说明 只有在主轴启动之后,坐标轴才开始运行。如果在程序段中不仅有M3或M4指令,而且还写有坐标轴运行指令,则M3或M4指令在坐标轴运行之前生效。
3.3.5 SIEMENS数控系统的跳转指令集
常见的跳转指令有标记符、绝对跳转和有条件跳转,下面将依次进行介绍。
(1)标记符
①功能 标记符用于标记程序中所跳转的目标程序段,用跳转功能可以实现程序运行分支。
②说明 标记符可以自由选取,但必须由2~8个字母或数字组成,其中开始两个符号必须是字母或下划线。跳转目标程序段中标记符后面必须为冒号。标记符位于程序段段首。如果程序段有段号,则标记符紧跟着段号。
在一个程序中,标记符不能有其他意义。
(2)绝对跳转
①功能 NC程序在运行时,以写入时的顺序执行程序段。
②说明 程序在运行时可以通过插入程序跳转指令改变执行顺序,跳转目标只能是有标记符的程序段,此程序段必须位于该程序之内。绝对跳转指令必须占用一个独立的程序段。
编程格式:
GOTOF Label; 向前跳转(程序结束方向)
GOTOB Label; 向后跳转(程序开始方向)
Label:所选的标记符。
(3)有条件跳转
①功能 NC程序在运行时,以写入时的顺序执行程序段。
②说明 程序在运行时可以通过插入程序跳转指令改变执行顺序,用IF条件语句表示有条件跳转,如果满足跳转条件(也就是值不等于零)则进行跳转。跳转目标只能是有标记符的程序段,此程序段必须位于该程序之内。有条件跳转指令要求一个独立的程序段。
编程格式:
IF条件GOTOF Label; 向前跳转(程序结束方向)
IF条件GOTOB Label; 向后跳转(程序开始方向)
Lable:所选的标记符。
条件:作为条件的计算参数、计算表达式。
比较运算的运算符有如下几种。
==:等于
<>:不等于
>:大于
<:小于
>=:大于或等于
<=:小于或等于
比较运算结果有两种:一种为“满足”;另一种为“不满足”。“不满足”时运算结果为零。
3.3.6 SIEMENS数控系统的子程序指令
用子程序编写经常重复进行的加工,比如某一确定的轮廓形状。子程序位于主程序重复的地方,在需要时进行调用、运行。
(1)子程序
子程序的结构与主程序的结构一样,在子程序中也是在最后一个程序段中用M2结束子程序运行。子程序结束后返回主程序。除了用M2外,还可以用RET指令结束子程序。RET要求占用一个独立的程序段。
为了方便选择某一子程序,必须给子程序取一个程序名。程序名可以自由选取,但必须符合以下规定:开始两个符号必须是字母;其他符号为字母,数字或下划线;最多16个字母;没有分隔符。
例如ZC01等,即尽可能使其与加工对象要素及特征联系起来,便于管理。另外,在确定子程序名时,为了区别于主程序,还可以使用地址字L,需要注意的是,其后的值可以有7位。
下面介绍常用的子程序调用指令。
(2)子程序调用
在一个程序(主程序和子程序)中,可以直接用程序名调用子程序。子程序调用要求占用一个独立的程序段。编程示例如下。
N10 L785; 调用子程序 L785 N20 LRAHMEN7; 调用子程序 LRAHMEN7
P指令:如果要求多次连续地执行某一子程序,则在编程时就必须在所调用子程序的程序名后地址P下写明调用次数,最大次数可以为9999(P1~P9999)。编程示例如下。
N10 L785 P3; 调用子程序 L785,运行三次
3.3.7 SIEMENS数控系统的循环指令集
常用SIEMENS数控系统的循环指令见表3-9。
表3-9 常用循环指令
下面介绍几种常用的指令。
(1)CYCLE93:凹槽切削循环
①功能 用于切削圆柱形工件上的内外槽加工,可加工纵向和横向分布的、对称的、不对称的凹槽。
调用:CYCLE93(SPD,SPL,WIDG,DIAG,STA1,ANG1,ANG2,RCO1,RCO2,RCI1,RCI2,FAL1,FAL2,IDEP,DTB,VARI)。
具体参数含义见表3-10。使用示例如图3-58所示。
表3-10 CYCLE93参数含义
图3-58 CYCLE93循环加工槽型及参数
②循环的时序过程
a.用G0回到循环内部计算出的加工起始点。
b.切深进给:沿槽深平行方向进行粗加工直至槽底,同时留出精加工余量;每次执行一个IDEP切深之后退出1mm,以便于断屑。
c.切宽进给:一次切深完成并退出后,在垂直切深进给方向进行切宽进给,其后将重复切深加工过程。
d.如果在ANG1或ANG2下编程了角度值,即加工的是斜侧面槽,则分别使用切刀左右两刀尖沿两侧面进行斜侧面粗加工。如果槽宽较大,则分几步沿槽宽进行进给。
e.从槽沿到槽中心平行于轮廓,分别以切刀左右两刀尖从槽两侧边到槽中心进行精加工。
③编程示例(图3-59)使用CYCLE93循环进行纵向槽加工,起始点位(X35,Z60)。
图3-59 CYCLE93应用示例
N10 G95 T2 D1 S500 M3; 规定工艺参数值 N20 G0 Z65 X50; 循环起始点 N25CYCLE93(35,60,30,25,5,10,20,0,0,-2,-2,1,1,10,1,5); 调用循环 N30 G0 X100 Z100; 退刀 N50 M2; 程序结束
(2)CYCLE95:毛坯切削循环
①功能 用于在坐标轴平行方向加工由子程序编程的轮廓,可以实现粗加工、精加工和粗精加工。粗加工时沿轴向加工到轮廓交点处自动清除轮廓余角。精加工时,循环内部可以自动激活刀尖半径补偿。
调用:CYCLE95(NPP,MID,FALZ,FALX,FAL,FF1,FF2,FF3,VARI,DT,DAM,_VRT)。
具体参数含义见表3-11。
表3-11 CYCLE95参数含义
②循环的时序过程
a.内部计算出到当前深度的各轴进给量,并用G0回到进刀深度。
b.使用G1按FF1设定的进给速度切削到轴向粗加工的终点。
c.使用G1/G2/G3,按FF1设定的进给速度沿轮廓+精加工余量进行平行于轮廓切削。
d.各轴向使用G0退回到 _ VRT下编程的退出量。
e.重复上述过程,直至完成粗加工的最终深度。
③编程示例(图3-60)使用CYCLE95循环进行毛坯切削加工,最大进刀深度4mm,精加工余量0.4mm,循环选择纵向、外部、综合加工方式,起始点位(X150,Z180)。
图3-60 CYCLE95应用示例
N10 G95 T2 D1 S500 M3 F04; 规定工艺参数值 N20 G0 X150 Z180; 循环起始点 N25CYCLE95(“ZCX1”,4,,,0.4,0.4,0.3,0.15,9,,,2); 调用循环 N30 G0 X200 Z180; 退刀 N50 M2; 主程序结束 Z CX1; 轮廓子程序 N10 G1 X74 Z120; N20 X80 Z117; N30 Z105; N40 X90 Z92; N50 Z87; N60 X58 Z70; N70 Z62; N80 X88 Z58; N90 Z52; N100 X74 Z41; N110 Z35; N120 X152; N130 M2;
(3)CYCLE97:螺纹车削循环
①功能 使用CYCLE97可以加工纵向和横向的圆柱或圆锥恒螺距外螺纹和内螺纹,并且既可加工单头螺纹也可以加工多头螺纹。
调用:CYCLE97(PIT,MPIT,SPL,FPL,DM1,DM2,APP,ROP,TDEP,FAL,IANG,NSP,NRC,NID,VARI,NUMT)。
CYCLE97具体参数含义见表3-12。
表3-12 CYCLE97参数含义
②循环的时序过程 循环开始之前所到达的位置可以是任意的,但须保证每次从该位置出发无碰撞地回到所编程的螺纹起始点+空刀导入量处进行循环加工时不发生刀具碰撞。
a.用G0回到第一条螺纹线空刀导入量的起始处。
b.按照参数VARI定义的加工类型进行粗加工进刀。
c.根据编程的粗切削次数重复螺纹切削。
d.用G33切削精加工余量。
e.根据停顿次数重复此操作。
③编程示例(图3-61) 使用CYCLE97循环进行双头螺纹加工,起始点位(X10,Z110)。
图3-61 CYCLE97应用示例
N10 G95 T2 D1 S500 M3; 规定工艺参数值 N20 G0 Z10 X110; 循环起始点 N25CYCLE93(2,,0,-45,42,42,5,3,1.3,0.02,-30,0,10,2,3,2); 调用循环 N30 G0 X10 Z110; 退刀 N50 M2; 程序结束
(4)CYCLE81:钻孔循环
①功能 刀具以编程的主轴速度和进给速度钻孔,直至到达给定的最终钻削深度。在到达最终钻削深度时可以编程一个停留时间。退刀时以快速移动速度进行。
调用:CYCLE81(RTP,RFP,SDIS,DP,DPR)。
具体参数含义见表3-13。
表3-13 CYCLE81参数含义
②循环的时序过程
a.用G0回到安全间隙之前的参考平面处。
b.按照调用程序段中编程的进给速度以G1进行钻削,执行此深度停留时间。
c.以G0退刀,回到退回平面。
③编程示例(图3-62)使用CYCLE81循环钻孔,钻孔轴为Z轴。
图3-62 CYCLE81应用示例
N10 G54 G17 G90; 坐标系定义 N15 S300 M3 T3 D2 F0.2; 工艺参数设定 N20 G Z110; 接近返回平面 N25 X40 Y120; 接近初始钻孔位置 N30 CYCLE81(110,100,2,35); 调用循环 N35 Y30; N40 CYCLE81(110,102,,35); 调用循环 N45 X90; N50 CYCLE81(110,100,2,,65); 调用循环 N55 M2; 程序结束
(5)CYCLE82:锪孔循环
①功能 刀具以编程的主轴速度和进给速度钻孔,直至到达给定的最终钻削深度。在到达最终钻削深度时可以编程一个停留时间。退刀时以快速移动速度进行。
调用:CYCLE82(RTP,RFP,SDIS,DP,DPR,DTB)。
具体参数含义见表3-14。
表3-14 CYCLE82参数含义
②循环的时序过程
a.用G0回到被提前了一个安全距离量的参考平面处。
b.按照调用程序段中编程的进给速度以G1进行钻削。
c.执行此深度停留时间。
d.以G0退刀,回到退回平面。
③编程示例(图3-63) 使用CYCLE82循环,程序在XY平面加工深度为27mm的孔,在孔底停留时间2s,钻孔坐标轴方向安全距离为2mm。循环结束后刀具处于(X24,Z110)。
图3-63 CYCLE82应用示例
N10 G0 G18 G90 F500 T2 D1 S500 M4; 规定一些参数值 N20 Z110 X0; 回到钻孔位 N25 CYCLE82(110,102,2,75,15,2); N40 M2; 程序结束