宏程序培训.docx

上传人:b****7 文档编号:10907407 上传时间:2023-02-23 格式:DOCX 页数:17 大小:77.88KB
下载 相关 举报
宏程序培训.docx_第1页
第1页 / 共17页
宏程序培训.docx_第2页
第2页 / 共17页
宏程序培训.docx_第3页
第3页 / 共17页
宏程序培训.docx_第4页
第4页 / 共17页
宏程序培训.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

宏程序培训.docx

《宏程序培训.docx》由会员分享,可在线阅读,更多相关《宏程序培训.docx(17页珍藏版)》请在冰豆网上搜索。

宏程序培训.docx

宏程序培训

数控车床宏程序编程

(FANUCOi-mateTC系统)

第一章基础知识

1.1宏程序:

用户把实现某种功能的一组指令像子程序一样存储,在另一个程序中只要调出该指令即能实现该功能,这样的指令称为宏程序。

   宏指令:

把这样的代表指令称为用户宏程序的调用指令,称为宏指令。

1.2 宏程序的强大功能

(1)用户可以使用变量进行算术运算、逻辑运算和函数的混合运算。

(2)根据循环语言、分支语言和子程序调用语言,编制各种复杂的零件加工程序。

(3)减少了手工编程时进行的数值计算及精简程序等工作。

1.3 宏程序编程时的适应范围

(1)宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的数控车床的曲线手工编程。

(2)适合图形一样,只是尺寸不同的系列零件的编程。

(3)适合工艺路径一样,只是位置参数不同的系列零件的编程。

(4)有利于零件的简化编程。

 

第二章 变量与常量

2.1变量

普通加工程序直接用数值指定的G代码和移动距离;例如:

G01和X100.0,使用用户宏程序时,数值可以直接制定或用变量指定。

当用变量指定时,变量值可用程序设定或者修改。

#11=#22+123;

G01 X#11F500;

2.2变量的表示

计算机允许使用变量名,用户使用宏程序引入变量时,需用变量符号“#”和后面的变量号指定,例如:

#11。

表达式可以用于指定变量号,这时表达式必须封闭在括号中,例如:

#【#11+#12-#13】

2.3变量的类型

变量从功能表上主要可归纳为两种,即

系统变量:

用于系统内部运算时各种数据的存储。

用户变量:

包括局部变量和公共变量,用户可以单独使用,系统作为处理资料的一部分。

表2—1 FANUCOi变量类型

变量名

类型

功能

#0

空变量

该变量总是空,没有值能赋予该变量。

#1~#33

局部变量

局部变量只能在宏程序中存储数据,例如运算结果。

断电时,局部变量清除(初始化为空)可以在程序中对其赋值。

#100~#199

#500~#999

公共变量

公共变量在不同的宏程序中的意义相同(即公共变量对于主程序和从这些主程序调用的每个宏程序来说是公共的)

断电时,#100~#199清除(初始化为空),通电时复位到“0”。

而#500~#999数据,即使在断电时也不清除。

系统

变量

#1000以上

系统

变量

系统变量用于读和写CNC运行时各种数据变化,例如,刀具当前位置和补偿位置等。

2.4变量值的范围

局部变量和公共变量可以是0值或以下范围中的值:

-

,如果计算结果超出有效范围,则触发程序错误P/S报警。

2.5小数点的省略

当在程序中定义的变量值时,整数值的小数点可以省略。

例如:

当在定义#11=123;变量#11的实际值是123.00。

2.6变量的引用

●在程序中使用的变量值时,应指定后跟变量号的地址。

当用表达式指定变量时,必须把表达式放在括号中。

例如:

G01X[#11+#22]F#3.

●被引用变量的值根据地址的最小设定的单位自动的舍入。

●例如:

当G00X#11;以1/1000mm的单位(精确3位)执行时,CNC把12.3456赋值给变量#11,实际指令值为G00X12.346.

●改变引用变量的值的符号,要把负号(-)放在#的前面。

例如:

G00X-#11。

●当引用未定义的变量时,变量及地址都被忽略。

例如:

当变量#11的值是0,并且变量#22的值是空时,G00X#11Y#22的执行结果为G00X0。

注意:

不能用变量代表的地址符有:

程序号O,顺序号N,任选程序段跳转号/。

例如以下情况不能使用变量:

O#11/#22G00X100.0N#33Y200.0

2.7系统变量

系统变量的用途在系统中是固定的,不能把值代入系统变量中。

2.8常量

我们在系统中经常使用的常量有两种,即:

TRUE:

条件成立(真)FALSE:

条件不成立(假)

 

第3章算术和逻辑运算

用户宏程序中的变量可以进行算术和逻辑运算,表3-1中列出的运算即可在变量中执行,运算符号右边的表达式可包括常量和由函数或运算符组成的变量(表达式的变量#j和#k可以用常数赋值),左边的变量也可以用表达式赋值。

表3—1算术和逻辑运算

功能

格式

备注

定义、置换

#i=#j

 

 

 

加法

#i=#j+#k

减法

#i=#j-#k

乘法

#i=#j*#k

除法

#i=#j/#k

正弦

#i=sin[#j]

 

三角函数及反三角函数的数值均以度为单位来指定。

如90°30′应表示为90.5°

反正弦

#i=Asin[#j]

余弦

#i=cos[#j]

反余弦

#i=Acos[#j]

正切

#i=TAN[#j]

反正切

#i=ATAN[#j]

平方根

#i=SQRT[#j]

绝对值

#i=ABS[#j]

舍入

#i=ROVND[#j]

指数函数

#i=EXP[#j]

自然对数

#i=LN[#j]

上取数

#i=FLX[#j]

下取数

#i=FVP[#j]

逻辑

运算

#iAND#j

#iOR#j

异或

#iXOR#j

从BCD转为BIN

#i=BIN[#j]

用于与PMC的信号交换(进制的转换)

从BIN转为BCD

#i=BCD[#j]

 

第4章用户宏程序语句

4.1转移和循环

在程序中使用的GOTO语句和IF语句可以改变控制的流向。

有以下三种格式可以实现转移和循环操作。

转移和循环

4.2无条件转移(GOTO语句)

该语句转移到标有顺序号n的程序段。

当指定从1~99999以下的顺序号时,出现P/S报警,可用表达式指定顺序号。

其语句为:

GOTOn;n为顺序号(1~99999)

4.3条件转移(IF语句)

条件转移语句中,IF之后指定的条件表达式,可有下面两种表达式。

1IF[<条件表达式>]GOTOn例如:

②IF[<条件表达式>]THEN

例如:

如果#1和#2的值相同,0赋给#3。

IF【#1EQ#2】THEN#3=0

4.4循环(WHILE)语句

用WHILE引导的循环语句,在其后指定的一个条件表达式,当指定条件满足时,执行从DO到END之间的程序,否则转到END后的程序段。

其一般格式如下图:

WHILE引导的循环语句示意图

●这种指令格式用于IF语句,DO后面的号和END后的号时指定程序执行的范围的标号,值为1、2、3。

若1、2、3以外的值会产生P/S报警。

在DO~END循环的标号(1~3)可根据需要多次使用,又称为嵌套。

●下面以编写计算数值1~10的总和的程序为例来说明循环语句。

例如:

O0001

N10#1=0;(总和初始值)

N20#2=1;(变量初始值)

N30WHILE[#2LE10]D01;(IF[#2GT10]GOTO60)

N40#1=#1+#2;

N50#2=#2+1;(步进值为1)

N50GOTO30;

N60END1;

N70M30;(结果:

55)

(请大家总结WHILE和IF的不同)

4.5循环语句嵌套原则(宏程序P19)

①标号(1~3)可以根据要求多次使用。

2DO的范围不能交叉

3DO循环可以嵌套3级

4.6使用宏程序编制时注意:

1.变量使用应注意其用户可用的变量,防止使用系统变量造成系统报警。

2.明确全局变量与局部变量之间的关系,以及子程序与主程序之间的如何传递。

3.条件表达式是一个逻辑表达式,结果为TRUE(真)或FALSE(假)。

4.嵌套语句、条件控制语句成对使用,否则不执行或报警。

语句可以嵌套,但要注意嵌套的层数,一般不超过3层。

第五章宏程序非模态的调用

5.1用户宏指令

首先说明用户宏程序调用的(G65)与子程序调用(M98)之间的差别:

1G65可以进行变量的赋值,即指定自变量(数据传递送到宏程序),M98则不能。

2当M98程序段包含另一个NC指令(例如,G01X200.0M98P

)时,在指令执行完以后调用(或转移到)子程序。

相反,G65则无条件地调用宏程序。

3当M98程序段包含有O、N、P、L以外的地址的NC指令时,(例如G01X200.0M98P

)),在单程序段方式中,可以停止,(即停机)。

相反,G65则不能。

4G65改变局部变量的级别,M98不改变局部变量的级别。

5.2非模态调用(G65)

当指定G65时,调用以地址P指定的用户宏程序,数据(自变量)能传递到用户宏程序中,指定格式如下所示。

G65P

L<自变量的赋值>;

;要调用的程序号

;重复次数(默认值为1)

<自变量赋值>;传递到宏程序的数据

5.3G65调用说明

①在G65之后,用地址P指定用户宏程序的程序号。

②任何自变量前必须指定G65.

③当要求重复时,在地址L后指定从1~9999的重复次数,省略L值时,默认L值等于1.

5使用变量指定(赋值),其值被赋值给宏程序中的相应的局部变量。

5.4自变量指定的类型

地址

变量号

地址

变量号

地址

变量号

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

5.5逻辑运算说明

运算符

功能

逻辑名

运算特点

运算实例

AND

逻辑乘

(相当于串联)有0得0

1x1=1,1x0=0,0x0=0

OR

逻辑加

(相当于并联)有1得1

1+1=1,1+0=1,0+0=0

XOR

异或

逻辑减

相同得0,不同得1

1-1=0,1-0=1,0-0=0,0-1=1

5.6运算符

运算符

含义

英文注释

EQ

等于(=)

Equal

NE

不等于(≠)

NotEqual

GT

大于()

GreatThan

GE

大于或等于()

GreatthanorEqual

LT

小于()

LessThan

LE

小于或等于()

LessthanorEqual

 

第六章椭圆方程解析

6.1椭圆参数方程

X=Xo+acos

其中a:

短半轴b:

长半轴终止角

Z=Zo+bsin

(Xo、Zo)椭圆圆心坐标

如给定的时椭圆的终止角度,即可采用椭圆参数方程式解析!

6.2椭圆的线性方程

由参数方程

·采用椭圆线性方程用直线逼近,按Z方向进行变化,△Z越小,越逼近轮廓,求出每一个点(x,z)值。

·利用X=Xo±a*

,计算变量第i点时X、Z值。

·注意:

一般Z为自变量,X为因变量。

6.3、G65格式说明

G65P(椭圆加工子程序号)A(短半轴值)B(偏移量初始值,相对于椭圆圆心)

C(长半轴值)K(Z轴步进值精度)L(循环次数)

其中,A=#1B=#2C=#3K=#6

B:

相对于椭圆圆心的Z轴起始尺寸

K:

系统变量,Z轴的进给量(步进量)

 

第七章实例分析讲解

7.1抛物线宏程序

采用FANUCOi系统编写程序

O2001

N10G99G97G40;

N20T0101;

N30M41;

N40M03;

N50G00Z34.0;

N60X52.0;

N70#10=0;

N80#11=0;

N90IF[#10GT16]G0TO130;

N100G01X[#10]Z[#11]F0.5;

N110#10=#10+0.08;

N120#11=#10*#10/8;

N130ENDIF;

N140G00X52.0;

N150G00X100.0;

N160Z200.0;

N170M05;

N180M30;

7.2椭圆宏程序(凸起)

采用FANUCOi系统编写的程序

O2002

N10G99G97G40;

N20T0101;

N30M03;

N40M41;

N50G00Z52.0;

N60X52.0;

N70G01X0.0F0.5;

N80Z50.0;

N90#1=20.0;

N100#2=50.0;

N110#3=50.0;

N120WHILE[#3GT0]D01;

N130GO1X[2*#1*SQRT[#3*#3]/[#2*#2]]]Z[#3]F0.2;

N140#3=#3-1;

N150END1;

N160G00X52.0;

N170GOOX100.0;

N180Z200.0;

N190M05;

N200M30;

7.3椭圆宏程序(凹入)

O2003

N10G99G97G40;

N20T0101;

N30M41;

N40M03;

N50G00X2.0;

N60Z2.0;

N70G01X-40.0,F0.5;

N80Z0.0;

N90#1=20.0;

N100#2=50.0;

N110#3=0;

N120WHILE[#3GT-50]D01;

N130G01X-[2*#1*SQRT[1-#3*#3]/[#2*#2]]]Z[#3]F0.2;

N140#3=#3-1;

N150END;

N160GOOX2.0;

N170Z2.0;

N180G00X100.0;

N190Z200.0;

N200M05;

N210M30;

7.4椭圆宏程序实例(参见蓝皮p295页试卷

(1))

采用FANUCOi系统编写程序

各特征点的坐标:

A(12.084,0)

B(32.000,-19.046)

C(32.000,-40.847)

D(31.000,-59.838)

E(25.444,-15.894[相对于椭圆圆心])

F(30.000,-60.000)

O2008(椭圆加工子程序)

N10#5=[2.0*#1*SQRT[1-#2*#2]/[#3*#3]]];(X轴因变量)

N20IF[#2LT-15.894]G0T060;(判断是否走到Z轴终点,是则跳转60程序段)

N30G01X[#5+#150]Z[#2-#3]F0.2;(椭圆插补)

N40#2=#2-#6;(Z轴步进为0.5mm)

N50GOTO10;(跳转到10程序段)

N60M99;(返回主程序)

(其中#1=A,#2=B,#3=C,#6=k局部变量;#150=毛坯余量,公共变量)

A(短半轴值)B(偏移量初始值)C(长半轴值)K(Z轴步进进刀量)在主程序给定!

O2009(加工主程序)

N10G99G97G40;

N20T0101;

N30M41;

N40M03;

N50G00X52.0;

N60Z2.0;

N70G71U2.0R1.0;

N80G71P90Q150U2.0W1.0F0.5;

N90G00X12.084;

N100G01Z0.0F0.2;

N110G03X32.0Z-19.046R30.0F0.1;

N120G01Z-40.847F0.2;

N130G02X31.0Z-59.838R15.5F0.1;

N140G01Z-80.0F0.2;

N150X52.0;

N160G00Z0.0;

N170#150=5.0;(设定毛坯余量为5mm,赋给#150)

N180IF[#150EQ1.0]G0T0220;(毛坯余量等于1mm,跳转220程序段)

N190G65P2008A15.0B30.0C30.0K0.5;(调用椭圆子程序,粗加工椭圆)

N200#150=#150-1.0;(每次背吃刀量为1mm)

N210G0T0180;

N220G00X52.0;

N230Z2.0;

N240M05;

N250M42;

N260M03;

N270#150=0;(设定毛坯余量为0mm,重新赋给#150)

N280G65P2008A15.0B30.0C30.0K0.5;(调用椭圆子程序,精加工,一次)

N290GO2X30.0Z-60.0R16.0F0.1;

N300G01Z-80.0F0.2;

N310G01X52.0;

N320G00X150.0;

N330Z200.0;

N340M05;

N350M30;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1