数控车宏程序
数控车床宏程序编程
数控宏程序一.什么是宏程序?什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。
宏程序具有如下些特点:1.使用了变量或表达式(计算能力),例如:(1)G01 X[3+5] ;有表达式3+5(2)G00 X4 F[#1] ;有变量#1(3)G01 Y[50*SIN[3]] ;有函数运算2.使用了程序流程控制(决策能力),例如:(1)IF #3 GE 9 ;有选择执行命令……ENDIF(2)WHILE #1 LT #4*5 ;有条件循环命令……ENDW二.用宏程编程有什么好处?1.宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;2.宏程序可以完成图形一样,尺寸不同的系列零件加工;3.宏程序可以完成工艺路径一样,位置不同的系列零件加工;4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;5.使用宏程序能极大地简化编程,精简程序。
适合于复杂零件加工的编程。
一.宏变量及宏常量1.宏变量先看一段简单的程序:G00 X25.0上面的程序在X轴作一个快速定位。
其中数据25.0是固定的,引入变量后可以写成:#1=25.0 ;#1是一个变量G00 X[#1] ;#1就是一个变量宏程序中,用“#”号后面紧跟1~4位数字表示一个变量,如#1,#50,#101,……。
变量有什么用呢?变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号……,变量的使用,给程序的设计带来了极大的灵活性。
使用变量前,变量必需带有正确的值。
如#1=25G01 X[#1] ;表示G01 X25#1=-10 ;运行过程中可以随时改变#1的值G01 X[#1] ;表示G01 X-10用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、……等各种代码后的数字。
如:#2=3G[#2] X30 ;表示G03 X30例1 使用了变量的宏子程序。
新代数控车床宏程序说明
一.用户宏程序的基本概念用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能。
在这里,所存储的一组指令叫做宏程序体(或用户宏程序),简称为用户宏。
其代表指令称为用户宏命令,也称作宏程序调用指令。
用户宏有以下四个主要特征:1)在用户用户宏程序中可以使用变量,即宏程序体中能含有复杂的表达式;2)能够进行变量之间的各种运算;3)可以用用户宏指令对变量进行赋值,就象许多高级语言中的带参函数或过程,实参能赋值给形参;4)容易实现程序流程的控制。
使用用户宏时的主要方便之处在于由于可以用变量代替具体数值,因而在加工同一类的工件时.只得将实际的值赋予变量既可,而不需要对每个不同的零件都编一个程序。
二.基本书写格式数控程序文档中,一般以“%”字符作为第一行的起头,该行将被视为标题行。
当标题行含有关键字“@MACRO”时整个文档就会以系统所定义的MACRO语法处理。
如果该行无“@MACRO”关键词此档案就会被视为一般ISO程序文档格式处理,此时将不能编写用户宏和使用其MACRO语法。
而当书写ISO程序文档时标题行一般可以省略,直接书写数控程序。
“@MACRO”关键词必须是大写字母。
对于程序的注释可以采用“//……”的形式,这和高级语言C++一样。
例一:MACRO格式文档% @MACRO //用户宏程序文档,必须包含“@MACRO”关键词IF @1 = 1 THENG00 X100.;ELSEG00 Z100.;END_IF;M99;例二:ISO格式文档% 这是标题行,可当作档案用途说明,此行可有可无G00 X100.;G00 Z100.;G00 X0;G00 Z0;M99;三.用户宏程序的编写如前所述,变量是指可以在用户宏程序中的地址码后代替具体数值,在调用宏程序时进行赋值的符号#i (i=1,2,3,…)。
使用变量可以使用户宏程序具有通用性。
数控车床宏程序编程..
数控宏程序一.什么是宏程序?什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。
宏程序具有如下些特点:1.使用了变量或表达式(计算能力),例如:(1)G01X[3+5];有表达式3+5(2)G00X4F[#1];有变量#1(3)G01Y[50*SIN[3]];有函数运算2.使用了程序流程控制(决策能力),例如:(1(2123451性。
G01X[#1];表示G01X25#1=-10;运行过程中可以随时改变#1的值G01X[#1];表示G01X-10用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、……等各种代码后的数字。
如:#2=3G[#2]X30;表示G03X30例1使用了变量的宏子程序。
%1000#50=20;先给变量赋值M98P1001;然后调用子程序#50=350;重新赋值M98P1001;再调用子程序M30%1001G91G01X[#50];同样一段程序,#50的值不同,X移动的距离就不同M992.局部变量编号#0~#49的变量是局部变量。
局部变量的作用范围是当前程序(在同一个程序号内)。
如果在主程序或不同子程序里,出现了相同名称(编号)的变量,它们不会相互干扰,值也可以不同。
例%100N10#3=30;主程序中#3为30M98P101#4=#3;#3M30%101#4=#3;#3=18;M993编号零件程序。
例%100M30%101#50=18;M99用;造变量名。
什么时候用全局变量?什么时候用局部变量?在一般情况下,你应优先考虑选用局部变量。
局部变量在不同的子程序里,可以重复使用,不会互相干扰。
如果一个数据在主程序和子程序里都要用到,就要考虑用全局变量。
用全局变量来保存数据,可以在不同子程序间传递、共享、以及反复利用。
刀补变量(#100~#199)。
这些变量里存放的数据可以作为刀具半径或长度补偿值来使用。
如#100=8G41D100;D100就是指加载#100的值8作为刀补半径。
数控车床华中系统用户宏程序编程
如图2,Z坐标为自变量#2,则X坐标为因变量#1,那么X用Z表示为:
分别用宏变量#1、#2代替上式中的X、Z,即得因变量#1相对于自变量#2的宏表达式:
如图1,Z坐标为自变量#2,则X坐标为因变量#1,那么X用Z表示为:
3、如何进行函数变换,确定因变量相对于自变量的宏表达式
如图3,X坐标为自变量#1,因Z坐标为因变量#2,那么Z用X表示为:
IF 条件表达式 IF 条件表达式
02
… …
ELSE ENDIF
…
05
ENDIF
格式:WHILE 条件表达式
…
ENDW
5、循环语句WHILE,ENDW
二、公式曲线宏程序编程模板的具体应用实例
运用以上公式曲线宏程序模板,结合粗加工循环指令,就可以快速准确实现零件公式曲线轮廓的编程和加工。具体应用示例如下: 例1:如图1所示零件的外轮廓粗精加参考程序如下(设毛坯为直径25毫米的棒料): %0001(程序头) T0101(调用01号外圆刀及01号刀具偏置补偿) G90 M03 S700(绝对值编程;主轴以700转/分正转) G00 X33 Z2(快速定位到粗加工循环起点) G71 U1 R0.5 P10 Q20 X0.6 F100(外径粗车循环) N10 G01 X10 F60 S1000(精加工起始程序段) Z-10 X24 Z-22(公式曲线起点) #2=8(设Z为自变量#2,给自变量#2赋值8:Z1=8) WHILE #2 GE [-8](自变量#2的终止值-8:Z2=-8) (因变量#1: 用#1、#2代替X、Z) #11=-#1+15(工件坐标系下的X坐标值#11:编程使用的是负轮廓,#1前冠以负;ΔX=15) #22=#2-30(工件坐标系下的Z坐标值#22:ΔZ=-30) G01 X[2*#11] Z[#22](直线插补,X为直径编程) #2=#2-0.5(自变量以步长0.5变化) ENDW(循环结束) N20 G01 Z-50(精加工终止程序段) G00 X100 Z80(快速定位到退刀点) M30(程序结束)
数控车宏程序编程讲解
矩形螺纹
刀具
• 12. [矩形螺纹].
• 编程:
• O0001:(主程序) O0002: (子程序)
• N1 T0202 G99; G0 U–0.3; G0 U10; U–10;
• N2 M3 S200;
G32 Z–55 F12; Z14; M99;
• N3 G0 X82 Z12; G0 U10;
数控车床(宏程序)编程
特形零件练习
正切曲线方程:
椭圆
抛物线方程:
椭圆
双头螺纹.
材料:45#刚. 毛坯: 50*140.
华中系统(宏程序)编程
• 1. 图1.
方向
右偏刀
1.
• 抛物线方程:– X*X/10. • ①以(X轴)作变量. • 编程: • O0001; • N1 #1= 0; (X轴的起点) • N2 WHILE #1 LE [10]; (X轴的终点). • N3 #2= – #1*#1/10; (抛物线的公式) • N4 G01 X[2*#1] Z[#2]; (X,Z轴的坐标变量) • N5 #1= #1+0.1; (X轴的增量) • N6 ENDW; (调用返回) • ②以(Z轴)作变量. • 编程: • O0001; • N1 #1= 0; (Z轴的起点) • N2 WHILE #1 LE [10]; (Z轴的终点) • N3 #2= SQRT[#1*10]; (抛物线的公式) • N4 G01 X[2*#2] Z[–#1]; (X,Z轴的坐标变量) • N5 #1= #1+0.1; (Z轴的增量) • N6 ENDW; (调用返回)
图2.
方向
图2
右偏刀
• 2. 抛物线方程:–X*X/10. • ①以(X轴)作变量. • 编程: • O0001; • N1 #1= 0; • N2 #2= – #1*#1/10; • N3 G01 X[2*#1] Z[#2]; • N4 #1= #1+0.1; • N5 IF #1 LE [10] GOTO2; • ②以(Z轴)作变量. • 编程: • O0001; • N1 #1= 0; • N2 #2= SQRT[#1*10]; • N3 G01 X[2*#2] Z[–#1]; • N4 #1= #1+0.1; • N5 IF #1 LE [10] GOTO2;
新代数控车床宏程序说明
一.用户宏程序的基本概念用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能。
在这里,所存储的一组指令叫做宏程序体(或用户宏程序),简称为用户宏。
其代表指令称为用户宏命令,也称作宏程序调用指令。
用户宏有以下四个主要特征:1)在用户用户宏程序中可以使用变量,即宏程序体中能含有复杂的表达式;2)能够进行变量之间的各种运算;3)可以用用户宏指令对变量进行赋值,就象许多高级语言中的带参函数或过程,实参能赋值给形参;4)容易实现程序流程的控制。
使用用户宏时的主要方便之处在于由于可以用变量代替具体数值,因而在加工同一类的工件时.只得将实际的值赋予变量既可,而不需要对每个不同的零件都编一个程序。
二.基本书写格式数控程序文档中,一般以“%”字符作为第一行的起头,该行将被视为标题行。
当标题行含有关键字“@MACRO”时整个文档就会以系统所定义的MACRO语法处理。
如果该行无“@MACRO”关键词此档案就会被视为一般ISO程序文档格式处理,此时将不能编写用户宏和使用其MACRO语法。
而当书写ISO程序文档时标题行一般可以省略,直接书写数控程序。
“@MACRO”关键词必须是大写字母。
对于程序的注释可以采用“//……”的形式,这和高级语言C++一样。
例一:MACRO格式文档%@MACRO//用户宏程序文档,必须包含“@MACRO”关键词IF@1=1THENG00X100.;ELSEG00Z100.;END_IF;M99;例二:ISO格式文档%这是标题行,可当作档案用途说明,此行可有可无G00X100.;G00Z100.;G00X0;第1页G00Z0;M99;三.用户宏程序的编写如前所述,变量是指可以在用户宏程序中的地址码后代替具体数值,在调用宏程序时进行赋值的符号#i(i=1,2,3,…)。
使用变量可以使用户宏程序具有通用性。
用户宏程序中可以使用多个变量,以变量编号进行识别。
数控车宏程序常用的数学运算公式
数控车宏程序常用的数学运算公式数控车宏程序是一种用于控制数控车床进行加工的程序,其中常用的数学运算公式在快速而准确地完成加工过程中起到了重要的作用。
以下是数控车宏程序中常用的数学运算公式:1. 线性插补公式:用于计算两个坐标点之间的直线路径。
公式如下:X = X1 + (X2 - X1) * tY = Y1 + (Y2 - Y1) * t其中,(X1, Y1) 和 (X2, Y2) 分别表示起点和终点的坐标,t 表示时间参数,取值范围为 [0, 1]。
2. 圆弧插补公式:用于计算从起点到终点经过中间点的圆弧路径。
公式如下:X = Xc + R * cos(α + β * t)Y = Yc + R * sin(α + β * t)其中,(Xc, Yc) 表示圆弧的圆心坐标,R 表示圆弧的半径,α 表示圆弧起始点的角度,β 表示圆弧角度增量,t 表示时间参数,取值范围为 [0, 1]。
3. 螺旋线插补公式:用于计算沿着螺旋线路径进行加工。
公式如下:X = Xc + R * cos(α + β * t)Y = Yc + R * sin(α + β * t)Z = Zc + H * t其中,(Xc, Yc, Zc) 表示螺旋线的起点坐标,R 表示螺旋线的半径,α 表示螺旋线起始点的角度,β 表示螺旋线角度增量,H 表示螺旋线的高度增量,t 表示时间参数,取值范围为 [0, 1]。
4. 平面差补公式:用于校正加工件与期望形状之间的误差。
公式如下:X = X0 + E * cos(A)Y = Y0 + E * sin(A)其中,(X0, Y0) 表示加工点的坐标,E 表示误差,A 表示误差对应的角度。
以上是数控车宏程序常用的数学运算公式,它们在数控车床加工过程中起到了关键的作用,确保了加工精度和加工效率的提升。
“数控车宏程序编程”教案讲义
Thank you.
演讲结速,谢谢观赏!
#1=50; (椭圆起点Z轴值减椭圆中心坐标值) WHILE [ #1 GE -50 ] DO1;(-50为椭圆终点Z轴值减椭圆中
心坐标值)
#3=#1-60;(Z值变量,其中60为椭圆中心距工件端面的距离
)
#4=100-2*20*SQRT[1-#1*#1/2500]; (X值变量,其中100
为椭圆中心线距离)
• 格式:
• WHILE [条件式1] DO 1;
•
……
•
WHILE [条件式2] DO 2;
•
……
•
WHILE [条件式3] DO 3;
•
……
•
END 3;
•
……
•
END 2
•
……
• END 1;
• 分析切削路径——找出变化规律——定义变量——利用合理的逻辑关系编程
• O0001; • N1; • G0 G40 G97 G99 M03 S600 T0101 F0.2; • X132; • Z1; • #10=132(132为椭圆中心线起始距离) • WHILE [ #10 GE 100 ] DO1(100为椭圆中心
变量)
#7=#5*COS[#3]-#4*SIN[#3]; (X值
变量)
G01 X[2*#7] Z[#6-48.71];(开始考
虑椭圆的中心位置,考虑X的2倍关系 。)
#1=#1-0.2;
END1;
宏程序的循环嵌套
注意:在 DO~END 循环中的标号(1~3)可根据需要多次使用。但是,无 论怎样多次使用, 标号永远限制在1,2,3,也就是WHLLE语句最多有三层嵌套。
FANUC系统数控车床B类宏程序编程应用
FANUC系统数控车床B类宏程序编程应用虽然子程序对编制相同加工操作(de)程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作(de)程序更方便,更容易.可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序. 使用时, 加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样.一、变量普通加工程序直接用数值指定 G代码和移动距离;例如, G100和X100.0. 使用用户宏程序时,数值可以直接指定或用变量指定.当用变量时,变量值可用程序或用 MDI 面板上(de)操作改变.如:2=30;1=2+100;G01 X1 F0.31、变量(de)表示变量用变量符号()和后面(de)变量号指定.例如:1表达式可以用于指定变量号.此时,表达式必须封闭在括号中.例如:[1+2-12]2、变量(de)类型变量根据变量号可以分成四种类型.3、变量值(de)范围局部变量和公共变量可以有 0 值或下面范围中(de)值:-1047到-10-29 0 10-29到 1047如果计算结果超出有效范围,则发出 P/S报警No.111.4、小数点(de)省略当在程序中定义变量值时,小数点可以省略.例:当定义1=123;变量1(de)实际值是 123.000.5、变量(de)引用为在程序中使用变量值, 指定后跟变量号(de)地址. 当用表达式指定变量时,要把表达式放在括号中.例如:G01X[1+2]F3;被引用变量(de)值根据地址(de)最小设定单位自动地舍入.例如:当 G00X1;以 1/1000mm (de)单位执行时,CNC把 12.3456 赋值给变量1,实际指令值为 G00X12.346; .改变引用(de)变量值(de)符号,要把负号(一)放在(de)前面.例如: G00X—1;当引用未定义(de)变量时,变量及地址字都被忽略.例如:当变量1(de)值是 0,并且变量2(de)值是空时,G00X1 Z2(de)执行结果为 G00X0.6、未定义(de)变量(当变量值未定义时,这样(de)变量成为“空”变量.变量0 总是空变量.它不能写,只能读.)(a)引用当引用一个未定义(de)变量时,地址本身也被忽略.(b)运算除了用<空>赋值以外,其余情况下<空>与0相同.当1=<空>时当1=0时2=1 → 2=<空>2=1 → 2=02=5 → 2=02=5 → 2=02=1+1 → 2=02=1+1 → 2=0(c)条件表达式 EQ和NE中(de)<空>不同于0.当1=<空>时当1=0时1EQ0 成立1EQ0 不成立1 NE 0 成立 1 NE 0 不成立1 GE 0 成立 1 GE 0 不成立1 GT 0 不成立 1 GT 0 不成立限制程序号,顺序号和任选程序段跳转号不能使用变量.例:下面情况不能使用变量:1、O1;2、/2G00X100.0;3、N3Y200.0;二、算术和逻辑运算下表中列出(de)运算可以在变量中执行. 运算符右边(de)表达式可包含常量和/或由函数或运算符组成(de)变量.表达式中(de)变量j 和k 可以用常数赋值.左边(de)变量也可以用表达式赋值.三、转移和循环在程序中,使用 GOTO 语句和 IF 语句可以改变控制(de)流向.有三种转移和循环操作可供使用:1、无条件转移 (GOTO 语句)格式:GOTOn;n:顺序号(1~99999)转移到标有顺序号 n (de)程序段.当指定 1 到99999 以外(de)顺序号时,出现P/S 报警 No.128.可用表达式指定顺序号.例:GOTO1;GOTO10;2、条件转移 (IF 语句)IF[<条件表达式>] GOTO nIF之后指定条件表达式.如果指定(de)条件表达式满足时,转移到标有顺序号 n (de)程序段.如果指定(de)条件表达式不满足,执行下个程序段.说明:a、条件表达式条件表达式必须包括算符.算符插在两个变量中间或变量和常数中间,并且用括号 ([])封闭.表达式可以替代变量.b、运算符运算符由 2个字母组成,用于两个值(de)比较,以决定它们是相等还是一个值小于或大于另一个值.注意,不能使用不等符号.C、示例程序下面(de)程序计算数值 1~10 (de)总和3、循环 (WHILE 语句)在WHILE后指定一个条件表达式, 当指定条件满足时, 执行从DO到END之间(de)程序.否则,转到 END后(de)程序段.说明:当指定(de)条件满足时,执行 WHILE 从 DO 到 END 之间(de)程序.否则,转而执行 END 之后(de)程序段.这种指令格式适用于 IF 语句.DO 后(de)号和 END 后(de)号是指定程序执行范围(de)标号,标号值为1,2,3.若用 1,2,3 以外(de)值会产生 P/S 报警 No.126.循环嵌套:在 DO—END循环中(de)标号(1 到 3)可根据需要多次使用.但是,当程序有交叉重复循环(DO范围(de)重叠)时,出现 P/S报警 No.124.四、宏程序编程举例曲线公式为X=(36/Z)+3实例分析:本例(de)精加工采用B类宏程序编程,以Z值为自变量,每次变化0.1mm,X值为应变量,通过变量运算计算出相应(de)X值.(宏程序编程时,首先要找出各点X坐标和Z坐标之间(de)对应关系)编程时使用(de)以下变量进行计算:加工顺序:粗车→半精车→精车(1)精车程序:设置变量G00 X7 Z74;1=72;WHILE[1GE2] DO2;2=[[36/1]+3];G42 G01 X[2] Z[1] F0.1;1=1-0.1;END2;(2)粗车程序:G90来粗车设置变量2=38;WHILE[1GE7] DO3;1=[36/[1-3]];G00 X[2+5] Z74;G90 X[2+0.5] Z[1] F0.2;2=2-4;END3;(3)半精车程序:设置变量G00 X7 Z74;1=72;WHILE[1GE2] DO4;2=[[36/1]+3.5];G01 X[2] Z[1] F0.1;1=1-0.1;END4;P170。
数控车宏程序编程实例
数控车宏程序编程实例
以下是一个简单的数控车宏程序编程实例,用于加工一个圆柱零件:
```数控车宏程序
O0001
#1=50 (定义圆柱的半径)
#2=100 (定义圆柱的长度)
G00 X#1
Z2
G01 Z0 F0.1
X#2
G00 Z100
M30
```
在上述示例中,我们使用了以下几个步骤来创建宏程序:
1. 定义变量:使用`#1`和`#2`分别定义了圆柱的半径和长度。
2. 设定初始位置:使用`G00`指令将刀具快速移动到初始位置(X=50,Z=2)。
3. 开始加工:使用`G01`指令以 0.1mm/rev 的进给速度开始加工圆柱,从 Z=0 处开始,沿着 X 轴加工到 X=100。
4. 快速退回:使用`G00`指令将刀具快速移动到安全位置(Z=100)。
5. 程序结束:使用`M30`指令结束程序。
通过使用宏程序,我们可以在加工过程中灵活地调整变量的值,实现不同尺寸零件的加工。
请注意,在实际应用中,你可能需要根据具体的机床和加工要求进行适当的调整和修改。
数控车宏程序
数控车宏程序要说宏程序和普通程序有什么本质上的区别,其中之一就在于流程控制了。
什么是流程控制呢?比如普通程序在执行的时候,它总是在第一行开始,依次执行到程序的最后一行,中途是不会改变执行顺序的。
但宏程序不同,它可以改变程序的执行顺序。
并且可以根据需求,让某段程序执行多次等。
在宏程序领域变量就是最基本最重要的了。
在说变量之前,不妨先了解一下什么是常量。
所谓常量,可以通俗理解为一个不会变化的阿拉伯数字。
比如数字1、2.35、789等。
它们自身是不会变化的,是多少就是多少。
那么1+2=3,这是变化了吗?其实这个数字3是两个常量1、2相加的结果,但1、2自身并没有因为相加而发生变化。
其实变量,它不是一个具体的数字,而是一个代号。
比如“小明”这个名字。
它不能简单理解为某一个人,因为全国有很多人叫这个名字。
所以代号里的内容是不确定的。
那么在数控系统中如何表示变量呢?输入“小明”肯定是无效的,必须输入系统能够识别的“语言”。
在数控系统中,变量用符号“#”来表示,后面再跟上序号,比如#1、#2、#3等。
这些序号用来区别变量的属性,比如#1与#500,序号的不同属性也是不同的。
变量的赋值及四则运算。
所谓赋值,就是把某个东西给了另一个东西。
比如小王给了我10块钱,那么这个过程可以理解为小王对我赋值了,这个值就是10元人民币。
那么在数控系统中,赋值的表达方式是:#1=10。
就是把阿拉伯数字10,给了#1这个变量。
当#1把发生运算的情况下,#1就代表数字10。
例如下面这一段小程序:G01 X80 Z-45如果:#1=80、#2=45;那么:G01 X80 Z-45完全等价于G01 X#1 Z-#2;分析:由于把80、45这两个阿拉伯数字分别赋值给了变量#1、#2,所以#1、#2就代表着数字80、45。
因此这两段小程序完全等价,赋值讲完,接下来该谈谈变量的运算了。
变量的运算和数学的运算法则完全一致的。
例如:加减乘除的运算顺序,如果有小括号,要先计算小括号内的等。
新代数控车床宏程序说明
一.用户宏程序的基本概念用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能。
在这里,所存储的一组指令叫做宏程序体(或用户宏程序),简称为用户宏。
其代表指令称为用户宏命令,也称作宏程序调用指令。
用户宏有以下四个主要特征:1)在用户用户宏程序中可以使用变量,即宏程序体中能含有复杂的表达式;2)能够进行变量之间的各种运算;3)可以用用户宏指令对变量进行赋值,就象许多高级语言中的带参函数或过程,实参能赋值给形参;4)容易实现程序流程的控制。
使用用户宏时的主要方便之处在于由于可以用变量代替具体数值,因而在加工同一类的工件时.只得将实际的值赋予变量既可,而不需要对每个不同的零件都编一个程序。
二.基本书写格式数控程序文档中,一般以“%”字符作为第一行的起头,该行将被视为标题行。
当标题行含有关键字“@MACRO”时整个文档就会以系统所定义的MACRO语法处理。
如果该行无“@MACRO”关键词此档案就会被视为一般ISO程序文档格式处理,此时将不能编写用户宏和使用其MACRO 语法。
而当书写ISO程序文档时标题行一般可以省略,直接书写数控程序。
“@MACRO”关键词必须是大写字母。
对于程序的注释可以采用“//……”的形式,这和高级语言C++一样。
例一:MACRO格式文档% @MACRO //用户宏程序文档,必须包含“@MACRO”关键词IF @1 = 1 THENG00 X100.;ELSEG00 Z100.;END_IF;M99;例二:ISO格式文档% 这是标题行,可当作档案用途说明,此行可有可无G00 X100.;G00 Z100.;G00 X0;G00 Z0;M99;三.用户宏程序的编写如前所述,变量是指可以在用户宏程序中的地址码后代替具体数值,在调用宏程序时进行赋值的符号#i (i=1,2,3,…)。
使用变量可以使用户宏程序具有通用性。
数控车宏程序
FANUC oi 系统采用B类宏程序代码。
变量的类型分为:空变量:#0总是空,没有值能赋给该变量。
局部变量:#1~#33,是在宏程序中局部使用的变量号。
公共变量:#100~#199,#500~#999,在不同的宏程序中的意义相同。
系统变量:#1000~,是指固定用途的变量,它的值决定系统的状态。
赋值与变量:赋值是指将一个数据赋予一个变量,;例如#1=20,表示#1的值是20。
其中#1代表变量,20就是给变量#1赋的值。
这里“=”是赋值符号,起语句定义作用。
1.赋值号“=”两边内容不能随意互换,左边只能是变量,右边可以是表达式、数值或变量。
2.一个赋值语句只能给一个变量赋值。
3.可以多次给一个变量赋值,新变量值将取代原变量值(即最后赋的值生效)。
4.赋值语句具有运算功能,它的一般形式为:变量=表达式。
5.赋值表达式的运算与数学运算顺序相同。
运算指令:宏程序具有赋值、算数运算、逻辑运算、函数运算等功能。
控制指令:1.无条件转移GOTOGOTO n转移(跳转)到标有顺序号n的程序段。
2.条件判别IFIF [条件表达式] GOTO n当条件满足时,程序就跳转到同一程序中,语句标号为n的语句上继续执行。
当条件不满足时,程序执行下一条语句。
3.条件循环WHILEWHILE [ 条件表达式] DO m……END m当条件满足时,从DO m到ENDm之间的程序就重复执行。
当条件不满足时,程序就执行ENDm下一条语句。
运算符宏程序运算符由两个字母组成,用于两个值的比较,以决定他们是相等还是一个值小于或大于另一个值,注意,不能使用不等号。
按图利用三角函数编写宏程序如下,其中椭圆三角函数表达式:X=10×SINα,Z=20×COSα。
宏程序示例加工程序。
数控车宏程序
数控车宏程序(总31页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--数控宏程序FANUC数控车第一章编程代码 ----------------------------------------------------------11.准备功能G------------------------------------------------------------12.辅助功能M-----------------------------------------------------------6第二章用户宏程序 -------------------------------------------------------71. 运算符号---------------------------------------------------------------72.转移和循环-----------------------------------------------------------73.运算指令--------------------------------------------------------------8第三章宏程序编程 ------------------------------------------------------111.车V型圆锥- --------------------------------------------------------112.车U圆弧-------------------------------------------------------------123.方程曲线车削加工-------------------------------------------------135.车梯形螺纹36×6--------------------------------------------------146.蜗杆-------------------------------------------------------------------157.加工多件--------------------------------------------------------------17第四章自动编程---------------------------------------------------------------211.UG建模--------------------------------------------------------------------212.创建几何体----------------------------------------------------------------24附录 --------------------------------------------------------------------------29第一章编程代码1.准备功能G00快速定位 G01直线插补 G02顺弧插补G03逆弧插补 G04暂停G9,G60,G64准确/连续停G20英制输入 G21米制输入 G40取消刀具补偿G41建立左刀具补偿 G42建立右刀具补偿G50坐标设定/主轴最高速设定G70精车循环格式: G70 P(ns) Q(nf)ns: 精加工形状程序的第一个段号。
华中数控车宏程序
华中数控宏程序一.什么是宏程序?什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。
宏程序具有如下些特点:1.使用了变量或表达式(计算能力),例如:(1)G01 X[3+5] ;有表达式3+5(2)G00 X4 F[#1] ;有变量#1(3)G01 Y[50*SIN[3]] ;有函数运算2.使用了程序流程控制(决策能力),例如:(1)IF #3 GE 9 ;有选择执行命令……ENDIF(2)WHILE #1 LT #4*5 ;有条件循环命令……ENDW二.用宏程编程有什么好处?1.宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;2.宏程序可以完成图形一样,尺寸不同的系列零件加工;3.宏程序可以完成工艺路径一样,位置不同的系列零件加工;4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;5.使用宏程序能极大地简化编程,精简程序。
适合于复杂零件加工的编程。
一.宏变量及宏常量1.宏变量先看一段简单的程序:G00 X25.0上面的程序在X轴作一个快速定位。
其中数据25.0是固定的,引入变量后可以写成:#1=25.0 ;#1是一个变量G00 X[#1] ;#1就是一个变量宏程序中,用“#”号后面紧跟1~4位数字表示一个变量,如#1,#50,#101,……。
变量有什么用呢?变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号……,变量的使用,给程序的设计带来了极大的灵活性。
使用变量前,变量必需带有正确的值。
如#1=25G01 X[#1] ;表示G01 X25#1=-10 ;运行过程中可以随时改变#1的值G01 X[#1] ;表示G01 X-10用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、……等各种代码后的数字。
如:#2=3G[#2] X30 ;表示G03 X30例1 使用了变量的宏子程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数控宏程序FANUC数控车第一章编程代码----------------------------------------------------------1 1.准备功能G------------------------------------------------------------1 2.辅助功能M-----------------------------------------------------------6 第二章用户宏程序-------------------------------------------------------71. 运算符号---------------------------------------------------------------72.转移和循环-----------------------------------------------------------7 3.运算指令--------------------------------------------------------------8第三章宏程序编程------------------------------------------------------11 1.车V型圆锥- --------------------------------------------------------11 2.车U圆弧-------------------------------------------------------------12 3.方程曲线车削加工-------------------------------------------------13 5.车梯形螺纹36×6--------------------------------------------------14 6.蜗杆-------------------------------------------------------------------15 7.加工多件--------------------------------------------------------------17 第四章自动编程---------------------------------------------------------------21 1.UG建模--------------------------------------------------------------------21 2.创建几何体----------------------------------------------------------------24 附录--------------------------------------------------------------------------29第一章编程代码1.准备功能G00快速定位 G01直线插补 G02顺弧插补G03逆弧插补 G04暂停G9,G60,G64准确/连续停G20英制输入 G21米制输入 G40取消刀具补偿G41建立左刀具补偿 G42建立右刀具补偿G50坐标设定/主轴最高速设定G70精车循环格式: G70 P(ns) Q(nf)ns: 精加工形状程序的第一个段号。
nf: 精加工形状程序的最后一个段号用 G71、G72或 G73 粗车削后,G70 精车削。
G71外径/内径粗车循环格式:G71 U(半径切深) R(半径退刀量)G71 U(精车X轴留量) W(精车Z轴留量)P(循环程序起始段号)Q(循环程序结束段号)F(进给量)S(转数)T(刀具号)G72端面粗车循环格式:G72 W(Z轴位移量) R(半径退刀量)G72 U(精车X轴留量) W(精车Z轴留量)P(循环程序起始段号)Q(循环程序结束段号)F(进给量)S(转数)T(刀具号)G73成型加工复合循环(它适合加工铸,锻件毛柸。
当然也可以用棒料毛柸)格式:G73 U(△I)W(△K) R(D);G73 P(NS) Q(NF) U(△U) W(△W) F(F) S(S)T(T)△i: X 轴方向退刀距离(半径指定), FANUC系统参数(NO.0719)指定。
△k: Z 轴方向退刀距离(半径指定), FANUC 系统参数(NO.0720)指定。
d: 分割次数。
这个值与粗加工重复次数相同,FANUC 系统参数(NO.0719)指定。
ns: 精加工形状程序的第一个段号。
nf: 精加工形状程序的最后一个段号。
△U: X 方向精加工预留量的距离及方向。
(直径/半径)△W: Z 方向精加工预留量的距离及方向。
G74端面啄式钻孔循环格式:G74 R(后退量);G74 X(u) Z(w) P(△i) Q(△k) R(△d) F(f)e:后退量本指定是状态指定,在另一个值指定前不会改变。
FANUC 系统参数(NO.0722)指定。
x:B点的X坐标u:从a至b增量z:c点的Z坐标w:从A至C增量△i:X方向的移动量△k:Z方向的移动量△d:在切削底部的刀具退刀量。
△d的符号一定是(+)。
但是,如果X(U)及△I省略,可用所要的正负符号指定刀具退刀量。
f:进给率。
G75外圆/内圆切槽循环除X用Z代替外与G74相同,在本循环可处理断削,可在X轴割槽及X轴啄式钻孔。
格式:G75 R(e);G75 X(u) Z(w) P(△i) Q(△k) R(△d) F(f)G76螺纹切削循环格式:G76 P(m)(r)(a) Q(△dmin) R(d)G76 X(u) Z(w) R(i) P(k) Q(△d) F(f)m:精加工重复次数(1至99)本指定是状态指定,在另一个值指定前不会改变。
FANUC 系统参数(NO.0723)指定。
r:到角量本指定是状态指定,在另一个值指定前不会改变。
FANUC 系统参数(NO.0109)指定。
a:刀尖角度:可选择80度、60度、55度、30度、29度、0度,用2位数指定。
本指定是状态指定,在另一个值指定前不会改变。
FANUC 系统参数(NO.0724)指定。
如:P(02/m、12/r、60/a)△dmin:最小切削深度本指定是状态指定,在另一个值指定前不会改变。
FANUC 系统参数(NO.0726)指定。
d:精车X轴留量i:螺纹部分的半径差如果i=0,可作一般直线螺纹切削。
k:螺纹高度这个值在X轴方向用半径值指定。
△d:第一次的切削深度(半径值)f:螺纹导程(与G32)G90外径固定粗车循环格式:G90 X(U) Z(W) R - F-X Z 锥面的终点位置,两轴坐标必须齐备,相对坐标不能为零。
R 循环起点与终点的直径之差,省略R为轴面切削F 切削速度G92螺纹固定粗车循环/工件坐标系设定格式:G92X(U)Z(W)R-F-X Z 锥面的终点位置,两轴坐标必须齐备,相对坐标不能为零。
R 循环起点与终点的直径之差,省略R为直螺纹切削F 切削速度G94端面固定粗车循环格式:G94X(U)Z(W)R-F-X Z 锥面的终点位置,两轴坐标必须齐备,相对坐标不能为零。
R 循环起点与终点的直径之差,省略R为轴面切削F 切削速度G96恒线速度设定用恒定速度控制加工端面.锥度和圆弧时,由于X从标不断变化,故当刀具逐渐移近式件中心时,主轴转速会越来越高,工件有可能从卡盘中飞出。
为了防止出现事故,必须限定主轴最高转速。
例:G50 S2000G96 S100; 表示线速控制在100 m/min且转速不高于2000r/minG97恒转速度设定例:G97 S180; 表示转速控制在180 r/min注:N=318Uc/DN 主轴转速Uc 线速度D 待加工直径G90 绝对坐标值编程 G91相对坐标值编程G98 直线进给率 G99旋转进给率第一章编程代码2.辅助功能MM00——进给暂停 M01——条件暂停 M02——程序结束M03--主轴正转 M04--主轴反转 M05--主轴停转M07、M08——开切削液 M09——关切削液M30--程序结束并返回到开始处 M98——子程序调用 M99——子程序返回第二章用户宏程序1.运算符号运算符号EQ等于NE不等于GT大于GE大于或等于LT小于LE小于或等于第二章用户宏程序2.转移和循环(1)无条件转移指令GOTO10 ; 转移到语句标号10的程序段GOTO#10 ; 转移到10号变量指定的程序段(2)条件转移指令条件转移指令的语句格式为:IF[条件表达式]GOTOn当条件满足时,程序就转到同一程序中语句标号为n的语句上继续执行;当条件不满足时,程序执行下一条语句。
例利用变量,编写求1~10总和的宏程序。
O1003;#1=0;#2=1;N1 IF [#2GT10] GOTO2;#1=#1+#2;#2=#2+1;GOTO1;N2 M30;(3)循环指令循环指令的语句格式如下:WHILE [条件表达式] DO m...END m当条件满足时,从DOm到ENDm之间的程序就重复执行;当条件不满足时,程序就执行ENDm下一条语句。
第二章用户宏程序3.运算指令运算指令运算式的右边可以是常数、变量、函数、式子式中#j,#k也可为常量式子右边为变量号、运算式1.定义#I=#j2.算术运算#I=#j+#k#I=#j-#k#I=#j*#k#I=#j/#k3.逻辑运算#I=#JOK#k#I=#JXOK#k#I=#JAND#k4.函数#I=SIN[#j] 正弦#I=COS[#j] 余弦#I=TAN[#j] 正切#I=ATAN[#j] 反正切#I=SQRT[#j] 平方根#I=ABS[#j] 绝对值#I=ROUND[#j] 四舍五入化整#I=FIX[#j] 下取整#I=FUP[#j] 上取整#I=BIN[#j] BCD→BIN(二进制)#I=BCN[#j] BIN→BCD1.说明1) 角度单位为度例:90度30分为90.5度2) ATAN函数后的两个边长要用“1”隔开1.车V型锥方案:以最低点为Z0,先从右端车到向左端程序:O0100(VXINGZHUI)M08 开切削液M03S500T0101 主轴正转S500,换1号刀G00X112Z0 快速移动到起刀点#101=0 Z坐标赋值#102=110 直径赋值#103=10/66 H/L#104=2 吃刀长度N10G00X112Z#101G01X110F0.3G01X#102Z0X110.Z-#101#101=#101+#104 计算Z值#102=#102-#103*#104*2 计算X值IF[#101LE66]GOTO10 如果#101小于或等于66,跳到N10 G00X150Z100 退刀M30 程序结束2.车U型圆弧解:圆心到D120外圆垂直距离为36.65程序:O2600(UXINGYY ANHU)G97M03S280T0101 主轴正转S500,换1号刀G00X122.Z0. 快速移动到起刀点#101=0 Z坐标赋值#102=2. 吃刀长度N10IF[#101GE34]GOTO20 如果#101大于或等于66,跳到N20 #103=SQRT[36.65*36.65+#101*#101]G00X122Z#101G99G01X120F0.3G02X120Z-#101R#103#101=#101+#102GOTO10 跳到N10N20G50S1200 限制最高转速S1200M03S100G96 线速100M/MING00X122Z34 精车一次G01X120F0.3G02X120Z-34R50.F0.15G00X200Z50.G97M05 取消线速,主轴停止M02 程序结束第三章宏程序编程3.方程曲线车削加工方程曲线车削加工的走刀路线粗加工:应根据毛坯的情况选用合理的走刀路线。