
一、变量
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的实际值是123000。
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’表示905°
反正弦 #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=12,并且#2=-12。
当执行#3=FUP[#1]时,20赋给#3。
当执行#3=FIX[#1]时,10赋给#3。
当执行#3=FUP[#2]时 ,-20赋给#3。
当执行#3=FIX[#2]时,-10赋给#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代码调用常见结构的宏程序定制是有效提高编程效率的手段之一
G65,P,A,B,C,将直接把A,B,C插入到子例程中,赋给值对应于a#1,b#2,c#3,d#7,e#8,f#9。
例如:所选的丝锥应该安装在一个专用的丝锥套上,最好是用一个经过拉伸和压缩的浮动套。不要使用类似于卡盘的固定夹具,这样会损坏丝锥并使工件报废。
普通数控车没有攻丝周期,所以每一步都要进行编织,G65是调用宏程序的指令。G65 p-l - <自变量赋值为>;其中:P表示宏程序编号;L为重复调用次数(1 ~ 9999,L可省略一次);自变量赋值由地址和值组成,用于将值赋给宏程序中的局部变量。
例如:主程序:O7002;:G65P7100L2A1.0B2.0;(调用O7100宏程序执行。
扩展资料:
注意事项:
1. *** 作前,佩戴劳动防护用品,按要求进行润滑和维护,并检查各润滑油的油位。
2.装夹工件时应放好,以防损伤、磕碰台面;当工件较重时,还应检查机床工作台的承载能力,不允许超负荷运转。
3.机床启动后,检查主轴、工作台各方向运动及压力指示表是否正常,有无异常噪音等。
4.加工程序在运行前应进行检查,使用高速功能时确认刀具的匹配。
5.在加工过程中应始终注意机床的运动和加工状态是否正常,遇到异常现象。遇有噪音和报警时,应立即停机检查处理,排除故障后可继续处理。
6.移屑槽内铁屑过多,人工清洗后打开移屑装置。
不是这么用的大兄弟
要这么用
IF[#18LT#1]THEN#3000=18(R LT A)
IF[#1LT#26]THEN#3000=1(A LT Z)
IF[#7GE#4]THEN#3000=7(D GE I)
#11=#4003
#14=#5003
#12=#1
#13=[#18-#12]/2
#10=[#4-#7]/4
G0G90Z#18
G91G01X-#10Y#10Z-#13F#9
G3X-#10Y-#10Z-#13R#10
WHILE[#12GT#26]DO1
#12=#12-#17
IF[#12LT#26]THEN#12=#26
G90G3I[#102]Z#12
END1
G90G3I[#102]
G91G3X#10Y-#10R#10
G01X#10Y#10F[#92]
G0G90Z#14
G#11
M99
这个需要工作表代码
alt+F11
假设是sheet1中要实现的,就在工程框双击sheet1,再将下面代码修改并复制到右面空白区
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If TargetCount > 1 Then Exit Sub
i =targetvalue
' i即为你说的宏变量,可以使用了
End Sub
以上就是关于加工中心宏程序全部的内容,包括:加工中心宏程序、加工中心宏程序G65的应用我想简单详细的了解谢谢、被G65调用的宏程序里面。#1=5。#2=8 这些赋值是可以不用写的吗为什么写上了总是出现非法地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)