❶ 怎样用数控铣床加工椭圆,只需编程,急用……谢谢
假设椭圆中心在工件坐标零点的位置,以下是精加工椭圆的宏程序:碧差
G01X20Y0F0.2;
#1=1;
WHILE[#1LT360]DO1;
#2=20*COS[#1];
#3=11*SIN[#1];
G01X#2Y#3;
#1=#1+1;
DO1;
G00X50;
不要宏程序的话,可以拿圆弧逼近,用AUTOCAD先画椭圆出来,然后用圆弧逼近,出来的都是近似值。这样,如果零件精度要求不高的话,也能出来椭圆。
可以通过以下方法解决问题:
1、这个建议你借助Mastercam软件建立其三维模型再使用自动编程功能轻松搞定!
好办,你先得看图纸(显然这是废话,不过这是事实)
加工前记得把工件坐标糸原点对在在椭圆的中心
你是不是直接或间接找到了这个椭园长轴和短轴的长度了?(图纸没标错没标漏尺寸的话,一定能找出)
有了这个两个尺寸,这个椭园就可以确定了
接下来,你根据上面的两如裤个尺寸写出椭园的标准方程(不知道什么是椭圆的方程,不知道什么是椭圆的轴?
好吧,送佛送到西,椭园的标准方程是:(x/a)括号外面平方+(y/b)括号外平方=1,a是长轴长度,b是短轴长度)
要是你还不明白,回去找你们高中数学老师去,要不去自学《平面解析几体》
把方程写 y=f(x)(1号等式 ) 的形式
显然,x变,y也跟着变
关键部分开始:
以西门子802S为例,具体思路为:
先告诉机子,R1=a R2=0 。。。。 R1=a R2=0
再让刀到X=R1,y=R2的地方 MKARKE1:G01 X=R1 Y=R2
注:"MKARTE"是一个记号,等下你就明白在这做记号的原因了
再告诉机子,现在的R1比刚才的R少了0.01了 R1=R1-0.01
再告诉机子,R2是随着R1按椭园规律变化的, R2=f(R1)既代入1号式
好了,直线拟合: G01 X=R1 Y=R2
(因为R1只减少了0。01,因此这一步,刀只动了一点点,几乎看不到)
现在问机子,我们的参数R1等于零了没?
如果没等于零,程序跳转到MKARKE的地方 IF R1>0 GOTOB MKARKE1
这样,机子就从上MKARKE1的地方往下走,走到 IF R1>0 GOTOB MKARKE1的地方发现R1比零大,于是他又跳到MKARKE1的地方重新走,每走一遍X坐标就小了0。01,Y跟着增加,直到X走到零时,我们椭园第一象限的轮廓也完成了,然后退刀
G00Z5
G00X100Y100
椭园是对称的,其它象限的走法,雷同,自己研究吧,比如在第五程序断中,
如果写成G01 X=R1 Y=-R2,则会走出第四象限的轮廓
还有一种用椭圆参数方程编程的方法,不用分四次走,不过本质上是一样的
好了,费了这么大的劲,你是渣慧简不是多给几分呢?
不同的系统指令格式稍有区别。
比如:华中的。G02/G02 X Y Z R F 或者G02/G02 X Y Z I J F
数控铣床编程铣圆怎样编以下与这几种:
一:G54X0Y0Z100(定义坐标通常是检查坐标是否正确可以不要编程习惯)
M3S1000(主轴正传)
G0X40(到达圆弧的起点)
G01Z0F1000
Z-6F100
G02I-40F500(他的完整式G02X40Y0I-40J0F500,xy是圆弧终点,ij是相对于圆弧起的到圆心的距离,如果式中又不变的量可省略)
G0Z100
M30
二:种是用圆弧指令,如果铣刀顺时针旋转,铣内圆用G02, 铣外圆轮廓用G03,反之,逆时针就对调过来。
假设铣内圆,圆半径10.,圆心(0, 0),则
T101
G42
G0X0Y-10.
M15 ;下刀
G2X10.Y0.A10.
G2X0.Y10.A10.
G2X-10.Y0.A10.
G2X0.Y-10.A10.
M17 ;抬刀
G40
M30
三:则是用G32/33捞圆指令,不过不是每一种设备都支援,语法:
G32X0.Y0.A10.
四;一般操作的话,发那科系统铣床 在手动编辑里面编制程序就行了 G02顺时针方向圆弧切削 G03逆时针方向圆弧切削 一般基本都用G03逆时针切削视为顺铣切削 比如利用直径30铣刀加工一个直径为40的圆 相对坐标设置圆心为X0Y0 G91G01X-5.F**** G03I5. X5. M30 有深度的循环加工 可以利用主程序调用子程序,(M98) 主程序O0001 M3S*****(M3主轴正转) G91G01X-***(X-***:加工圆孔的半径与刀具半径的差值) M98P2L***(M98:调用子程序 P2:被调用子程序号为O0002 L***:循环次数,依圆孔深度与切削量指定) G91G01X***(X***:加工圆孔的半径与刀具半径的差值) M30 子程序O0002 G91G03I***(I***:I是指定半径,即I后面跟的数值是加工圆孔的半径与刀具半径的差值) M99(M99为重复循环)在中国非标刀具网看到的相关答案,
不同的系统指令格式稍有区别。我用的是华中的。G02/G02 X Y Z R F 或者G02/G02 X Y Z I J F
其中,整圆编程只能用I J方式编程。小于半圆R取正,大于半圆R取负。希望对你有帮助
用宏程序啊
假设椭圆中心在工件坐标零点的位置,以下是精加工椭圆的宏程序:用宏程序粗加工的话请另行提问。 G01X20Y0F0.2; #1=1; WHILE[#1LT360]DO1; #2=20*COS[#1]; #3=11*SIN[#1]; G01X#2Y#3; #1=#1+1; DO1; G00X50; 需要解释的话再找我! 不要宏程序的话,可以拿圆弧逼近,用AUTOCAD先画椭圆出来,然后用圆弧逼近!出来的都是近似值!这样,如果零件精度要求不高的话,也能出来椭圆!
铣R角 fanuc 三菱或接近fanuc系统的系统G代码基本上都是一样的得知道R角的起点和终点的位置 根据实际情况 用G02 G03 采纳
一般操作,发那科系统铣床 ,在手动编辑里面编制程序就可以了。 G02顺时针方向圆弧切削 G03逆时针方向圆弧切削 一般基本都用G03逆时针切削视为顺铣切削 比如利用直径30铣刀加工一个直径为40的圆 相对坐标设置圆心为X0Y0 G91G01X-5.F**** G03I5. X5. M30 有深度的循环加工 可以利用主程序调用子程序,(M98) 主程序O0001 M3S*****(M3主轴正转) G91G01X-***(X-***:加工圆孔的半径与刀具半径的差值) M98P2L***(M98:调用子程序 P2:被调用子程序号为O0002 L***:循环次数,依圆孔深度与切削量指定) G91G01X***(X***:加工圆孔的半径与刀具半径的差值) M30 子程序O0002 G91G03I***(I***:I是指定半径,即I后面跟的数值是加工圆孔的半径与刀具半径的差值) M99(M99为重复循环)。
数控铣床编程的特点有以下几点:
(1)bn零件加工的适应性强、灵活性好,能加工轮廓形状特别复杂或难以控制尺寸的零件,如模具类零件、壳类零件等。
(2)bn能加工普通机床无法加工或很难加工的零件,如用数学模型描述的复杂曲线零件以及三维空间曲面零件。
(3)bn能加工一次装夹定位后,须进行多道工序加工的零件。
(4)bn加工精度高、加工质量稳定可靠。
(5)bn生产自动化程度高,可以减轻劳动者的劳动强度,有利于生产管理自动化。
(6)bn生产效率高。
(7)bn从切削原理上讲,无论是端洗或是周洗都属于断续切削方式,而不象车削那样连续切削,因此对刀具的要求较高,同时还要求有良好的钢性
❷ 宏程序什么意思
问题一:宏程序什么意思 大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求哗旅友很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出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的数值赋予#1......>>
问题二:宏程序中EQ是什么意思? 是等于的意思,GT是大于,NE是不等于,GE是大于等于,LT是小于,LE是小于等于,希望对你有帮助
问题三:数控编程宏程序中#1#2……是什么意思 宏程序中的代号,他好比我们小学学的X(爱克斯),我举个例子哈。当X=2时,那么5+X就等于7.如果我在程序中写上#1=5,那么下一段只乱槐要读到#1系统就知道是5了。如果下面有一行程序为G0X[#1+2]Z30. 那么系统就会把刀具走刀X是7的位置,Z走刀30的位置。如果在指令#1=#1-1的话那么系统每读到#1的时候都会在上一个#1的数据减掉1毫米。这就是他的作用,也就是不单单表示一个数据,他还能运用计算来完成一些编程比较麻烦的环境中,希望我的解答能够使你了解宏!
问题四:宏程序#0什么意思 详细点 #0代表的是空变量,不管给#0赋值多少它的变量值都为零.
问题五:宏程序中fix什么意思 截断取整。例:fix(3.7)=3
区别于四舍五入取整round,如round(3.7)=4
问题六:谁知道数控宏程序是什么意思啊? 宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削, 实际上宏在程序中主要起到的是运算作用..宏一般分为A类宏和B类宏.A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广.
问题七:宏程序里面的#j 是什么意思 #表示变量号,j表示某个数字。
问题八:宏程序里GE GT IF等 那些都是什么意思啊? 5分 分别是大于等于,大于,如果,有兴趣可以网络中国宁波数控交流群
来自UC浏览器
问题九:加工中心宏程序#1#2是什么意思? 这只是一个代号而已,与XY的作用差不多
问题十:宏程序中的then是什么意思 然后啊,这个一般是跟if一起用的,
if ... then ...
如果解决了您的问题请采纳!
如果未解决请继续追问
❸ 数控编程宏程序的指令
宏程序编程
一 变量
普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100
G01 X#1 F300
说明:
变量的表示
计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。
例如:#1
表达式可以用于指定变量号。此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]
变量的类型
变量根据变量号可以分成四种类型
变量号
变量类型
功能
#0
空变量
该变量总是空,没有值能赋给该变量.
#1-#33
局部变量
局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空.调用宏程序时,自变量对局部变量赋值,
#100-#199
#500-#999
公共变量
公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失.
#1000
系统变量
系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿值.
变量值的范围
局部变量和公共变量可以有0值或下面范围中的值:
-1047到-10-29或-10-2到-1047
如果计算结果超出有效范围,则发出P/S报警NO.111.
小数点的省略
当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是123.000。
变量的引用
为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3;
被引用变量的值根据地址的最小设定单位自动地舍入。
例如:
当G00X#/;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346.
改变引用变量的值的符号,要把负号(-)放在#的前面。
例如:G00X-#1
当引用未定义的变量时,变量及地址都被忽略。
例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0。
双轨迹(双轨迹控制)的公共变量
对双轨迹控制,系统为每一轨迹都提供了单独的宏变量,但是,根据参数N0.6036和6037的设定,某些公共变量可同时用于两个轨迹。
未定义的变量
当变量值未定义时,这样的变量成为空变量。变量#0总是空变量。它不能写,只能读。
引用
当引用一个未定义的变量时,地址本身也被忽略。
当#1=
当#1=0
G90 X100 Y#1
G90 X100
G90 X100 Y#1
G90 X100 Y0
(b) 运算
除了用赋值以外,其余情况下与0相同。
当#1=时
当#1=0时
#2=#1
#2=
#2=#1
#2=0
#2=#*5
#2=0
#2=#*5
#2=0
#2=#1+#1
#2=0
#2=#1+#1
#2=0
(c)条件表达式
EQ和NE中的不同于0。
当#1=时
当#1=0时
#1EQ#0 成立
#1EQ#0 不成立
#1 NE #0 成立
#1 NE #0 不成立
#1 GE #0 成立
#1 GE #0 不成立
#1 GT #0 不成立
#1 GT #0 不成立
限制
程序号,顺序号和任选程序段跳转号不能使用变量。
例:下面情况不能使用变量:
0#1;
/#2G00X100.0;
N#3Y200.0;
二 算术和逻辑运算
下面表中列出的运算可以在变量中执行。运算符右边的表达式可包含常量和或由函数或运算符组成的变量。表达式中的变量#j和#k可以用常数赋值。左边的变量也可以用表达式赋值。
说明:
角度单位
函数SIN ,COS,ASIN,ACOS,TAN和ATAN的角度单位是度。如90°30'表示为90.5度。
ARCSIN # i= ASIN[#j]
(1)取值范围如下:
当参数(NO.6004#0)NAT位设为0时,270°~90°
当参数(NO.6004#0)NAT位设为1时,-90°~90°
(2)当#j超出-1到1的范围时,发出P/S报警NO.111.
(3)常数可替代变量#j
ARCCOS #i=ACOS[#j] 取值范围从180°~0° 当#j超出-1到1的范围时,发出P/S报警NO.111. 常数可替代变量#j
三 程序举例
铣椭圆:
轨迹:
椭圆程序代码如下:
N10 G54 G90 G0 S1500 M03
N12 X0 Y0 Z20.
N14 G0 Z1
N16 G1 Z-5. F150.
N18 G41 D1
N20 #1=0
N22 #2=34
N24 #3=24
N26 #4=#2*COS[#1]
N28 #5=#3*SIN[#1]
N30 #10=#4*COS[45]-#5*SIN[45]
N32 #11=#4*SIN[45]+#5*COS[45]
N34 G1 X#10 Y#11
N36 #1=#1+1
N38 IF [#1 LT 370] GOTO26
N40 G40 G1 X0 Y0
N42 G0 Z100
N44 M30
铣矩形槽:
铣矩形槽代码如下:
#102=0.
N3#100=0.
#101=0.
#103=200.
#104=400.
G91G28Z0.
G0G90G54X0.Y0.
G43H1Z20.
M3S2000.
N4G0X#100Y#101
G01Z#102F200.
#102=#102-2.
IF[#102EQ-50.]GOTO1
GOTO2
N2
N4X#104F500.
Y#103
X#100
Y#101
#100=#100+10.
#101=#101+10.
#103=#103-10.
#104=#104-10.
IF[#100EQ100.]GOTO3
GOTO4
N3
N1
M5
M9
G91G28Z0.
G28Y0.
M30
铣倾斜3度的面:
轨迹:
铣倾斜3度的面的代码如下:
O0001
#[#1+1*2]=1
G65P9012L1A0B0.1C4I100J3K0
M30
宏程序O9012代码如下:
G54 G90 G00 X[#3] Y0 Z100
S500 M3
G01 Z0 F300
WHILE[#1LE10]DO1
#7= #1/TAN[#5]+#3
G1Z-#1 X#7
#8=#6/2-ROUND[#6/2]
IF[#8EQ0]GOTO10
G1Y0
GOTO20
N10 Y#4
N20#1=#1+#2
#6=#6+1
END1
G0
Z100
铣半球:
轨迹:
铣半球代码如下:
G90G0G54X-10.Y0M3S4500
G43Z50.H1M8
#1=0.5
WHILE[#1LE50.]DO1
#2=50.-#1
#3=SQRT[2500.-[#2*#2]]
G1Z-#1F20
X-#3F500
G2I#3
#1=#1+0.5
END1
G0Z50.M5
M30
铣喇叭:
铣喇叭代码如下:
M03 S500
M06 T01
#1=0
#2=0
G0 Z15
X150 Y0
N11
#2=30*SIN[#1]
#3=30+30*[1-COS[#1]]
G01 Z-#2 F40
G41 X#3 D01
G03 I-#3
G40 G01 X150 Y0
#1=#1+1
IF [#1 LE 90] GOTO 11
G0 Z30
M30
❹ 宏程序while[#100le#4]d01什么意思
当 变量 #100 小于或等如灶于 #4 程序在WHILE 到 END 01 之间循环执行大枯
当 #100 大于 #4 程序不循渣仿扮环 从END 01 下一段执行
❺ 谁能帮我解释这铣床用宏程序精加工椭圆 每一步的意思
这个程序是我编的,花了时间的哦``这种宏程序是加工椭圆最简单的```居然都不采纳!
❻ 数控铣床椭圆宏程序编程
西门子:
长半轴=45
短半轴=25
O0001
T1D1
N13G90G00X65Y0Z100.0 刀具运行到(65,0,100)的位置
N14S1000M03
N15G01Z-10F1000.0 刀具下到-10mm
N16#114=0 赋初始值
N18#112=45*COS[#114] 计算X坐标值
N20#113=25*SIN[#114] 计算Y坐标值
N22G01G42X[#112]Y[#113]D02F200.0走到第一点 N24#114=#114+1 变量#114增加一个角度步长
N26IF[#114LT361]GOTO18 条件判断#114是否小于361,满足则返回18
N28G01G40X65Y0 取消刀具补偿,回到(65,0)
N30G90G00Z100.0M05 快速抬刀
N32M30 程序结束
发那科:
长轴48,短轴36
程序如下:
O1001(主程序)
T0101
G94S700M03M08
G54
G00G43Z30
G90X40Y0
Z2
G01Z0F150
M98P120L9(去毛坯余量,每次切深2毫米)
G00Z3
M30
O120(毛坯余量子程序)
G91G01Z-2
G90
#103=360(角度变量初赋值)
N100 #104=18*COS[#103](X坐标值变量)
#105=24*SIN[#103] (Y坐标值变量)
G41 X#104 Y#105 D01
#103=#103-1(角度增量-1)
IF[#103GE0]GOTO100(如果角度大于等于0,则返回执行循环)
G40G01X40Y0
M99
❼ 宏程序。 谁帮我逐句解释一下呢。
分层车椭圆牙型的螺纹,分层走刀路线基本就是下图
G0 X60 Z5
#1=1 椭圆的一个半轴
#9=5 自变量增加值为5度
WHILE[#1LE10]D01 当#1小于等于10时执行END1之间的程序
#2=0 初始自变量0度
WHILE[#2LE180]D02 当#2小于180度时执行顷散END2之间的程序
#3=#1*SIN[#2] 计算椭圆上点的坐标X的值
#4=2*COS[#2] 计算椭圆上点的坐标Z的值
#5=40-#3*2 平移椭圆到需要的位置,#3*2为这一点的直径
G0X#5 快速定位X
Z#4 快速定位Z
G32Z-80F30J0 走螺纹
G0X60 退刀
Z#4 退刀
#2=#2+#9渣手 自变量增加
END2
G0X60Z5 快速定位
#1=#1+0.5 椭圆的一个半轴增加0.5,也就是每层走0.5
IF[#1GE4]THEN #9=2 如果#1大于等于4自变量增加值就变为2度
IF[#1GE7]THEN #9=1 如果#1大于等于7自变量增加值就变为1度雀梁氏
IF[#1GE9]THEN #9=0.2 如果#1大于等于9自变量增加值就变为0.2度
END1
M30 程序结束
❽ CNC数控程序中的WHILE[#1 LE 8.] D01 或 WHILE[#2 GE 5.] DO1 是什么意思呢和什么有关联呢 详细求解!
是宏程序!如果#1小于等于8执行第一步,le为小于等于ge 为大于等于,do是做的意思。你只给了一个程序断,所以不能判断它和谁有联系。 宏程序有3种变量:空变量(由于水平有限不知是何用途),系统变源拆量决定系统的状态,剩下的就是局部变量了巧裂指。 宏程孝配序可以用来加工非圆曲线,可以加工螺纹…
❾ 宏程序D是什么意思
数控编程是数控加工准备阶段的主要内容,通常包括分析零件图样,确定加工工艺过程;计算走刀轨迹,得出刀位数据;编写数控加工程序;制作控制介质;校对程序及首件试切。有手工编程樱埋和自动编程两种方法。手工编程是指编程的各个阶段均由人工完成。对于几何形状复杂的零件需借助计算机使用规定的数控语言编写零件源程序,经过处理后生成加工程序,称为自动编程。
随着数控技术的发展,先进的数控系统不仅向用户编程提供了一般的准备功能和辅助功能,而且为编程提供了扩展数控功能的手段。FANUC6M数控系统的参数编程,应用灵活,形式自由,具备计算机高级语言的表达式、逻辑运算及类似的程序流程,使加工程序简练易懂,实现普通编程难以实现的功能。
宏程序是加工编程的重要补充。FANUC6M数控系统变量表示形式为#后跟1~4位数字,变量种类有三种:
(1)局部变量:#1~#33是在宏程序中局部使用的变量,它用于自变量转移。
(2)公用变量:用户可以自由使用,它对于由主程序调用的各子程序及各宏程序来说是可以公用的。#100~#149在关掉电源后,变量值全部被清除,而#500~#509在关掉电源后,变量值则可以保存。
(3)系统变量:由#后跟4位数字来定义,它能获取包含在机床处理器或NC内存中的只读或读/写信息,包括与机床处理器有关的交换参数、机床状态获取参数、加工参数等系统信息。
编程中变量的用途有四个,运算;递增量或递减量;与一个表达式比较之后,决定是否实现跳转功能的条件分支;将变量值传送到零件程序中去。其中运算又包括:算术运算(赋值、加、减、乘、除、绝对值、四舍五入整数化、舍去小数点以下部分);函数运算(正弦、余弦、正切、反正切、平方根);逻辑操作(与、或);比较操作(等于、大于、小于、大于或等于、小于或等于、不等于)。
其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线脊庆蚂上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用。
宏一般分为A类宏和B类宏
A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的;
B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广。由于现在B类宏程序的大量使用,很多书都进行了介绍,这里我就不再重复了,但在一些老系统中,比如FANUC 0 TD系统中由于它的MDI键盘上没有公式符号,连最简单的差歼等于号都没有,为此如果应用B类宏程序的话,就只能在计算机上编好再通过RSN-32接口传输的数控系统中。可是,如果我们没有PC机和RSN-32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了。
A类宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式,输入的xx的意思,就是数值。是以um级的量输入的,比如你输入100那就是0.1MM~~~~~.#xx就是变量号,关于变量号是什么意思再不知道的的话我也就没治了,不过还是教一下吧,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量,一般0 TD系统中有#0~~~#100~#149~~~#500~#531关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据.我们如果说#100=30那么现在#100地址内的数据就是30了,就是这么简单.好现在我来说一下H代码,大家可以看到A类宏的标准格式中#xx和xx都是数值,而G65表示使用A类宏,那么这个H就是要表示各个数值和变量号内的数值或者各个变量号内的数值与其他变量号内的数值之间要进行一个什么运算,可以说你了解了H代码A类宏程序你基本就可以应用了。
❿ 数控铣削宏程序
数控铣削加工宏程序的编制与应用
在数控编程中,宏程序编程灵活、高效、快捷。宏程序不仅可以实现象子程序那样,对编制相同加工操作的程序非常有用,还可以完成子程序无法实现的特殊功能,例如,型腔加工宏程序、固定加工循环宏程序、球面加工宏程序、锥面加工宏程序等。
一、FANUC宏程序的理论基础
(一)FANUC宏程序的构成
1)包含变量
2)包含算术或逻辑运算(=)的程序段
3)包含控制语句(例如:GOTO,DO,END)的程序段
4)包含宏程序调用指令(G65,G66,G67或其他G代码,M代码调用宏程序)的程序段
(二)FANUC宏程序的变量
FANUC数控系统变量表示形式为# 后跟1~4位数字,变量有四种:
1、FANUC宏程序的变量Ⅰ
变量号
变量类型
功能
#0
空变量该变量总是空
没有任何值能赋给该变量
2、FANUC宏程序的变量Ⅱ
变量号
变量类型
功能
#1——#33
局部变量
局部变量只能用在宏程序中存储数据,例如运算结果。当断电时局部变量被初始化为空,调用宏程序时自变量对局部变量赋值。
3、FANUC宏程序的变量Ⅲ
变量号
变量类型
功能
#100—#199
#500—#999
公共变量
公共变量在不同的宏程序中的意义相同当断电时变量#100 #199初始化为空变量
#500 #999 的数据保存即使断电也不丢失
4、FANUC宏程序的变量Ⅳ
变量号
变量类型
功能
#1000——
系统变量
系统变量用于读和写CNC 运行时各种数据的变化例如刀具的当前位置和补偿值等
(三)刀具补偿存储器C用G10指令进行设定
H代码的几何补偿值
G10L10P R ;
D代码的几何补偿值
G10L12P R ;
H代码的磨损补偿值
G10L11P R ;
D代码的磨损补偿值
G10L13P R ;
P:刀具补偿号
R:绝对值指令(G90)方式时的刀具补偿值。增量值指令(G91)方式时的刀具补偿值为该值与指定的刀具补偿号的值相加。
用G10改变工件坐标系零点偏移值
格式:G10L12PpIP ;
P=0:外部工件零点偏移值
P=1:工件坐标系G54的零点偏移值
P=2:工件坐标系G55的零点偏移值
P=3:工件坐标系G56的零点偏移值
P=4:工件坐标系G57的零点偏移值
P=5:工件坐标系G58的零点偏移值
P=5:工件坐标系G59的零点偏移值
IP: 对于绝对值指令(G90),为每个轴的工件零点偏移值。
对于增量值指令(G91),为每个轴加到设定的工件零点偏移值。
(四)FANUC宏程序运算符Ⅰ
1、FANUC宏程序运算符Ⅰ
功能
格式
备注
定义
#i=#j
加法
#i=#j+#k
减法
#i =#j- #k
乘法
#i =#j*#k
除法
#i=#j/#k
2、FANUC宏程序运算符Ⅱ
功能
格式
备注
正弦
#i=SIN[#j]
角度以度指定,如90º30’表示为90.5度
反正弦
#i=ASIN[#j]
余弦
#i=COS[#j]
反余弦
#i=ACOS[#j]
正切
#i=TAN[#j]
反正切
#i=ATAN[#j]
3、FANUC宏程序运算符Ⅲ
功能
格式
备注
平方根
#i=SQRT[#j]
绝对值
#i=ABS[#j]
舍入
#i=ROUND[#j]
上取整
#i=FIX[#j]
下取整
#i=FUP[#j]
自然对数
#i=LN[#j]
指数函数
#i=EXP[#j]
4、FANUC宏程序运算符Ⅳ
功能
格式
备注
或
#i=#j OR #k
逻辑运算一位一位的按二进制数执行
异或
#i=#j XOR #k
与
#i=#j AND #k
从BCD转为BIN
#i=BIN[#j]
用于与PMC的信号交换
从BIN转为BCD
#i=BCD[#j]
(五)FANUC宏程序的转移和循环
1、FANUC宏程序的转移和循环Ⅰ
无条件转移:GOTOn
(n为顺序号,1——99999)
例:GOTO10为转移到N10程序段
2、FANUC宏程序的转移和循环Ⅱ
条件转移:(IF语句)
IF [条件表达式] GOTOn
当指定的条件表达式满足时,转移到标有顺序号n的程序段,如果指定的条件表达式不满足时,执行下个程序段
3、FANUC宏程序的转移和循环Ⅲ
条件转移:(IF语句)
IF [条件表达式] GOTOn
如果变量#1的值大于10,转移到顺序号N20的程序段。
如果条件不满足 IF [#1 GT 10] GOTO 2
如果条件满足
程 序
程程序序
N20 G00 G90 X100. Y20.
:
4、FANUC宏程序的转移和循环Ⅳ
IF [条件表达式] THEN
当指定的条件表达式满足时,执行预先决定的宏程序语句。
例:IF [#1EQ #2] THEN #3=0;
(六)FANUC宏程序的循环
FANUC宏程序循环Ⅰ
WHILE [条件表达式] Dom;
(m=1,2,3)
条件不满足 条件满足
ENDm
注:循环允许嵌套,最多3层,但不允许交叉;
FANUC宏程序循环Ⅱ
FANUC宏程序循环Ⅲ
(七)FANUC宏程序的条件表达式运算符
运算符
含义
EQ
等于
NE
不等于
GT
大于
GE
大于或等于
LT
小于
LE
小于或等于
(九)FANUC宏程序的调用Ⅰ
FANUC宏程序的调用Ⅰ
非模态调用G65:
格式: G65PpLl<自变量指定>
其中
p:要调用的程序号
L:调用次数(默认为1)
自变量:数据传递到宏程序
FANUC宏程序的调用Ⅱ
模态调用(G66):
G66PpLl<自变量指定>;
程序点
G67;(取消模态)
其中
p:要调用的程序号
L:调用次数(默认为1)
自变量:数据传递到宏程序
(十)FANUC宏程序的自变量指定
1、FANUC宏程序的自变量指定I
地址
变量
地址
变量
地址
变量
A
#1
I
#4
T
#20
B
#2
J
#5
U
#21
C
#3
K
#6
V
#22
D
#7
M
#13
W
#23
E
#8
Q
#17
X
#24
F
#9
R
#18
Y
#25
H
#11
S
#19
Z
#26
2、FANUC宏程序的调用II
地址
变量
地址
变量
地址
变量
A
#1
K3
#12
J7
#23
B
#2
I4
#13
K7
#24
C
J4
#14
I8
#25
I
#4
K4
#15
J8
#26
J
#5
I5
#16
K8
#27
K
#6
J5
#17
I9
#28
I2
#7
K5
#18
J9
#29
J2
#8
I6
#19
K9
#30
K2
#9
J6
#20
I10
#31
I3
#10
K6
#21
J10
#32
J3
#11
I7
#22
K10
#33
二、FANUC宏程序的应用
(一)宏程序示例(铣圆)
#1=圆心坐标X值
#2=圆心坐标Y值
#3=园孔最终Z值
#4=圆孔直径
#5=刀具直径
#6=[#4+#5]/4 (进刀半径)
#7= #3+50 (进刀高度)
#8= [#1+#4]/2-#6(进刀圆弧起点X值)
#9 = #2 - #6 (进刀圆弧起点Y值)
#10= #1+#4/2 (铣圆起点X值)
#11= -#4/2 (I矢量)
#12= #2+#6(退刀圆弧Y值)
%
O100
M03S1000
G00G90G54G43H01Z100.
X#1Y#2
Z#7
G01Z#3 F100
G41D02X#8Y#9
G03X#10Y#2R#6
G03X#10Y#2I#11J0
G03X#8Y#12R#6
G01G40X#1Y#2
G00Z100.
M30
%
(二)宏程序示例(铣半圆球)
自上而下等角度水平圆弧环绕球面精加工
#1=(A)球面的圆弧半径
#2=(B)球头铣刀刀具半径
#3=(C)球面的起始角度
#4= (I)球面的终止角度,#4≤90°
#17=(Q)Z坐标每次递减量
#24=(X)球心坐标X值
#25=(Y)球心坐标Y值
#26=(Z)球心坐标Z值
%
O200
M03S1000
G00G90G541Z100.
G00X0Y0
G65P1912X Y Z A B C I Q
M30
%
O1912 (宏程序)
G52X#24Y#25Z#26
G00X0Y0Z[#1+30]
#12=#1+#2
WHILE [#3LT#4]DO1
#5 = #12*COS[#3]
#6 = #12*SIN[#3]
X[#5+#2] Y#2
G03X#5Y0R#2F1000
G02 I-#5
G03X[#5+#2]Y-#2R#2
G00Z[#7+1]
Y#2
#3 = #3 + #17
END 1
GOO Z[#1+30]
G52 X0 Y0 Z0
M99
%
注释说明
(主程序)
调用宏程序O1912
(空格处为变量赋值)
在球心处建立局部坐标
球心与刀心连线距离
如果#3<#4,循环1继续
任意角度刀心X坐标值
任意角度刀心Y坐标值
G00定位于下刀点
圆弧进刀
沿球面切削
圆弧退刀
提刀1
移到进刀点
角度#3每次递增#17
循环1结束
提刀
恢复G54坐标
宏程序结束返回
(三) 宏程序示例Ⅰ
采用Φ20R4铣刀加工SR30的球,已知球心坐标为(X0Y0Z-5.)
宏程序示例Ⅱ
1、分析:铣球程序一般采用自动编程来实现,但是,利用宏程序强大的功能同样也可以实现,而且程序更加简洁。
2、编程思路:
铣球可以认为是多个铣圆的组合。
3、排刀分布:
有两种方案,一是按Z向分布,二是按圆心角分布。从保证表面质量来看,最佳方案为按圆心角分布。
圆弧起点计算,从X正向开始起刀。
刀具根部R4的圆心在XZ平面的运动轨迹为与R30等距的圆R34(见图示中红色轨迹),刀尖点上4mm处的轨迹(即褐色轨迹)为红色轨迹沿X正向平移6毫米,刀尖点坐标为褐色轨迹沿Z轴向下平移4mm(即绿色轨迹)。
起始角度=ARCSIN((5+4)/34)=15.349º
起始位置X值=34*COS(15.349)+6=38.787
起始位置Z值=0 (通用表达式=34*sin(15.349)-5-4)
4、变量定义:
#1为圆心角,范围由(15.349,90)
#2为刀尖中心X值,#2=34*COS[#1]+6
#3为刀尖中心Z值,#3=34*SIN[#1]-5-4
%
O300
M03S3000;
G00G90G54Z100.;
#1=15.349
X50.Y0;
Z10.;
WHILE[#1 LE 90] DO1;
#2=34*COS[#1]+6;
#3=34*SIN[#1]-5-4;
G01Z#3F900;
X#2;
G02X#2Y0I-#2J0;
#1=#1+1;
END1;
G00Z100.;
M30;
%
(四)宏程序示例II
用Φ20R10铣刀加工轮廓处R5圆角
下面为铣外形的一段程序,采用刀具半径补偿
G00X2.5Y26.664
G01G41D01X-8.991Y2.023
G03X2.5Y-3.336I11.491J9.641
X32.969Y-.208I0.J150.
G02X44.955Y-10.952I2.031J-9.792
G03Y-49.048I199.09J-19.048
G02X33.452Y-59.88I-9.955J-.952
G03X-28.452I-30.952J-197.59
G02X-39.922Y-48.75I-1.548J9.88
G03Y-11.25I-148.823J18.75
G02X-27.969Y-.208I9.922J1.25
G03X2.5Y-3.336I30.469J146.872
X13.991Y2.023I0.J15.
G40G01X2.5Y26.664
编程思路:
利用G10指令修改刀具半径偏置值来实现倒圆角。
G10格式为G10L12P1R ,其中,P1表示修改D01,R后为刀具半径偏置值。
设定倒角的圆心角为变量#1,取值范围为0-90º
设定#2为刀具半径偏置值,取值=COS[#1]*15-5
设定#3为Z值,取值=SIN[#1]*[5+10]-5-10
%
O400
M03S3000
G00G90G54Z100.
#1=0
X2.5Y26.64
Z5.
WHILE [#1 LE 90] DO1
#2= COS[#1]*15-5
#3= SIN[#1]
*[5+10]-5-10
G10L12P1R#2
G01Z#3F900
G00X2.5Y26.664
G01G41D01X-8.991Y2.023
G03X2.5Y-3.336I11.491J9.641
X32.969Y-.208I0.J150.
G02X44.955Y-10.952I2.031
J-9.792
G03Y-49.048I199.09J-19.048
G02X33.452Y-59.88I-9.955J-.952
G03X-28.452I-30.952J-197.59
G02X-39.922Y-48.75I-1.548J9.88
G03Y-11.25I-148.823J18.75
G02X-27.969Y-.208I9.922J1.25
G03X2.5Y-3.336I30.469J146.87
X13.991Y2.023I0.J15.
G40G01X2.5Y26.664
#1=#1+5
END1
G00Z100.
M30
%
三、小结
随着现代制造技术的发展和数控机床的日益普及,数控加工得到广泛应用。对于加工形状简单的零件,计算比较简单,程序不多,采用手工编程较容易完成。因此,在点定位加工及由直线与圆弧组成的轮廓加工中,手工编程仍广泛应用。但对于形状复杂的零件,特别是具有非圆曲线、列表曲线及曲面的零件,用一般的手工编程就有一定的困难,且出错机率大,有的甚至无法编出程序。在CAD/CAM软件普遍应用的今天,手工编程的应用空间日趋缩小。但手工编程是自动编程的基础。宏程序的运用,其最大的特点就是将有规律的形状或尺寸用最短的程序段表示出来,具有极好的易读性和易修改性。