FANUC系统宏程序编程.docx

上传人:b****1 文档编号:2909963 上传时间:2023-05-05 格式:DOCX 页数:11 大小:128.94KB
下载 相关 举报
FANUC系统宏程序编程.docx_第1页
第1页 / 共11页
FANUC系统宏程序编程.docx_第2页
第2页 / 共11页
FANUC系统宏程序编程.docx_第3页
第3页 / 共11页
FANUC系统宏程序编程.docx_第4页
第4页 / 共11页
FANUC系统宏程序编程.docx_第5页
第5页 / 共11页
FANUC系统宏程序编程.docx_第6页
第6页 / 共11页
FANUC系统宏程序编程.docx_第7页
第7页 / 共11页
FANUC系统宏程序编程.docx_第8页
第8页 / 共11页
FANUC系统宏程序编程.docx_第9页
第9页 / 共11页
FANUC系统宏程序编程.docx_第10页
第10页 / 共11页
FANUC系统宏程序编程.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

FANUC系统宏程序编程.docx

《FANUC系统宏程序编程.docx》由会员分享,可在线阅读,更多相关《FANUC系统宏程序编程.docx(11页珍藏版)》请在冰点文库上搜索。

FANUC系统宏程序编程.docx

FANUC系统宏程序编程

本系统宏程序体系采用FANUC系统宏程序B方式实现

一变量

普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。

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

当用变量时,变量值可用程序或用MDI面板上的操作改变。

#1=#2+100

G01X#1F300

说明:

变量的表示

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

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

例如:

#1

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

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

例如:

#[#1+#2-12]

变量的类型

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

#0-#49

局部变量

局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为0.调用宏程序时,自变量对局部变量赋值,

#50-#499

公共变量

公共变量在不同的宏程序中的意义相同.当断电时,公共变量初始化为0.

目前版本中,某些公众变量被赋予特殊意义(系统变量),用于描述CNC运行时各种数据的变化,这些变量包括:

#449用于指明固定循环退刀模式(G98,G99),如在G99方式下,#449变量为1;如在G98方式下,#449变量为-1.

#450用于指明当前程序段处于绝对坐标编程模式(G90)还是相对坐标编程模式(G91).如在G90方式下,#450变量为1;如在G91方式下,#450变量为-1.

#451,#452,#453,#454用于存储刀具当前位置(X,Y,Z,A轴)

在后期的版本中,将会安排专门的空间作为系统变量区.

变量值的范围

局部变量和公共变量在系统内采用浮点数方式存储

小数点的省略

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

例:

当定义#1=123;变量#1的实际值是123.000。

变量的引用

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

例如:

G01X#1+#2F#3或者G01X[#1+#2]F#3

限制

程序号,顺序号和任选程序段跳转号不能使用变量。

例:

下面情况不能使用变量:

0#1;

/#2G00X100.0;

N#3Y200.0;

二算术运算和逻辑运算

置换

#I=#j

算术运算

加:

#I=#j+#k,减:

#I=#j-#k,乘:

#I=#j*#k,除:

#I=#j/#k。

逻辑运算

下一版本将增加以下函数调用:

与:

#I=#JAND#k或:

#I=#JOR#k,

异:

#I=#JXOR#k,

函数

正弦:

#I=SIN[#j],余弦:

#I=COS[#j]正切:

#I=TAN[#j]

(目前版本角度单位为弧度,后续版本将改为度)

下一版本将增加以下函数调用:

反正切:

#I=ATAN[#j]

平方根:

#I=SQRT[#j],绝对值:

#I=ABS[#j]

下取整:

#I=FIX[#j],上取整:

#I=FUP[#j]

四舍五入:

#I=ROUND[#j]

转移与循环

在宏程序中,使用GOTO语句和IF语句可以改变程序的执行方向,转移和循环指令有3种。

无条件的转移

格式:

GOTOn;n为程序的顺序号(1—9999)

如GOTO99,GOTO#10

条件转移

格式:

IF[〈条件式〉]GOTOn

条件式的运算符由两个字母组成,用于两个值的比较,运算符有:

“EQ”表示“=”,“NE”表示“≠”,“GT”表示“>”,

“LT”表示“<”,“GE”表示“≥”,“LE”表示“≤”。

循环

格式:

WHLE[〈条件式〉]DOm;(m=1,2,3…)

ENDm

说明:

(1)当条件满足时,执行从Dom到ENDm之间的程序,否则,转到ENDm后的程序段。

(2)省略WHILE语句只有DOm…ENDm,则从DOm到ENDm之间形成死循环。

(3)在一个子程序中,m不能重复,m取值范围0-999。

三程序举例

铣椭圆:

轨迹:

椭圆程序代码如下:

%99;定义第99号子程序

G0X0Y0Z3

G0Z1

G1Z-5F150

#1=0;循环变量

#2=34;斜椭圆横向长度

#3=24;斜椭圆纵向长度

N1#4=#2*COS[#1];斜椭圆算法

#5=#3*SIN[#1];斜椭圆算法

#10=#4*COS[45]-#5*SIN[45];斜椭圆算法,45°为斜椭圆横轴与X轴夹角

#11=#4*SIN[45]+#5*COS[45];斜椭圆算法

G41P1.3G1X#10Y#11;以左半径补偿,刀具半径1.3方式进行斜椭圆加工

#1=#1+1;循环变量递增,递增量为1,该值越小,精度越高

IF#1LT370GOTO1;斜椭圆加工退出条件判别

G40G1X0Y0;半径补偿结束

M99;子程序结束

铣半球:

轨迹:

铣半球代码如下:

%100;定义第99号子程序

G90G0G54X-10.Y0M3S4500

Z5.

#1=0.5;循环变量,用于表示Z轴下刀深度

WHILE#1LE5DO1,当下刀深度>=5时,WHILE循环结束

#2=5-#1;#2变量用于后续半球算法的解算

#3=SQRT[25-#2*#2];半球算法

G1Z-#1F20;加工代码

X-#3F500;加工代码

G2Y0I#3;加工代码

#1=#1+0.1;循环变量递增,递增量为0.1,该值越小,精度越高

END1

G0Z5.M5

M99

铣喇叭:

轨迹:

铣喇叭代码如下:

%101;定义第99号子程序

#1=0

#2=0

G0Z1.5

X15Y0

N11#2=3*SIN[#1]

#3=3+3*[1-COS[#1]]

G01Z-#2F40

X#3

G03X#3I-#3

G01X15Y0

#1=#1+3

IF[#1LE90]GOTO11

G0Z3

M99

固定循环指令G81的实现:

本系统可通过宏指令实现用户自定义G指令,下面以G81指令实现为例进行讲解:

G81循环可以用于镗孔,执行程序G81X~Y~Z~A~B~C~R~L~,其过程如下:

1.预备移动。

2.以当前进给移动Z轴到Z位置。

3.Z轴以最大进给速度回缩到清除碎片的Z轴位置。

例1.假定当前点的坐标为(1、2、3),被选平面为XY平面,执行下面的数控代码:

G90G81G98X4Y5Z1.5R2.8

G90把距离模式设定为绝对距离模式,G98设定回缩模式是回到循环起始点,G81设定固定循环只运行一次。

X数字和X位置为4,Y数字和Y位置为5,Z数字和Z位置为1.5,R数字和清除碎片时Z轴位置为2.8,执行上面的程序会发生以下动作:

1.平行于XY平面以最大进给速度移动到坐标为(4、5、3)的位置。

2.平行于Z轴以最大进给速度移动到坐标为(4、5、2.8)的位置。

3.平行于Z轴进给到坐标为(4、5、1.5)的位置。

4.平行于Z轴以最大进给速度移动到坐标为(4、5、3)的位置。

例2.假定当前点的坐标为(1、2、3),被选平面为XY平面,执行下面的数控代码:

G91G81G98X4Y5Z-0.6R1.8L3

G91把距离模式设定为增量距离模式,G98设定回缩模式是回到循环起始点,G81设定固定循环次数为3次。

X数字为4,Y数字为5,Z数字为-0.6,R数字为1.8,X初始位置为5(=1+4),Y初始位置为7(=2+5),Z初始位置为4.8(=1.8+3),Z位置为4.2(=4.8-0.6),固定循环开始前的Z位置为3。

执行上面的程序会发生以下动作:

第一个动作是沿Z轴以最大进给速度移动到坐标为(1、2、4.8)的位置,因为固定循环开始前的Z位置小于清除碎片的Z轴位置。

第一个循环包括三个动作:

1.平行于XY平面以最大进给速度移动到坐标为(5、7、4.8)的位置。

2.平行于Z轴进给到坐标为(5、7、4.2)的位置。

3.平行于Z轴以最大进给速度移动到坐标为(5、7、4.8)的位置。

第二个循环包括三个动作,X位置为9(=5+4),Y位置为12(=7+5)。

1.平行于XY平面以最大进给速度移动到坐标为(9、12、4.8)的位置。

2.平行于Z轴进给到坐标为(9、12、4.2)的位置。

3.平行于Z轴以最大进给速度移动到坐标为(9、12、4.8)的位置。

第三个循环包括三个动作,X位置为13(=9+4),Y位置为17(=12+5)。

1.平行于XY平面以最大进给速度移动到坐标为(13、17、4.8)的位置。

2.平行于Z轴进给到坐标为(13、17、4.2)的位置。

3.平行于Z轴以最大进给速度移动到坐标为(13、17、4.8)的位置。

G81实现代码如下:

(#490X#491Y#492Z#493R#494L)

;#490变量接收G81指令X功能字

;#491变量接收G81指令Y功能字

;#492变量接收G81指令Z功能字

;#493变量接收G81指令R功能字

;#494变量接收G81指令L功能字

O9081;自定义G81指令子程序号,如预定义G103号指令,则该指令的子程序号

;为9103

#1=#451;#1变量用于接收刀具X轴位置,注意该位置坐标为工件坐标

#2=#452;#2变量用于接收刀具Y轴位置,注意该位置坐标为工件坐标

#3=#453;#3变量用于接收刀具Z轴位置,注意该位置坐标为工件坐标

IF#450LT0GOTO1;判别当前坐标模式为绝对坐标模式还是增量坐标模式

(绝对坐标模式下变量初始化)

#4=#493;

#5=#492

#6=#490-#1

#7=#491-#2

GOTO2

(增量坐标模式下变量初始化)

N1#4=#3+#493

#5=#3+#492

#6=#490

#7=#491

(初始化后,#4存放R点Z轴坐标,#5存放Z点Z轴坐标)

(#6存放X轴增进值,#7存放Y轴增进值)

N2IF[#449LT0]*[#4LT#3]GOTO3;如果固定循环返回指令为G98并且R点

;低于固定循环前初始Z位置,执行N3指令(返回点位置为固定循环前Z位置)

;否则执行下条指令(返回点位置为R点Z位置)

#8=#4

GOTO4

N3#8=#3

(#8存放退刀点Z轴坐标)

N4#11=#494;#11变量存储固定循环次数

IF#4LT#3GOTO5;如果R点Z位置低于固定循环前初始Z位置,执行N5指令

G90G00Z#4;如果R点Z位置高于固定循环前初始Z位置,Z轴快速移动到R点

N5WHILE#11GT0DO13;执行固定循环

G91G00X#6Y#7;XY快速移动至下一镗孔位置

G90G00Z#4;Z轴快速移动至R点Z位置处

G90G01Z#5;Z轴移动至Z点Z位置处进行镗孔

G90G00Z#8;Z轴快速移动至固定循环返回点

#11=#11-1;循环变量递减

END13;固定循环结束

M99

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

当前位置:首页 > 法律文书 > 调解书

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

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