西门子840d工厂编程实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
第一章基础知识 (1)
1.1西门子840D系统程序命名规则 (1)
1.2 快速定位指令 G00(模态指令) (1)
1.3直线插补指令 G01(模态指令) (2)
1.4 圆弧插补 G02/G03(模态指令) (2)
1.5 暂停指令 G04 (模态指令) (4)
1.6 准确停止 G09 (非模态指令)、G60(模态指令) (4)
1.7 G17、G18、G19 加工平面选择(模态指令) (4)
1.8 G40、G41、G42刀具半径补偿(模态指令) (5)
1.9 G53、G153、SUPA(非模态指令) G500(模态指令) (5)
1.10 G54~G57、G505~G599工件坐标系(模态指令) (6)
1.11 G64/G641 连续路径加工(模态指令) (7)
1.12 G70/G71/G700/G710英制/公制(模态指令) (7)
1.13 G90/G91绝对/增量尺寸(模态指令) (7)
1.14 G94/G95 进给单位(模态指令) (8)
1.15 G110、G111、G112极坐标(非模态指令) (8)
1.16 FRAME框架指令(非模态指令): (9)
1.17 辅助功能和部分指令 (11)
1.18算术参数R与程序跳转GOTO (12)
1.19子程序 (14)
1.20程序段重复REPEATB与REPEAT (15)
第二章测量与赋值 (18)
2.1测量循环概要CYCLE977 、CYCLE978 (18)
2.2供给参数 (19)
2.3结果参数 (22)
2.4参数的赋值$P_UIFR (25)
第三章标准循环 (28)
3.1钻孔循环CYCLE81 (28)
3.2钻孔循环CYCLE82 (28)
3.3钻深孔循环CYCLE83 (29)
3.4刚性攻丝螺纹循环CYCLE84 (29)
3.5柔性攻丝螺纹循环CYCLE840 (30)
3.6精镗孔循环CYCLE86 (30)
3.7射线性排列孔的钻孔循环HOLSE1 (31)
3.8圆周排列孔的钻孔循环HOLES2 (31)
第四章编程实例 (32)
4.1平面钻孔实例 (32)
4.2椭圆加工实例 (35)
4.3圆柱表面加工 (37)
4.4铣圆弧面加工 (39)
4.5钻孔攻丝实例 (41)
4.6镗孔实例 (43)
4.7背铣实例 (44)
4.8深孔加工实例 (46)
4.9坐标系旋转加工 (48)
4.10 成排孔加工 (50)
4.11倒角编程实例 (52)
4.12倒圆角编程实例 (54)
4.13镜像编程实例 (55)
4.14凸轮加工实例 (57)
4.15腔体加工实例 (58)
4.16综合加工实例(一) (59)
4.17综合加工实例(二) (61)
4.18综合加工实例(三) (63)
4.19综合加工实例(四) (65)
4.20综合加工实例(五) (67)
附录西门子840d出口版本 (69)
计算变量 (69)
用户定义变量 (69)
运算符 (70)
无限程序循环LOOP (71)
计数循环FOR (71)
在循环开头带有条件的程序循环WHILE (71)
在循环结尾带有条件的程序循环REPEAT (72)
轴使能: RELEASE (73)
轴接收: GET (73)
轴直接接收: GETD (73)
模态子程序:MCALL (74)
间接调用子程序CALL (75)
调用带路径说明和参数的子程序:PCALL 编程 (75)
第一章基础知识
1.1西门子840D系统程序命名规则
a、前一个符号必须是字母或数字(或一个字符有下划线)
b、其余符号可以是字母、数字及下划线
c、程序名最多有24个字符
d、字符间不允许使用分隔符
常见程序段格式
N…G…X…Y…Z…F…S…D…T…M…
说明
N… 程序段号
G… 准备功能
X…Y…Z… 坐标终点
F… 进给速度
S… 主轴转速
D… 刀沿号
T… 刀具号
M… 辅助功能
1.2 快速定位指令 G00(模态指令)
格式
G0 X… Y… Z …
G0 AP=… RP=…
解释
X Y Z 直角坐标的终点
AP= 极坐标的终点,这里指极角 (下面章节具体介绍极角用法)
RP= 极坐标的终点,这里指极半径(下面章节具体介绍极半径用法)
指令用途
快速运行进行刀具的快速定位,工件的绕行或者返回换刀位置。

但G00不能用于工件加工!用 G00来编程的刀具运行将以可能的最快速度运行(快速运行)。

在每个机床数据中,每个轴的快速运行速度都是单独定义的。

如果同时在多个轴上执行快速运行,那么快速运行速度由对轨迹运行所需时间最长的轴来决定。

编程实例
N10 G0 X30 Y30 ;快速定位到圆心点
N20 L1 ;调子程序加工孔
N30 G0 X-50 Y30 ;加工完快速退回
N40 M30 ;程序结束
1.3直线插补指令 G01(模态指令)
格式
G1 X… Y… Z … F…
G1 AP=… RP=… F…
解释
X Y Z 直角坐标的终点
AP= 极坐标的终点,这里指极角
RP= 极坐标的终点,这里指极半径
F 进给率单位为毫米/分钟
指令用途
刀具作两点间的直线运动加工时使用该指令,G01表示刀具从当前位置开始以给定的切削速度F,沿直线移动指令给出的目标位置。

G01、F指令均为模态指令,有继承性,即如果上一段程序为G01,则本程序可以省略不写。

X、Y、Z为终点坐标值也同样具有继承性,即如果本程序段的X(或Y或Z)的坐标值与上一程序段的X(或Y或Z)坐标值相同,则本程序段可以不写X(或Y或Z)坐标。

切削加工时,一般要求进给速度恒定,因此,在一个稳定的切削加工工程中,往往只在程序开头的某个插补(直线插补或圆弧插补)程序段写出F值。

编程实例
N10 G0 X14 Y14 ;快速定位
N20 G1 Z-2 ;z切深2mm
N30 G1 X30 Y30 ;直线插补
N40 G0 Z6 ;Z快速退回
N50 M30 ;程序结束
1.4 圆弧插补 G02/G03(模态指令)
格式
G2/G3 X… Y… Z… I… J… K…
G2/G3 AP=… RP=…
G2/G3 X… Y… Z… CR=…
G2/G3 AR=… I… J… K…
G2/G3 AR=… X… Y… Z…
解释
G2 顺时针方向沿圆弧轨迹运行
G3 逆时针方向沿圆弧轨迹运行
X Y Z 直角坐标系的终点
I J K 直角坐标系的圆弧圆心(在 X,Y,Z方向) I值为圆心X值减去圆弧起点X值,J K分别对应AP= 极坐标的终点,这里指极角
RP= 极坐标的终点,这里极半径
CR= 圆弧半径
AR= 圆弧角 (张角) 0~360度
指令用途
圆弧插补允许对整圆或圆弧进行加工。

CR=+…:角度小于或者等于180°
CR=–…:角度大于180°
整圆(运行角度360°)不能用CR=来编程,而是通过圆弧终点和插补参数来编程。

编程实例
圆弧加工
N10 G0 X60 Y60
N20 G1 Z-2
N30 G2 X150 Y120 CR=-50
N40 G0 Z6
N50 M30

N10 G0 X150 Y120
N20 G1 Z-2
N30 G3 X60 Y60 CR=-50
N40 Z6
N50 M30
整圆加工
N10 G0 X=50-40 Y50
N20 G1 Z-2
N30 G2 X=50-40 Y50 I=50-10 J=50-50
N40 G1 Z6
N50 M30
1.5 暂停指令 G04 (模态指令)
格式
G04 F……
G04 S……
解释
F……以秒为单位的时间
S……用主轴旋转次数来确定暂停时间
指令用途
用G4指令多半是为了在加工完零件的时候停留几秒,以保证加工的光滑度。

当主轴有高速、低速档切换时在M5指令后,用G4指令停顿几秒,使主轴真正停止再进行换挡,避免损伤主轴的伺服马达。

1.6 准确停止 G09 (非模态指令)、G60(模态指令)
指令用途
如果在一个切削进给的程序段中有G09指令给出,则刀具接近指令位置时会减速,NC检测到位置到达信号后才会继续执行下一程序段。

这样,在两个程序段之间的衔接处刀具将走出一个非常尖锐的角,所以需要加工非常尖锐的角时可以使用这条指令。

使用G60可以实现同样的功能,G60与G09的区别就是G09是一条非模态的指令,而G60是模态的指令,即G09只能在它所在的程序段中起作用,不影响模态的变化,而G60可以在它以后的程序段中一直起作用,直到程序中出现G64为止。

1.7 G17、G18、G19 加工平面选择(模态指令)
G17: XY平面进给方向Z
G18: XZ平面进给方向Y
G19: YZ平面进给方向X
1.8 G40、G41、G42刀具半径补偿(模态指令)
格式
G0(G1)G41(G42) X… Y… Z …
解释
G40 注销刀具半径补偿
G41激活刀具半径补偿,沿着加工方向的轮廓左侧进行刀具半径补偿加工
G42 激活刀具半径补偿,沿着加工方向的轮廓右侧进行刀具半径补偿加工
X Y Z直角坐标系的终点
指令用途
有了刀具半径补偿,我们在编程时可以不要考虑太多刀具的直径大小了,刀具补偿对所有的刀具都适用,而刀具半径补偿则一般只用于铣刀类刀具。

当铣刀加工工件的外或内轮廓时,就用得上刀具半径补偿,当用端面铣刀加工工件的端面时则只需刀具长度补偿。

精加工一般采用顺铣左补偿,刀具半径补偿只能跟在G0、G1后面,半径补偿的启动和取消只能在零件外进行。

沿着刀具切削方向看,刀具在加工工件的左侧则为左补偿G41(顺铣),如果刀具在加工工件的右侧则为右补偿G42(逆铣)
1.9 G53、G153、SUPA(非模态指令) G500(模态指令)
解释
G53 以程序段方式取消当前可设定零点偏移和可编程零点偏移。

G153 和G53一样,并且抑制整个基本框架
SUPA 和G153一样,并且包括编程的偏移、手轮偏移(DRF)、外部零点偏移和 PRESET偏移
G500 取消可设定零点偏移/框架(G54到G599),直至下一次调用
指令用途
G53指令一般用于程序抑制整个基本框架如
N10 G0 G90 X10 Y10 F500 T1 返回
N20 G54 S1000 M3 ;调用第一个零点偏移,主轴右旋
N30 L1 ;调子程序
N40 G55 G0 Z200 ;调用第二个零点偏移Z,在障碍物后
N50 L1 ;调子程序
N60 G56 ;调用第三个零点偏移
N70 L1 ;调子程序
N80 G53 X200 Y300 M30 ;零点偏移抑制,程序结束
G153指令同G53
SUPA非模态指令用于暂时取消各种偏置,仅一段程序有效
N10 G0 G17 G40 G71 G90 G94;
N20 GEOAX() ;取消轴转换
N30 TRANS Z200 ;零点偏置
N40 STOPRE ;预处理停止,等待上面指令全部执行完以后再执行下面指令,防止程序发生混乱
N50 G0 SUPA Z100 ;暂时取消零点偏置,下段程序继续执行零点偏置
G500指令在没有赋值的时候为机床坐标系,可以把机床从工件坐标系转换到机床坐标系
1.10 G54~G57、G505~G599工件坐标系(模态指令)
指令用途
在加工复杂零件的时候,往往需要加工多个面,这样每个加工面都需要一个坐标系,我们现在就来讲讲坐标系是如何建立的。

首先编程人员会根据工件的图纸尺寸编出一个探测程序(在后面章节会讲探测程序),那么这里就有问题了,编程人员根据图纸编出的程序只是工件坐标系,大家应该知道工件坐标系和机床坐标系不一样,很多时候两者的原点是不重合的。

在实际加工中我们会在编程之前把工件的工装每个定位点的机床坐标系值测出来,工装是根据工件而设计的,测出了工装坐标我们就可以推出工件在机床坐标系中的位置,这样编程人员就可以顺利的编出探测程序了。

探测程序把工件的坐标探测出来,就需要赋值,举个例子在探测程序开始会清空坐标系的指令:
$P_UIFR[1]=CTRANS():CFINE()
$P_UIFR[2]=CTRANS():CFINE()
$P_UIFR[3]=CTRANS():CFINE()
$P_UIFR[4]=CTRANS():CFINE()
表示把G54~G57中的Coarse和Fine中的值全部清0,如图
在探测程序中会有个赋值,这个赋值就是把工件原点探测出来后,用机床坐标系表示,即零点偏移。

什么叫零点偏移,比如说工件坐标系原点在机床坐标系中探出的值为(200,200,200),那么我们只需要把Coarse中的值对应的改为200 200 200即可,这时候机床坐标系的原点和工件原点重合,在这里简单的体一下,下面的章节再具体讲解。

1.11 G64/G641 连续路径加工(模态指令)
指令用途
即刀具在程序段的终点不减速而执行下个程序段(轮廓加工,无速度减小)改变运动方向时,该功能是程序段平稳过渡,从而在拐角处可实现平滑过渡。

当进给率为试运行进给率时,G64使得在程序段运行中和程序结束时都使用试运行进给率,而不是用编程进给率。

一般加工模具时,或是加工曲线轮廓时用.
1.12 G70/G71/G700/G710英制/公制(模态指令)
解释
G70 英制尺寸说明 (长度 [inch])
G71 公制尺寸说明 (长度 [mm])
G700 英制尺寸说明 (长度 [inch]; 进给 [inch/min]
G710 公制尺寸说明 (长度 [mm]; 进给 [mm/min])
1.13 G90/G91绝对/增量尺寸(模态指令)
解释
G90是绝对尺寸输入,所有数据对应于实际工件零点。

可用AC=()表示
G91是增量尺寸输入,每一尺寸对应于上一个轮廓点。

可用IC=()表示
编程实例
G91增量尺寸编程
N10 G0 X10 Y15
N20 X=IC(35) Y=IC(10)
N30 Y=IC(25)
N40 M30
G90 绝对尺寸编程
N10 G0 X10 Y15
N20 X=AC(45) Y=AC(25)
N30 Y=AC(50)
N40 M30
1.14 G94/G95 进给单位(模态指令)
解释
G94 进给速度的单位为mm/min
G95 进给速度的单位为mm/r
1.15 G110、G111、G112极坐标(非模态指令)
格式
G110、G111或G112 X… Y…Z…
G110、G111或G112 AP=… RP=…
利用极坐标进行运动编程
G0 AP=… RP=…
G1 AP=… RP=…
G2 AP=… RP=…
G3 AP=… RP=…
解释
G110极坐标尺寸,参考上一点坐标的位置
G111极坐标尺寸,在工件坐标系中的绝对尺寸
G112极坐标尺寸,参考上一次设定的有效极点
AP=…极角,角度取值范围为0~360º,角度参考垂直于工件平面的轴RP=…极半径(单位可以为inch或mm)
编程实例
N10 G0 G17 G40 G71 G90 G94
N20 G111 X43 Y38 ;极坐标
N30 G0 RP=30 AP=18 Z6
N40 L1 ;加工子程序
N50 AP=IC(72)
N60 L1
N70 AP=IC(72)
N80 L1
N90 AP=IC(72)
N100 L1
N110 AP=IC(72)
N120 L1
N130 G0 G53 Z60 M5
N140 M30
1.16 FRAME框架指令(非模态指令):
可编程零点偏置TRANS ATRANS,可编程的旋转,ROT,AROT,可编程的比例因子,SCALE,ASCALE,可编程的镜像,MIRROR,AMIRROR
TRANS/ATRANS常常被用于对于在指定轴的方向上所有路径轴与位置轴的平移编程。

这个指令允许你用不同的零点操作,例如在工件的不同位置重复相同的加工过程。

如图要加工一个孔,而孔的圆心不在原点
这时候我们可以用TRANS指令
N10 G0 G17 G40 G71 G90 G94
N20 TRANS X15 Y40 ;零点偏移
N30 G0 X0 Y0 Z6 M3 ;(15,40)被偏移为原点(0,0)
N40 L1 ;加工子程序
N50 G0 Z6 M5
N60 TRANS ;取消零点偏移
N70 M30
ATRANS为附加的零点偏移,即上面程序段中出现框
架指令(TRANS,ROT,SCALE,MIRROR)的一个,则用
ATRANS,表示在上个框架指令的基础上本指令继续
执行,同理AROT,ASCALE,AMIRROR用法也一样。

ROT RPL=…平面内选择
N10 G0 G17 G40 G71 G90 G94
N20 TRANS X20 Y10 ;零点偏移
N30 L1 ;子程序调用
N40 TRANS X55 Y35 ;零点偏移
N50 AROT RPL=45 ;坐标系旋转45°角
N60 L1 ;子程序调用
N70 TRANS X20 Y40 ;零点偏移
N80 AROT RPL=60 ;增量旋转60°角
N90 L1 ;子程序调用
N100 TRANS ;取消零点偏移和旋转指令
N110 G0 G53 Z6 M5 M30
N120 M30
空间旋转
N10 G0 G17 G40 G71 G90 G94
N20 TRANS X10 Y10 ;零点偏移
N30 L1 ;子程序调用
N40 ATRANS X35 ;附加零点偏移
N50 AROT Y30 ;关于Y轴旋转
N60 ATRANS X5 ;附加零点偏移
N70 L1 ;子程序调用
N80 TRANS ;取消零点偏移和旋转指令
N90 M30
各轴旋转顺序如右图
区别:
ROT X-90 Z45和ROT X-90 AROT Z45的区别
ROT X-90 Z45为坐标系绕X逆时针旋转90度,绕Z顺时针旋转45度。

注意此时绕的Z轴是机床的实际Z轴
ROT X-90 AROT Z45为坐标系绕X逆时针旋转90度后绕Z顺时针旋转45度。

这里绕的Z轴为机床的实际Y轴,因为ROT X-90时
已经把Z轴转换为Y轴了
SCALE,ASCALE
N10 G0 G17 G40 G71 G90 G94
N20 TRANS X15 Y15 ;零点偏移
N30 L1 ;加工大型腔
N40 TRANS X40 Y20 ;零点偏移
N50 AROT RPL=35 ;工件平面旋转35°角
N60 ASCALE X0.7 Y0.7 ;小型腔的比例因子
N70 L1 ;加工小型腔
N80 G0 Z6 M5 M30
N90 ROT ;取消零点偏移、旋转比例缩放指令
N100 M30
MIRROR,AMIRROR
N10 G0 G17 G40 G71 G90 G94
N20 L1 ;加工第一个轮廓,右上角
N30 MIRROR X0 ;关于Y轴镜像,对于X轴方向相反
N40 L1 ;加工第二个轮廓,左上角
N50 AMIRROR Y0 ;关于X轴镜像,对于Y轴方向相反
N60 L1 ;加工第三个轮廓,左下角
N70 MIRROR Y0 ;关于X轴镜像,对于Y轴方向相反
N80 L1 ;加工第四个轮廓,右下角
N90 MIRROR ;注销镜像
N100 G0 G53 Z6 M5
N110 M30
1.17 辅助功能和部分指令
辅助功能
M0 程序停止
M1 程序选择停止
M2 程序结束
M3 主轴正转
M4 主轴反转
M5 主轴停止
M7 2号切削液开
M8 1号切削液开
M9 切削液关
M17 子程序结束
M30 程序结束
M41 低速档
M42 高速档
其他功能
GEOAX() :取消轴转换
其格式如下:
GEOAX(N,CHANNEIAXIS,N, CHANNEIAXIS....)
N:所需转换的轴号
CHANNEIAXIS:通道轴
例:GEOAX(1,XX,2,YY)
将通道XX转换为第一轴(X轴)
将通道YY转换为第二轴(Y轴)
SPOS=…主轴定位(度)
STOPRE 预处理停止,等待上面指令全部执行完以后再执行下面指令,防止程序发生混乱
MCALL 模态子程序调用
ABS 绝对值
G1 X… Y…CHF=…
轮廓角倒棱值 = 倒角的长度(由G70/G71确定测量单位)
G1 X… Y…CHR=…
轮廓角倒棱。

在初始运动方向上的倒角编程。

值 = 运动方向中的倒角宽度(测量单位同上)
G1 X… Y…RND=…
轮廓角倒圆,值 = 圆的半径(尺寸单位符合 G70/G71)
G1 X… Y…RNDM=…
模态倒圆:以同样方法对几个连续轮廓角进行倒圆,值 = 圆的半径(尺寸单位符合 G70/G71)
FRC=… 倒角/倒圆的非模态进给率,值 = 进给率单位毫米/分钟(G94)或毫米/转(G95);FRC > 0 FRCM=… 倒角/倒圆的模态进给率,值 = 进给率单位毫米/分钟(G94)或毫米/转(G95)
1.18算术参数R与程序跳转GOTO
算术参数R
程序格式
Rn=……
参数说明
R:算术参数
n:算术参数号,n=0到最大。

最大数见机床数据或机床生产厂家的设置。

缺省设置:最大为99。

注:R参数号在机床数据中设置,或者见机床生产厂家的技术要求。

功能
使用算术参数,例如,如果NC程序不仅对于分配的值有效,或如果需要计算值,所需值在程序执行期间可由控制系统设置或计算,其它可能性包括通过操作设置算术参数值,如果值已分配给算术参数,那么它们也可分配给程序中别的NC地址。

这些地址值应该是可变的。

值的分配
你可在下列范围内把值分配给算术参数:
±0.0000001~99999999
注意:一个程序段内可以有若干个R参数或多个表达式的分配。

值的分配必须在1个独立的程序段中进行。

分配给别的地址
NC程序的灵活性在于利用算术参数把这些算术参数或表达式分配给别的NC地址。

值、表达式及算术参数可分配给所有(除了N、G、L之外)地址。

分配时,字符“=”写在地址字符后面,也可选用符号分配,分配给轴地址要求在独立的程序段。

例如:N10 G0 X=R2;分配给X轴
程序举例
1、R参数
N10 R1=R1+1 ;新的R1从旧的R1加1得出
N20 R1=R2+R3 R4=R5-R6 R7=R8*R9 R10=R11/R12
N30 R13=SIN(25.3) ;R13等于25.3度的正弦
N40 R14=R1*R2+R3 ;乘在加或减之前运算,R14=(R1*R2)+R3
N50 R14=R3+R2*R1 ;结果与程序段N40相同
N60 R15=SQRT(R1*R1+R2*R2) ;R15=R1*R1+R2*R2的平方根。

2、分配轴值
N10 G1 G91 X=R1 Z=R2 F300
N20 Z=R3
N30 X=-R4
N40 Z=-R5
……
无条件程序跳转
程序格式
LABEL:
GOTOB LABEL
或GOTOF LABEL
LABEL:
参数说明
GOTOB:带向后跳转目的的“跳转指令”(向程序开头)
GOTOF:带向前跳转目的的“跳转指令”(向程序结尾)
LABEL:目的(程序内标号)
LABEL::跳转目的;冒号后面的跳转目的名
程序举例
N10……
N20 GOTOF MARKE_0 ;向程序结尾MARKE_0
N30……
N40……
N50 MARKE_1:R1=R2+R3
N60……
N65 GOTOF MARKE_2 ;向程序结尾MARKE_2
N70……
N80……
N90 MARKE_0:
N100……
N110 GOTOB MARKE_1 ;向程序开头MARKE_1
N115……
N120 MARKE_2:
N130……
有条件程序跳转
程序格式
LABEL:
IF 算术表达式GOTOB LABEL

IF 算术表达式GOTOB LABEL
LABEL:
参数说明
IF:条件关键字
GOTOB:带向后跳转目的的“跳转指令”(向程序开头)
GOTOF:带向前跳转目的的“跳转指令”(向程序结尾)
LABEL:目的(程序内标号)
LABEL::跳转目的;冒号后面的跳转目的名
==:等于
<>:不等于
>:大于
<:小于
>=:大于或等于
<=:小于或等于
<<:字符串
功能
跳转条件可以利用IF指令公式化,如果跳转条件满足,就可以执行跳转到编程跳转的目的点。

操作顺序
跳转条件可以利用任何对比或逻辑操作来编程(结果:真或假)。

如果操作结果为真,那么程序跳转就可以执行。

若干有条件跳转就可以在执行同一个程序段内公式化。

跳转条件示例
IF R1>R2 GOTOF MARKE1;如果R1大于R2,则跳转到MARKE1
IF R7<=(R8+R9)*743 GOTOB MARKE1;作为条件的复合表达式
IF R10 GOTOF MARKE1;允许确定一个变量(INT,REAL,BOOL或CHAR)。

如果变量值为0(=假),条件就不能满足;对于所有其它值,条件为真。

IF R1==0 GOTOF MARKE1 IF R1==1 GOTOF MARKE2;同意程序段中的几个条件。

程序举例
N10 R1=30 R2=60 R3=10 R4=11 R5=50 R6=20 ;初始值的分配
N20 MA1:G0 X=R2*COS(R1)+R5 Y=R2*SIN(R1)+R6 ;计算并分配给轴地址
N30 R1=R1+R3 R4=R4-1 ;变量确定
N40 IF R4>0 GOTOB MA1 ;向程序开头跳转
N50 M30;程序结束
1.19子程序
什么是子程序
原理上,子程序的结构与零件程序相同。

基本上子程序与主程序没有什么区别,子程序包含将执行若干次的加工操作。

使用子程序
重复的加工操作在子程序中编程一次。

图示包括某些重复出现的轮廓形状及加工循环。

子程序可以调用并可在任何主程序中执行。

子程序结构
子程序的结构与主程序相同,唯一的区别是子程
序用M17指令表示程序结束,这表示返回子程序调出
的程序级。

说明
允许在机床数据中表达程序结束M17(如可获得
较好的运行时间。


利用RET表示程序结束
子程序也可以利用结束语句RET代替M17表示程
序结束,RET必须在单独的程序段内编程。

当G64连
续轨迹方式不能通过返回中断时可使用RET语句,M17可使G64中断并执行准停。

纠正:M17不要写入它自己的子程序段,应利用运动轨迹来取代它:G1 X=YY M17必须设置在机床数据中:“PLC”
子程序名
子程序给出1个名字,并允许它从别的之中选择,编制程序时名称可以随意选择,但应注意:
1.开头两个字符必须是字母
2.其它可以是字母,数字或下划线字符
3.最多可以使用31个字符
4.分隔符不能使用,使用原则与主程序名相同。

例如:
N10 POCKET1
另外,子程序允许使用地址子L…,数据有7位数(仅为整数)。

注:L01与L1不同。

嵌套深度
子程序也可以从子程序中调用,不仅是从主程序中调用。

此种嵌套调用形式最多可使用12个程序
级,包括主程序级。

这表示:可以从主程序发出至多11次嵌
套子程序调用。

注:如果你利用SIEMENS加工与测量循环
工作,那么需要3级,如果循环从子程序调用,
此次调用不能从9级之外发出。

子程序调用
利用地址L及子程序号或通过子程序名在
主程序中调用子程序。

例如:
N120 L100
调用主程序作为子程序
主程序也可以作为子程序调用。

在这种情
况下设置在主程序中的程序结束M30按M17处
理。

子程序调用必须在一个单独的NC程序段中编程。

子程序的重复调用,P
如果一个子程序被连续执行几次,那么要求的程序重复数就可以通过子程序调用输入程序段中的地址P上。

例:N40 FRAME P3
子程序FRAME必须连续执行3次。

取值范围P:1~9999
1.20程序段重复REPEATB与REPEAT
功能
与子程序技术相比,程序段重复允许在任何组合中进行现有程序段的重复,需要重复的程序段利用标号识别。

编程格式
重复程序段
LABEL:xxx
yyy
REPEATB LABEL P=n
zzz
用标号识别的程序段被重复,P=n次。

如果P未被确定,那么程序段只能重复一次。

最后一次重复之后,程序在REPEATB 行后的zzz行上继续运行。

用标号识别的程序段可以在REPEATB语句前后出现。

搜索指向程序开头,如果在此方向上未找到标号,那么搜索继续朝向程序结尾。

程序举例
位置重复
N10 POSITION1:X10 Y20
N20 POSITION:CYCLE(0,9,8);位置循环
N30 ……
N40 REPEATB POSITION1 P=5;执行程序段N10五次
N50 REPEATB POSITION2;执行程序段N20一次
N60 ……
N70 M30
编程
标号上的重复区开始
LABEL:xxx
yyy
REPEAT LABEL P=n
zzz
带有名字与RAPEAT语句的标号之间的程序段被重复P=n次。

如果带有标号的程序段包含别的语句,那么在每次重复时将被再次重复。

如果P未被确定,那么程序段只能重复一次。

最后一次重复之后,程序在REPEATB行后的zzz行上继续运行。

标号必须出现在REPEATB语句之前,搜索只指向程序开头。

两个标号之间的重复区
START_LABEL:xxx
ooo
END_LABEL:yyy
ppp
REPEAT START_LABEL END_LABEL P=n
zzz
两个标号之间的区域被重复n次,用户指定名可以分配给标号。

重复的第1行包含开始编号,最后1行包含结束标号。

如果两个标号之间的行含有别的重复语句,那么它们将被再次执行。

如果P未被确定,那么程序段只能重复一次。

最后一次重复之后,程序在REPEATB行后的zzz行上继续运行。

需要重复的程序段可以出现在REPEAT语句前后。

搜索指向程序开头,如果在此方向上未找到标号,那么搜索继续朝向程序结尾。

不允许在括号内用两个标号嵌套REPEAT语句。

如果开始标号在REPEAT语句前面发现,并且结束标号不在REPEAT语句前面,那么在开始标号与REPEAT语句之间执行重复。

在标号与结束标号之间的重复区
LABEL:xxx
ooo
ENDLABEL:yyy
REAPEAT LABEL P=n
zzz
ENDLABEL是带有固定名字的预定标号,ENDLABEL表示程序段结束并且在程序中可以使用多次。

使用前提
1.程序段重复可以嵌套,每次调用使用一个子程序级。

2.如果M17或RET在程序段重复处理期间被编程,那么重复中止。

程序在REPEAT 行后的程序段上恢复。

3.在实际程序显示中,程序段重复作为一个独立的子程序级显示。

4.如果在程序段重复期间被注销,那么程序就在程序段重复调用之后的位置恢复。

例:
N5 R10=15
N10 BEGIN:R10=R10+1
N20 Z=10-R10
N30 G1=X=R10 F200
N40 Y=R10;注销级
N50 X=-R10
N60 Y=-R10
N70 END:Z10
N80 Z10
N90 CYCLE(10,20,30)
N100 REPEAT BEGIN END P=3
N120 Z10;恢复程序处理
N130 M30
5.控制结构与程序段重复可以联合使用,二者之间不会覆盖。

程序段重复应该出现在控制结构分支中,或者控制结构应出现在程序段重复中。

6.如果跳转与程序段重复混合,那么程序段只能依次执行。

第二章测量与赋值
在实际加工中,我们需要知道工件在机床中的坐标值,而坐标值就是通过探针的探测而得来的,那么探测程序就显得很重要了,探测程序里就需要测量参数了,首先我们从测量循环讲起
2.1测量循环概要CYCLE977 、CYCLE978
CYCLE961 工件:建立内角和外角
CYCLE971 铣刀,校准刀具测量头的刀具测量
CYCLE976 测量头在一个钻孔或一个面上的校准
CYCLE977 工件:钻孔,轴,导槽,隔片的测量或者与轴平行的零点位移计算
CYCLE978 工件: 1 点测量或者在面上的零点位移计算
CYCLE979 工件:钻孔,轴,导槽,隔片的测量或者角度的零点位移计算
CYCLE996 工件:运动测量
CYCLE997 工件:球的测量或者零点位移计算
CYCLE998 工件:角度的测量(只是零点位移计算)
本书重点介绍CYCLE977和CYCLE978
CYCLE977 工件: 钻孔/轴/槽/隔片/矩形的轴向平行测量
功能
使用测量循环时可以通过采用不同的测量方案计算出工件下列轮廓元件的尺寸:
●钻孔
●轴
●槽
●隔片
●矩形内部
●矩形外部
CYCLE978 工件: 测量轴向平行的平面
功能
该测量循环可以测出工件坐标系中轴向平行平面的位置。

这通过1 点测量来实现。

在测量结果的基础上可以根据所选的测量方案,此外
●为刀具进行自动的刀具补偿或者
●对零点偏移(NV)进行补偿。

探测参数讲起来很复杂,读者很难明白,如果读者能结合探测程序的话,学习本章就很容易看懂。

现在我们就从实际加工案例讲起,首先向读者介绍一下测量循环参数分类:供给参数和结果参数
2.2供给参数
(1)测量方案: _MVAR
测量循环CYCLE978 允许以下在参数_MVAR 上规定的测量方案。

值测量方案
0平面测量和刀具补偿
100平面上的NV 测定和NV 校正
1000带有差值测量和刀具补偿的平面测量
1100带有差值测量和NV 校正的平面上NV 测定
测量循环CYCLE977 允许以下在参数_MVAR 上规定的变量测量。

用法举例
加工中最常见的就是孔与面了那么在探孔CYCLE977中参数_MVAR=1带刀具补偿的钻孔测量,在测侧面CYCLE978中_MVAR=0平面测量和刀具补偿.
(2)测量轴的编号: _MA
在一些循环或者测量方案中通过 _MA 给定测量轴号码 1、2 或 3。

这可能是工件坐标系中的
X、Y 或者 Z 轴,视被激活的 G17、G18 或者 G19 而定。

测量轴横坐标 _MA = 1
测量轴纵坐标 _MA = 2
测量轴垂直坐标 _MA = 3
(3)补偿号码: _KNUM
用于零点偏移的 _KNUM 详细说明:。

相关文档
最新文档