用户宏程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东南大学
工业发展与培训中心欢迎您!
用户宏程序
骆号
luohao_seu@
用户宏程序作用
我们的不同的数控系统给我们提供了基本的G01,G02,G03和一些复合循环指令,但是复合循环指令的基础还是基本的直线和圆弧插补构成,因此当遇到椭圆,抛物线或者二次曲线的时候我们就无法下手,但是不同的数控系统留下一些参数空间给我们用户使用,并且提供了一些三角函数,算术运算符和逻辑关系运算等功能,对这些复杂图形的加工有了很大的帮助,学好用户宏程序比较重要。
A、B类宏程序
在fanuc系统中,分为A类和B类宏程序,A类宏程序是用户根据实际需要灵活编制加工程序,而B类宏程序使用G65、G66采用参数值传递的方法传递参数变量,实现对一系列轮廓相似,但是尺寸变化的零件的加工。两者之间有着很大的相似性,因此这里主要讲解A类宏指令,B类宏指令请参阅机床说明书或编程指导书。
基本概念
变量:变量是指在程序的运行过程中随时可以发生变化的量。
变量表示:用#加变量号指定,如#1,表达式也可以用于指定变量,但是必须用[]刮起来。例如#1=10;#[#1]就表示#10里面的数值。
变量范围:-1047到-10-29,0,10-29到1047。在变量定义的过程中,小数点可以省略。
基本概念
变量类型:空变量#0;局部变量#1-#33;公
共变量:#100-#999系统变量:#1000-,主要功能如下:
读写CNC 运行的各种数据,
如刀具补偿。系统变量
#1000-#100-#199初始化为空,断
电消失,#200-#999断电不
消失。
公共变量#100-#199#200-#999该变量只能在宏程序中存储
数据,调用宏程序时对局部
变量赋值,不能跨程序或者
循环赋值。
局部变量#1-#33变量为空,不能赋值给该变量空变量#0
功能变量类型变量号
基本概念
变量引用
除了O,N,/(斜线)外,全部的地址都可以使用,如:
X#1(直接使用);
X-#2(变量值补码使用);
#3=#4,#5=1000(变量定义);
#1=#2+#3-#4-100,X[#2+#3+100](变量算术式定义)同一单节和地址不能定义变量,必须分开定义,如X#1=#3+100要改写成#1=#3+100;X#1;如果变量重复赋值,以最后一次赋值为准,如#1=100,#1=200,#2=200+#1;#3=#1+#2;则最后计算结果为#1=200,#2=400,#3=600。
变量应用后需要使用赋值语句进行赋值,如果不赋值的话,则定义的变量为空值。且#0总作为空变量使用,切记!
基本概念
条件式
EQ(=),LE(<=),LT(<),GE(>=),GT(>)
NE(≠),若条件表达式成立,则为真,否则为假。
算术和逻辑运算
运用算术和逻辑运算是为了更好的服务于因自变量的变化而引起的变量的变化。具体如下页表所示。
基本概念
算术和逻辑运算表
#i=sqrt[#j];#i=abs[#j];#i=ln[#j];#i=exp[#j];平方根绝对值自然对数指数函数
角度单位是度(°),角度数取值范围见备注。#i=sin[#j];/#i=asin[#j];#i=cos[#j];/#i=acos[#j];#i=tan[#j];/#i=atan[#j]/[#k];
正弦/反正弦余弦/反余弦正切/反正切#i=#j+/(-、*、/)#k;
加/减/乘/除法置换/赋值#i=#j; / #i=10;定义备注格式功能备注:
1.还有诸如或、异或、与、从BCD 至BIN 和从
BIN 到BCD 、取整及舍入为列出,见参考书。2.反正弦取值范围:当No.6004#0的NAT 位设为0是:270°-90°否则为-90°-90°。反余弦取值范围为180°-0°。反正切取值范围:当
No.6004#0的NAT 位设为0是:0-360°,否则为-180°-180°。中心的FANUC 系统采用默认设置,即NAT=0。为了书写方便,一般指定函数前两个字母即可,如sin 可写成si
基本概念
运算优先级:函数最高,乘除次之,加减最低,运用[]可以改变运算次序,最多可用5级,超过5级会报警。
#1=SIN[[[#2+#3]*#4+#5]*#6]
①
②
③
④
⑤
转移和循环
在程序中,主要用GOTO语句,IF语句改变控制流向,用while实现循环功能。
无条件转移GOTO:GOTO n:n为程序段号。如:
N1 g0x100z100;
……
GOTO1;执行此句后
转移和循环
条件转移:IF<条件表达式> GOTOn 如果条件满足,则执行转移命令,否则继续向下执行。
N1 G01X25Z2F3;
……
IF[#1GE10] GOTO1; G00X100Z100;
判断Y
N
转移和循环
WHILE 循环:功能类似于条件转移,如果表达式满足条件,则执行DO 和END 直接的程序,否则,转到END 后的程序。
WHILE[条件表达式]Dom;(m=1,2,3)
程序;ENDm;G00X100Z100;执行一次完成后返回再判断
不
满
足
条
件满足条件
转移和循环
WHILE循环的标号m数值只能是1-3,循环不能交叉(例如一个while循环中包含另一个while的一部分),控制可以赚到循环体外面,但是转移不能进入循环体内。
当在GOTO语句中有标号转移语句时,进行顺序号检索,反向检索时间大于正向检索时间,而WHILE循环语句实现了减少处理时间。