数控宏程序基础Word下载.docx

上传人:b****3 文档编号:7188745 上传时间:2023-05-08 格式:DOCX 页数:21 大小:22.86KB
下载 相关 举报
数控宏程序基础Word下载.docx_第1页
第1页 / 共21页
数控宏程序基础Word下载.docx_第2页
第2页 / 共21页
数控宏程序基础Word下载.docx_第3页
第3页 / 共21页
数控宏程序基础Word下载.docx_第4页
第4页 / 共21页
数控宏程序基础Word下载.docx_第5页
第5页 / 共21页
数控宏程序基础Word下载.docx_第6页
第6页 / 共21页
数控宏程序基础Word下载.docx_第7页
第7页 / 共21页
数控宏程序基础Word下载.docx_第8页
第8页 / 共21页
数控宏程序基础Word下载.docx_第9页
第9页 / 共21页
数控宏程序基础Word下载.docx_第10页
第10页 / 共21页
数控宏程序基础Word下载.docx_第11页
第11页 / 共21页
数控宏程序基础Word下载.docx_第12页
第12页 / 共21页
数控宏程序基础Word下载.docx_第13页
第13页 / 共21页
数控宏程序基础Word下载.docx_第14页
第14页 / 共21页
数控宏程序基础Word下载.docx_第15页
第15页 / 共21页
数控宏程序基础Word下载.docx_第16页
第16页 / 共21页
数控宏程序基础Word下载.docx_第17页
第17页 / 共21页
数控宏程序基础Word下载.docx_第18页
第18页 / 共21页
数控宏程序基础Word下载.docx_第19页
第19页 / 共21页
数控宏程序基础Word下载.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数控宏程序基础Word下载.docx

《数控宏程序基础Word下载.docx》由会员分享,可在线阅读,更多相关《数控宏程序基础Word下载.docx(21页珍藏版)》请在冰点文库上搜索。

数控宏程序基础Word下载.docx

H05

除法

#i=#j?

H80

无条件转移转向N

H81

条件转移1

IF#j=#k,GOTONG65

H82

条件转移2

IF#j?

#k,GOTONG65

H83

条件转移3

IF#j>#k,GOTONG65

H84

条件转移4

IF#j<#k,GOTONG65

H85

条件转移5

H86

条件转移6

H99

产生P/S报警产生500+1号P/S报警

除此以外,G65指令还可以实现逻辑运算、开平方、取绝对值、三角运算及复合运算等,相关指令见

有关书籍,这里不一一介绍。

需要指出的是,不同的数控系统,其功能的多少也不一样,用户可参考有关

系统的说明书。

B类宏程序由控制语句,调用语句所组成。

宏程序可以与主程序做在一起,也可以单独做成一个子程序,然后用G65指令调用。

调用方法如下:

G65P(程序号)〈引数赋值〉或G65P(程序号)L(循环次数)〈引数赋值〉

所谓引数赋值,是指用A、B、C、D等地址给变量#1、#2、#3、#4等赋值。

B类宏程序的控制指令有三类,与C语言等高级程序设计语言的控制指令很类似。

一类是IF语句,格

式为:

IF[条件式]GOTOn(n即顺序号)

条件式成立时,从顺序号为n的程序段往下执行,条件式不成立时,执行下一下程序段;

第二类是

WHILE语句,格式为:

WHILE[条件式]DOm

ENDm

条件式成立时,从DOm的程序段到ENDm的程序段重复执行,条件式不成立时,则从ENDm的下

一程序段执行。

第三类是无条件转移指令,格式为:

GOTOn。

三、运用流程图编写用户宏程序的一般步骤

运用流程图编写用户宏程序的一般步骤为:

一分析零件结构,确定宏程序加工的内容,找出加工工艺

路线的律;

二将零件加工路线规律用流程图表达出来,并进一步分清楚哪些是程序编制过程中的变量,哪

些是常量,从而将一般的流程变成程序流程图;

三根据程序流程图,编写零件的加工程序。

四、应用举例

(一)宏程序应用实例一

如图1所示,在一根轴上加工N个槽,每个槽的宽度为a1,槽的间距为a2,槽底直径为b1,棒料直径b2,并且设所给材料足够长,试编写程序加工该零件,现有一零件参数为N=100个槽,槽底直径b1

=30mm,槽宽a1=5mm,工件直径b2=40mm,间隔a2=2mm,刀宽=3mm,现编写程序加工。

图1

1零件工艺过程分析

该零件是一个比较简单的例子,在压面机械上用得较多。

零件的精度要求不高,为了使程序有更广泛

的适应性,将宏程序做成一个子程序,用主程序来调用实现零件的加工。

加工时将坐标原点选择在如图所

示的位置,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

N10G65H83P160Q#204R#202如果刀宽大于槽完,则结束

N20G65H01P#215Q0计数器变量清零

N30G65H02P#205Q#202R#203计算#205

N40G65H02P#206Q#200R5工件直径加上5mm作为X方向起点

N50G65H02P#207Q#203R#204槽的间距加上一个刀宽

N60G65H01P#207Q?

#207取负值后作为第一个槽的Z向起点

N70G65H01P#208Q#201槽底直径作为槽终点的X坐标

N80G65H01P#209Q?

#205第一个槽终点Z向坐标

N90G00X#206Z#207M08定位到槽加工的位置

N100G75R1

N110G75X#208Z#209P2Q#204F20加工槽

N120G65H03P#207Q#207R#205下一个槽起点Z向坐标计算

N130G65H03P#209Q#209R#205下一个槽终点Z向坐标计算

N140G65H02P#215Q#215R1槽计数器加1

N150G65H84P90Q#215R#216判断槽是否加工完毕

N160M08

N170M99结束

主程序O0001

N10G65H01P#200Q40工件直径赋值

N20G65H01P#201Q30槽底直径赋值

N30G65H01P#202Q5槽宽赋值

N40G65H01P#203Q2槽间间隔赋值

N50G65H01P#204Q3切槽刀宽赋值

N60G65H01P#216Q100槽数赋值

N70G00X100Z100起刀点位置

N80M98P9061调用宏程序

N90M30程序结束

(二)宏程序应用实例二

对于一些大悬伸(加工深度与刀具直径之比较大)的零件,用普通加工方法总难达到理想效果,此时

用插铣法容易保证零件精度,如图3所示的零件,尺寸80很难保证,用插铣法后获得了比较好的效果。

曾经有工厂做过类似的程序,但程序只是针对零件本身,适应性不强,当零件的尺寸发生变化后,程序还

得发生较大修改。

笔者针对这种情况,将程序分为主程序和子程序,当零件的尺寸发生变化后,只需要修

改主程序即可,非常方便。

1加工工艺分析

传统加工工艺方法采用多次重复加工。

很难消除让刀,并且造成加工应力,最后由于应力释放造成零

件的内腔变小。

为了解决这个问题,我们将加工分为粗加工和精加工,粗加工采用普通的工艺方法,精加

工采用插铣。

建立如图3所示的坐标系,为了保证加工质量,防止划伤已加工过的表面,编程时避免使用钻孔循环

指令。

加工轨迹如图4所示,在YZ平面内进行以下加工步骤:

加工第一刀?

沿圆弧退刀?

返回Z=3处?

沿圆弧进刀?

沿X方向移动一个步距?

加工第二刀?

…。

加工过程中,粗加工尺寸80按79.6加工,而精加工采用宏程序编制高速插铣程序。

精加工的具体参

数如表2所示

图3零件图及坐标系

图4刀具路径

表2精加工参数

加工方式

加工材料

刀具

步距

设置安全高度

顺铣

铝合金

Φ18整体硬质合金加长球头刀

0.05

Z=3

2加工流程图

为增强程序的适应性,本程序刀分为子程序和主程序来编写,子程序起始位置为(0,0,50),刀具

在加工过程中的基本路线是按前面所给出的路线来走刀。

由此画出加工流程图如图5(a)所示。

图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坐标

N30G00X#1X方向定位到加工位置

N40G41D1Y#2Y方向定位到加工位置

N50G01Z3F3000M08下降下安全高度,开冷却液

N60#6=-(#3-#5)计算加工终点Z向坐标

N70#7=#2-2*#5计算退刀终点Y坐标

N80G01Z#6插铣加工

N90G02Y#7R#5退刀

N100G01Z3返回

N110G02Y#2R#5进刀

N120#8=#8+#4X方向总加工长度计数

N130G91G01X-#4X方向走一个步距

N140IF#8LE#1GOTO80判别第一侧是否加工完

N150G90Y-#2移至另一侧

N160G01Z#6插铣加工另一侧

N180G02Y-#7R#5退刀

N190G01Z3返回安全高度

N200G02Y-#2R#5进刀

N210#9=#9+#4X方向总加工长度计数

N220G91G01X#4X方向移动一个步距

N230IF#9LE#1GOTO160判别另一侧是否加工完

N240G90G40G00X0Y0M09X、Y方向返回起始点

N250Z50Z方向返回起始点

N260M99宏程序结束

主程序:

%1010

N10T01选一号刀

N20M06换刀

N30G00G90G54G19X0Y0S5000M03定位到起始位置,选择坐标平面及坐标系,启动主

轴。

N40G43H01Z50Z方向补偿

N60G65P9001A200B80.05C90D0E0F0I0.05J10K0调用宏程序并给相关变量赋值

N70M05停止主轴

N80G49Z50Z方向取消补偿

五、结束语

利用流程图编制用户宏程序,思路清晰,所编制的程序适应性好,是一种值得推广的方法。

04:

36阅读136评论1字号:

用户宏程序

能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指

令就能执行其功能。

l所存入的这一系列指令——用户宏程序

l调用宏程序的指令————宏指令

l特点:

使用变量

一.变量的表示和使用

(一)变量表示

#I(I=1,2,3,…)或#[<式子>]

例:

#5,#109,#501,#[#1+#2-12]

(二)变量的使用

1.地址字后面指定变量号或公式

格式:

<地址字>#I

<地址字>-#I

<地址字>[<式子>]

F#103,设#103=15则为F15Z-#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.05)指令函数时,可只写开头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”相同

O0001;

#1=0;

#2=1;

WHILE[#2LE10]DO1;

#2=#2+#1;

END1;

M30;

FANUC系统宏程序编程

一变量

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

例如,GO1和X100.0。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程

序或用MDI面板上的操作改变。

#1=#2+100

G01X#1F300

变量的表示

计算机允许使用变量名,用户宏程序不行。

变量用变量符号(#)和后面的变量号指定。

例如:

#1

表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

#[#1+#2-12]

变量的类型

变量根据变量号可以分成四种类型

变量号变量类型功能

#0空变量该变量总是空,没有值能赋给该变量.#1-#33局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.

当断电时,局部变量被初始化为空.调用宏程序时,自变

量对局部变量赋值,

#100-#199公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量

#100-#199初始化为空.变量#500-#999的数据保存,即使

#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#1Y#2的执行结果为G00X0。

双轨迹(双轨迹控制)的公共变量

对双轨迹控制,系统为每一轨迹都提供了单独的宏变量,但是,根据参数

N0.6036和6037的设定,某些公共变量可同时用于两个轨迹。

未定义的变量

当变量值未定义时,这样的变量成为空变量。

变量#0总是空变量。

它不能写,只能读。

引用

当引用一个未定义的变量时,地址本身也被忽略。

当#1=<

空>

当#1=0

G90X100Y#1G90X100Y#1G90X100G90X100Y0(b)运算

除了用<

赋值以外,其余情况下<

与0相同。

时当#1=0时#2=#1#2=#1

#2=<

#2=0

#2=#*5#2=#*5#2=0#2=0

#2=#1+#1#2=#1+#1#2=0#2=0

(c)条件表达式

EQ和NE中的<

不同于0。

时当#1=0时#1EQ#0成立#1EQ#0不成立#1NE#0成立#1NE#0不成立#1GE#0成立#1GE#0不成立#1GT#0不成立#1GT#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?

(2)当#j超出-1到1的范围时,发出P/S报警NO.111.

(3)常数可替代变量#j

ARCCOS#i=ACOS[#j]取值范围从180?

~0?

当#j超出-1到1的范围时,

发出P/S报警NO.111.常数可替代变量#j

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2