加工中心宏程序
宏程序的作用:
数控系统为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。
宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的曲线编程;适合图形一样,只是尺寸不同的系列零件的编程;适合工艺路径一样,只是位置参数不同的系列零件的编程。较大地简化编程;扩展应用范围。
加工中心宏程序应用:
以下都以#100和#101和#102,及数值10和20做为例子,应用的时候别把他们当格式就行,
基本指令
H01赋值;格式:G65H01P#101Q#102:把#102内的数值赋予到#101中
G65H01P#101Q#10:把#10赋予到#101中
H02加指令;格式G65 H02 P#101 Q#102 R#103,把#102的数值加上#103的数值赋予#101
G65 H02 P#101 Q#102 R10
G65 H02 P#101 Q10 R#103
G65 H02 P#101 Q10 R20
上面4个都是加指令的格式都是把Q后面的数值或变量号内的数值加上R后面的数
值或变量号内的数值然后等于到P后面的变量号中.
H03减指令;格式G65 H03 P#101 Q#102 R#103,把#102的数值减去#103的数值赋予#101
G65 H03 P#101 Q#102 R10
G65 H03 P#101 Q10 R#103
G65 H03 P#101 Q20 R10
上面4个都是减指令的格式都是把Q后面的数值或变量号内的数值减去R后面的数
值或变量号内的数值然后等于到P后面的变量号中.
H04乘指令;格式G65 H04 P#101 Q#102 R#103,把#102的数值乘上#103的数值赋予#101
G65 H04 P#101 Q#102 R10
G65 H04 P#101 Q10 R#103
G65 H04 P#101 Q20 R10
上面4个都是乘指令的格式都是把Q后面的数值或变量号内的数值乘上R后面的数
值或变量号内的数值然后等于到P后面的变量号中.
H05除指令;格式G65 H05P#101 Q#102 R#103,把#102的数值除以#103的数值赋予#101
G65 H05 P#101 Q#102 R10
G65 H05 P#101 Q10 R#103
G65 H05 P#101 Q20 R10
上面4个都是除指令格式都是把Q后面的数值或变量号内的数值除以R后面的数
值或变量号内的数值然后等于到P后面的变量号中.(余数不存,除数如果为0的话会出现112报警)
以上内容参考:百度百科--宏程序
2024-10-28 广告
1、变量的表示
FANUC系统使用“#”表示变量,例如:#1、#100等。变量根据变量号可以分成四种类型,见下表。
变量号 变量类型 功能
#0 空变量 该变量总是空,任何值都不能赋给该变量
#1~#33
局部变量 局部变量只能用在宏程序中存储数据,例如,运算结果。当断电时,局部变量被初始化为空。调用宏程序时,自变量对局部变量赋值
#100~#109
#500~#999 公共变量 公共变量在不同的宏程序中的意义相同。当断电时,变量#500~#999的数据保存,即使断电也不会丢失
#1000以上 系统变量 系统变量用于读写CNC运行时的各种数据,例如,刀具当前位置和补偿
2、关于变量的说明
(1)变量引用时,为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在括号中,例如,GO X[#1+#2]F#3。式中X后的坐标什即是由#1、#2这两个变量组成的表达式来表示。
(2)表达式可以用于指定变量号。此时,表达式必须封闭在括号中,例如,#[#1+#2-12]。
注意:
1) 宏程序中,方括号用于封闭表达式,圆括号只表示注释内容,使用变量时必须注意,FANUC系统通过参数来切换圆括号和方括号。
2) 表达式可以表示变量号和变量。这两者并不一样,例如,X#[#1+#2]并不等于X[#1+#2]。
3) 当在程序中定义变量时,小数点可以省略。例如,当定义#1=123;变量#1的实际值是123.000。
4) 被引用变量的值根据地址的最小设定单位自动舍入。例如:G00X #1。
5) 改变引用的变量值的符号,要把负号放在“#”的前面。例如:G00X-#1。
6) 当变量值未定义时,这样的变量成为“空”变量。当引用未定义的变量时,变量及地址字都被忽略。例如,当变量#1的值是0,并且变量#2的值是空时,G00X#1Z#2的执行结果为G00X0。
7) 变量#0总是空变量。它不能写,只能读。
二、变量的运算
1、算术、逻辑运算和运算符(见下表)
功能 格式 备注
定义 #i=#j
加法 #i=#j+#k
减法 #i=#j-#k
乘法 #i=#j*#k
除法 #i=#j/#k
正弦 #i=SIN[#j] 角度以度指定。90°30’表示90.5°
反正弦 #i=ASIN[#j]
余弦 #i=COS[#j]
反余弦 #i=ACOS[#j]
正切 #i=TAN[#j]
反正切 #i=ATAN[#j]/[#k]
平方根 #i=SQRT[#j]
绝对值 #i=ABS[#j]
舍入 #i=ROUND[#j]
上取整 #i=FUP[#j]
下取整 #i=FIX[#j]
自然对数 #i=LN[#j]
指数函数 #i=EXP[#j]
或 #i=#jOR#k 逻辑运算一位一位地按二进制数执行
异或 #i=#jXOR#k
与 #i=#jEXP#k
从BCD转为BIN #i=BIN[#j] 用于与PMC的信号交换
从BIN转为BCD #i=BCD[#j]
2、关于运算符的说明
(1)角度单位
函数SIN、COS、ASIN、ACOS、TAN和ATAN的角度单位是度(°)
(2)上取整和下取整
CNC处理数值运算时,若操作后产生的整数绝对大于原数的绝对值时为上取整;若小于原数的绝对值为下取整。对于负数的处理应小心。
例如:假定#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。
(3)运算符的优先级
按优先的先后顺序依次是函数→乘和除运算(*、∕、AND、MOD)→加和减运算(+、﹣、OR、XOR)。
(4)括号嵌套
括号用于改变运算优先级。括号最多可以嵌套使用5级,包括函数内部使用的括号。
三、功能语句
1、无条件转移(GOTO)语句——转移到有顺序号n的程序段
格式:
GOTOn ;n指行号
例如:
GOTO1 转移至第一行
GOTO#10 转移至变量#10所决定的行
2、运算符(见下表)
运算符 含义 运算符 含义
EQ 等于(=) GE 大于或等于(≥)
NE 不等于(≠) LT 小于(<)
GT 大于(>) LE 小于或等于(≤)
3、条件转移(IF)语句
(1)IF[表达式] GOTOn
说明:如果指定的条件表达式满足时,转移到标有顺序号n的程序段;如果指定的条件表达式不32满足时,则执行下一个程序段。
(2)IF[表达式]THEN
说明:如果表达式满足,执行预先决定的宏程序语句,且只执行一个宏程序语句。例如,条件语句IF[#1EQ#2]THEN#3=0表示如果#1和#2的值相同,0赋给#3。
4、循环功能(WHILE)语句
格式:WHILE[表达式]DOm ;(m=1,2,3)
……
ENDm
说明:在WHILE后指定一个条件表达式,当指定条件满足时,执行从DO到END之间的程序;否则,转到END后的程序段。
提示:通过上述介绍,完全可以借助系统提供的二次开发功能定制出个性化的宏程序,例如,可以将例4—23中刀具轨迹路径定制在宏程序中,然后通过G65方式或直接用G代码调用.常见结构的宏程序定制是有效提高编程效率的手段之一.
2012-03-28
有无资料参考下??