什么是宏程序,网上有人说:”凡是含有宏语句的程序可称之为宏程序”,无觉得还不全面,应该是:程序中含有宏语句且带有逻辑运算关系的程序才可以称为宏程序它类似计算机高级语言,但是仍然属于手工编程,是手工编程的扩展和延伸在这个计算机普及的年代很少编程人员使用宏程序了,不是因为计算机取代了宏程序,而是能够熟练运用的人员越来越少了今天我们就来为大家讲解在FANUC系统中如何使用宏程序,我来为大家科普一下关于宏程序梯形槽怎么编制?下面希望有你要的答案,我们一起来看看吧!
宏程序梯形槽怎么编制
什么是宏程序,网上有人说:”凡是含有宏语句的程序可称之为宏程序”,无觉得还不全面,应该是:程序中含有宏语句且带有逻辑运算关系的程序才可以称为宏程序。它类似计算机高级语言,但是仍然属于手工编程,是手工编程的扩展和延伸。在这个计算机普及的年代很少编程人员使用宏程序了,不是因为计算机取代了宏程序,而是能够熟练运用的人员越来越少了!今天我们就来为大家讲解在FANUC系统中如何使用宏程序。
在数控编程中,宏程序编程灵活、高效、快捷。宏程序不仅可以实现像子程序那样,对编制相同加工操作的程序非常有用,还可以完成子程序无法实现的特殊功能,例如,行腔加工宏程序、固定加工循环宏程序、锥面加工宏程序、螺旋铣削宏程序等。宏程序允许使用变量运算和逻辑运算及条件转移等特殊用法。此外,利用宏程序还可以实现系统参数的控制,如,坐标系的读写、刀具偏置的读写等。
FNANUC宏程序的构成
(1) 变量
(2) 算数或逻辑运算的程序段
(3) 控制语句(例如:GOTO,WHILE,DO,END)的程序段
(4) 宏程序调用指令
FANUC数控系统变量表示形式为# 后跟1—4位数字,如:#1、#33等,变量种类有三种:
# 0 空变量:该变量总是空,没有任何值能赋予该变量(这种不算)
#1—#33 局部变量:局部变量只能用在宏程序中存储数据,例如运算结果。当断电时局部变量被初始化为空,调用宏程序时自变量对局部变量赋值。
#100—#999 公共变量:公共变量在不同的宏程序中的意义相同,当断电时#100-#199初始化为空变量;#500—#999的数据保存,即使断电也不会丢失。
#10000— 系统变量:系统变量用于读和写CNC运行时各种数据的变化,例如刀具的当前位置和补偿值等
我们在宏程序编制中,最常用的是局部变量,极少数情况才会用到系统变量和公共变量。
算数和逻辑运算
功能 |
格式 |
定义 |
# 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 ] |
平方根 绝对值 舍入 |
# i =SQRT[ # j ] # i =ABS[ # j ] # i =ROUND[ # j ] |
上取整 下取整 自然对数 指数函数 |
# i =FIX[ # j ] # i =FYP[ # j ] # i =LN[ # j ] # i =EXP[ # j ] |
或 异或 与 |
# i =[ # j ] OR # K # i =[ # j ] XOR # K # i =[ # j ] AND # K |
从BCD转为BIN 从BIA转为BCD |
# i =BIN[ # j ] # i =BCD[ # j ] |
※红色部分为常用运算关系,其余太深奥我也没用过!
说明
函数SIN、COS、ASIN、ACOS、TAN、和ATAN的角度单位是度。如90º30ˊ表示为90.5度。
运算符
运算符 |
含义 |
EQ |
等于(=) |
NE |
不等于(≠) |
GT |
大于(>) |
GE |
大于或等于(≥) |
LT |
小于(<) |
LE |
小于或等于(≤) |
※这哥几个很重要,宏程序中经常用到!
我在宏程序编程时习惯用WHILE DO循环:
下面我们就用个简单程序为大家讲解宏程序的运用方法,之前我们用子程序的格式加工过图示(1)中的Ø30沉孔,还是采用D10铣刀分层加工,每层加工2毫米,看看使用宏程序如何实现,见图示(2)
图示(1)
图示(2)
以上程序要有两点疑问说明:
1、#1为何是(LT)小于10而不是LE(等于)10呢,因为程序中先执行的是Z轴指令,如果用LE,当#1=10时还是满足条件,#1=10 2,最终Z值就加工到了Z-12,所以我们选用LT运算符。
2、程序中Z[-#1],为何不用负数#1=#1-2进行逻辑运算,因为在WHILE语句中,负值需要用中括号括起来,如WHILE[#1GT[-10]]DO1;我觉得麻烦就选用了正值编程,纯属个人习惯。
在使用WHILE DO语句编制宏程序时,条件语句可以并列使用也可以嵌套使用,但嵌套使用最多允许三级嵌套,且不允许交叉嵌套,DO1对应的是END1;DO2对应为END2;DO3对应END3,如图示(3),上图编制的程序属于一级嵌套。
图示(3)
宏程序其实就是使用宏指令代码的运算方式,通过条件语句进行控制的程序编制。在FANUC系统中除了WHILE DO条件语句还有其他转移和循环语句。
在FANUC系统在程序中,除了WHILE DO语句,另外一个比较常用的就是,IF…GOTO语句,他的用法与WHILE DO编程思路相同,只是编程格式有所不同。
IF语句(条件转移,如果、、、)
GOTO语句(无条件转移,跳转到、、、常见搭配IF使用,也可单独使用)
WHILE DO语句(当、、、时循环)
图示(2)的程序也可以改用IF…GOTO来编程,见图示(4)
图示(4)
使用IF GOTO编程时需在跳转的程序段前加程序段落号,GOTO 10就是跳转到N10程序段,GOTO 100就是跳转到N100程序段。
这两种条件跳转格式在宏程序编制中最常用,FANUC中还有其他宏程序,如:
非模态调用(G65)
模态调用 (G66,G67)
这种宏程序调用使用复杂且不常用,我们不做过多讲解,感兴趣的老铁可以留言,详细介绍。
在编程中使用宏程序的目的不是增加程序的编制难度,而是是简化程序。能不能用好宏程序取决于编程员的思路及逻辑关系是否清晰,下节我们为大家分享几种使用宏程序的加工案例,敬请关注!以上就是我们今天所讲内容,由于系统版本不同,程序格式可能不太一样,有任何疑问或错误欢迎老铁们留言指正!