A. 如何用宏程序控制转速控制在50转的转速差内来回循环
有一种卡叫微宏卡,数控机床控制体系的硬件部分,能够把电机转数控制在24000转/分钟,高得吓人,不过要在厂商参数里边改这个数据,里面有太多的数据,几千项吧。还是比较复杂!有一项就是调节转数的数据,找到改这个就可以改电机转数。这个要长期研究的人才知道,毕竟不可以乱改这个数据,有密码保护。
B. 数控车床宏程序怎么写最好带步骤解说
数控车床宏程序是非常灵活且因情况而异的,所以数控车床宏程序编程掌握以下参数即可:
普通加工程序直接用数值指定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)宏程序怎么控制扩展阅读:
数控宏程序编程是用变量的方式进行数控编程的方法,数控宏程序分为A类和闭悄巧B类宏程序,其中A类宏程序比较老,编写起来也比较费时费力,B类宏程序类似于C语言的编程,编写起来也很方便运庆。
不论是A类还B类宏程序,它们运行的效果都是一样的。
编写一些大批相似零件的时候,可以用宏程序编写,这样只需要改动几个数据就可以了,没有必要进行大量重复编程。
C. 加工中心宏程序怎么用
宏就是用公式来加工零件的,普通加工程序直接用指定G代码和移动距离,例如:
G01和X100.0。
使用用户宏程序时,数值可以直接指定或用变量指定,当用变量时,变量值可以用程序或面板操作改变,如:
#1=#2+100; G01 X#1 F300。
(3)宏程序怎么控制扩展阅读:
宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的曲线编程;适合图形一样,只是尺寸不同的系列零件的编程;适合工艺路信物径一样,只是位置参数不同的系列零件的编程。较大地简化编程;扩展应用范围。
宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进滑宽液行繁琐的数值计算,以及精简程序巧正量。
D. 如何用宏程序控制转速在50转的转速差内交替循环
摘要:数控系统中随机携带有各种固定循环指令,这些指令是以宏程序为基础开发的通用固定循环指令。通用固定循环指令有时在实际的加工过程当中并不以定能满足加工要求和加工效率。针对于FANUC 0i系统为例,本人通过多年的加工经验和实践积累,简单的针对一些零件的特点量身定制了适合这类零件专用的宏程序,有利于挺高加工效率,和简化加工程序。以FANUC 0i系统为例,针对这些问题来探讨。
关键词:宏程序G90 新建功能指令多头螺纹
正文一,G90的简化利用
普通的G90粗车固定循环是由两个G00和两个G01组成,在退出工件时也是G01慢速退刀,这样在加工较大台阶面时退刀时间太长,大大的影响了加工的效率。解决方案有两种:一使起刀点尽量靠近工件,减少空走刀行程,缩短进给路线,节省在加工过程中的执行时间。二是改进G90加快退刀速度。
1.在加工中如果有台阶面相差较大的地零件,如下图(1-2)中,我们将起
刀点尽量靠近工件。利用宏程序和G90进行编程。
程序如下:
O0001;
G50 X100. Z0.; 建立G50坐标系
M03 S400; 主轴正转转速S400
G00 Z2.; 快速移动到Z2的位置
X93.; 快速移动到X93的位置
#1=86.; #1代表X轴的起始值为86。
N10 G90 X#1 Z-50. F0.3;外圆固定循环
G00 X#1; G00快速移动X轴起刀点位置 #1=#1-4.; #1(X)轴坐标依次减小4mm
IF[#1GE50.]GOTO10; 如果#1的值大于等于50就转移到10号程序G00 X100.; 快速移动到X100的位置
Z0.; 快速移动到Z0的位置
M30; 程序结束并回到程序第一条语
此程序每刀车削4mm直到车到φ50 当然φ90车到φ50刚好能被4整除,如果小外圆尺寸是φ51,这就得改变一下程序,将IF [#1GE50.] GOTO10;改为IF [#1GE51.] GOTO10;再在程序后面加一个G90 X51. Z-50. F0.3;这样就可以在最后一刀将φ51.车削出来。
2.用G90加工图1-2,从φ90的外圆车到φ50需要多次退刀和多次进刀,虽然上面G90加宏程序可以改变G90固定循环的起刀点,但其退刀量还是过大,我们可以将指令改为类似于G71的循环指令。这指令可以完成多次切削循环,而且退刀量很小。首先在参数中设置调用宏程序的G代码,按非模态调用G65的方法调用宏程序。在参数(No.6050到No.6069)中设置调用宏程序(09010到09019)的G代码号(从1到9999),调用用户宏程序的方法与G65相同。
如我们要设计的G代码为G80,设置参数No.6050=80,G80就是一个新功能的指令,由G80调用宏程序09010,就可以调用由宏程序编制而成的特殊的加工循环,相当于G65P9010。
宏程序调用指令:
G65P0910X(U) _Z(W)_D_E_F_;
参数的含义是:
X(U)/Z(W)─外圆车削的终点坐标;
D─每次切削的深度(半径值指定);
E─每次切削后的退刀量(如果不指定则自动指定为0.5mm);
F─切削的进给速度。
G80调用户宏程序本体:
O0910;
#31=#5041; 保存X值初值
#32=#5042; 保存Z值初值
IF[#8NE#0]GOTO01; 如果参数E赋值转移到01号程序段
#8=0.5; 参数E缺失时每次切削后的退刀量为0.5mm
N01 IF[#24EQ#0]GOTO02; 如果#24未赋值则转移到02号程序段#1=#24; X值绝对值指令
GOTO03;
N02 IF[#21EQ#0]GOTO09; 如果X轴未赋值则转移到09号程序段报警#1=#31+#21; X轴绝对值坐标
NO3 IF[#26EQ#0]GOTO04; 如果#26未赋值则转移到04号程序段#2=#26; Z值绝对值指令
GOTO05; 无条件转移到05号程序段
N04 IF[#23EQ#0]GOTO09; 如果Z轴未赋值则转移到09号程序段报警#2=#32+#23; Z轴绝对值坐标
N05 IF[#7EQ#0]GOTO09; 如果切削深度D未赋值则转移到09号程序报警IF[#9NE#0]GOTO06; 如果参数F赋值则转移到06号程序段
#9=#4109; 参数F未赋值则用前面的值
N06 #30=#31; #30=X轴初值
WHILE[#30GT#1]DO1; 当X轴初值大于切削目标终点坐标时执行DO1
和END1间的程序段
#30=#30-2*#7; 下一个切削点的X坐标
IF[#30GT#1]GOTO07; 如果X的坐标值大于切削终点坐标值转移到07 #30=#1; 下一个切削点的X坐标是切削目标终点坐标值N07 G00 X#30; 切削循环
G01 Z#2 F#9;
U-2*#8;
G00 Z#32;切削循环结束
END1;
G00 X#31; 返回起始点
GOTO10;
N09 #3000=1(ERROR); 赋值错误报警
N10 M99;
以上图为例将新建的G80代码程序利用在加工中,加工程序如下:
O0002;
G50 X200. Z0.; 建立坐标
M03 S300; 主轴正转S300
G00 Z2.; 快速移动到Z2的位置
X93.; 快速移动到X93的位置
G80 X50. Z-50. D2. E1. F0.3; 调用G65P9010加工
G00 X200.; 快速移动到X200位置
Z0.; 移动到Z0的位置
M30; 程序结束并回到程序起点
注意的是自定义的G80调用的程序中,不能再用自定义的G80代码调用宏程序,这种程序中的自定义的G80代码被处理为普通G代码而且只能用于车削直外圆,而不能车削锥度外圆。
二,多头螺纹的宏程序加工:
在数控车削加工中,多头螺纹的加工是一个难点,而常用的螺纹加工指令无法将其加工出来。在数控机床
E. 数控编程宏程序的指令
宏程序编程
一 变量
普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用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报警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#1 Y#2的执行结果为G00X0。
双轨迹(双轨迹控制)的公共变量
对双轨迹控制,系统为每一轨迹都提供了单独的宏变量,但是,根据参数N0.6036和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;
/#2G00X100.0;
N#3Y200.0;
二 算术和逻辑运算
下面表中列出的运算可以在变量中执行。运算符右边的表达式可包含常量和或由函数或运算符组成的变量。表达式中的变量#j和#k可以用常数赋值。左边的变量也可以用表达式赋值。
说明:
角度单位
函数SIN ,COS,ASIN,ACOS,TAN和ATAN的角度单位是度。如90°30'表示为90.5度。
ARCSIN # i= ASIN[#j]
(1)取值范围如下:
当参数(NO.6004#0)NAT位设为0时,270°~90°
当参数(NO.6004#0)NAT位设为1时,-90°~90°
(2)当#j超出-1到1的范围时,发出P/S报警NO.111.
(3)常数可替代变量#j
ARCCOS #i=ACOS[#j] 取值范围从180°~0° 当#j超出-1到1的范围时,发出P/S报警NO.111. 常数可替代变量#j
三 程序举例
铣椭圆:
轨迹:
椭圆程序代码如下:
N10 G54 G90 G0 S1500 M03
N12 X0 Y0 Z20.
N14 G0 Z1
N16 G1 Z-5. F150.
N18 G41 D1
N20 #1=0
N22 #2=34
N24 #3=24
N26 #4=#2*COS[#1]
N28 #5=#3*SIN[#1]
N30 #10=#4*COS[45]-#5*SIN[45]
N32 #11=#4*SIN[45]+#5*COS[45]
N34 G1 X#10 Y#11
N36 #1=#1+1
N38 IF [#1 LT 370] GOTO26
N40 G40 G1 X0 Y0
N42 G0 Z100
N44 M30
铣矩形槽:
铣矩形槽代码如下:
#102=0.
N3#100=0.
#101=0.
#103=200.
#104=400.
G91G28Z0.
G0G90G54X0.Y0.
G43H1Z20.
M3S2000.
N4G0X#100Y#101
G01Z#102F200.
#102=#102-2.
IF[#102EQ-50.]GOTO1
GOTO2
N2
N4X#104F500.
Y#103
X#100
Y#101
#100=#100+10.
#101=#101+10.
#103=#103-10.
#104=#104-10.
IF[#100EQ100.]GOTO3
GOTO4
N3
N1
M5
M9
G91G28Z0.
G28Y0.
M30
铣倾斜3度的面:
轨迹:
铣倾斜3度的面的代码如下:
O0001
#[#1+1*2]=1
G65P9012L1A0B0.1C4I100J3K0
M30
宏程序O9012代码如下:
G54 G90 G00 X[#3] Y0 Z100
S500 M3
G01 Z0 F300
WHILE[#1LE10]DO1
#7= #1/TAN[#5]+#3
G1Z-#1 X#7
#8=#6/2-ROUND[#6/2]
IF[#8EQ0]GOTO10
G1Y0
GOTO20
N10 Y#4
N20#1=#1+#2
#6=#6+1
END1
G0
Z100
铣半球:
轨迹:
铣半球代码如下:
G90G0G54X-10.Y0M3S4500
G43Z50.H1M8
#1=0.5
WHILE[#1LE50.]DO1
#2=50.-#1
#3=SQRT[2500.-[#2*#2]]
G1Z-#1F20
X-#3F500
G2I#3
#1=#1+0.5
END1
G0Z50.M5
M30
铣喇叭:
铣喇叭代码如下:
M03 S500
M06 T01
#1=0
#2=0
G0 Z15
X150 Y0
N11
#2=30*SIN[#1]
#3=30+30*[1-COS[#1]]
G01 Z-#2 F40
G41 X#3 D01
G03 I-#3
G40 G01 X150 Y0
#1=#1+1
IF [#1 LE 90] GOTO 11
G0 Z30
M30