你是要问,还是直接要加工程序
方法FANUC系统宏程序编程
FANUC系统宏程序编程
一 变量
普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X1000。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的 *** 作改变。
#1=#2+100
G01 X#1 F300
说明:
变量的表示
计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。
例如:#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报警NO111
小数点的省略
当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是123000。
变量的引用
为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3;
被引用变量的值根据地址的最小设定单位自动地舍入。
例如:
当G00X#/;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346
改变引用变量的值的符号,要把负号(-)放在#的前面。
例如:G00X-#1
当引用未定义的变量时,变量及地址都被忽略。
例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0。
双轨迹(双轨迹控制)的公共变量
对双轨迹控制,系统为每一轨迹都提供了单独的宏变量,但是,根据参数N06036和6037的设定,某些公共变量可同时用于两个轨迹。
未定义的变量
当变量值未定义时,这样的变量成为空变量。变量#0总是空变量。它不能写,只能读。
引用
当引用一个未定义的变量时,地址本身也被忽略。
当#1=
当#1=0
G90 X100 Y#1
G90 X100
G90 X100 Y#1
G90 X100 Y0
(b) 运算
除了用赋值以外,其余情况下与0相同。
当#1=时
当#1=0时
#2=#1
#2=
#2=#1
#2=0
#2=#5
#2=0
#2=#5
#2=0
#2=#1+#1
#2=0
#2=#1+#1
#2=0
(c)条件表达式
EQ和NE中的不同于0。
当#1=时
当#1=0时
#1EQ#0 成立
#1EQ#0 不成立
#1 NE #0 成立
#1 NE #0 不成立
#1 GE #0 成立
#1 GE #0 不成立
#1 GT #0 不成立
#1 GT #0 不成立
限制
程序号,顺序号和任选程序段跳转号不能使用变量。
例:下面情况不能使用变量:
0#1;
/#2G00X1000;
N#3Y2000;
二 算术和逻辑运算
下面表中列出的运算可以在变量中执行。运算符右边的表达式可包含常量和或由函数或运算符组成的变量。表达式中的变量#j和#k可以用常数赋值。左边的变量也可以用表达式赋值。
说明:
角度单位
函数SIN ,COS,ASIN,ACOS,TAN和ATAN的角度单位是度。如90°30’表示为905度。
ARCSIN # i= ASIN[#j]
(1)取值范围如下:
当参数(NO6004#0)NAT位设为0时,270°~90°
当参数(NO6004#0)NAT位设为1时,-90°~90°
(2)当#j超出-1到1的范围时,发出P/S报警NO111
(3)常数可替代变量#j
ARCCOS #i=ACOS[#j] 取值范围从180°~0° 当#j超出-1到1的范围时,发出P/S报警NO111 常数可替代变量#j
把公式套入就行,我把抛物线编出
G0 X775 z2(跟据公式算出X起点)
G99 G1 Z0 F01
#1=5
N10 #2=SQRT[#13](跟据公式算出X起点)
G1 X[#22] z[-#1+5] (抛物线公式中算的是半径所以#22 抛物线起点z-5为实际编程中的z0所以-#1+5)
#1=#1+01
IF[#1<27]GOTO10
宏程序流程控制和循环语
数控车床宏程序与普通程序有什么区别呢?第一个就是流程控制
普通程序在执行的时候,它总是从第一段开始依次执行到最后一段程序结束,中途不改变执行顺序。而宏程序可以改变程序的执行顺序。可以根据加工需要,让某段程序重复执行多少次等。要学会程序的执行顺序控制,必须学会以下两种语句:
“IF……GOTO"
WHILE……DO”。
先看“IF……GOTO
“IF”在单词中表示“如果”的意思;“GOTO”则表示“去哪里”或者“到哪里”。那么在两个单词中的省略号,它表示条件!
条件只有两种可能:成立、不成立。
我们可以用这个语句造句,“如果明天开学了,我就要去学校”。在此语句中,要表达的意思非常明确,当条件是“开学”的时候,“我才会去学校”。如果“不开学”,那我就不会去。在这里,“开学”与“不开学”就表示条件的成立与不成立。成立就执行,不成立就不执行!
但我们会发现一个问题:“IF[条件]GOTO”语句中,“GOTO”后面是要跟着目的地的。比如造句时候,目的地是“学校”,那在程序中,该怎么表达目的地呢?其实很简单,目的地就是——行号!在数控程序中,能够表示目标地的也只有行号了。举个例子
#1=2
N1#1=#1-1
IF[#1 GE 0] GOTO1
(GE 表示大于等于)
( GOTO1 表示跳到第一行,这里不用写 N )
G0 X100
Z100
M30
程序对#1 这个变量进行赋值,它的结果是 2。到了下一行出现了N1。都知道N在数控程序中表示程序段,后面跟的数字表示第几行(其实行号可以自己定义,在本例程序中,把“#1=#1-1”定义为第一行)。当程序执行到 N1 行的时候,系统发现#1 这个变量进行了自减运算。但系统不知道自减的目的,于是继续向下执行,来到了“IF [#I GE 0] GOTO1”这一行。
这时候系统才明白,原来#1 自减的目的是用来判断的。当执行到这行的时候,#1 的结果已经不是 2,而是 1 了。然后系统会把#1 这个结果与 0 进行比较,它发现#1 当前的值(1)是大于等于 0 的。由于该语句的意思是,如果#1 的结果大于或等于 0,就跳转到第一行,所以系统会跳转到第一行执行(N1 处),
不会执行下面的“GO X100”等语句。
然后程序跳到了 N1 处,又自减了一次。这时候#1 的结果是 0。而不是1 了,运算过后又来到了“IF”语句进行判断,发现当前#的值虽然不大于 0,但等于 0。因此条件又成立了,只好继续跳到第一行。于是又进行了一次运算,此时#的结果是-1。当再次执行到“IF”语句时,系统发现#当前的值是既不大于也不等于 0,因此条件就不满足了。条件不满足,那么就不执行“GOTO1”这个命令,而是执行下一行“G0 X100”。然后依次执行。
再来看WHILE……DO”
#1=2
WHILE [#I GE O] DO1
#1=#1-1
END1
Go x100
z100
M30
这就看出来END 关键词所在位置。它位于循环体的最后面。也就是说,用 WHILE 判断的时候,如果条件成立,就执行 DO 与 END 之间的程序。后面的那个阿拉伯数字“1”,表示第一层。一定要记住,DO 和 END 后面的数字必须一一对应。不能出现“DO1”与“END2”这个类型。要么都是 1,要么都是2。
程序的执行顺序与结果和“IFGOTO”一致。首先系统得知#1 的值目前是 2,但不知道干嘛的。于是向下执行,发现这里有个 WHILE语句,并且有个条件判断,“如果#1 的结果大于或者等于 2,那就执行 DO1 与END1 之间的程序"。经过判断,条件是成立的。所以就执行了“#1=#1-1”。
然后执行 END1 并返回到 WHILE 语句,再次判断#1 的值是否符合条件。系统发现#1 的结果是 0,仍然符合。于是继续执行 DO1 与 ENDI 之间的程序。一直到#1的结果不符合,程序才会执行“G0 X100”和后面的程序。
自动编程都可以设置起始行号和行号间隔,手工编程时,行号的用处不大,可以不编进程序的。#5021~#5023 当前位置 机床坐标系 #5041~#5043 当前位置 工件坐标系分别代表X、Y、Z,这个只能读不能写入的。
举个简单的数车的例子,走个椭圆:
椭圆方程是x^2/a+y^2/b=1
那么y=[(1-x^2/a)b]^(1/2)
在数控系统中的Z为方程中的x方向,X为y方向。
设定Z负方向走刀变量为#1,X方向走刀为#2
编程序为:
G99;
#1=0;
#2=0;
WHILE [#1 GE -a]DO1;
#1=#1-3;
#2=SQRT[[1-#1#1/a]b];
G01 X[#2] Z[#1} F6
END1
%
这样就车出了一个椭球形。
补充:三菱数控系统由数控硬件和数控软件两大部分来工作的。数控系统的硬件由数控装置、输入/输出装置、驱动装置和机床电器逻辑控制装置等组成
宏就是用公式来加工零件的,普通加工程序直接用指定G代码和移动距离,例如:
G01和X1000。
使用用户宏程序时,数值可以直接指定或用变量指定,当用变量时,变量值可以用程序或面板 *** 作改变,如:
#1=#2+100; G01 X#1 F300。
扩展资料:
宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的曲线编程;适合图形一样,只是尺寸不同的系列零件的编程;适合工艺路径一样,只是位置参数不同的系列零件的编程。较大地简化编程;扩展应用范围。
宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。
参考资料来源:百度百科-宏程序
以上就是关于加工中心发那科宏程序全部的内容,包括:加工中心发那科宏程序、请问这个图纸怎么用数控加工里的宏程序编辑出来、数控车床宏程序的控制语句以及逻辑解析等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)