我的机械网

搜索
查看: 1063|回复: 5

Fanuc系统宏程序教程

[复制链接]
发表于 2017-11-5 15:34:50 | |阅读模式
各位网友请注意:我的机械网所有附件、百度网盘提取码、机械资料、PDF资料、压缩包文件均需要回帖后才能下载!
                        
15.用户宏程序
用户宏程序允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。可将相同加工操作编为通用程序,使用时,加工程序可用一条简单指令调出宏程序,和调用子程序完全一样。
20170317105452532.png
15.1变量
变量值可用程序或MDI面板上的操作改变。
#1=#2+100;
G01 X#1 F300;
说明:
Ø  变量的表示     变量用符号(#)和后面的变量号指定,例如:#1
                   表达式可以用于指定变量号,         例如:#[#1+#2-12]
Ø  变量的类型(四种)
变量号
变量类型
功能
#0
空变量
该变量总是空,没有值能赋给该变量
#1—#33
局部变量
只能用于宏程序存储数据,断电后初始化为空
#100—#199
#500—#999
公共变量
在不同的宏程序中意义相同,断电为空,断电保存
#1000—
系统变量
用于读和写CNC运行时各种数据的变化,如刀具的当前位置和补偿值
Ø  变量值的范围  -1047~-10-29或29~1047   如果计算结果超出则发出P/S报警No.111
Ø  小数点的省略   #1=123    相当于#1=123.000
Ø  变量的引用     G01 X[#1+#2] F#3
                   G00 X-#1
当引用未定义的变量时,变量及地址号都被忽略,如
#1=0,#2为空时,G00 X#1 Y#2;  ==  G00 X0;
Ø         限制    程序号、顺序号和任选程序段跳转号不能使用变量。如下面情况不能使用变量:O#1;    1#2 G00 X100.0;    N#3 Y200.0

15.2系统变量(略)
15.3算术和逻辑运算
表   算术和逻辑运算
功能
格式
备注
定义
#i=#j;

加法
减法
乘法
除法
#i=#j+#k;
#i=#j-#k;
#i=#j*#k;
#i=#j/#k;

正弦
反正弦
余弦
反余弦
正切
反正切
#i=SIN[#j];
#i=ASIN[#j];
#i=COS[#j];
#i=ACOS[#j];
#i=TAN[#j];
#i=ATAN[#j]/[#k];
角度以度指定。90°30′表示为90.5°。
平方根
绝对值
舍入
上取整
下取整
自然对数
指数函数
#i=SQRT[#j];
#i=ABS[#j];
#i=ROUND[#j];
#i=FIX[#j];
#i=FUP[#j];
#i=LN[#j];
#i=EXP[#j];



若操作后产生的整数绝对值大于原数的绝对值时为上取整;若小于原数的绝对值时为下取整。

异或

#i= #j OR #k;
#i= #j XOR #k;
#i= #j AND #k;
逻辑运算一位一位地按二进制数执行。
从BCD转为BIN
从BIN转为BCD
#i=BIN [#j];
#i=BCD [#j];
用于与PMC的信号交换。

说明:
Ø  角度单位  函数SIN,COS,ASIN,ACOS,TAN,ATAN的角度单位是度。
Ø  ARCSIN   #i=ASIN[#j]     取值范围如下:
当参数(No.6004#0)NAT位设为0时,270°~90°
当参数(No.6004#0)NAT位设为0时,-90°~90°
当#j超出-1到1的范围时,发出P/S报警No.111
常数可替代变量#j
Ø  ARCCOS  #i=ACOS[#j]     取值范围从180°~0°
当#j超出-1到1的范围时,发出P/S报警No.111
常数可替代变量#j
Ø  运算次序         1.函数    2.乘除运算    3.加碱运算
Ø             括号嵌套      括号可以使用5级,包括函数内部使用的括号。
当超过5级时,P/S报警No.118
Ø             上取整和下取整      若操作后产生的整数绝对值大于原数的绝对值时为上取整;
若小于原数的绝对值时为下取整。
设#1=1.2  #2=-1.2
当执行#3=FUP[#1]时,2.0赋给#3
当执行#3=FIX[#1]时,1.0赋给#3
当执行#3=FUP[#2]时,-2.0赋给#3
当执行#3=FIX[#2]时,-1.0赋给#3
Ø             ARCTAN

15.4宏程序语句和NC语句
下面的程序段为宏程序语句:
Ø  包含算术或逻辑运算(=)的语句段。
Ø  包含控制语句(如GOTO  DO  END)的程序段。
Ø  包含宏程序调用指令(如G65、G66、G67或其它G、M代码调用宏程序)的语句段。

15.5转移和循环
在程序中,使用GOTO语句和IF语句可以改变控制的流向。有三种转移和循环操作可供使用:
转移和循环————GOTO语句(无条件转移)
              |——IF语句(条件转移:IF…THEN…)
|____WHILE语句(当…时循环)
Ø  无条件转移(GOTO语句)
转移到标有顺序号N的程序段。可用表达式指定顺序号。
当指定1到99999以外的顺序号时,P/S报警No.128。
  GOTO n;      n:顺序号(1到99999)  
例:GOTO 1;         GOTO #10;
Ø  条件转移(IF语句)
IF[<条件表达式>] GOTO n;          IF之后指定条件表达式。
如果指定的条件表达式满足时,转移到标有顺序号n的程序段,
如果指定的条件表达式不满足,执行下个程序段。

&#216;  循环(WHILE语句)
20170317105508463.jpg






                    
20170317162113357.jpg
发表于 2017-11-26 11:32:07 |
今天是2017-11-26,过来看看回忆的帖子,涨涨见识!
发表于 2017-11-28 07:37:54 |
我的机械网(www.mejxw.com)是中国机械行业门户网站,为大家提供海 量免费的机械设计资源,范围涉及机械设计加工制造、智能化机器人、液压 电气、软件应用、行业咨询、机械兼职等各个层面,现诚邀您的加入,共同学习,共同进步!
发表于 2017-12-17 00:37:42 |
我的机械网(www.mejxw.com)是中国做好的机械论坛!
发表于 2018-10-20 19:30:54 |
17718132886

0

主题

5466

回帖

3万

积分

论坛元老

Rank: 8Rank: 8

积分
38502
发表于 2018-12-2 22:20:45 |
回忆
快速回复 返回顶部 返回列表