数控宏程序实例-推荐下载

合集下载

数控机床宏程序编程的技巧和实例

数控机床宏程序编程的技巧和实例

数控机床宏程序编程的技巧和实例第一篇:数控机床宏程序编程的技巧和实例论文:数控机床宏程序编程的技巧和实例2011年8月11日前言随着工业技术的飞速发展,产品形状越来越复杂,精度要求越来越高,产品更新换代越来越快,传统的设备已不能适应新要求。

现在我国的制造业中已广泛地应用了数控车床、数控铣床、加工中心机床、数控磨床等数控机床。

这些先进设备的加工过程都需要由程序来控制,需要由拥有高技能的人来操作。

要发挥数控机床的高精度、高效率和高柔性,就要求操作人员具有优秀的编程能力。

常用的编程方法有手工编程和计算机编程。

计算机编程的应用已非常广泛。

与手工编程比较,在复杂曲面和型腔零件编程时效率高、质量好。

因此,许多人认为手工编程已不再重要,特别是比较难的宏程序编程也不再需要。

只须了解一些基本的编程规则就可以了。

这样的想法并不能全面。

因为,计算机编程也有许多不足:1、程序数据量大,传输费时。

2、修改或调整刀具补偿需要重新后置输出。

3、打刀或其他原因造成的断点时,很难及时复位。

手工编程是基础能力,是数控机床操作编程人员必须掌握的一种编程方法。

手工编程能力是计算机编程的基础,是刀具轨迹设计,轨迹修改,以及进行后置处理设计的依据。

实践证明,手工编程能力强的人在计算机编程中才能速度快,程序质量高。

在程序中使用变量,通过对变量进行赋值及处理使程序具有特殊功能,这种有变量的程序叫宏程序。

宏程序是数控系统厂家面向客户提供的的二次开发工具,是数控机床编程的最高级手工方式。

合理有效的利用这个工具将极大地提升机床的加工能力。

作为一名从事数控车床、数控铣床、加工中心机床操作编程二十多年的技师,在平时的工作中,常常用宏程序来解决生产中的难题,因此对宏程序的编程使用积累了一些经验。

在传授指导徒弟和与同事探讨中,总结了许多学习编制宏程序应注意的要点。

有关宏编程的基础知识在许多书籍中讲过,我们在这里主要通过实例从编制技巧、要点上和大家讨论。

一、非圆曲面类的宏程序的编程技巧1、非圆曲面可以分为两类;(1)、方程曲面,是可以用方程描述其零件轮廓的曲面的。

数控车床宏程序案例

数控车床宏程序案例

烟台机电工业学校数控车床宏程序案例教学由浅入深宏程序数控车床旋转正弦函数宏程序正弦函数曲线旋转宏程序坐标点旋转1s = x cos(b) – y sin(b)t = x sin(b) + y cos(b)根据下图,原来的点(#1,#2),旋转后的点(#4,#5),则公式:#4=#1*COS[b]- #2*SIN[b]#5=#1*SIN[b]+ #2*COS[b]公式中角度b,逆时针为正,顺时针为负。

下图中正弦曲线如果以其左边的端点为参考原点,则此条正弦曲线顺时针旋转了16度,即b=-161烟台机电工业学校数控车床宏程序案例教学正弦函数旋转图纸1此正弦曲线周期为24,对应直角坐标系的360对应关系【0,360】y=sin(x)【0,24】y=sin(360*x/24)可理解为:360/24是单位数值对应的角度360*x/24是当变量在【0,24】范围取值为x时对应的角度sin(360*x/24)是当角度为360*x/24时的正弦函数值旋转正弦函数曲线粗精加工程序如下:T0101M3S800G0X52Z5#6=26工件毛坯假设为50mm,#6为每层切削时向+X的偏移量。

N5G0X[#6+18.539]G1Z0F0.12烟台机电工业学校数控车床宏程序案例教学#1=48N10#2=sin【360*#1/24】#4=#1*COS[-16]-#2*SIN[-16]旋转30度之后对应的坐标值#5=#1*SIN[-16]+#2*COS[-16]#7=#4-【50-3.875】坐标平移后的坐标。

#8=45+2*#5+#6G1X[#8]Z[#7]F0.1沿小段直线插补加工递减0.5,此值越小,工件表面越光滑。

#1=#1-0.5。

条件判断是否到达终点100]GOTO IF[#1GEZ-50G1X52直线插补切到工件外圆之外G0Z5#6=#6-2IF[#6GE0]GOTO5G0X150Z150M5M30镂空立方体宏程序范例镂空立方体图纸及宏程序范例此零件六个面加工内容相同,在加工时,调面装夹时要注意考虑夹紧力。

数控车床由浅入深的宏程序实例

数控车床由浅入深的宏程序实例

宏程序裳华职业技术中专鲍新涛宏程序概述其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会白动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用。

.宏一般分为A类宏和B类宏。

A类宏是以G65HxxP#xxQ#xxR#xx的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广。

丁―、' I I I I, I_________________________________________________________________________________________________________ 二 _________________ I I-. !_1 : ____________________________________________ 宏程序的作用数控系统为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。

宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的曲线编程;适合图形一样,只是尺寸不同的系列零件的编程;适合工艺路径一样,只是位置参数不同的系列零件的编程。

较大地简化编程;扩展应用范围。

宏的分类B类宏由于现在B类宏程序的大量使用,很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如发那科(FANUC) OTD系统中由于它的MDI键盘上没有公式符号,连最简单的等于号都没有,为此如果应用B类宏程序的话就只能在计算机上编好再通过RSN-32接口传输的数控系统中,可是如果我们没有PC机和RSN-32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了,下面我介绍一下A类宏的引用;A 类宏A类宏是用G65HxxP#xxQ#xxR#xx或G65HxxP#xxQxxRxx格式输入的,xx的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1MM.#xx就是变量号,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量,一般OTD系统中有#0~#100~#149~#500~#531关闭电源时变量#100~#149被初始化成空”,而变量#500~#531保持数据.我们如果说#100=30那么现在#100地址内的数据就是30 了,就是这么简单.好现在我来说一下H代码,大家可以看到A类宏的标准格式中#xx和xx都是数值,而G65表示使用A类宏,那么这个H就是要表示各个数值和变量号内的数值或者各个变量号内的数值与其他变量号内的数值之间要进行一个什么运算,可以说你了解了H代码A类宏程序你基本就可以应用了,好,现在说一下H代码的各个含义:应用以下都以#100和#101和#102,及数值10和20做为例子,应用的时候别把他们当格式就行,基本指令H01赋值;格式:G65H01P#101Q#102把#102内的数值赋予到#101中G65H01P#101Q#10把#10 赋予到#101 中H02加指令;格式G65H02P#101Q#102R#103把#102的数值加上#103的数值赋予#101 G65H02P#101Q#102R10G65H02P#101Q10R#103G65H02P#101Q10R20上面4个都是加指令的格式都是把Q后面的数值或变量号内的数值加上R后面的数值或变量号内的数值然后等于到P后面的变量号中.H03减指令;格式G65H03P#101Q#102R#103把#102的数值减去#103的数值赋予#101 G65H03P#101Q#102R10G65H03P#101Q10R#103G65H03P#101Q20R10上面4个都是减指令的格式都是把Q后面的数值或变量号内的数值减去R后面的数值或变量号内的数值然后等于到P后面的变量号中.H04乘指令;格式G65H04P#101Q#102R#103把#102的数值乘上#103的数值赋予#101 G65H04P#101Q#102R10G65H04P#101Q10R#103G65H04P#101Q20R10上面4个都是乘指令的格式都是把Q后面的数值或变量号内的数值乘上R后面的数值或变量号内的数值然后等于到P后面的变量号中.H05除指令;格式G65H05P#101Q#102R#103把#102的数值除以#103的数值赋予#101 G65H05P#101Q#102R10G65H05P#101Q10R#103G65H05P#101Q20R10上面4个都是除指令格式都是把Q后面的数值或变量号内的数值除以R后面的数值或变量号内的数值然后等于到P后面的变量号中.(余数不存,除数如果为0的话会出现112报警)三角函数指令H31SIN正玄函数指令:格式G65H31P#101Q#102R#103含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*SIN#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值.H32COS余玄函数指令:格式G65H32P#101Q#102R#103含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*COS#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值.H33和H34本来应该是TAN和ATAN的可是经过我使用得数并不准确,希望有知道的人能够告诉我是为什么?升平方根指令H21;格式G65H21P#101Q#102意思是把#102内的数值开了平方根然后存到#101中(这个指令是非常重要的如果在车椭圆的时候没有开平方根的指令是没可能用宏做到的. 无条件转移指令H80;格式:G65H80P10直接跳到第10程序段有条件转移指令H81H82H83H84H85H86,分别是等于就转的H81;不等于就转的H82;小于就转的H83; 大于就转的H84;小于等于就转的H85;大于等于就转的H86;格式:G65H8xP10Q#101R#102将#101内的数值和#102内的数值相比较,按上面的H8x 的码带入H8x中去,如果条件符合就跳到第10程序段,如果不符合就继续执行下面的程序段.4B类宏程序定义能完成某一功能的一系列指令像子程序那样存入存储器,用户可以设定M、S、T、G代码调用它们,使用时只需给出这个指令代码就能执行其功能,也可以像调用子程序一样使用。

华中数控铣床宏程序实例

华中数控铣床宏程序实例
#4=35*COS[#0*PI/180]
G18G01X[#2]Z[#3]
#5=#2
WHILE#5GE2
G17G01X[#5]
#6=0
WHILE#6LT360
#7=#5*COS[#6*PI/180]
#8=#4*SIN[#6*PI/180]
G01X[#7]Y[#8]
#6=#6+1ENDW
#5=#5+5
ENDW
G54G00X0Y0Z50
M3S1500
Z3
G01Z0F250
#1=90
WHILE#1GE0
#2=30*COS[#1*PI/180]
#3=30*SIN[#1*PI/180]-30
G18G01X[#2]Z[#3]
#4=#2
WHILE#4LT43
G17X[#4]
G02I[-#4]
#4=#4+5
ENDW
G01X[-#2]
Z5
G01Z0F250
#1=180
WHILE#1LT270
#2=30*COS[#1*PI/180]
#3=30*SIN[#1*PI/180]
G18G01X[#2]Z[#3]
#4=#2
WHILE#4GE0
G17G01X[#4]
G02I[-#4]
#4=#4-5
ENDW
G01X[#2]
#1=#1+1
ENDW
G00Z50
M30
(精铣)
G54G00X0Y0Z50
M03S1500
Z5
G01Z0F250
#1=180
WHILE#1LT270
#2=30*COS[#1*PI/180]
#3=30*SIN[#1*PI/180]

数控车床宏程序实例

数控车床宏程序实例

宏程序概述其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用。

.宏一般分为A类宏和B类宏。

A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广。

宏程序的作用数控系统为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。

宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的曲线编程;适合图形一样,只是尺寸不同的系列零件的编程;适合工艺路径一样,只是位置参数不同的系列零件的编程。

较大地简化编程;扩展应用范围。

宏的分类B类宏由于现在B类宏程序的大量使用,很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如发那科(FANUC)OTD系统中由于它的MDI键盘上没有公式符号,连最简单的等于号都没有,为此如果应用B类宏程序的话就只能在计算机上编好再通过RSN-32接口传输的数控系统中,可是如果我们没有PC机和RSN-32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了,下面我介绍一下A类宏的引用;A类宏A类宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式输入的,xx 的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1MM.#xx就是变量号,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量,一般OTD系统中有#0~#100~#149~#500~#531.关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据.我们如果说#100=30那么现在#100地址内的数据就是30了,就是这么简单.好现在我来说一下H代码,大家可以看到A类宏的标准格式中#xx和xx都是数值,而G65表示使用A类宏,那么这个H就是要表示各个数值和变量号内的数值或者各个变量号内的数值与其他变量号内的数值之间要进行一个什么运算,可以说你了解了H代码A类宏程序你基本就可以应用了,好,现在说一下H代码的各个含义:应用以下都以#100和#101和#102,及数值10和20做为例子,应用的时候别把他们当格式就行,基本指令H01赋值;格式:G65H01P#101Q#102:把#102内的数值赋予到#101中G65H01P#101Q#10:把#10赋予到#101中H02加指令;格式G65 H02 P#101 Q#102 R#103,把#102的数值加上#103的数值赋予#101G65 H02 P#101 Q#102 R10G65 H02 P#101 Q10 R#103G65 H02 P#101 Q10 R20上面4个都是加指令的格式都是把Q后面的数值或变量号内的数值加上R后面的数值或变量号内的数值然后等于到P后面的变量号中.H03减指令;格式G65 H03 P#101 Q#102 R#103,把#102的数值减去#103的数值赋予#101G65 H03 P#101 Q#102 R10G65 H03 P#101 Q10 R#103G65 H03 P#101 Q20 R10上面4个都是减指令的格式都是把Q后面的数值或变量号内的数值减去R后面的数值或变量号内的数值然后等于到P后面的变量号中.H04乘指令;格式G65 H04 P#101 Q#102 R#103,把#102的数值乘上#103的数值赋予#101G65 H04 P#101 Q#102 R10G65 H04 P#101 Q10 R#103G65 H04 P#101 Q20 R10上面4个都是乘指令的格式都是把Q后面的数值或变量号内的数值乘上R后面的数值或变量号内的数值然后等于到P后面的变量号中.H05除指令;格式G65 H05P#101 Q#102 R#103,把#102的数值除以#103的数值赋予#101G65 H05 P#101 Q#102 R10G65 H05 P#101 Q10 R#103G65 H05 P#101 Q20 R10上面4个都是除指令格式都是把Q后面的数值或变量号内的数值除以R后面的数值或变量号内的数值然后等于到P后面的变量号中.(余数不存,除数如果为0的话会出现112报警)三角函数指令H31 SIN正玄函数指令:格式G65 H31 P#101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*SIN#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值.H32 COS余玄函数指令:格式G65 H32 P#101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*COS#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值.H33和H34本来应该是TAN 和ATAN的可是经过我使用得数并不准确,希望有知道的人能够告诉我是为什么?开平方根指令H21;格式G65 H21 P#101 Q#102 ;意思是把#102内的数值开了平方根然后存到#101中(这个指令是非常重要的如果在车椭圆的时候没有开平方根的指令是没可能用宏做到的.无条件转移指令H80;格式:G65 H80 P10 ;直接跳到第10程序段有条件转移指令H81 H82 H83 H84 H85 H86 ,分别是等于就转的H81;不等于就转的H82;小于就转的H83;大于就转的H84;小于等于就转的H85;大于等于就转的H86;格式:G65 H8x P10 Q#101 R#102;将#101内的数值和#102内的数值相比较,按上面的H8x的码带入H8x中去,如果条件符合就跳到第10程序段,如果不符合就继续执行下面的程序段.4B类宏程序定义能完成某一功能的一系列指令像子程序那样存入存储器,用户可以设定M、S、T、G代码调用它们,使用时只需给出这个指令代码就能执行其功能,也可以像调用子程序一样使用。

数控宏程序编制两例

数控宏程序编制两例

数控宏程序编制两例数控宏程序是一种通过编辑代码来控制数控机床进行自动加工的程序。

宏程序可以重复使用,可以提高生产效率和加工精度,且可以自动完成编程过程。

下面将介绍两个数控宏程序编制的例子:1. 零件加工宏程序该宏程序适用于零件的加工,需先测量零件尺寸,并依据测量结果编写数控宏程序。

以轴套为例,宏程序如下:O0001;(宏程序的名称)G10L20P1X10Y20Z30;(设定工具长度、直径及坐标轴位置)T1;(选择工具)M03S1000;(主轴正转并设定转速)G01X0Z0F100;(工件坐标轴归零)G00X-20;(工件坐标轴回原点)G01X-15Z-10;(以100 的进给速率和深度,向工件进给加工)G01X-10;(向工件进给加工)G00X0Z0F100;(以快速进给回到原点位置)M05;(主轴停止)通过以上程序,机床可以自动进行轴套加工,增加了生产效率,又避免了因人为因素引起的误差。

2. 零件检测宏程序该宏程序适用于零件的检测,可以快速高效地检查零件尺寸是否合格。

以零件平面度检测为例,宏程序如下:O0002;(宏程序的名称)G10L20P1X10Y20Z30;(设定工具长度、直径及坐标轴位置)T2;(选择工具)M03S1000;(主轴正转并设定转速)G01X0Z0F100;(工件坐标轴归零)G00X-20;(工件坐标轴回原点)G01X-10Z-3;(以 50 的进给速率和深度,向工件进给检测)G00X0Z0F100;(以快速进给回到原点位置)M05;(主轴停止)IF[#2 LT 0.01]GOTO5;(IF 判断语句,如果测量值小于 0.01 mm,跳转到标记 5)G01X10Z-3;(以 50 的进给速率和深度,向工件进给检测)G00X0Z0F100;(以快速进给回到原点位置)M05;(主轴停止)通过以上程序,机床可以自动进行零件平面度的检测,并根据实际情况跳转到不同的位置进行处理。

总之,数控宏程序可以方便快捷地控制数控机床进行自动加工和检测,极大提高了生产效率和加工精度。

数控机床宏程序编程实例FANUC

数控机床宏程序编程实例FANUC

数控机床宏程序编程实例相关知识:用户宏程序是以变量的组合,通过各种算术和逻辑运算,转移和循环等命令,而编制的一种可以灵活运用的程序,只要改变变量的值,即可以完成不同的加工和操作。

用户宏程序可以简化程序的编制,提高工作效率。

宏程序可以像子程序一样用一个简单的指令调用。

宏程序分为A、B两类。

在一些较老的数控系统中采用A类宏程序,而现在常用的一些较为先进的数控系统中则采用B类程序。

本书主要介绍B类宏程序。

(一)变量在常规程序中,总是将一个具体的数值赋给一个地址,为了使程序更具有通用性,更加灵活,在宏程序中设置了变量。

1、变量的表示变量由变量符号#和后面的变量号组成:#i(i=1,2,3,…)。

例如#100,#110,#5等。

变量序号可用表达式,但表达式必须放在[ ]中。

例:#5,#109,#[100+#5 ]。

2、变量的引用将跟随在一个地址后的数值用一个变量来代替,即引入了变量。

例:G01 X#100 Z#101 F#102,当#100=25、#101=-30、#102=0.1时,上式即表示为G01 X25 Z-30 F0.1。

①用表达式指定变量,表达式要放在方括号里:G01 X[#1+#2] F#3。

②引用一个未定义变量时,在遇到地址字之前,该变量被忽略。

③要改变被引用变量的符号,在#前加负号G01 X-#1。

3、变量的类型变量分为局部变量、公共变量和系统变量三种。

①局部变量(#1~#33)局部变量是一个在宏程序中局部使用的变量,可以服务于不同的宏程序,在不同的宏程序中局部变量可以赋不同的值,相互之间不影响。

②公共变量(#100~#199,#500~#999)公共变量也叫通用变量,可在各级宏程序中被共同使用,即这一变量在不同程序级中调用时含义相同。

因此,一个宏程序中经计算得到的一个通用变量的数值,可以被另一个宏程序调用。

③系统变量(#1000~)系统变量用来读取和写入各种数控数据项,如当前位置和刀具偏置值,它的值决定于系统的状态。

数控铣床宏程序 5个例子改

数控铣床宏程序   5个例子改

三、计算题1、如图工件原点在工件上表面圆心,设平底立铣刀直径φ10,由下而上周铣孔口倒圆角,试编写的宏程序部分。

G00 X0 Y0 Z10 起刀点定位在Z10Z–8G01 X15 F1000 加上刀具半径5,就是X20.半径补偿功能没有使用。

#1=0;(自变量初始化,#1为X、Z变化量,因为是45°,所以X、Z变化量相等)N10 G1 X[15+#1] Z[–8+#1];(X从右边开始,Z从下面开始)G17 G03 I–[15+#1];(铣整圆,J0省略,起点和终点Y0不变)#1=#1+0.1;(设步进距为0.1,自变量递增0.1,)IF [#1 LE 8.5 ]GOTO 10;(8.5过头一点,防止未切完,留有毛刺)Z10;M99;2、如图工件原点在工件上表面圆心,设平底立铣刀直径φ8,由下而上周铣倒圆角,试编写倒圆角的宏程序部分。

椭圆有长半轴、短半轴。

圆只有半径。

椭圆参数方程:a=b,是一个圆。

)sin()cos(tbytax⨯=⨯=tabxy立铣刀直径φ8,由下而上周铣倒圆角初始化,G00 X30 Y0 Z10;从右面下来Z -5;G01 X24 F300;从右面靠上工件。

#3=0;角度α赋初值,以角度作为自变量N10 #1=5*COS[#3];X值计算COS[0]=1,COS[90]=0#2=5*SIN[#3];Z值计算SIN[0]=0,SIN[90]=1G01 X[19+#1] Z[#2-5] F1000;刀具移动一个偏移量G17 G3 I-[19+#1];XY平面加工整圆,起点、终点不变,J0省略。

#3=#3+1;设角度步进距为1°ºIF [#3 LE 90] GOTO 10;(第一象限,条件为圆的四分之一)Z10;M99;3、如图工件原点在工件上表面,设加工深度为5mm,试用变量编程编写该曲线轮廓A的宏程序部分。

渐开线函数为sin(t))*t-*(sin(t)y,t的取值范围是[0,3.14159]。

数控铣宏程序编程100例

数控铣宏程序编程100例

数控铣宏程序编程100例数控铣宏程序编程是数控铣床操作中的重要环节,它可以大大提高生产效率和产品质量。

下面将介绍100个常见的数控铣宏程序编程实例。

1. G90 G54 G0 X0 Y0:将坐标系设置为绝对坐标系,将刀具移动到原点位置。

2. G91 G0 X10 Y10:将坐标系设置为相对坐标系,将刀具移动到当前位置的X轴正方向10mm,Y轴正方向10mm的位置。

3. G92 X0 Y0:将当前位置设置为坐标系原点。

4. G94:将进给速度设置为每分钟进给。

5. G95:将进给速度设置为每转进给。

6. G96 S1000:将主轴转速设置为1000转/分钟。

7. G97:将主轴转速设置为每分钟转速。

8. G98:将主轴转速设置为每转转速。

9. G99:将主轴转速设置为每进给转速。

10. G40:取消刀具半径补偿。

11. G41 D1:启用刀具半径补偿,刀具半径为1mm。

12. G42 D2:启用刀具半径补偿,刀具半径为2mm。

13. G43 H1:启用刀具长度补偿,刀具长度为1mm。

14. G44 H2:启用刀具长度补偿,刀具长度为2mm。

15. G45 H3:启用刀具长度补偿,刀具长度为3mm。

16. G46 H4:启用刀具长度补偿,刀具长度为4mm。

17. G47 H5:启用刀具长度补偿,刀具长度为5mm。

18. G48:取消刀具长度补偿。

19. G49:取消刀具半径和长度补偿。

20. G50 S2000:将主轴转速设置为2000转/分钟。

21. G51:取消坐标系旋转。

22. G52 X10 Y10:将坐标系旋转10度。

23. G53:取消工件坐标系。

24. G54:将工件坐标系设置为1号坐标系。

25. G55:将工件坐标系设置为2号坐标系。

26. G56:将工件坐标系设置为3号坐标系。

27. G57:将工件坐标系设置为4号坐标系。

28. G58:将工件坐标系设置为5号坐标系。

29. G59:将工件坐标系设置为6号坐标系。

数控机床宏程序

数控机床宏程序
#1=#1+#2; 相加 #2=#2+1; 下一加数 GOTO1 返回1 N2 M30; 结束
相加条件
§2.4 数控系统指令代码—6
3、循环WHILE语句 在WHILE 后指定一条件表达式,当条件满足
时 , 执 行 DO 到 END 之 间 的 程 序 , ( 然 后 返 回 到 WHILE 重新判断条件,)不满足则执行END后的下 一程序段。
X=X + rCOS(θ i)
G65 H02 P#103 Q#500 R#103 ; G65 H31 P#104 Q#502 R#102 ;
Y=Y + rSIN(θ i)
G65 H02 P#104 Q#501 R#104 ;
G90 G00 X#103 Y#104 ;第i孔定位
§2.4 数控系统指令代码—6
格式:WHILE [条件表达式] DO m;(m=1,2,3)
. . .
ENDm;
§2.4 数控系统指令代码—6
§2.4 数控系统指令代码—6
• 五种情况说明:
§2.4 数控系统指令代码—6
§2.4 数控系统指令代码—6
宏程序的数学基础
§2.4 数控系统指令代码—6
常见曲线的标准方程
§2.4 数控系统指令代码—6
GE(大于且等于)LT (小于) L(E 小于且等于)
AND (与)
OR (或) NOT (非)
§2.4 数控系统指令代码—6
函数 赋值 Definition 求和 Sum 求差 difference 乘积 Product 求商 Quotient
格式 #i=#j #i=#j+#k #i=#j-#k #i=#j*#k #i=#j/#k

数控宏程序

数控宏程序

宏程序实例
例1 沿圆周均布的孔群加工
宏程序实例
宏程序实例
宏程序实例
宏程序实例
例2:封闭矩形口袋(内腔)加工
宏程序实例
宏程序实例
宏程序实例
例3:椭圆内轮廓加工
宏程序实例
宏程序实例
宏程序实例
加工X-Y平面内的椭圆,椭圆起始角度为S;终止角度为E;角 度增量为I;长轴半径为A;短轴半径为B;椭圆中心坐标为X,Y;
第二章 零件加工程序的编制 宏程序编程
概述
用户宏程序是以变量的组合,通过各种算 术和逻辑运算,转移和循环等命令,而编制的 一种可以灵活运用的程序,只要改变变量的值, 即可完成不同的加工或操作,只要改变变量的 值,即可完成不同的加工或操作。用户宏程序 可以简化程序的编制,提高工作效率。加工程 序中可以像调用子程序一样用一个简单指令即 可调用宏程序。
概述
O7001 N10 G50 X150.0 Z200.0; N20 T0100; N30 G96 S550 M03; N40 G00 X20.0 Z3.0 T0100; N50 G65 P8001 A30.0 B30.0; N70 G00 X150.0 Z200.0 T0100 M09; N80 M30; O8001 G01 Z-[#1] F0.2 M08;
各种运算。
可以用[ ]来改变顺序
变量的运算和控制指令
二、执行控制指令 1、无条件转移指令 :GOTO 格式:GOTO n; n为要转移到的程序段的行号数值。 例如:GOTO 10;
GOTO #11;等
变量的运算和控制指令
2、条件转移指令 :IF [ 条件 ] GOTO n 条件成立时,转移到顺序号为n的程序段开始执行;条件 不成立时,执行下一个程序段。 条件式有以下几类: (1)相等:[#n EQ #m] ; (2)不相等: [#n NE #m] ; (3)大于: [#n GT #m] ; (4)小于: [#n LT #m] ; (5)大于等于: [#n GE #m] ; (6)小于等于: [#n LE #m]; 条件式比较方法的两边可以是常数,也可以是变量或表 达式。

数控铣宏程序实例(DOC)

数控铣宏程序实例(DOC)

数控铣宏程序实例4.1椭圆加工(编程思路: 以一小段直线代替曲线)例1:整椭圆轨迹线加工(假定加工深度为2mm)方法一: 已知椭圆的参数方X=acosθ Y=bsin θ变量数学表达式设定θ = #1 ( 0°~360 ° )那么X= #2 = acos [ #1]Y= #3= bsin [ #1]程序O0001;S1000 M03;G90 G54 G00 Z100;G00 Xa Y0;G00 Z3;G01 Z-2 F100;#1=0;N1 #2=a*cos [ #1] ;#3=b*sin [ #1] ;G01 X#2 Y#3 F300;#1=#1+1;IF [ #1LE360] GOT0;1GOO Z50 ;M30;例2:斜椭圆且椭心不在原点的轨迹线加工(假设加工深度为2mm )椭圆心不在原点的参数方程X=a*COS[ #1] + MY=b*SIN[ #1] + N变量数学表达式设定θ =#1; (0 °~360°)那么X=#2=a*COS[ #1] + MY=#3=b*SIN[ #1] + N因为此椭圆绕( M ,N)旋转角度为 A 可运用坐标旋转指令G68格式G68 X - Y- R- X,Y:旋转中心坐标; R: 旋转角度程序O0002;S1000 M03;G90 G54 G00 Z100;GOO Xa+M YN;GOO Z3;G68 XM YN R45;#1=0;N99 #2=a*COS[ #1] +M;#3=b*SIN[ #1] +N;GO1 X#2 Y#3 F300;G01 Z-2 F100;#1=#1+1;IF[ #1LE360] GOTO99; G69 ;GOO Z100;M30;例3: 椭圆轮廓加工(深度2mm)采用椭圆的等距加工方法使椭圆的长半轴和短半轴同时减少一个行距的方法直到短半轴小于刀具的半径R根据椭圆的参数方程可设变量表达式θ =#1(0°~360°)a=#2b=#3(b-R~R)X=#2*COS[ #1] =#4Y=#3*SIN[ #1] =#5程序O0003;S1000 M03;G90 G54 G00 Z100;G00 XO YO;GOO Z3;G01 Z-2 F100;#2=a-R;#3=b-R;N99 #1=0;#4=#2*COS[ #1] ;#5=#3*SIN[ #1] ;G01 X#4 Y#5 F300;#1=#1+1;IF[ #1LE360] GOTO99;#2=#2-R;#3=#3-R;例3: 椭圆轮廓加工(深度2mm)IF[ #3LER] GOTO99;GOO Z100;M30;例 4 非整椭圆轨迹线加工(加工深度2mm)已知椭圆的长半轴 a 短半轴为 b 且与X轴正向夹角为A1,A 2。

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

第7章宏程序
7.3 宏程序调用
7.3.1 宏程序调用指令(G65)
在主程序中可以用G65调用宏程序。

指令格式如下:
G65 P L 〈自变量赋值〉;
其中:P指定宏程序号:L为重复调用次数(1—9999);自变量赋值是由地址和数值构成的,用以对宏程序中的局部变量赋值。

例如:
主程序:
O7002
...
G65 P7100 L2 A1.0 B2.0
...
M30
宏程序:
#3=#1+#2;
IF [#3 GT 360] GOTO 9;
G00 G91 X#3
N9 M99
7.3.2 自变量赋值
自变量赋值有两种类型。

自变量I使用除去G,L,N,O,P以外的其他字母作为地址,自变量II可以使用A,B,C每个字母一次,I,J,K每个字母可使用十次作为地址。

表7—3和7—4分别为两种类型自变量赋值的地址和变量号码之间的对应关系:
表7—3 自变量赋值的地址和变量号码之间的对应关系
地址宏程序中变量地址宏程序中变量A#1Q#17
B#2R#18
C#3S#19
D#7T#20
E#8U#21
F#9V#22
H#11W#23
I#4X#24
J#5Y#25
K#6Z#26
M#13
表7—4 自变量II的地址与变量号码之间的对应关系
地址宏程序中变量地址宏程序中变量A#1#18
B#2#19
C#3#20
#4#21
#5#22
#6#23
#7#24
#8#25
#9#26
#10#27
#11#28
#12#29
#13#30
#14#31
#15#32
#16#33
#17
上表中的I,J,K的下标只表示顺序,并不写在实际命令中。

在G65的程序段中,可以同时使用表4—1及表4—2中的两组自变量赋予值。

系统可以根据使用的字母自动判断自变量赋值的类型。

7.4 变量的控制和运算指令
7.4.1 算术运算和逻辑运算
在变量之间,变量和常量之间,可以进行各种运算,常用的见表7—5。

表7—5 算术和逻辑运算
运算格式说明
赋值#i=#j
加#i=#j+#k
减#i=#j-#k
乘#i=#j*#k
除#i=#j/#k
正弦#i=sin[#j]
角度单位为度余弦#i=cos[#j]
正切#i=tan[#j]
反正切#i=atan[#j]
平方根#i=sqrt[#j]
绝对值#i=abs[#j]
四舍五入圆整#i=round[#j]或#i=#jor#k
异或#i=#jxor#k 与#i=#jand#k 逻辑运算对二进制数逐位进

运算的优先顺序如下:
1)函数。

2)乘除,逻辑与。

3)加减,逻辑或,逻辑异或。

可以用[ ]来改变顺序
7.4.2 控制指令
1.无条件转移(GOTO语句)
语句格式为:
GOTO n
其中n为顺序号(1—9999),可用变量表示。

例如:
GOTO 1;
GOTO #10;
2. 条件转移(IF 语句)
语句格式为:
IF [条件式] GOTO n
条件式成立时,从顺序号为n的程序段开始执行;条件式不成立时,执行下一个程序段。

条件式有以下几类:
# j EQ # K
# j NE # K
# j GT # K
# j LT # K
# j GE # K
# j LE # K
条件式中变量#J或#K可以是常量也可以是表达式,条件式必须用括弧括起来。

下面的程序可以得到1到10的和:
O7100
#1=0
#2=1
N1 IF [#2 GT 10] GOTO 2
#1=#1+#2
#2=#2+1
GOTO 1
N2 M30
3循环语句(WHILE 语句)
语句格式为:
WHILE [条件式] DO m (m=1,2,3)

END m
当条件语句成立时,程序执行从DO m到END m之间的程序段;如果条件不成立,则执行
END m 之后的程序段。

DO 和END 后的数字是用于表明循环执行范围的识别号。

可以使用数字1,2和3,如果是其他数字,系统会产生报警。

DO—END 循环能够按需执行多次。

如下例所示:
WHILE [] DO 1WHILE [] DO 2WHILE [] DO 2 ⎛⎫ ⎪ ⎪ ⎪⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭ ⎪ ⎪ ⎪ ⎪ ⎪
⎪ ⎪⎝⎭ ⎪ ⎪ ⎪⎝⎭
条件式...条件式...条件式...E N D 3...E N D 2...E N D 1上面的O7100程序也可以用WHILE 语句编制如下:
O7200#1=0#2=1
WHILE [#2 LE 10] DO 1#1=#1+#2#2=#2+1END 1M30
7.5 宏程序应用实例
【例7-1】:切圆台与斜方台,各自加工3个循环,要求倾斜10°的斜主台与圆台相切,圆台在方台之上,如图7-2所示。

7-2 宏程序应用实例一
程序说明
%8101
#10=10.0圆台阶高度
#11=10.0方台阶高度
#12=124.0圆外定点的X坐标值
#13=124.0圆外定点的Y坐标值
#701=13.0刀具半径补偿值(偏大,粗加工)
#702=10.2刀具半径补偿值(偏中,半精加工)
#703=10.0刀具半径补偿值(实际,精加工)
N01 G92 X0.0 Y0.0 Z0.0
N02 G28 Z10 T02 M06自动回参考点换刀
N03 G29 Z0 S1000 M03单段走完此段,手动移刀到圆台面中心上N04 G92 X0.0 Y0.0 Z0.0
N05 G00 Z10.0
#0=0
N06 G00 [X-#12] Y[-#13]快速定位到圆外(-#12,-#13)
N07 G01 Z[-#10] F300Z向进刀-#10mm
WHILE #0 LT 3加工圆台
N[08+#0*6] G01 G42 X[-#12/2] Y[175/2]
完成右刀补,准备切削
F280.0 D[#0+1]
D[#0+1]D01=#701;D02=#702;D03=#703
N[09+#0*6] X[0] Y[-175/2]进到工件的切入点
N[10+#0*6] G03 J[175/2]逆时针切削整圆
N[11+#0*6] G01X[#12/2] Y[-175/2]切出工件
N[12+#0*6] G40 X[#12] Y[-#13]取消刀补
N[13+#0*6] G00 X[-#12]
#0=#0+1
ENDW循环三次后结束
N100 G01 Z[-#10-#11] F300进给方向切削深度
#2=175/COS[55*PI/180]方台外定点的X坐标
#3=175/SIN[55*PI/180]方台外定点的Y坐标
#4=175*COS[10*PI/180]方台的X向增量值
#5=175*SIN[10*PI/180]方台的Y向增量值
#0=0
WHILE #0 LT 3加工斜方台
N[101+#0*6] G01 G90 G42 X[-#2] Y[-#3]
F280.0 D[#0+1]
N[102+#0*6] G91 X[+#4] Y[+#5]
N[103+#0*6] X[-#5] Y[+#4]
N[104+#0*6] X[-#4] Y[-#5]
N[105+#0*6] X[+#5] Y[-#4]
N[106+#0*6] G00 G90 G40 X[-#12] Y[-#13]
#0=#0+1
ENDW循环三次后结束
N200 G28 Z10 T00 M06返回参考点换刀
N201 G00 X0 Y0 M05
N202 M30程序结束
【例7-1】:用宏程序编制如图3.3.39所示抛物线Z=X2/8在区间[0,16]内的程序
7-3 宏程序应用实例二7-4 复习思考题4 %8002
#10=0;X坐标
#11=0;Z坐标
N10 G92 X0.0 Z0.0
M03 S600
WHILE #10 LE 16
G90 G01 X[#10] Z[#11] F500
#10=#10+0.08
#11=#10*#10/8
ENDW
G00 Z0 M05
G00 X0
小结:
本章主要讲述了宏程序的基本概念,变量及变量的引用,变量的控制及运算指令,宏程序的编制方法以及宏程序的调用,要求读者了解宏程序的适用场合,变量的定义,控制及运算指令,能够根据零件图形编制正确的宏加工程序。

相关文档
最新文档