主页 > 数控资讯 > 数控车床编写宏程序?

数控车床编写宏程序?

一、数控车床编写宏程序?

没有其它数控车床编写宏程序,只有以下答案。

1.1 概述

(1)宏程序的分类

首先我们来讲一下宏程序的分类,A类和B类。首先在数控车系统比较老的时候,我们系统里面有A类宏,A类宏格式为G65格式,现在已经基本淘汰。随着科技发达,系统的升级优化,现在的数控系统大多支持B类宏程序,总体而言,现在B类宏是一个主流发展趋势,所以接下来我们的实例讲解都以B类宏程序为例。

(2)宏程序的概念

简单来理解宏程序是什么?可以这样理解,宏程序就是利用数学公式,函数等计算方式,配合数控系统中的G代码编制出的一种程序,主要加工一些像椭圆,曲线,各类大螺距螺纹和刀具路线相识的一些零件了。

二、数控车床宏程序怎么编?

  大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出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#2 6.00×100.0;

  N#3 Z200.0;

  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-#1F0.05

#1=#1+0.1

IF [#1 LE 50] GOTO 10

G0X30

Z100

M5

M30

三、数控车床宏程序刀具寿命?

典型刀具的使用寿命是每片刀片连续加工15到20分钟。刀具寿命是企业在比较理想的条件下测量出来的。根据不同的加工深度和不同的工件材料进给量,每片刀片连续加工15-20分钟,计算出相应的线速度与进给量的关系,形成相应的切削参数表。因此,每个公司的切割数据表也不同。

四、什么是数控车床宏程序?

数控车的话学下caxa数控车就可以了。目前车床上最方便的软件。

数控指令方面除了基本的以外,要学会掌握循环指令,再以后就是宏程序。

最重要的就是工艺了,一张图纸跟毛坯给你,你要学会如何最快最好的完成他,要将整个加工过程在脑子里过一遍确定是否可行复杂重要的最好写纸上 甚至大件要用软件模拟后再做(我就是是做大件的)。还有选择合适的刀具,机床。别上来就开干,干了左边发现右边完全没法加工了就傻眼了。

实践出真知 还是要吃的了操作工的苦才行。

五、数控车床a类宏程序讲解?

1.1 概述

(1)宏程序的分类

首先我们来讲一下宏程序的分类,A类和B类。首先在数控车系统比较老的时候,我们系统里面有A类宏,A类宏格式为G65格式,现在已经基本淘汰。随着科技发达,系统的升级优化,现在的数控系统大多支持B类宏程序,总体而言,现在B类宏是一个主流发展趋势,所以接下来我们的实例讲解都以B类宏程序为例。

(2)宏程序的概念

简单来理解宏程序是什么?可以这样理解,宏程序就是利用数学公式,函数等计算方式,配合数控系统中的G代码编制出的一种程序,主要加工一些像椭圆,曲线,各类大螺距螺纹和刀具路线相识的一些零件。随着科技发达,像椭圆,抛物线,等线性零件,用软件或则系统自代G代码可以完成加工,而大螺距异型螺纹这类零件,软件还没达到成熟,所以我们学会宏程序在加工中可以起到一个非常大的作用。可以弥补多年来数控车对大螺距螺纹的编程难的一个提高。

(3)宏程序的特征

1.赋值

在宏程序中我们通常用法最多的就是变量,比如:

#1=1 它就是一个变量。我们把这一过程,称为赋值。也就是说,我们把等号后面的数值1,赋值给#1。而现在#1的值就等于1,也可以理解为#1就是一个代号,用来代替数值1。

2.变量和应用

比如:#1=2(把数值2赋值给#1)

#2=1(把数值1赋值给#2)

#2=#1(程序从上往下执行,思考一下现在#2的值等于多少?)

解: 当程序执行第一步的时候#1的值等于2,当执行第二步的时候#2的值等于1,当执行第三步的时候这里要注意了,刚才讲过赋值过程,是等号后面的值赋值给等号前面,所以当#1在第一步赋值以后,#1已经等于2了,所以在执行第三步的时候#2的值应该等于2,不在是第二步的1了。从这里我们可以看出,当程序中有相同的变量#的时候,后面的#号代替前面的#号。

比如:#1=2

#1=3

最后结果#1的值因该是等于3的。所以说后面的代替前面的。

(4)变量的取值范围

1.局部变量(#1-#33)

什么叫局部变量,局部变量就是在局部或则可以理解为在单个程序中有效。断电以后系统自动清零。

2.公共变量(#100-#199,#500-#999)

公共变量和局部变量的区别在于,局部变量是在局部,或则单个程序中有效,而公共变量是指如果一个程序同时拥有主程序和子程序的情况下,在主程序中如果已经赋值,在子程序中可以不用从新赋值,可以共用。而#100-#199和#500-#999的区别在于,前者断电清零,而后者不会清零会一直保存在系统内部。比如:

#500=TAN[15]

#500一旦赋值就将保存在系统内部,下次可以直接调用#500使用。

3.系统变量(#1000-#17200)

系统变量是用于我们机床系统储存一些刀补数据参数等等的东西,我们可以不用管它,不会用的,慎用)

总结:一般情况下我们写程序用#1-#33,当有子程序的时候我们用#100-#199.

(5)宏程序中常用的计算

1.加法运算

例如:#1=2

#1=#1+3 那么#1的值等于2+3=5

2.减法运算

例如:#1=3

#1=#1-1 那么经过计算我们的#1的值等于3-1=2

3.乘法运算

程序中用*号来代替乘法

例如:#1=5

#2=#1*2 那么计算出来#2的值等于5*2=10

4.除法运算

程序中用 / 号来代替除法运算

例如:#1=10

#1=#1/2 那么经过计算#1的值等于10/2=5

(6)常用三角函数运算

1.TAN(正切)

例如#1=2*TAN[20] 中括号里面是角度

2.SIN(正玄)

例如#1=3*SIN[3] 同上

3.COS(余玄)

例如#1=COS[15]

4.ASIN、ACOS、ATAN(反三角)

5.SQRT(数学中的开平方的意思,和数学中根号一样)

例如#1=SQRT[9] 那么计算出来#1的值等于3

(7)宏程序的常用符号和含义

GT(大于)

GE(大于或等于)

LT(小于)

LE(小于或等于)

EQ(等于)

NE(不等于)

ABS(绝对值)

AND(与)

OR(或者)

(8)常用的语法和应用

1.无条件转移 GOTOn(n表示数值)

例如:GOTO01 此程序段的意思是当程序中执行到这一程序段的时候无条件跳转到程序段中N1的地方,执行N1后面的程序段。

M3S500G99

T101M08

GOTO10(当程序执行到这里的时候,直接跳转到N10那个程序段执行M30,跳过了G0那一步,所以这叫做无条件跳转,和我们一般程序中跳段功能一样)

G0X100.Z100.

N10M30

2.有条件跳转 IF[条件表达式]GOTOn

例如:IF[#1GT15]GOTO10 从这段程序当中,我们这样理解,如果中括号里面的条件满足,那么就执行后面的GOTO跳转语句,如果中括号里面条件不满足,那么不执行后面的GOTO跳转,执行后面一个程序段。

我们简单来写一个程序:

M3S500G99

T101M08

N10#1=30(把数值30赋值给#1)

IF[#1LT50]GOTO10(首先判断中括号是不是满足条件,如果满足执行跳转,不满足执行下一步)

M30

从这个程序中我们可以发现当#1=30的时候,我们执行条件判断,我们来判断一下,#1现在等于30,那么重括号里面就可以理解为30小于50,现在条件满足。所以他会执行后面GOTO跳转语句,跳转到N10地方继续执行)

3.强制赋值语句 IF[条件表达式]THEN(执行语句)

例如:IF[#1GT20]THEN#1=20 (我们这样来理解这个语句,如果#1大于20,那么#1等于20,也就是说和上面一样,中括号里面条件满足的话,执行后面THEN语句,如果不满足,不执行后面then语句。)

写一段简单程序:

#1=3(把数值3赋值给#1)

#1=#1-5(把#1-5计算出来的值从新赋值给#1,也就是3-5=-2,现在#1=-2)

IF[#1LT0]THEN#1=0(强制赋值,如果#1小于0,那么强制让#等于0)

M30

我们来分析一下上面程序段,当我们#1执行完减法运算以后#1的值已经等于-2,那么我们在执行强制赋值语句的时候我们来判断一下中括号里面条件是不是满足,-2小于0,条件满足,所以执行后面THEN语句,如果不满足的时候不执行THEN语句)

4.条件判断语句 WHILE[表达式]DOn(n为数值,取值范围1-99)

ENDn(n与开头n的数值对应)

例如:WHILE[#12GT50]DO1

END1

下面写一个程序段:

#1=60

WHILE[#1GT50]DO1

G0X#1

G1Z-20.F0.2

G0U1.Z1.

END1

M30

这个程序当条件判断语句里面中括号里面条件满足的时候执行DO1和END1中间的程序段,如果条件不满足,执行END1后面的程序段M30。

以上介绍的语法格式用法,以FANUC oi系列,广数,三菱系统为例。西门子,宝源,新代等系统以说明书为准!!

六、数控车床宏程序怎样编辑?

问得太笼统了,真是不太好回答。

简而言之,就是程序里面带有变量的就是宏程序了。比如: 正常的程序段是这样的:G1 X40.Z-10 F0.2; 这里面的40和10都是常数,如果用两个变量#1和#2分别代替40和10,上面的程序段就变成了G1X[#1]Z[#2]F0.2;了,这就是宏程序了。当然,变量#1和变量#2要在G1之前被赋值的。如: ....... ...... #1=10.; #2=-3.; G1X[#1]Z[#2]F0.1; 这句等同于G1X10.Z-3F0.1; ...... ...... 当然了,还要有判断、循环、分支转移等等,前面我说的你理解了,再找一些书看一下就好懂了。

七、数控车床宏程序怎么用?

答:用宏程序配合g75切深槽编程步骤如下:1、首先选择合适的刀具;

2、设置切削参数;

3、在编程软件中设置切削深度;

4、编辑G75内孔切槽的编程语句:5、设置补偿参数;

6、根据所一选刀具的参数设定刀具路径;

7、设置切削转速、进给速度;

8、设定问报警点;

9、最后,对程序进行测试,确保程序可以正确运行。

八、数控车床宏程序#504怎么用?

下面是一个简单的使用步骤:

1. 打开数控车床宏程序编辑器,输入宏程序#504。

2. 根据加工要求,设置工件坐标系、刀具长度补偿、切削参数等参数。

3. 根据工件的尺寸和形状,设置加工起点和终点,确定加工路径。

4. 编写加工程序,包括加工起点、顺时针或逆时针加工、终点等指令。

5. 将加工程序保存并加载到数控车床控制器中。

6. 启动加工程序,进行加工。

需要注意的是,使用宏程序需要对数控车床的操作和编程有一定的了解和经验。在使用宏程序时,需要仔细检查程序中的参数和指令,确保程序正确无误。同时,还需要根据加工要求,合理选择刀具和切削参数,以保证加工质量和效率。

九、数控车床宏程序角度怎么编?

1. 数控车床宏程序可以从角度编写。2. 从角度编写宏程序的原因是因为在数控车床加工过程中,需要控制工件在不同的角度上进行加工,例如进行倾斜、旋转等操作。通过编写宏程序,可以实现对工件在不同角度上的加工控制。3. 在编写数控车床宏程序时,需要明确工件需要在哪些角度上进行加工,然后根据加工要求和机床的运动轴进行编程。同时,还可以根据需要添加其他功能,如刀具补偿、切削参数调整等,以实现更加灵活和高效的加工过程。编写宏程序需要掌握数控编程语言和机床操作知识,可以通过学习相关课程和实践经验来提升编程技能。

十、数控车床椭圆宏程序实例讲解?

宏程序编椭圆的主要思想是,在一定间距内,通过计算出每个点的相对坐标(也就是相对于中心的位置),然后依次将每个点的坐标放入刀具空间,每放一点,就间隔一段距离,最后形成一个完整的椭圆形式。例如下面的宏程序:

O0001 (定义程序) 

N10 G90 G00 X0 Y0 Z0 (定义工具坐标系) 

N20 G00 X150 Y150 Z0 (定义圆心坐标) 

N30 F500 (定义切割速度) 

(以上已对工具和切割参数进行定义) 

N40 FOR A=45 TO 315 STEP 3 (调整角度1) 

N50 P=A*PI/180 (弧度转角度) 

N60 X=120*COS(P)+150 (计算X坐标) 

N70 Y=120*SIN(P)+150 (计算Y坐标) 

N80 G01 X[#5060] Y[#5070] Z0 (移动到X、Y的位置) 

N