法纳克宏程序的简单应用及应用唎题
宏 程 序 的 应 用
宏程序与子程序类似,对编制相同加工的操作可以使程序简化.同时宏程序中可以使用变量算术和逻辑运算及转移指令,還可以方便地实现循环程序设计使相同加工操作的程序更方便,更灵活
使用子程序编程可以重复同样的操作,简化程序的书写工作,但昰用户宏B提供了更丰富的编程功能,它允许使用变量、算术和逻辑操作及条件分支使得用户可以自行编辑软件包、固定循环程序。
本章以FANUC系统为例介绍宏程序设计的内容
一个普通的零件加工程序指定G码并直接用数字值表示移动的距离,例:G100 X100.0而利用用户宏,既可以直接使鼡数字值也可以使用变量号当使用变量号时,变量值既可以由程序改变也可以用MDI面板改变。
宏程序中使用的变量与日常生活中使用的變量不同变量用符号“#”后跟变量的变量号指定。
当指定一个变量时在#后指定变量号。个人计算机允许赋名给变量宏没有此功能。 唎:#1
也可以用表达式指定变量号这时表达式要用方括号括起来。例:#[#1+#2—12] 变量值的范围:
2.变量可分为四种类型 1. 空变量
#0为空变量,该变量鈈能赋值 2. 局部变量
#1~#33为局部变量,局部变量只能在宏程序中存储数据当断电时局部变量被初始化为空,调用宏程序时自变量对局部变量赋值。局部变量的数值范围10-29~1047或-如果计算结果超过该范围则发出P/S报警No.111。 3. 公共变量
#100~#199、#500~#999为公共变量公共变量在不同的宏程序中意义相同。當断电时变量#100~#199被初始化为空,变量#500~#999的数据不会丢失全局变量的数值范围10-29~1047或-,如果计算结果超过该范围则发出P/S报警No.111
宏程序可以用来加工同一类型不哃尺寸的工件只要改一个或者几个变量就可以了,也可以用来加工公式曲线还可以根据需要自己做循环程序,编写 一般就是用wh do 语句和if goto還要用到变量和运算!
正常的程序段是这样的:G1 X40.Z-10 F0.2; 这里面的40和10都是常数如果用两个变量#1和#2分别代替40和10,上面的程序段就变成了G1X[#1]Z[#2]F0.2;了这就是宏程序了。当然变量#1和变量#2要在G1之前被赋值的。
一个在宏程序中局部使用的变量
例,那么这个H就是要表示各个数值和变量号内的數值或者各个变量号内的数值与其他变量号内的数值之间要进行一个什么运算使用时只需给出这个总指令就能执行其功能:#[#30]:
4) 取整后的绝对值比原值大为上取整;格式G65 H05P#101 Q#102 R#103,OR.和以前的指令一样Q和R后面也可以直接写数值:1.条件满足时:#30=1100时;小于等于就转的H85,如果条件符合僦跳到第10程序段设定单位1μm
格式,不过还是教一下吧.结果是#101=#102*COS#103,而B类宏程序则是
以直接的公式和语言输入的和C语言很相似在0i系统中应鼡比较广,分别是等于就转的H81.
无条件转移指令.:F#103,可只写开头2个字母
说明; 这是简单的抛物线程序,实际上宏在程序中主要起到的昰运算作用,及数值10和20做为例子,3空和“0”相同
例、变量;X-1.235
X-#2 F300,而G65表示使用A类宏,下面我介绍一下A类宏的引用,则M#30是不允许嘚
5. #0为空变量、运算式
#I=#JOK#k
#I=SQRT[#j] 平方根
#I=ABS[#j] 绝对值
#I=ROUND[#j] 四舍五入化整
#I=FIX[#j] 下取整
#I=FUP[#j] 上取整
1) 角度单位为度
例,2,那么需要计算很多的点:使用变量
一. 变量的表示和使用
(一) 变量表示
H33和H34本来應该是TAN 和ATAN的可是经过我使用得数并不准确按各地址的最小设定单位进行四舍五入
例,设#110=250 则为Z-250
2. 变量号可用变量代替
例:WHILE[<条件式>]DO m空和“0”不同
其他条件下,反之为下取整
例#2=2.3456;
I#2 6.好现在我来说一下H代码,#1为了35.0
3) ROUND用於语句中的地址.
H05除指令,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削.1MM~~~~~其值取决於系统的状态
例,园括号用于注释语句
例:90度30分为90.5度
2) ATAN函数后的两个边长要用“1”隔开
例:#5,也就是说可以直接用这个求出三角形的
另一条边长;将#101内的数值和#102内的数值相比较;
M30则#3=1.0
H01赋值.(余数不存;
例,然后慢慢来用直线逼近,固定的地址就是变量,比如说椭圆,则从DOm的程序段
不满足时.由于现在B类宏程序的大量使
用很多书都进行了介绍这里我就不再重复了;X3.580
函数→乘除(*宏程序 序
大家都在问宏程序~其实说起来宏就是用公式来加工零件的则#3=-2.0
若#3=FIX[#2]时;格式;(m=1;
#1=#1+#2;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度;
#100~#149 断电后清空
#500~#531保持型变量(断电后不丢失)
H31 SIN正玄函数指令,应改为
(二) 变量的使用
1. 地址字后面指定变量号或公式
#1=#1+#2,把#102的数值加上#103的数值赋予#101
上面4个都是加指囹的格式都是把Q后面的数值或变量号内的数值加上R后面的数
值或变量号内的数值然后等于到P后面的变量号中.宏一般分为A类宏和B类宏:#1=#2+#3*SIN[#4],变量号就是把数值代入到一个固定的地址中AND)→加减(+,N:格式G65 H32 #101 Q#102 R#103,
上面4个都是乘指令的格式都是把Q后面的数值或变量號内的数值乘上R后面的数
值或变量号内的数值然后等于到P后面的变量号中,比如法兰克OTD系统中由于它的MDI键盘上没有公式符号;
#2=#2+1设#30=3 则为#3
3. 变量不能使用地址O,则从DOm到ENDm之间形成死循环
4.EQ NE时,现在说一下H代码的各个含义,都有具体数值范围
4. 變量号所对应的变量则#3=-1.0
5) 指令函数时. .
H03减指令,XOR)
例,为此如果应用B类宏程序的话就只能在计算机上编好再通过RSN-32接口传輸的数控系统中:#1=SIN[[[#2+#3]*#4+#5]*#6]:求1到10之和
O0001: A宏程序 B宏程序
断电后清空,如果不符合就继续执行下面的程序段,大家可以看到A类宏的标准格式中#xx和xx都是数值;
一. 转移与循环指令
格式.和以前的指令一样Q和R后面也可以直接写数值#500~#531
各用户宏程序内公用的变量
例,把#102的数值除以#103的数值赋予#101
上面4个都是除指令格式都是把Q后面的数值或变量号内的数值除以R后面的数
值或变量号内的数值然後等于到P后面的变量号中! G99
G0 X30,就是这么简单、函数,好:下述方法下允许
MDI键盘输一. 变量的种类
1,执行DOm到ENDm,也就是说可以直接用这个求絀三角形的另
一条边长.00×100;直接跳到第10程序段
X[#1+#2];
l 所存入的这一系列指令——用户宏程序
l 调用宏程序的指令————宏指令
END1;大于就转的H84小数点省略时单位为μm
运算式的右边可以是常数.A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,应用的时候别把他们当格式就行,如果昰个光洁度要求很高的工件的话:
H21:上例中#10改用#100时;
2.省略WHILE语句只有DOm…ENDm,没有定义变量值的变量也是空变量
6. 变量值定义#k也可为常量
式子右边为变量号:#2001值为1号刀补X轴补偿值
#5221值为X轴G54工件原点偏置值
入时必须输入小数点,除数如果为0的话会出現112报警)
三角函数指令,-最多5重. 系统变量
固定用途的变量,#109;意思是把#102内的数值开了平方根然后存到#101中(这个指令是非常重要的洳果在车椭圆的时候没有开平方跟的指令是没可能用宏做到的;
格式: <地址字>#I
<地址字>[<式子>]
例: GOTO 1:
程序定义时可省略小数点.05
条件式.结果是#101=#102*SIN#103,连最简单的等于号都没有,是以um级的量输入的,可以说你了解了H代码A类宏程序你基本就可以应用了,┅般OTD系统中有#0~~~#100~#149~~~#500~#531关闭电源时变量#100~#149被初始化成“空”;大于等于就转的H86#2=-1.2时
WHILE [#2LE10] DO1. 公共变量#100~#149,希望有知道的人能够告诉我是为什麼.
用 户 宏 程 序
能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,可是如果我们没有PC机和RSN-32电缆的话怎么辦呢调用宏程序时代入变量值
G1X[2*#2]Z-#1F0,对每个地址来说,关于变量号是什么意思再不知道的的话我也就没治了:把10赋予到#101中
#2=#2+#1,比如你輸入100那就是0.
H32 COS余玄函数指令:
#j EQ#k 表示=
#j NE#k 表示≠
#j GT#k 表示>
#j LT#k 表示<
#j GE#k 表示≥
#j LE#k 表礻≤
例:把#102内的数值赋予到#101中
N#3 Z200,我们要逐点算出曲线上的点;含义Q后面的#102是三角形的斜边
R后面的#103内存的是角度,但在一些老系统Φ?
开平方根指令,把#102的数值减去#103的数值赋予#101
上面4个都是减指令的格式都是把Q后面的数值或变量号内的数值减去R后面的数
值或变量号内的数值然后等于到P后面的变量号中