采用G92指令。
1、螺距小,材质不硬,螺纹外径小,一般适合各种数控车设备加工,也比较容易,采用G92指令。
2、设备刚性不是很好,容易闷车,一般的45度斜轨加工螺纹,例如M20可采用G76单方向逐层切削。
3、螺纹螺距稍大,考虑刀尖的耐用性,是否能承受加工螺纹的力度,例如M36可采用G78加工。
4、梯形螺纹,螺距大,类似丝杠的螺纹,矩形螺纹,锯齿形螺纹。
5、加工难度大,常常需要一夹一顶,容易振刀,车出来效果不好的,可采用宏编辑(宏程序、宏指令)逐层切削保证螺纹加工效果和降低难度。
SIEMENS铣床 G代码
地址
含义
D
刀具刀补号
F
进给率(与G4 一起可以编程停留时间)
G
G功能(准备功能字)
G0
快速移动
G1
直线插补
G2
顺时针圆弧插补
G3
逆时针圆弧插补
CIP
中间点圆弧插补
G33
恒螺距的螺纹切削
G331
不带补偿夹具切削内螺纹
G332
不带补偿夹具切削内螺纹 退刀
CT
带切线的过渡圆弧插补
G4
快速移动
G63
快速移动
G74
回参考点
G75
回固定点
G25
主轴转速下限
G26
主轴转速上限
G110
极点尺寸,相对于上次编程的设定位置
G110
极点尺寸,相对于当前工件坐标系的零点
G120
极点尺寸,相对于上次有效的极点
G17
X/Y平面
G18
Z/X平面
G19
Y/Z平面
G40
刀尖半径补偿方式的取消
G41
调用刀尖半径补偿, 刀具在轮廓左侧移动
G42
调用刀尖半径补偿, 刀具在轮廓右侧移动
G500
取消可设定零点偏置
G54
第一可设定零点偏置
G55
第二可设定零点偏置
G56
第三可设定零点偏置
G57
第四可设定零点偏置
G58
第五可设定零点偏置
G59
第六可设定零点偏置
G53
按程序段方式取消可设定零点偏置
G60
准确定位
G70
英制尺寸
G71
公制尺寸
G700
英制尺寸,也用于进给率F
G710
公制尺寸,也用于进给率F
G90
绝对尺寸
G91
增量尺寸
G94
进给率F,单位毫米/分
G95
主轴进给率F,单位毫米/转
G901
在圆弧段进给补偿“开”
G900
进给补偿“关”
G450
圆弧过渡
G451
等距线的交点
I
插补参数
J
插补参数
K
插补参数
I1
圆弧插补的中间点
J1
圆弧插补的中间点
K1
圆弧插补的中间点
L
子程序名及子程序调用
M
辅助功能
M0
程序停止
M1
程序有条件停止
M2
程序结束
M3
主轴顺时针旋转
M4
主轴逆时针旋转
M5
主轴停
M6
更换刀具
N
副程序段
:
主程序段
P
子程序调用次数
RET
子程序结束
S
主轴转速,在G4 中表示暂停时间
T
刀具号
X
坐标轴
Y
坐标轴
Z
坐标轴
CALL
循环调用
CHF
倒角,一般使用
CHR
倒角轮廓连线
CR
圆弧插补半径
GOTOB
向后跳转指令
GOTOF
向前跳转指令
RND
圆角
支持参数编程
SIEMENS802S/CM 固定循环
循环
说明
LCYC82
钻削,沉孔加工
LCYC83
深孔钻削
LCYC840
带补偿夹具的螺纹切削
LCYC84
不带补偿夹具的螺纹切削
LCYC85
镗孔
LCYC60
线性孔排列
LCYC61
圆弧孔排列
LCYC75
矩形槽,键槽,圆形凹槽铣削
SIEMENS802DM/810/840DM 固定循环
循环
说明
CYCLE82
中心钻孔
CYCLE83
深孔钻削
CYCLE84
性攻丝
CYCLE85
铰孔
CYCLE86
镗孔
CYCLE88
带停止镗孔
CYCLE71
端面铣削
LONGHOLE
一个圆弧上的长方形孔
POCKET4
环形凹槽铣削
POCKET3
矩形凹槽铣削
SLOT1
一个圆弧上的键槽
SLOT2
环行槽
SIEMENS车床 G 代码
地址
含义
D
刀具刀补号
F
F
进给率(与G4 一起可以编程停留时间)
G
G功能(准备功能字)
G0
快速移动
G1
直线插补
G2
顺时针圆弧插补
G3
逆时针园弧插补
G33
恒螺距的螺纹切削
G4
快速移动
G63
快速移动
G74
回参考点
G75
回固定点
G17
(在加工中心孔时要求)
G18
Z/X平面
G40
刀尖半径补偿方式的取消
G41
调用刀尖半径补偿, 刀具在轮廓左侧移动
G42
调用刀尖半径补偿, 刀具在轮廓右侧移动
G500
取消可设定零点偏置
G54
第一可设定零点偏置
G55
第二可设定零点偏置
G56
第三可设定零点偏置
G57
第四可设定零点偏置
G58
第五可设定零点偏置
G59
第六可设定零点偏置
G53
按程序段方式取消可设定零点偏置
G70
英制尺寸
G71
公制尺寸
G90
绝对尺寸
G91
增量尺寸
G94
进给率F,单位毫米/分
G95
主轴进给率F,单位毫米/转
I
插补参数
I1
圆弧插补的中间点
K1
圆弧插补的中间点
L
子程序名及子程序调用
M
辅助功能
M0
程序停止
M1
程序有条件停止
M2
程序结束
M30
M17
M3
主轴顺时针旋转
M4
主轴逆时针旋转
M5
主轴停
M6
更换刀具
N
副程序段
:
主程序段
P
子程序调用次数
RET
子程序结束
S
主轴转速,在G4 中表示暂停时间
T
刀具号
X
坐标轴
Y
坐标轴
Z
坐标轴
AR
圆弧插补张角
CALL
循环调用
CHF
倒角,一般使用
CHR
倒角轮廓连线
CR
圆弧插补半径
GOTOB
向后跳转指令
GOTOF
向前跳转指令
RND
圆角
支持参数编程
SIEMENS 801、802S/CT、 802SeT 固定循环
循环
说明
LCYC82
钻削,沉孔加工
LCYC83
深孔钻削
LCYC840
带补偿夹具的螺纹切削
LCYC84
不带补偿夹具的螺纹切削
LCYC85
镗孔
LCYC93
切槽循环
LCYC95
毛坯切削循环
LCYC97
螺纹切削
SIEMENS 802D、810D/840D 固定循环
循环
说明
CYCLE71
平面铣削
CYCLE82
中心钻孔
YCLE83
深孔钻削
CYCLE84
刚性攻丝
CYCLE85
铰孔
CYCLE86
镗孔
CYCLE88
带停止镗孔
CYCLE93
切槽
CYCLE94
退刀槽形状EF
CYCLE95
毛坯切削
CYCLE97
螺纹切削
宏程序序
大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用宏一般分为A类宏和B类宏A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序则是
以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广由于现在B类宏程序的大量使
用很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如法兰克OTD系统中由于它的MDI键盘上没有公式符号,连最简单的等于号都没有,为此如果应用B类宏程序的话就只能在计算机上编好再通过RSN-32接口传输的数控系统中,可是如果我们没有PC机和RSN-32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了,下面我介绍一下A类宏的引用;
A类宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式输入的xx的意思就是数值,是以um级的量输入的,比如你输入100那就是01MM~~~~~#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的数值赋予#101
G65 H02 P#101 Q#102 R10
G65 H02 P#101 Q10 R#103
G65 H02 P#101 Q10 R20
上面4个都是加指令的格式都是把Q后面的数值或变量号内的数值加上R后面的数
值或变量号内的数值然后等于到P后面的变量号中
H03减指令;格式G65 H03 P#101 Q#102 R#103,把#102的数值减去#103的数值赋予#101
G65 H03 P#101 Q#102 R10
G65 H03 P#101 Q10 R#103
G65 H03 P#101 Q20 R10
上面4个都是减指令的格式都是把Q后面的数值或变量号内的数值减去R后面的数
值或变量号内的数值然后等于到P后面的变量号中
H04乘指令;格式G65 H04 P#101 Q#102 R#103,把#102的数值乘上#103的数值赋予#101
G65 H04 P#101 Q#102 R10
G65 H04 P#101 Q10 R#103
G65 H04 P#101 Q20 R10
上面4个都是乘指令的格式都是把Q后面的数值或变量号内的数值乘上R后面的数
值或变量号内的数值然后等于到P后面的变量号中
H05除指令;格式G65 H05P#101 Q#102 R#103,把#102的数值除以#103的数值赋予#101
G65 H05 P#101 Q#102 R10
G65 H05 P#101 Q10 R#103
G65 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=#102SIN#103,也就是说可以直接用这个求出三角形的另
一条边长和以前的指令一样Q和R后面也可以直接写数值
H32 COS余玄函数指令:格式G65 H32 #101 Q#102 R#103;含义Q后面的#102是三角形的斜边
R后面的#103内存的是角度结果是#101=#102COS#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程序段,如果不符合就继续执行下面的程序段
用 户 宏 程 序
能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。
l 所存入的这一系列指令——用户宏程序
l 调用宏程序的指令————宏指令
l 特点:使用变量
一. 变量的表示和使用
(一) 变量表示
#I(I=1,2,3,…)或#[<式子>]
例:#5,#109,#501,#[#1+#2-12]
(二) 变量的使用
1. 地址字后面指定变量号或公式
格式: <地址字>#I
<地址字>-#I
<地址字>[<式子>]
例:F#103,设#103=15 则为F15
Z-#110,设#110=250 则为Z-250
X[#24+#18*COS[#1]]
2. 变量号可用变量代替
例:#[#30],设#30=3 则为#3
3. 变量不能使用地址O,N,I
例:下述方法下允许
O#1;
I#2 600×1000;
N#3 Z2000;
4. 变量号所对应的变量,对每个地址来说,都有具体数值范围
例:#30=1100时,则M#30是不允许的
5. #0为空变量,没有定义变量值的变量也是空变量
6. 变量值定义:
程序定义时可省略小数点,例:#123=149
MDI键盘输一. 变量的种类
1 局部变量#1~#33
一个在宏程序中局部使用的变量
例: A宏程序 B宏程序
… …
#10=20 X#10 不表示X20
… …
断电后清空,调用宏程序时代入变量值
2 公共变量#100~#149,#500~#531
各用户宏程序内公用的变量
例:上例中#10改用#100时,B宏程序中的
X#100表示X20
#100~#149 断电后清空
#500~#531保持型变量(断电后不丢失)
3 系统变量
固定用途的变量,其值取决于系统的状态
例:#2001值为1号刀补X轴补偿值
#5221值为X轴G54工件原点偏置值
入时必须输入小数点,小数点省略时单位为μm
一. 运算指令
运算式的右边可以是常数、变量、函数、式子
式中#j,#k也可为常量
式子右边为变量号、运算式
1. 定义
#I=#j
2. 算术运算
#I=#j+#k
#I=#j-#k
#I=#j*#k
#I=#j/#k
3. 逻辑运算
#I=#JOK#k
#I=#JXOK#k
#I=#JAND#k
4. 函数
#I=SIN[#j] 正弦
#I=COS[#j] 余弦
#I=TAN[#j] 正切
#I=ATAN[#j] 反正切
#I=SQRT[#j] 平方根
#I=ABS[#j] 绝对值
#I=ROUND[#j] 四舍五入化整
#I=FIX[#j] 下取整
#I=FUP[#j] 上取整
#I=BIN[#j] BCD→BIN(二进制)
#I=BCN[#j] BIN→BCD
1. 说明
1) 角度单位为度
例:90度30分为90.5度
2) ATAN函数后的两个边长要用“1”隔开
例:#1=ATAN[1]/[-1]时,#1为了35.0
3) ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入
例:设#1=1.2345,#2=2.3456,设定单位1μm
G91 X-#1;X-1.235
X-#2 F300;X-2.346
X[#1+#2];X3.580
未返回原处,应改为
X[ROUND[#1]+ROUND[#2]];
4) 取整后的绝对值比原值大为上取整,反之为下取整
例:设#1=1.2,#2=-1.2时
若#3=FUP[#1]时,则#3=2.0
若#3=FIX[#1]时,则#3=1.0
若#3=FUP[#2]时,则#3=-2.0
若#3=FIX[#2]时,则#3=-1.0
5) 指令函数时,可只写开头2个字母
例:ROUND→RO
FIX→FI
6) 优先级
函数→乘除(*,1,AND)→加减(+,-,OR,XOR)
例:#1=#2+#3*SIN[#4];
7) 括号为中括号,最多5重,园括号用于注释语句
例:#1=SIN[[[#2+#3]#4+#5]#6];(3重)
一. 转移与循环指令
1.无条件的转移
格式: GOTO 1;
GOTO #10;
2.条件转移
格式: IF[<条件式>] GOTO n
条件式:
#j EQ#k 表示=
#j NE#k 表示≠
#j GT#k 表示>
#j LT#k 表示<
#j GE#k 表示≥
#j LE#k 表示≤
例: IF[#1 GT 10] GOTO 100;
…
N100 G00 691 X10;
例:求1到10之和
O9500;
#1=0
#2=1
N1 IF [#2 GT10] GOTO 2
#1=#1+#2;
#2=#2+1;
GOTO 1
N2 M301.循环
格式:WHILE[<条件式>]DO m;(m=1,2,3)
…
…
…
ENDm
说明:1.条件满足时,执行DOm到ENDm,则从DOm的程序段
不满足时,执行DOm到ENDm的程序段
2.省略WHILE语句只有DOm…ENDm,则从DOm到ENDm之间形成死循环
3.嵌套
4.EQ NE时,空和“0”不同
其他条件下,空和“0”相同
例:求1到10之和
O0001;
#1=0;
#2=1;
WHILE [#2LE10] DO1;
#1=#1+#2;
#2=#2+#1;
END1;
M30; 这是简单的抛物线程序! G99
S800M3
T0101
G0 X30 Z10
#1=0
N10 #2=SQRT[2#1]
G1X[2#2]Z-#1F005
#1=#1+01
IF [#1 LE 50] GOTO 10
G0X30
Z100
M5
M30
感觉你F46有问题。应为空值,或0,不应为文本。
#VALUE!
错误的原因可能有:
当使用的参数
(参数:函数中用来执行 *** 作或计算的值。参数的类型与函数有关。函数中常用的参数类型包括数字、文本、单元格引用和名称。)或 *** 作数
( *** 作数: *** 作数是公式中运算符任意一侧的项。在
Excel
中, *** 作数可以是值、单元格引用、名称、标签和函数。)类型错误时,出现这种错误。
单击显示错误的单元格,再单击出现的按钮
,然后,如果出现“追踪错误”,则单击它。
检查可能的原因和解决方法。
可能的原因和解决方法
当公式需要数字或逻辑值(例如
TRUE
或
FALSE)时,却输入了文本
Microsoft
Excel
无法将文本转换为正确的数据类型。确认公式或函数所需的运算符或参数正确,并且公式引用的单元格中包含有效的数值。例如,如果单元格
A5
中包含数字且单元格
A6
中包含文本“Not
available”,则公式
=A5+A6
将返回错误值
#VALUE!。
输入或编辑了数组公式,然后按了
Enter
选定包含数组公式
(数组公式:数组公式对一组或多组值执行多重计算,并返回一个或多个结果。数组公式括于大括号
({
})
中。按
Ctrl+Shift+Enter
可以输入数组公式。)的单元格或单元格区域,按
F2
编辑公式,然后按
Ctrl+Shift+Enter。
将单元格引用、公式或函数作为数组常量输入
确认数组常量
(常量:不进行计算的值,因此也不会发生变化。例如,数字
210
以及文本“每季度收入”都是常量。表达式以及表达式产生的值都不是常量。)不是单元格引用、公式或函数。
为需要单个值(而不是区域)的运算符或函数提供了区域
将区域更改为单个值。
更改数值区域,使其包含公式所在的数据行或列。
在某个矩阵工作表函数中使用了无效的矩阵
确认矩阵
(矩阵:数值或单元格区域的矩形数组,该数组与其他数组或区域相组合以计算出多个和或乘积。Excel
预先定义了可生成和或乘积的矩阵函数。)的维数对矩阵参数是正确的。
运行的宏程序所输入的函数返回
VALUE!
确认函数没有使用不正确的参数。
现行的数控程序的编制中,主要有两种编程方式:手工编程和自动编程。虽然自动编程运用得越来越广泛,但手工编程在某些领域也是不可或缺的一种编程手段。手工编程至少在此以下几方面有着自己的优势:其一,熟练的程序员编制的手工程序加工效率高于自动编程;其二,熟悉手工编程,对自动程序的修改是不无裨益的;其三,自动编程的所敲定的走刀路线限制了其加工工艺,通过手工编程能够得到弥补。
在手工编程过程中,用户宏程序的编制,能极大提高程序编制的效率,因此,我们在数控教学及训练过程中,必须把用户宏程序的编制作为我们数控教学的重要内容之一。从历年全国数控大赛的试题中也不难发现,用户宏程序的编制是运用得极其频繁的。但是,我们很难在目前的教材中找到完整的宏程序的编写的方法及思路。为此,笔者提出了一整套设计用户宏程序的方法,通过利用流程图来设计用户宏程序,提高了编程的效率。
二、用户宏程序简介
用户宏程序有A、B两种,A类宏程序用G65指令编写,其格式如下:
G65 Hm P#i Q#j R#k
其中,m—01~99表示运算命令或转移命令功能;
#i—存入运算结果的变量名;
#j—进行运算的变量名1,可以是常数,常数直接表示,不带#;
#k—进行运算的变量名2,也可以是常数。
意义, #i=#j○#k,表示运算符号,常用意义如表1
表1
G代码
H代码
功能
定义
G65
H01
赋值
#i=#j
G65
H02
加法
#i=#j+#k
G65
H03
减法
#i=#j-#k
G65
H04
乘法
#i=#j×#k
G65
H05
除法
#i=#j÷#k
G65
H80
无条件转移
转向N
G65
H81
条件转移1
IF #j=#k,GOTO N
G65
H82
条件转移2
IF #j≠#k,GOTO N
G65
H83
条件转移3
IF #j>#k,GOTO N
G65
H84
条件转移4
IF #j<#k,GOTO N
G65
H85
条件转移5
IF #j≥#k,GOTO N
G65
H86
条件转移6
IF #j≤#k,GOTO N
G65
H99
产生P/S报警
产生500+1号P/S报警
除此以外,G65指令还可以实现逻辑运算、开平方、取绝对值、三角运算及复合运算等,相关指令见有关书籍,这里不一一介绍。需要指出的是,不同的数控系统,其功能的多少也不一样,用户可参考有关系统的说明书。
B类宏程序由控制语句,调用语句所组成。宏程序可以与主程序做在一起,也可以单独做成一个子程序,然后用G65指令调用。调用方法如下:
G65 P(程序号)〈引数赋值〉或G65 P(程序号) L(循环次数)〈引数赋值〉
所谓引数赋值,是指用A、B、C、D等地址给变量#1、#2、#3、#4等赋值。
B类宏程序的控制指令有三类,与C语言等高级程序设计语言的控制指令很类似。一类是IF语句,格式为:
IF[条件式]GOTO n (n即顺序号)
条件式成立时,从顺序号为n的程序段往下执行,条件式不成立时,执行下一下程序段;第二类是WHILE语句,格式为:
WHILE[条件式] DO m
.
.
.
END m
条件式成立时,从DO m的程序段到END m的程序段重复执行,条件式不成立时,则从END m的下一程序段执行。
第三类是无条件转移指令,格式为:GOTO n。
三、运用流程图编写用户宏程序的一般步骤
运用流程图编写用户宏程序的一般步骤为:一分析零件结构,确定宏程序加工的内容,找出加工工艺路线的律;二将零件加工路线规律用流程图表达出来,并进一步分清楚哪些是程序编制过程中的变量,哪些是常量,从而将一般的流程变成程序流程图;三根据程序流程图,编写零件的加工程序。
四、应用举例
(一)宏程序应用实例一
如图1所示,在一根轴上加工N个槽,每个槽的宽度为a1,槽的间距为a2,槽底直径为b1,棒料直径b2,并且设所给材料足够长,试编写程序加工该零件,现有一零件参数为N=100个槽,槽底直径b1=30mm,槽宽a1=5mm,工件直径b2=40mm,间隔a2=2mm,刀宽=3mm,现编写程序加工。图11零件工艺过程分析
该零件是一个比较简单的例子,在压面机械上用得较多。零件的精度要求不高,为了使程序有更广泛的适应性,将宏程序做成一个子程序,用主程序来调用实现零件的加工。加工时将坐标原点选择在如图所示的位置,X轴离第一个槽的距离为一个间距a2的距离。
零件的加工过程如下将:将刀具移至加工起点→进刀→切削第一个槽→计算下一槽的位置并将刀具移到此位置→加工下一个槽……如此至最后一个槽加工完为止。
将此过程画成流程图,如图2(a)所示。
(a) (b)
图2
2零件加工过程中所使用的变量
通过分析,要加工该零件,需要如下一些变量:
工件直径#200= b2
槽底直径#201= b1
槽宽#202= a1
槽间间隔#203= a2
切槽刀宽度#204
每加工一个槽后,切槽刀在Z轴方向移动的距离#205(等于槽间距加上槽宽)
槽的起点坐标Xs=#206,Zs=#207
槽加工终点的坐标Xf=#208,Yf=#209
计算槽数目的变量#215
加工槽的总数#216
由此画出编制程序所用的流程图,如图2(b)所示。
3根据程序流程图编制程序
宏程序O9061
N10 G65 H83 P160 Q#204 R#202 如果刀宽大于槽完,则结束
N20 G65 H01 P#215 Q0 计数器变量清零
N30 G65 H02 P#205 Q#202 R#203 计算#205
N40 G65 H02 P#206 Q#200 R5 工件直径加上5mm作为X方向起点
N50 G65 H02 P#207 Q#203 R#204 槽的间距加上一个刀宽
N60 G65 H01 P#207 Q#207 取负值后作为第一个槽的Z向起点
N70 G65 H01 P#208 Q#201 槽底直径作为槽终点的X坐标
N80 G65 H01 P#209 Q#205 第一个槽终点Z向坐标
N90 G00 X#206 Z#207 M08 定位到槽加工的位置
N100 G75 R1
N110 G75 X#208 Z#209 P2 Q#204 F20 加工槽
N120 G65 H03 P#207 Q#207 R#205 下一个槽起点Z向坐标计算
N130 G65 H03 P#209 Q#209 R#205 下一个槽终点Z向坐标计算
N140 G65 H02 P#215 Q#215 R1 槽计数器加1
N150 G65 H84 P90 Q#215 R#216 判断槽是否加工完毕
N160 M08
N170 M99 结束
主程序 O0001
N10 G65 H01 P#200 Q40 工件直径赋值
N20 G65 H01 P#201 Q30 槽底直径赋值
N30 G65 H01 P#202 Q5 槽宽赋值
N40 G65 H01 P#203 Q2 槽间间隔赋值
N50 G65 H01 P#204 Q3 切槽刀宽赋值
N60 G65 H01 P#216 Q100 槽数赋值
N70 G00 X100 Z100 起刀点位置
N80 M98 P9061 调用宏程序
N90 M30 程序结束
(二)宏程序应用实例二
对于一些大悬伸(加工深度与刀具直径之比较大)的零件,用普通加工方法总难达到理想效果,此时用插铣法容易保证零件精度,如图3所示的零件,尺寸80很难保证,用插铣法后获得了比较好的效果。曾经有工厂做过类似的程序,但程序只是针对零件本身,适应性不强,当零件的尺寸发生变化后,程序还得发生较大修改。笔者针对这种情况,将程序分为主程序和子程序,当零件的尺寸发生变化后,只需要修改主程序即可,非常方便。
1加工工艺分析
传统加工工艺方法采用多次重复加工。很难消除让刀,并且造成加工应力,最后由于应力释放造成零件的内腔变小。为了解决这个问题,我们将加工分为粗加工和精加工,粗加工采用普通的工艺方法,精加工采用插铣。
建立如图3所示的坐标系,为了保证加工质量,防止划伤已加工过的表面,编程时避免使用钻孔循环指令。加工轨迹如图4所示,在YZ平面内进行以下加工步骤:加工第一刀→沿圆弧退刀→返回Z=3处→沿圆弧进刀→沿X方向移动一个步距→加工第二刀→…。
加工过程中,粗加工尺寸80按796加工,而精加工采用宏程序编制高速插铣程序。精加工的具体参数如表2所示
图3零件图及坐标系 图4刀具路径表2精加工参数
加工方式
加工材料
刀具
步距
设置安全高度
顺铣
铝合金
Φ18整体硬质合金加长球头刀
0.05
Z=3
2加工流程图
为增强程序的适应性,本程序刀分为子程序和主程序来编写,子程序起始位置为(0,0,50),刀具在加工过程中的基本路线是按前面所给出的路线来走刀。
由此画出加工流程图如图5(a)所示。(a) (b)
图5
3程序所使用的变量及程序流程图
本程序中所使用的变量如下:
需加工部位X方向的长度:#1;
需加工部位Y方向的长度:#2;
需加工部位Z方向的深度:#3;
X方向的步距:#4;
走刀轨迹中,退(或进)刀时的半径:#5(本例图4中的R10);
中间变量:#6、#7、#8、#9
由所确定的变量及加工流程图,画出程序流程图如图5(b)所示。
4编制程序
子程序:%9001
N10 #1=#1/2 #1变量取1/2作为X坐标
N20 #2=#2/2 #2变量取1/2作为Y坐标
N30 G00 X#1 X方向定位到加工位置
N40 G41 D1 Y#2 Y方向定位到加工位置
N50 G01 Z3 F3000 M08 下降下安全高度,开冷却液
N60 #6=-(#3-#5) 计算加工终点Z向坐标
N70 #7=#2-2#5 计算退刀终点Y坐标
N80 G01 Z#6 插铣加工
N90 G02 Y#7 R#5 退刀
N100 G01 Z3 返回
N110 G02 Y#2 R#5 进刀
N120 #8=#8+#4 X方向总加工长度计数
N130 G91 G01 X-#4 X方向走一个步距
N140 IF #8LE#1 GOTO 80 判别第一侧是否加工完
N150 G90 Y-#2 移至另一侧
N160 G01 Z#6 插铣加工另一侧
N180 G02 Y-#7 R#5 退刀
N190 G01 Z3 返回安全高度
N200 G02 Y-#2 R#5 进刀
N210 #9=#9+#4 X方向总加工长度计数
N220 G91 G01 X#4 X方向移动一个步距
N230 IF #9LE#1 GOTO 160 判别另一侧是否加工完
N240 G90 G40 G00 X0 Y0 M09 X、Y方向返回起始点
N250 Z50 Z方向返回起始点
N260 M99 宏程序结束
主程序:%1010
N10 T01 选一号刀
N20 M06 换刀
N30 G00 G90 G54 G19 X0 Y0 S5000 M03 定位到起始位置,选择坐标平面及坐标系,启动主轴。
N40 G43 H01 Z50 Z方向补偿
N60 G65 P9001 A200 B8005 C90 D0 E0 F0 I005 J10 K0 调用宏程序并给相关变量赋值
N70 M05 停止主轴
N80 G49 Z50 Z方向取消补偿
N90 M30 程序结束
五、结束语
利用流程图编制用户宏程序,思路清晰,所编制的程序适应性好,是一种值得推广的方法。
工件坐标系中心为方形的中心
G54G40G90
M3S800
G00Z50
X130Y-130
G41G01Y-75F500
X-75
Y75
X75
Y-100
Z20
G0Z100
M30
然后将刀补从27改到9
也可以用#13001或者G10在程序里改刀补
还可以直接用宏程序编
比如要在一块50的圆柱上 铣一个2020深20的凹槽
用10的立铣刀刀心编程。
G54G90G17G0X5Y0
G43H1Z50M8
M3S1500
Z5
#1=-03(每一层铣掉30丝)
WHILE(#1GE-20)DO1(从03一直变到要铣到的深度-20)
G1Z#1F280(下刀到-03)
Y5
X-5
Y-5
X5
Y0
#1=#1-03(每次铣的深度,根据实际情况而改变)
END1(循环结束)
G0G90Z150
M30
比如要在一块50的圆柱上 铣一个202020凸台
用20的立铣刀刀心编程。
G54G90G17G0x20Y0
G43H1Z50M8
M3S1500
Z5
#1=-03(每一层铣掉30丝)
WHILE(#1GE-20)DO1(从03一直变到要铣到的深度-20)
G1Z#1F280(下刀到-03)
Y20
X-20
Y-20
X20
Y0
#1=#1-03(每次铣的深度,根据实际情况而改变)
END1(循环结束)
G0G90Z150
M30
圆柱的就更简单了
50的圆柱 用20的立铣刀刀心编程。
G54G90G17G0x20Y0
G43H1Z50M8
M3S1500
Z5
#1=-03(每一层铣掉30丝)
G1Z#1F280(下刀到-03)
WHILE(#1GE-30)DO2(从03一直变到要铣到的深度-20)
G3I20Z#1
#1=#1-03(每次铣的深度,根据实际情况而改变)
END2(循环结束)
G3I20
G0G90Z150
M30
以上就是关于广泰数控130ot车外螺纹用什么指令全部的内容,包括:广泰数控130ot车外螺纹用什么指令、西门子数控编程指令代码含义、数控车床宏程序怎么编啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)