‘壹’ “宏程序”是什么意思
大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出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那就是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的数值赋予#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=#102*SIN#103,也就是说可以直接用这个求出三角形的另
一条边长.和以前的指令一样Q和R后面也可以直接写数值.
H32 COS余玄函数指令:格式G65 H32 #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程序段,如果不符合就继续执行下面的程序段.
用 户 宏 程 序
能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。
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#26.00×100.0;
N#3Z200.0;
4. 变量号所对应的变量,对每个地址来说,都有具体数值范围
例:#30=1100时,则M#30是不允许的
5. #0为空变量,没有定义变量值的变量也是空变量
6. 变量值定义:
程序定义时可省略小数点,例:#123=149
MDI键盘输一. 变量的种类
1. 局部变量#1~#33
一个在宏程序中局部使用的变量
例:A宏程序B宏程序
……
#10=20X#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
G91X-#1;X-1.235
X-#2F300;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.无条件的转移
格式:GOTO1;
GOTO#10;
2.条件转移
格式:IF[<条件式>]GOTOn
条件式:
#jEQ#k 表示=
#jNE#k 表示≠
#jGT#k 表示>
#jLT#k 表示<
#jGE#k 表示≥
#jLE#k 表示≤
例:IF[#1GT10]GOTO100;
…
N100G00691X10;
例:求1到10之和
O9500;
#1=0
#2=1
N1IF[#2GT10]GOTO2
#1=#1+#2;
#2=#2+1;
GOTO1
N2M301.循环
格式:WHILE[<条件式>]DOm;(m=1,2,3)
…
…
…
ENDm
说明:1.条件满足时,执行DOm到ENDm,则从DOm的程序段
不满足时,执行DOm到ENDm的程序段
2.省略WHILE语句只有DOm…ENDm,则从DOm到ENDm之间形成死循环
3.嵌套
4.EQNE时,空和“0”不同
其他条件下,空和“0”相同
例:求1到10之和
O0001;
#1=0;
#2=1;
WHILE[#2LE10]DO1;
#1=#1+#2;
#2=#2+#1;
END1;
M30;
‘贰’ 法拉克G代码(车床和加工中心),循环指令格式,指令格式要详细,举例子,宏程序怎么弄的!要详细 11
数控编程(数控技术)---标准G代码与标准M代码
数控机床标准G代码
准备功能字是使数控机床建立起某种加工方式的指令,如插补、刀具补偿、固定循环等。G功能字由地址符G和其后的两位数字组成,从G00—G99共100种功能。JB3208-83标准中规定如下表:
表 准备功能字G
代码 功能作用范围 功能 代码 功能作用范围 功能
G00 点定位 G50 * 刀具偏置0/-
G01 直线插补 G51 * 刀具偏置+/0
G02 顺时针圆弧插补 G52 * 刀具偏置-/0
G03 逆时针圆弧插补 G53 直线偏移注销
G04 * 暂停 G54 直线偏移X
G05 * 不指定 G55 直线偏移Y
G06 抛物线插补 G56 直线偏移Z
G07 * 不指定 G57 直线偏移XY
G08 * 加速 G58 直线偏移XZ
G09 * 减速 G59 直线偏移YZ
G10-G16 * 不指定 G60 准确定位(精)
G17 XY平面选择 G61 准确定位(中)
G18 ZX平面选择 G62 准确定位(粗)
G19 YZ平面选择 G63 * 攻丝
G20-G32 * 不指定 G64-G67 * 不指定
G33 螺纹切削,等螺距 G68 * 刀具偏置,内角
G34 螺纹切削,增螺距 G69 * 刀具偏置,外角
G35 螺纹切削,减螺距 G70-G79 * 不指定
G36-G39 * 不指定 G80 固定循环注销
G40 刀具补偿/刀具偏置注销 G81-G89 固定循环
G41 刀具补偿--左 G90 绝对尺寸
G42 刀具补偿--右 G91 增量尺寸
G43 * 刀具偏置--左 G92 * 预置寄存
G44 * 刀具偏置--右 G93 进给率,时间倒数
G45 * 刀具偏置+/+ G94 每分钟进给
G46 * 刀具偏置+/- G95 主轴每转进给
G47 * 刀具偏置-/- G96 恒线速度
G48 * 刀具偏置-/+ G97 每分钟转数(主轴)
G49 * 刀具偏置0/+ G98-G99 * 不指定
注:*表示如作特殊用途,必须在程序格式中说明
数控机床标准M代码
辅助功能字是用于指定主轴的旋转方向、启动、停止、冷却液的开关,工件或刀具的夹紧和松开,刀具的更换等功能。辅助功能字由地址符M和其后的两位数字组成。JB3208-83标准中规定如下表:
表 辅助功能字M
代码 功能作用范围 功能 代码 功能作用范围 功能
M00 * 程序停止 M36 * 进给范围1
M01 * 计划结束 M37 * 进给范围2
M02 * 程序结束 M38 * 主轴速度范围1
M03 主轴顺时针转动 M39 * 主轴速度范围2
M04 主轴逆时针转动 M40-M45 * 齿轮换档
M05 主轴停止 M46-M47 * 不指定
M06 * 换刀 M48 * 注销M49
M07 2号冷却液开 M49 * 进给率修正旁路
M08 1号冷却液开 M50 * 3号冷却液开
M09 冷却液关 M51 * 4号冷却液开
M10 夹紧 M52-M54 * 不指定
M11 松开 M55 * 刀具直线位移,位置1
M12 * 不指定 M56 * 刀具直线位移,位置2
M13 主轴顺时针,冷却液开 M57-M59 * 不指定
M14 主轴逆时针,冷却液开 M60 更换工作
M15 * 正运动 M61 工件直线位移,位置1
M16 * 负运动 M62 * 工件直线位移,位置2
M17-M18 * 不指定 M63-M70 * 不指定
M19 主轴定向停止 M71 * 工件角度位移,位置1
M20-M29 * 永不指定 M72 * 工件角度位移,位置2
M30 * 纸带结束 M73-M89 * 不指定
M31 * 互锁旁路 M90-M99 * 永不指定
M32-M35 * 不指定
注:*表示如作特殊用途,必须在程序格式中说明
[ 指令格式的说明 ]
指令 说 明
G17 指定圆弧在XpYp 平面
G18 指定圆弧在XpZp 平面
G19 指定圆弧在YpZp 平面
G02 顺时针方向圆弧插补(CW)
G03 逆时针方向圆弧插补(CCW)
Xp__ X 轴或平行于X 轴的指令值(由参数No.1022 设定)
Yp__ Y 轴或平行于Y 轴的指令值(由参数No.1022 设定)
Zp__ Z 轴或平行于Z 轴的指令值(由参数No.1022 设定)
I__ 圆弧中心相对于起点的X 轴的距离(带符号)
J__ 圆弧中心相对于起点的Y 轴的距离(带符号)
K__ 圆弧中心相对于起点的Z 轴的距离(带符号)
R__ 圆弧半径指定的带符号的圆弧半径
F__ 沿圆弧的进给率
G 代码组别 功能附注
G00 01 快速定位 模态
G01 直线插补 模态
G02 顺时针圆弧插补 模态
G03 逆时针圆弧插补 模态
G04 00 暂停 非模态
*G10 数据设置 模态
G11 数据设置取消 模态
G17 16 XY平面选择 模态
G18 ZX平面选择(缺省) 模态
G19 YZ平面选择 模态
G20 06 英制(in) 模态
G21 米制(mm) 模态
*G22 09 行程检查功能打开 模态
G23 行程检查功能关闭 模态
*G25 08 主轴速度波动检查关闭 模态
G26 主轴速度波动检查打开 非模态
G27 00 参考点返回检查 非模态
G28 参考点返回 非模态
G31 跳步功能 非模态
*G40 07 刀具半径补尝取消 模态
G41 刀具半径左补尝 模态
G42 刀具半径右补尝 模态
G43 00 刀具长度正补尝 模态
G44 刀具长度负补尝 模态
G45 刀具长度补尝取消 模态
G50 00 工件坐标原点设置,最大主轴速度设置 非模态
G52 局部坐标系设置 非模态
G53 机床坐标系设置 非模态
*G54 14 第一工件坐标系设置 模态
G55 第二工件坐标系设置 模态
G56 第三工件坐标系设置 模态
G57 第四工件坐标系设置 模态
G58 第五工件坐标系设置 模态
G59 第六工件坐标系设置 模态
G65 00 宏程序调用 非模态
G66 12 宏程序模态调用 模态
*G67 宏程序模态调用取消 模态
G73 00 高速深孔钻孔循环 非模态
G74 工旋攻螺纹循环 非模态
G75 精镗循环 非模态
*G80 10 钻孔固定循环取消 模态
G81 钻孔循环
G84 攻螺纹循环 模态
G85 镗孔循环??
G86 镗孔循环 模态
G87 背镗循环 模态
G89 镗孔循环 模态
G90 01 绝对坐标编程 模态
G91 增量坐标编程 模态
G92 工件坐标原点设置 模态
注:1.当机床电源打开或按重置键时,标有"* "符号的G代码被激活,即缺省状态。
2 . 不同组的G代码可以在同一程序段中指定;如果在同一程序段中指定同组G代码,.最后指定的G代码有效。
3.由于电源打开或重置,使系统被初始化时,已指定的G20或G21代码保持有效.
4.由于电源打开被初始化时,G22代码被激活;由于重置使机床被初始化时, 已指定的G22或G23代码保持有效.
编码字符的意义
字符 意义
A 关于X轴的角度尺寸
B 关于Y轴的角度尺寸
C 关于Z轴的角度尺寸
D 刀具半径偏置号
E 第二进给功能(即进刀速度,单位为 mm/分钟)
F 第一进给功能(即进刀速度,单位为 mm/分钟)
G 准备功能
H 刀具长度偏置号
I 平行于X轴的插补参数或螺纹导程
J 平行于Y轴的插补参数或螺纹导程
L 固定循环返回次数或子程序返回次数
M 辅助功能
N 顺序号(行号)
O 程序编号
P 平行于X轴的第二尺寸或固定循环参数
Q 平行于Y轴的第三尺寸或固定循环参数
R 平行于Z轴的第三尺寸或循环参数圆弧的半径
S 主轴速度功能(表标转速,单位为 转/分)
T 第一刀具功能
U 平行于X轴的第二尺寸
V 平行于Y轴的第二尺寸
W 平行于Z轴的第二尺寸
X 基本尺寸
Y 基本尺寸
Z 基本尺寸
FANUC数控系统的准备功能M代码及其功能
M代码 功能 附注
M00 程序停止 非模态
M01 程序选择停止 非模态
M02 程序结束 非模态
M03 主轴顺时针旋转 模态
M04 主轴逆时针旋转 模态
M05 主轴停止 模态
M06 换刀 非模态
M07 冷却液打开 模态
M08 冷却液关闭 模态
M30 程序结束并返回 非模态
M31 旁路互锁 非模态
M52 自动门打开 模态
M53 自动门关闭 模态
M74 错误检测功能打开 模态
M75 错误检测功能关闭 模态
M98 子程序调用 模态
M99 子程序调用返回 模态
‘叁’ 宏程序是什么
一.计算机中的“宏” 什么是宏
计算机科学里的宏是一种抽象,它根据一系列预定义的规则替换一定的文本模式。Excel 办公软件自动集成了“VBA”高级程序语言,用此语言编制出的程序就叫“宏”。使用“VBA”需要有一定的编程基础和耗费大量的时间,因此,绝大多数的使用者仅使用了Excel的一般制表功能,很少使用到“VBA”。
解释器或编译器在遇到宏时会自动进行这一模式替换。对于编译语言,宏展开在编译时发生,进行宏展开的工具常被称为宏展开器。宏这一术语也常常被用于许多类似的环境中,它们是源自宏展开的概念,这包括键盘宏和宏语言。绝大多数情况下,使用“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。
宏的用途在于自动化频繁使用的序列或者是获得一种更强大的抽象能力--但这常常是一回事。
计算机语言如C或汇编语言有简单的宏系统,由编译器或汇编器的预处理器实现。C的宏预处理器的工作只是简单的文本搜索和替换,使用附加的文本处理语言如M4,C 程序员可以获得更精巧的宏。
Lisp类语言如Common Lisp和Scheme有更精巧的宏系统: 宏的行为如同是函数对自身程序文本的变形,并且可以应用全部语言来表达这种变形。一个C宏可以定义一段语法的替换,然而一个Lisp的宏却可以控制一节代码的计算。
获得了控制代码的执行顺序(见惰性计算和非限制函数)的能力,使得新创建的语法结构与语言内建的语法结构不可区分。例如,一种Lisp 方言有 cond 而没有if ,就可以使用宏由前者定义后者。Lisp 语法的去部主要扩展,比如面向对象的CLOS 系统,可以由宏来定义。
宏的典型应用
加速日常编辑和格式设置
组合多个命令
使对话框中的选项更易于访问
使一系列复杂的任务自动执行
宏编程介绍
在用一种不熟悉的宏语言进行宏编程时,可以这样做,首先记录下用户想要宏完成什么,然后打开宏文件并尝试理解命令结构如何工作。也可以修改命令以调整宏。一些宏语言,比如Great Plains账务(?accounting)软件的 Dexterity 运行时引擎,不能从其它数据源(如由逗号分隔的文本文件)导入数据。这一限制可以通过用更强大的编程语言,如 VBA 来创建一个计算机程序在此弱编程语言里生成一个特别的宏来解决。例如,可以对 Microsoft Excel 宏编程从扩展样式表或文本文件中读取数据并创建 Great Plains .mac 文件,这一文件被用于将特定的数据导入 Great Plains. 需要针对每一个新的数据集合声称新的 .mac 文件。
键盘宏
键盘宏和编辑器宏分别在图形用户界面和编辑器中被交互式地使用。使用它们可以用简短的击键代替冗长的命令序列,并为重复性任务提供了一个简单的自动化形式。
程序员的文本编辑器 Emacs (“编辑宏”[Editing MACroS]的简称)是沿用这一思想的产物。事实上,大多数编辑器是由宏组成的,Emacs 最初被设计为编辑语言 TECO 的宏集,后被移植为 Lisp 的一中方言 Emacs Lisp。
宏语言
宏语言是一类编程语言,其全部或多数计算是由扩展宏完成的。宏语言并未在通用编程中广泛使用,但在文本处理程序中应用普遍。例如,
C preprocessor C 预处理器
Internet Macros(iOpus)
M4(如前所述,源于AT&T,捆绑于Unix)
宏定义
c程序提供的预处理功能之一。包括带参数的宏定义和不带参数的宏定义。具体是指用一个指定的标志符来进行简单的字符串替换或者进行阐述替换。形式为:
#define 标志符(参数表) 字符串
宏名
在上定义中的标志符被称为“宏名”。
宏展开
在c程序编译时将宏名替换成字符串的过程称为“宏展开”。
微软Word和宏病毒
Visual Basic for Applications (VBA),是 Microsoft Office 里的一种编程语言. 但由上面的定义,它完全不是一种宏语言。然而,它的功能已经从中发展并最终替代了用户应用程序的宏思想,所以他被广泛地错误地称为是一种宏语言。
VBA 可以访问许多操作系统函数并支持文档打开时自动执行宏。这使得用这种语言写计算机病毒成为可能。1990年代中后期,宏病毒成为了最流行的计算机病毒类型之一。其它的包括宏语言的项目,如openoffice.org,故意从其宏语言中排除了一些功能(如:自动执行)以避免破坏程序。然而,这一特性在很多事务中受到欢迎。 来自“网络知道”
‘肆’ 数控编程g代码m代码分别有什么
G代码详解
G00 快速定位 (机床由设定的最快速度进行程序坐标点的定位,FANUC系统由参数1420#设定最高移动速度,单位为m/min)
G01 直线插补(由程序中给定的速度进行直线或斜线插补,单位为mm/r 或 mm/min。在采用每转进给时,也能计算出每分钟进给。由每转进给值乘以转速。如采用每分钟进给同样也能计算出每转进给,每分钟进给值除以转数。注1422#参数中设定最大的切削速度,单位为m/min。只有在特定情况下修改,如加工大的螺距。)
G02 顺时针圆弧插补 (和时钟的转向相同的方向为顺时针。判断方法1. 编程时辨别
方法是以后刀架为依据,后刀架用什么指令前刀架就用什么指令,切忌以前刀架去判断。
方法2. 以图纸的中心线为准,按图纸的上半部分编程)
G03 逆时针圆弧插补,(判断方法与G02相同)
G04 暂停指令 (G04为程序的暂停,格式为 G04 X 或G04 U 或G04 P,X和U的单位为秒,P的单位为毫秒. G04 X1.; 表示暂停1秒
G04 U1.; 表示暂停1秒
G04 P1000;表示暂停1秒。
注:有的机床在主轴停止状态下不执行暂停指令,只有在主轴旋转下才执行。
G07 圆柱插补(只有机床在带有C轴功能下才能使用,C轴:主轴可以做分度)
G10 可编程数据输入(1.可以执行参数的输入。格式 G10 L50 N_ P_ R_;
L50代表参数的输入,N代表要选择的参数号,P代表要选择的
轴, P1表示选择X轴,P2为Z轴。R代表修改的数值,如选择的不是跟轴有关的参数,P值不要输入。
2. G10 P_ X_ Z_ R_ Q_;
P代表磨耗值或形状值,如P1则表示要修改001的磨耗,如果P1的前面+10000,那就代表形状的修改,P10001表示修改001的形状值。X 和Z分别代表绝对值的输入,若选用增量值输入,用U或W表示。R代表刀尖半径。Q代表刀尖方向。
3.G10 L2 P_ X_ Z_。L2代表工件坐标系选择,P代表所选择的坐标系,P1表示选择G54坐标。P1~P6对应的G54~G59。X和Z代表要输入的值。★G10还有部分功能不会用,没有在实践中证实。
G11 可编程数据输入取消(在执行完G10之后执行G11,取消G10输入状态)
G17~G19 加工平面选择(G17代表XY平面,G18为XZ平面,G19为YZ平面。车床都是采用G18,XZ平面。开机默认,无需输入。)
G20 英制输入 不采用 (每英寸等于25.4mm)
G21 公制输入 采用公制输入,开机默认,无需输入
G22 行程检测开关打开
G23 行程检测开关关闭
G25 主轴速度波动检测开
G26 主轴速度波动检测关
G27返回参考点检测 (基本不用)
G28 返回机床参考点(格式 G28 U0 W0;采用增量编码器的机床执行G28时是靠压行程
开关去完成。而绝对编码器的机床在执行G28时是返回到参数设定的值,1240#参数
设定机床参考点)
G30 返回第二、第三、第四参考点(格式 G30 PI U0 W0;,PI表示第二参考点,P2表示
第三参考点,P3表示第四参考点,数值由参数设定,依次对应的参数是,1241#、
1242#、1243#参数)
G31 跳转功能 (暂不会)
G32 单步螺纹车削(格式:G32 Z-100. F2.:F代表螺距)
G32也可以执行连续的螺纹车削或无规律的变螺距车削:
连续螺纹车削格式: G32 Z-30. F2.;
G32 X 50. Z-50. F2.;
G32 Z-80. F2.;
无规律变螺距车削格式:G32 Z-10 F10.:
G32 W-22. F22;
G32 W-35. F35.;
执行端面螺纹的加工 格式:G0 X50.;
Z-0.5;
G32 X20. F2.;
G0 Z 2.;
X 50.;
Z-1.;
G32 X 20. F2.;
G0 Z100.;
G32通过主轴分度的功能执行多头螺纹的加工
格式:G32 Z_ F_ Q_; Q代表主轴旋转的角度,无小数点。比如主轴分度180度,Q为180000。注:由3451#参数#0号参数控制主轴是否执行分度功能,1为执行,0为不执行。
列举实例:通过宏程序加工一个右旋80头,左旋80头的螺纹。
O0024;
M3 S100 T101;
#1=0;
G0 X206. Z15.;
N10 #2=204.2;
WHILE [#2 GE 202.4 ]DO1;
G0 X#2;
G32 Z-150. Q#1 F237.;
G32 Z15. Q#1 F237.;
#2=#2-1;
END1;
#1=#1+4500;
IF [#1 LE3 55500] GOTO10;
G0 Z200.;
M30;
通过主轴分度功能G32还可以加工8字油沟,注意:螺距大,转数低。
G32还可以执行中间螺纹的加工,要注意的是要用G32格式45度切入,再45度切出,(以预防扎刀)
注:在加工螺纹时出现乱扣现象,排除不是程序的问题后,1.要查看主轴的编码器的定位销是否串动,2.编码器是否损坏。3.主轴皮带是否打滑和断裂。
G34 变螺距螺纹车削(格式:G34 Z_ F_ K_,K代表主轴每转一圈所增加的螺距差,K
为负值时表示主轴每转一圈所减小的螺距差。若K为1时,表示主轴每转一圈就增加1
个螺距。)
G40 刀尖圆弧半径的取消
G41 刀尖圆弧半径左补偿 (判断左右补偿都是依据后置刀架去判断后刀架用什么补偿
前刀架就用什么。判断方法是:顺着刀具的运动方向看,刀具所在工件的左边或右边,左
为G41,右为G42。包括判断刀尖假象的8个方向也是以后刀架为准。)
G42 刀尖圆弧半径右补偿 (判断方法同G41一样)
G50 浮动坐标系的建立和主轴最高转数的限制(浮动坐标系的建立方法比如工件的直
径为50,手轮方式刀尖靠在外圆,在相对坐标U值清零,手轮方
式摇到相对坐标X轴100的位置,MDI方式下输入X 150。对Z轴的方法同对X轴的方
法相同。以此刀为基准刀,对其他刀时参照相对坐标的数值去反。在程序的开头应先输入
G50 X150. Z150.;程序结束后,刀具也应该停止在此位置。切忌不可移动位置, 如移
动了位置后再启动程序,容易发生撞车事故。
G50主轴最高转数的限制:在使用G96恒线速时,随着切削直径的减小,主轴的转数会不断的升高,所以用G50限制最高转数。必须在G96之前输入,格式:G50 S2000;表示主轴转数每分最高2000转。
G52 局部坐标系的设定(不使用)
G53 机械坐标系 (不使用)
G54 工件坐标系 (机床默认为G54工件坐标系,无需输入,如选用其他坐标系,程序
里必须输入要执行的坐标系,如G55~G59。)
G55~G59 工件坐标系 (为简化编程和最大的满足零件的加工需求,应灵活运用工件
坐标系。)
举例:如运用G54~G59功能再配合子程序调用功能或宏程序功能加工带有多处切槽或多次切断的工件时都很方便,效率也高。注:如机床的G54里Z向输入-1.而想在G55坐标系相对G54坐标再进一个。那G55坐标系中Z向就为-2.,而不是输入-1。)
G65 宏程序非模态调用(格式:G65 P_ X_ Z_ A_ B_ C_ L_;G65为自变量,直接对相对应的变量号赋值,被调用的程序内无需再赋值。X对应#24,Z对应#26,A对应#1,B对应#2.C对应#3。L表示被调用的次数,如不输入L,表示只调用一次,无需输入。P表示被调用的程序号,如果被调用的程序号为9000以后,而再用参数把9000以后的程序隐藏,那么机床只运行被调用的程序,但看不到被调用程序的内容。注:被调用的程序最多可以4级镶套,被调用的程序可以再调用程序。被调用的程序结束符为M99。)
G66 宏程序模态调用(格式相同,但不同于G65的是G66为模态调用,当执行完被调用的程序,返回到主程序时,若主程序段出现轴移动,如G0或G1,那么它执行完轴移动后再去调用宏程序,直到主程序中出现G67,才能停止调用。)
G67 取消宏程序模态调用
G68 镜像开 (打开镜像功能时,X轴的正向为负,负向为正。此功能多用在双刀架
的机床上)
G69 镜像关
G71外圆粗车循环(格式:G71 U_ R_;
G71 P_ Q_ U_ W_ F_;
第一行G71中的U代表X向每次粗车量,半径值表示。 R代表退刀量。
第二行G71中的P代表粗加工程序中第一个程序段的顺序号。Q代表粗加工程序中最后一个程序段的顺序号。U代表X向精车留量,为半径值表示。W代表Z向精车留量。F代表粗车的走刀量。
完整的格式为:G0 X100. Z3.;
G71 U1.5 R0.5;
G71 P1 Q100 U0.4 W0.1 F0.3;
N1 G0 X50.;
….
….
N100 G0 X 100.
G72 端面粗车循环(格式:G72 W_ R_;
G72 P_ Q_ U_ W_ F_;
与G71不同的是G72格式第一行中的W代表Z向的每次粗车量。其余的代码指令一样。注:编程思路也有所不同,G72是从后往前编,就是确定了图纸的加工线路以后,从终点向起点编写程序。做粗车时是从端面开始下刀,从前向后走,当粗加工完成给精车留量时,刀具再从后先前走,目的是为了精车的留量均匀。当实行精车时,走刀路线也是从后往前走。)
G73 仿形粗车循环(格式:G73 U_ W_ R_;
G73 P_ Q_ U_ W_ F_;
第一行中的U值代表毛坯总的去除量,用最大直径减最小直径再除以2,就是U值。W值根据工件的形状可以随意给,如果端面量比较大,那么W值就相对大一些,如果量很小,W值可以取小一些,有些情况下W可以不要,直接取0值。R值代表循环的次数,无小数点输入。R值越大,循环次数越多,每次的吃刀量也就越小,反之亦然。)
G70 精车循环 (格式:G70 P_ Q_ S_ F_ ;执行G71~G73的精车循环
注:在G71~G73循环的程序中即便输入了G41或G42也不进行刀尖半径的补偿,只有在G70精车循环中才执行,所以在加工凹圆弧时要注意出现过切现象,同样在执行粗车循环的程序段内的S和F值为无效,只有在G70 精车中有效。(通过修改参数5102#4可以执行G71~G73半精加工的刀尖半径补偿)
执行G71~G73指令加工外径时,其循环前的定位点必须大于毛坯尺寸,加工内孔时,定位点必须小于毛坯尺寸的最小孔径。执行G71粗车循环时的第一个程序段必须为X向的单轴移动。G72端面粗车循环时的第一个程序段必须为Z向的单轴移动。
G74 端面切槽循环(格式:G74 R_;
G74 X_ Z_ P_ Q_ R_ F_;
G74为断续进刀,其目的是为了保证排削流畅和减少刀具阻力,避免扎刀。
第一行中的R值代表每次切深的回退量,即退刀量。
第二行中的X代表X向的终点坐标,Z为Z向的终点坐标,P为X向的每次吃刀量。(无小数点输入,即P1000=1mm。)Q为Z向的每次吃刀量(无小数点输入。)R为X向的退刀量(退刀时为了避免刀具撞到工件,第二行中的R值要慎用,或根本不用)F为走刀量。合理运用G74功能也可以实现端面等距槽的加工和端面钻孔循环。注:在使用端面切槽循环和端面等距槽加工时要正确计算刀宽,否则将会造成工件报废。
列举实例:1.端面槽加工(直径φ20加工到φ50槽深为10mm的端面槽,刀宽为5mm,以内侧刀尖为对刀点。由内向外加工)
程序 G0 X 20. Z 1.;
G75 R 0.2;
G75 X 40. Z-10. P 4500 Q2000 F0.2;
G0 Z 100.;
M30;
2. 端面等距槽加工(直径φ150加工到φ80槽宽为5mm,间距为10mm,槽深为8mm,刀宽为5mm,以外侧刀尖为对刀点。由外向内加工)
程序:G0 X 150. Z 1.
G75 R 0.1;
G75 X 90. Z-8. P10000 Q2000 F0.2
G0 Z100.;
M30;
3. 端面钻孔循环:钻φ20深30的孔
程序:G0 X0 Z5.
G75 R0.5;
G75 Z-30. Q3000 F0.2;
G0 Z100.;
M30;
G75 径向切槽循环(与G74不同的是若使用钻孔循环功能只有在带有动力头的刀架和主轴有C轴功能的机床上才能实现,如车铣中心)
G76 螺纹复式循环(G76为斜进式进刀,单刀刃进行切削(赶刀切削),其目的是为了减少刀具抗力,避免出现扎刀、崩刀。适用于加工比较大的螺距。
格式:G76 P_ Q_ R_;
G76 X_ Z_ P_ Q_ R_ F_;
第一行中P值由六位数组成,头两位为精车次数,中间两位为尾退量,后两位为螺纹刀的角度,Q为粗车时的最小吃刀量(半径值表示,代表单边吃深,无小数点输入)R为精车留量(半径值表示,代表单边留量,带小数点)。
第二行中X位X向的终点坐标,Z为Z向的终点坐标,P为牙高(半径值表示,代表单边牙高,无小数点输入),Q为第一刀的吃深(半径值表示,代表单边吃深,无小数点输入),R为大小径的半径差(只有加工锥螺纹时使用),F为螺距。
G80 取消钻孔循环
G83 钻孔循环 格式:G83 Z_ Q_ P_ R_ K_ F_;Z为钻孔深度,Q为每次钻深(无小数点输入),P为暂停时间(无小数点输入),R为安全平面到起点的距离(数控铣或车铣中心使用,数控车床基本不用)。K为钻孔的次数(数控铣或车铣中心使用,数控车床基本不用)。F为进给量。注:在加工深孔时为了实现断削、排削,5114#参数设定每次钻深后的回退距离(无小数点输入)。
G84 刚性攻丝循环 格式:G84 Z_ F_; Z为攻丝深度,F为螺距。攻丝循环的执行动作:主轴正转→丝锥加工到尺寸→主轴暂停→主轴反转→丝锥退出。
★ 注:在执行G70~G84的循环指令时先输入循环的定位点,即G0或G1。当循环结束后,先返回到定位点后再执行下面的程序。
G90 单一车削循环 格式:G90 X_ Z_ F_; X 和Z为地址值,即绝对值坐标。F为进给量。执行一段程序机床实现4个动作,X向尺寸快速定位→切削→以切削方式退出→Z向定位。
实线为切削进给,虚线为快速定位
程序:
G0 X 100. Z2.;
G90 X 95. Z-50. F0.3;
X 92.;
X 90.;
G0 X 150. Z150.
G90 锥面单一切削循环 格式:G90 X _ Z_ R_ F_; R为大小径之差,半径值表示。在编程时只给出X向的终点坐标,起点坐标通过R值机床自动计算,R带正负号,判断正负的方法是X值的终点尺寸相对于起点尺寸,终点尺寸大于起点尺寸R为负值,终点尺寸小于起点尺寸R为正值。
图1
如图1:加工1:5的锥面,程序如下:
G0 X85. Z 2.;
G90 X 70. Z-100. R-10.2 F0.3;
X 60.;
X 50.;
G0 X 100. Z100.;
M30;
G92 单一螺纹循环 格式:G92 X_ Z_ F_ X和Z为地址值即绝对值坐标,F为螺距。
执行一段程序机床实现4个动作,X向尺寸快速定位→切削→以G0方式退出→Z向定位。若加工无退刀槽螺纹实现螺纹的尾退功能时, 5130#参数设置尾退量,5131#参数设置尾退角度。走刀方式见下图2:
图2
G92 单一锥面螺纹循环 格式:G92 X_ Z_ R_ F_; 与G90不同的是G92的F为螺距。
列举实例:加工如图3的螺纹,螺距为2MM.
图3
程序:G0 X 25. Z 5.;
G92 X 27. Z-52. R1.78 F2.;
X 27.5
X 28.
X 28.38;
G0 X 100. Z100.;
M30;
G94 端面单一循环 格式:G94 X_ Z_ F_; 除走刀路线不与G90和G92不同,其余基本相同。
G94 锥面单一循环 格式:G94 X_ Z_ R_ F_; 除走刀路线不与G90和G92不同,其余基本相同。G94端面单一循环走刀路径见下图4:
图4为G94走刀方式,实线为
切削方式,虚线为快速定位方式
G96 恒线速切削 格式:G96 S_; S为切削速度,单位为m/min。在车削球面或端面时为保证表面粗糙度时执行G96功能,为了保证恒线速的一致,主轴的转数会随着径向的尺寸变化而变化,径向尺寸越小,主轴转数越高,反之亦然。注:G96为模态代码。
线速度的计算公式为:
主轴速度的计算:
G97 取消恒线速 格式:G97 S_; 即取消G96恒线速功能,S为主轴r/min。注:G97为模态功能。
G98 每分钟进给
G99 每转进给 注:3402参数#4为开机默认方式0,0为每转进给G99,1为每分钟进G98.
M代码 功 能
M00 程序停止
M01 条件程序停止
M02 程序结束
M03 主轴正转
M04 主轴反转
M05 主轴停止
M06 刀具交换
M08 冷却开
M09 冷却关
M18 主轴定向解除
M19 主轴定向
M29 刚性攻丝
M30 程序结束并返回程序头
M98 调用子程序
M99 子程序结束返回/重复执行
‘伍’ 数控编程中什么是宏程序
宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用..宏一般分为A类宏和B类宏.A类宏是以G65
Hxx
P#xx
Q#xx
R#xx的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广.
‘陆’ 数控车床编程代码是什么
数控车床编程代码如下:
M03 主轴正转
M03 S1000 主轴以每分钟1000的速度正转
M04主轴逆转
M05主轴停止
M10 M14 。M08 主轴切削液开
M11 M15主轴切削液停
M25 托盘上升
M85工件计数器加一个
M19主轴定位
M99 循环所以程式
G 代码
G00快速定位
G01主轴直线切削
G02主轴顺时针圆壶切削
G03主轴逆时针圆壶切削
G04 暂停
G04 X4 主轴暂停4秒
G10 资料预设
G28原点复归
G28 U0W0 ;U轴和W轴复归
G41 刀尖左侧半径补偿
G42 刀尖右侧半径补偿
G40 取消
G97 以转速 进给
G98 以时间进给
G73 循环
G80取消循环 G10 00 数据设置 模态
G11 00 数据设置取消 模态
G17 16 XY平面选择 模态
G18 16 ZX平面选择 模态
G19 16 YZ平面选择 模态
G20 06 英制 模态
G21 06 米制 模态
G22 09 行程检查开关打开 模态
G23 09 行程检查开关关闭 模态
G25 08 主轴速度波动检查打开 模态
G26 08 主轴速度波动检查关闭 模态
G27 00 参考点返回检查 非模态
G28 00 参考点返回 非模态
G31 00 跳步功能 非模态
G40 07 刀具半径补偿取消 模态
G41 07 刀具半径左补偿 模态
G42 07 刀具半径右补偿 模态
G43 17 刀具半径正补偿 模态
G44 17 刀具半径负补偿 模态
G49 17 刀具长度补偿取消 模态
G52 00 局部坐标系设置 非模态
G53 00 机床坐标系设置 非模态
G54 14 第一工件坐标系设置 模态
G55 14 第二工件坐标系设置 模态
G59 14 第六工件坐标系设置 模态
G65 00 宏程序调用 模态
G66 12 宏程序调用模态 模态
G67 12 宏程序调用取消 模态
G73 01 高速深孔钻孔循环 非模态
G74 01 左旋攻螺纹循环 非模态
G76 01 精镗循环 非模态
G80 10 固定循环注销 模态
G81 10 钻孔循环 模态
G82 10 钻孔循环 模态
G83 10 深孔钻孔循环 模态
G84 10 攻螺纹循环 模态
G85 10 粗镗循环 模态
G86 10 镗孔循环 模态
G87 10 背镗循环 模态
G89 10 镗孔循环 模态
G90 01 绝对尺寸 模态
G91 01 增量尺寸 模态
G92 01 工件坐标原点设置 模态
‘柒’ fanuc加工中心G65 G67是啥回事,还有M29这个指令加入程序中起到什么样的作用 还有M07后面怎样加上时间指令
G65是调用宏程序。M29是刚性攻牙加在G84的前一个单节。M07是加工吹气,和M08用法一样。