⑴ 加工中心宏程序
一、变量
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代码调用.常见结构的宏程序定制是有效提高编程效率的手段之一.
⑵ 数控车床宏程序怎么写最好带步骤解说
数控车床宏程序是非常灵活且因情况而异的,所以数控车床宏程序编程掌握以下参数即可:
普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。
例如:#1=#2+100;G01X#1F300。
量的表示:计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。例如:#1,表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。例如:#[#1+#2-12]。
变量根据变量号可以分成四种类型:#0空变量,该变量总是空,没有值能赋给该变量。#1-#33局部变量,局部变量只能用在宏程序中存储数据,例如,运算结果。当断电时,局部变量被初始化为空。调用宏程序时,自变量对局部变量赋值。
#100-#199、#500-#999公共变量,公共变量在不同的宏程序中的意义相同。当断电时,变量#100-#199初始化为空。变量#500-#999的数据保存,即使断电也不丢失。#1000---系统变量。系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置,补偿值。
局部变量和公共变量可以有0值或下面范围中的值:-1047到-10-29或-10-2到-1047,如果计算结果超出有效范围,则发出P/S报警NO.111。
当在程序中定轿键义变量值时,小数点可以省略。例:当定义#1=123;变量#1的实际值是123.000。
为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在括号中。例如:G01X[#1+#2]F#3;
被引用变量的值根据地址的最小设定单位自动地舍入。例如:当G00X#/;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346.改变引用变量的值的符号,要把负号(-)放在#的前面。
例如:G00X-#1当引用未定义的变量时,变量及地址都被忽略。例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1Y#2的执行结果为G00X0。
(2)cnc宏程序是哪个扩展阅读:
数控宏程序编程是用变量的方式进行数控编程的方法,数控宏程序分为A类和闭悄巧B类宏程序,其中A类宏程序比较老,编写起来也比较费时费力,B类宏程序类似于C语言的编程,编写起来也很方便运庆。
不论是A类还B类宏程序,它们运行的效果都是一样的。
编写一些大批相似零件的时候,可以用宏程序编写,这样只需要改动几个数据就可以了,没有必要进行大量重复编程。
⑶ 加工中心宏程序
宏程序的作用:
数控系统为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。
宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的曲线编程;适合图形一样,只是尺寸不同的系列零件的编程;适合工艺路径一样,只是位置参数不同的系列零件的编程。较大地简化编程;扩展应用范围。
加工中心宏程序应用:
以下都以#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报警)
以上内容参考:网络--宏程序
⑷ 数控车床宏程序怎么编写,一般宏程序都加工什么样的零件
宏程序一般是在做重复路径的程序时用,最典型的就是切槽,切垫片等重复的零件会用到
一般是把某个重要数据用变量代数表示,后面在子程序里面做加减法
如切槽是把Z像坐标用代数表示,如在主程序起点坐标为Z2.,那么程序可以编时Z=#300,#300=2,然后在子切槽程序里加一段#300=#300-15。
那么这样每M99循环一次后定位时Z向就会往里边偏15毫米,5毫米的刀那么切出来的垫片就是10毫米厚。这个你可以在网上下载一些资料看一下,很容易理解的。而且那些很高深的,如乘法,除法,函数....等得应用你刚开始就不要去纠结了,有些难度,但实际工作中基本用不上。你把加减运算弄清楚就可以了,相对来说简单很多。希望能帮到你
⑸ 数控车床宏程序是什么意思
定义:能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。
其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削, 实际上宏在程序中主要起到的是运算作用..宏一般分为A类宏和B类宏.A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广.
⑹ CNC宏程序 求指教。
1、首先加工一个长半轴30,短半轴20一个椭圆,椭圆不是圆弧,所以不能用圆弧的方式来加椭圆,这里用一小段一小段的直线来拼接这个椭圆。