B类宏程序

合集下载

数控宏程序A,B类举例分析1

数控宏程序A,B类举例分析1
• 宏程序可以简化复杂曲线的编程,内外双 曲线、抛物线、椭圆轮廓等,是高级工大 赛的必考内容 • 宏程序比较简短,可以复杂一点的或简化 程序,自动编程主要编程计算繁琐和复杂 曲面的!
五· 什么是宏程序?
宏程序是利用数控系统提供的变量、 数学运算功能、逻辑判断功能、程序循环 功能等功能来实现一些特殊用法。
3)、宏程序的运算和转移指令
• (2)宏程序的调用。宏程序的调用有两种形式:一 种与子程序调用方法相同,即用M98进行调用。 另一种用指令G65进行调用,如: • G65P0070X100.0Y100.0Z-30.0; • 此处的X、Y、Z并不代表坐标功能字 • 其中,G65为调用宏程序指令,该指令必须写在 句首;P0070表示宏程序的程序号为O0070;L5 表示调用次数为5;X100.0Y100.0Z-30.0变量引 数,引数为有小数点的正、负数。
3)、宏程序的运算和转移指令
• 例如,当#100=10时,X#100代表 0.01mm。当运算结果出现小数点后的 数值时,其值将被舍去。另外,用 G65指定的H代码,对选择刀具长度补 偿的偏置号没有任何影响。 • 例2若#100=37,#101=10执行如下指 令,其运算结果如下: #110=#100÷#101;结果为3;小数点 后的数值被舍去。
• •
• •
5)· A类宏编程(数铣)椭圆加工实例
5)· A类宏编程(数铣)椭圆加工实例
• • • • • • • • G40G49G80G90 G54G00X45Y0 M03S2000 Z50 Z5 G01Z-5F200 G42X36Y-6D01 G02X30Y0R6
5)· A类宏编程(数铣)椭圆加工实例
• (3)变量的种类变量分为局部变量、公共变量 (全局变量)和系统变量三种。在A、B类宏程 序中,其分类均相同。

B类宏程式功能简介(006)

B类宏程式功能简介(006)

B类宏程式功能简介(6)有了变量及数学运算功能还不够,一个宏程序还需用到我们今天要介绍的“控制流程”功能。

1.3分支和循环语句在一个程序中,控制流程可以用GOTO、IF语句改变。

有三种分支循环语句如下:☆“GOTO”语句(无条件分支);☆“IF”语句(条件分支)☆“WHILE”语句(循环语句)。

1.3.1无条件分支(GOTO语句)功能:转向程序的第N句。

当指定的顺序号大于1~99999时,出现报警,顺序号可以用表达式。

格式:GOTO n;n是顺序号(1~99999)GOTO[nn]nn可为一个变量或表达式,其值不大于1~99999之间的整数1.3.2条件分支(IF语句)功能:在IF后面指定一个条件表达式,如果条件满足,转向第N句,否则执行下一段。

格式:IF[条件表达式]GOTO n;☆条件表达式:一个条件表达式一定要有一个操作符,这个操作符插在两个表达式之间,并且要用方括号括起来,即[表达式操作符表达式]。

☆操作符见下表:操作符意义EQ=NE≠GT>GE≥LT<LE≤☆在条件表达式中,空值和零的使用结果不同,需特别注意,如下:#1=空(#0)#1=0#1EQ#0成立#1EQ#0不成立#1NE#0不成立#1NE#0成立#1GE#0成立#1GE#0成立#1GT#0不成立#1GT#0不成立☆有“#0”参与的运算需注意结果如下:#i=#0+#0#i=0#i=#0-#0#i=0#i=#0*#0#i=0#i=#0/#j#i=0(#j≠0)#i=#j+#0#i=#j#i=#j-#0#i=#j#i=#j*#0#i=0例:当#1=#0当#1=#0#2=0#2=0IF[#1EQ0]GOTO1IF[#1*1EQ0]GOTO1#2=1#2=1N1G00X100.N1G00X100.此时#2=1此时#2=0编制:毛松柏审核:批准:日期:18/10-06日期:日期:。

B类宏程序编程方法与技巧

B类宏程序编程方法与技巧

B类宏程序编程方法与技巧摘要:数控加工已成为当今世界机械加工行业领先技术的代表,而数控宏程序的应用程度就更加体现出了数控加工水平的高低和对机床的利用率,直接关系到加工难度与加工效率。

本文以数控宏指令为基础,以华中数控操作系统为例,通过机械加工和无数次的宏程序的加工,总结B类宏程序编程方法与技巧。

关键词:数控;宏指令;方法与技巧;华中数控宏指令编程像高级语言一样,可以使用变量进行算术运算、逻辑运算和函数混合运算的程序编写形式,能提供循环、判断、分支和子程序调用的方法。

由于宏程序指令允许使用变量算术和逻辑运算及条件转移,可将相同加工操作编为通用程序,不仅使程序应用更加灵活,而且可大大精简程序量。

在数控加工中经常会遇到复杂轮廓的加工(如抛物线、椭圆、双曲线、半球、螺旋线等),用普通的手工编程方法处理周期长、计算量大、精度差、容易出错,难以满足生产要求。

随着数控技术的发展,先进的数控系统不仅向用户编程提供了一般的准备功能和辅助功能,而且为编程提供了扩展数控功能的手段,华中世纪星数控系统的宏程序编程,应用灵活、形式自由,具备计算机高级语言的表达式、算术和逻辑运算机类似的程序流程,使加工程序简练易懂,可实现普通编程难以实现的功能。

1. B类宏指令(华中数控)1.1 B类宏指令变量的类型B类宏是在A类宏的基础上发展起来的,随着数控技术的不断完善,在运用宏加工时就出现了一些运算问题,B类宏也就在这个前提下发展起来了,B类宏的好处在于能够经行四则运算,大大减少了宏的程序长度,大大减少了编程时间。

1.2 B类宏指令变量的赋值、算术运算和逻辑运算通常在计算机中每个变量都有其变量名,计算机允许使用变量名,但是数控系统中用户宏程序不能直接使用变量名,采用变量符号(#)和后面的变量号指定变量。

表达式可以用指定的变量号。

此时,表达式必须封闭在括号中。

2. B类宏程序的编程技巧很多人都认为宏程序比较难编写。

通过研究我找到了一种利用填充式的方法进行宏程序的编写,就算不能理解宏程序的人员也能进行编写,通过简单的数字填充来编写宏程序。

经典B类宏程序

经典B类宏程序

下面主要介绍F A N U C 0i-T C系统中的B类宏程序。

一、宏程序数控程序中含有变量的程序称为宏程序。

宏程序可以让用户利用数控系统提供的变量、数学运算、逻辑判断和程序循环等功能,来实现一些特殊的用法,从而使得编制同样的加工程序更加简便。

1.变量普通加工程序直接用数值指定G代码和移动距离,例如,GO1和X100. 0。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用M D I面板上的操作改变。

如:#1=#2+ 100或G01 X#1 F300。

(1)变量的表示及类型一般编程方法允许对变量命名,但用户宏程序不行。

变量用变量符号“#” 和后面的变量号指定。

例如:#1、#100 等。

表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

例如:#[#1+#2-12]。

变量根据变量号可以分成四种类型,如表1所示。

(2)变量的运算变量常用算术、逻辑运算和运算符(如表2和表3所示)。

运算符右边的表达式可包含常量,或由函数或运算符组成的变量。

表达式中的变量“#j”和“#k”可以用常数赋值。

左边的变量也可以用表达式赋值。

其中有些需要注意的问题:1)角度单位。

函数正弦、余弦、正切、反正弦、反余弦和反正切的角度单位是度(°)。

例如:90°30′表示为90.5°。

2)运算符的优先级。

按照优先级的先后顺序依次是:函数→乘和除运算(* 、/、AND、MOD)→加和减运算(+、-、OR、XOR)。

3)括号嵌套。

括号用于改变运算优先级。

括号最多可以嵌套使用5级,包括函数内部使用的括号。

2.功能语句(1)无条件转移(GOTO)语句转移到有顺序号n 的程序段。

格式为:GOTOn,其中n 表示程序段号。

例:GOTO1,表示转移到第一程序段。

再如:GOTO#10,表示转移到变量#10决定的程序段。

(2)条件转移(IF)语句在IF后指定一条件,当条件满足时,转移到顺序号为n 的程序段,不满足则执行下一程序段。

发那科B类宏程序

发那科B类宏程序
1、实例分析
该正弦曲线由两个周期组成,总角度为7200(-6300~900)。将沿Z轴方向将该曲线分成1000条线段,每段直线在Z轴方向的间距为0.04mm,对应其正弦曲线的角度增加7200/1000。根据公式,计算出曲线上每一线段终点的X坐标值,X=34+6sin 。
工件粗加工时,采用局部坐标进行编程,编程时使用以下变量进行运算:
表3-7B类宏程序条件表达式的种类
注意:条件判断中条件的表示方法
(2)循环指令循环指令格式为:
WHlLE[条件表达式]DOm(m=:
当条件满足时,就循环执行WHlLE与END之间的程序段m次;当条件不满足时,就执行ENDm的下一个程序段。
5、B类宏程序编程示例
N90 IF[#100GE0]GOTO200; 条件判断
N100 G00X100.0Z100.0; 程序结束
N110 M30;
O0402 曲线加工宏程序
N10 G01X40.0Z-15.0; 加工与曲线相连的直线段
N20 Z-20.0;
N30 #101=90.0; 正弦曲线角度赋初值
……
O504;精加工宏程序
N1000#4=#l×SIN[#3];
#5=#2×COS[#3];
#6=#4×2;
#8=#5-#2;
G01X#6Z#8F#9;
#3=#3+0.0l:
IF[#3LE#7]GOTO1000;
M99;
3、运算指令
B类宏程序的运算指令与A类宏程序的运算指令有很大的区别,它的运算类似于数学运算,仍用各种数学符号来表示。运用运算指令见表:
N20 T0101;
N30 M03S800;

B类宏程序

B类宏程序

二、教学过程1.变量B类宏程序的变量与A类宏程序的变量基本相似,但也略有不同,主要区别有以下几个方面。

(1)变量的表示:B类宏程序除可采用A类宏程序的变量表示方法外,还可以用表达式表示,但表达式必须封闭在方括号“[ ]”中。

程序的圆括号“()”用于注释。

例# [#1+#2+10] 当#1=10,#2=100时,该变量表示#120。

(2)变量的引用:引用变量也可以用表达式表示例G01 X [#100-30.0] Y- #101 F [#101+#103] ;当#100=100时、#101=50、#103=80时,上式即表示为G01 X70.0 Y-50.0 F130;(3)变量的种类:B类与A类宏程序的变量种类相同2.变量的赋值(1)直接赋值变量可以在操作面板上用MID方式直接赋值,也可在程序中以等式方式赋值,在等号左边不能用表达式。

例#100 =100.0;#100 =30.0+20.0(2)引数赋值宏程序以子程序方式出现,所用的变量可在宏调用时赋值。

如下所示:例G65 P1000 X100.0 Y30.0 Z20.0 F100.0;此处的X、Y、Z不代表坐标字,F也不代表进给字,而是对应与宏程序中的变量号,变量的具体数值由引数后的数值决定。

引用宏程序体中的变量对应关系有两种,见表2—4—2及表2—4—3。

此两种方法可以混用,其中G、L、N、O、P不能作为引数替变量赋值。

例变量赋值方法1G65P0030 A50.0 I40.0 J100.0 K0 I20 J10.0 K40.0;经赋值后#1=50.0,#4=40.0,#5=100.0,#6=0,#7=20.0,#8=10.0,#9=40.0。

变量赋值方法2G65 P0020 A50.0 X40.0 F100经赋值后#1=50.0,#24=40.0,#9=100.0。

变量的赋值方法1、2混合G65 P0030 A50.0 D40.0 I100.0 K0 I20.0经赋值后,I20.0与D40.0同时分配给变量# 7,则后一个# 7有效,所以变量# 7=20.0,其余同上。

6-2B类宏程序

6-2B类宏程序

≥#1000
用于读和写CNC运行时各种数据的变化,例如刀具的当前位置 系统变量 和补偿值。各个系统变量的应用方法是固定的。分只读、只写 和可读写三类
2、 B类宏程序的变量表示与引用
①变量表示方法 一个变量由“#”和变量序号组成: #i (i=1、2、3、4…),例如:#5,#100,#2001 变量号可以用运算指令组成的表达式指定。此时,表达式必须封闭在括号 中。例如:#[#1+#2-12]
②变量引用
将地址符后的数值用变量来代替的方法称为变量引用。 如:X#01、Z#02、F#3 还可以用表达式进行表示。 如:X[#1+#2-10]
3、变量使用的注意事项:
(1)当在程序中定义变量时,小数点可以省略。 (2)在程序中引用变量,变量号须放在地址字符后。 (3)如改变引用的变量值的符号,要把负号“-”放在“#” 的前面。 (4)表达式可以用于表示变量号和变量,当用表达式指定 一个变量号或变量,须把表达式放在方括号“[ ]”中。 (5)当引用一个未定义的变量时,程序运行时将忽略变量 及引用变量的地址。 (6)程序号、程序段段号、任选段跳跃号不能使用变量。
5、B类用户宏程序的控制指令(语句):
①作用: 可通过语句改变程序的流向,让其反复运算执行,即可达到简化编 程的目的。
②种类:
(1)无条件转移(GOTO语句)
GOTO n
无条件跳转到顺序号(段号)为n的程序段中。顺序号必须位于程序段的 最前面。顺序号也可以用变量或<表达式>来代替。 (2)条件转移(IF 语句) I F [ <条件表达式> ] GOTO n 当条件满足时,程序就跳转到同一程序中顺序号为n的程序段上继续执 行,当条件不满足时,程序执行下一条语句

B类宏程序

B类宏程序

数控程序中含有变量的程序称为宏程序。

虽然子程序对编制相同的加工程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制同样的加工程序更简便。

例如型腔加工宏程序和用户开发固定循环。

使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。

1.1 变量普通加工程序直接用数值指定G代码和移动距离;例如,G01 和X100.0。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用MDI 面板操作改变。

#1=#2+100;G01 X#1 F300;说明变量的表示一般编程方法允许对变量命名,但用户宏程序不行。

变量用变量符号(#)和后面的变量号指定。

例如:#1表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型。

变量值的范围局部变量和公共变量可以为0 值或下面范围中的值:-1047 到-10-29或10-29 到1047如果计算结果超出有效范围,则发出P/S 报警No.111小数点的省略当在程序中定义变量值时,小数点可以省略。

例:当定义#1=123;变量#1 的实际值是123.000。

变量的引用在地址后指定变量号即可引用其变量值。

当用表达式指定变量时,要把表达式放在括号中。

例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。

例如:当系统的最小输入增量为1/1000mm 单位,指令G00X#1,并将12.3456 赋值给变量#1,实际指令值为G00X12.346;。

改变引用变量的值的符号,要把负号(—)放在#的前面。

例如:G00X—#1;当引用未定义的变量时,变量及地址字都被忽略。

例如:当变量#1 的值是0,并且变量#2 的值是空时,G00X#1 Y#2 的执行结果为G00X0;。

双轨迹(双轨迹控制)的公共变量对双轨迹控制,系统为每一轨迹都提供了单独的宏变量。

FANUC系统数控车床B类宏程序编程应用

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。

图文解说B类宏程序

图文解说B类宏程序

宏程序数控程序中含有变量的程序称为宏程序。

虽然子程序对编制相同的加工程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制同样的加工程序更简便。

例如型腔加工宏程序和用户开发固定循环。

使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。

1.1 变量普通加工程序直接用数值指定G代码和移动距离;例如,G01 和X100.0。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用MDI 面板操作改变。

#1=#2+100;G01 X#1 F300;说明变量的表示一般编程方法允许对变量命名,但用户宏程序不行。

变量用变量符号(#)和后面的变量号指定。

例如:#1表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型。

变量值的范围局部变量和公共变量可以为0 值或下面范围中的值:-1047 到-10-29或10-29 到1047如果计算结果超出有效范围,则发出P/S 报警No.111小数点的省略当在程序中定义变量值时,小数点可以省略。

例:当定义#1=123;变量#1 的实际值是123.000。

变量的引用在地址后指定变量号即可引用其变量值。

当用表达式指定变量时,要把表达式放在括号中。

例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。

例如:当系统的最小输入增量为1/1000mm 单位,指令G00X#1,并将12.3456 赋值给变量#1,实际指令值为G00X12.346;。

改变引用变量的值的符号,要把负号(—)放在#的前面。

例如:G00X—#1;当引用未定义的变量时,变量及地址字都被忽略。

例如:当变量#1 的值是0,并且变量#2 的值是空时,G00X#1 Y#2 的执行结果为G00X0;。

双轨迹(双轨迹控制)的公共变量对双轨迹控制,系统为每一轨迹都提供了单独的宏变量。

B类宏程序-介绍与例题

B类宏程序-介绍与例题

表达式
• 用运算符连接起来的常数,宏变量构成 表达式。
• 例如:175/SQRT[2] * COS[55 * PI/180 ]; 说明:[55*PI/180]即为弧度 • #3*6 GT 14;
W W W. C N N C C200 4 . C O M . C N
赋值语句
格式:宏变量=常数或表达式
把常数或表达式的值送给一个宏变量称为赋值。 例如: #2 = COS[55 * PI/180 ]; #3 = 124.0;
W W W. C N N C C200 4 . C O M . C N
条件判别语句IF,ENDIF
• 格式 :
IF 条件表达式 … ENDIF
W W W. C N N C C200 4 . C O M . C N
运算符
1、 算术运算符:
• +,-,*,/
2、 条件运算符
• EQ(=),NE(≠),GT(>),GE(≥),LT(<),LE(≤)
3、 逻辑运算符
• AND,OR,NOT
4、 函数
• SIN,COS,TAN,ATAN,ATAN2, • ABS,INT,SIGN,SQRT,EXP
W W W. C N N C C200 4 . C O M . C N
• • • •
W W W. C N N C C200 4 . C O M . C N
宏程序SIEMENS802C • 种类齐全的数学运算的功能
包括普通的“+”、“-”、“×”(*)、 “/”四则运算。平方:POT()、开方: SQRT()、指数:EXP()、自然对数:LN ()、三角函数:SIN(),COS(),TAN() 和反三角函数:ASIN(),ACOS()ATAN2 (…,…)等数学运算功能。

理论四、宏程序的概述(宏程序B类)

理论四、宏程序的概述(宏程序B类)

理论四、宏程序的概述(宏程序B类)(一)宏程序的基本知识一、宏程序的概述用户把实现某种功能的一组指令像子程序一样,预先存储在机床内,用一个指令代表这个存储的功能,在程序中只要指定该指令就能实现这个功能。

这一组指令称为用户宏程序基本体,简称宏程序。

代表指令称为用户程序调用指令,简称宏指令。

优点:通用性强,简单分类:宏程序A、宏程序B二、变量1、变量的表示:#后接数字或表达式eg: #1、#100、#[#4/2] (变量符号+变量号或表达式)2、变量的种类1)局部变量:#1~#33 用作计算过程量2)公共变量:#100~#149 用作定形、定位的变量3)系统变量:#200~3、变量的使用地址等(O、N、G、L、P除外)后接变量eg:G01 X#101 Y#102 F#103= G01 X-60.0 Y0 F100 (#101=-60.0 #102=0 #103=100) 说明:1)程序中使用变量值时,应指定变量号eg:#1=50.0 G01 X#1 F200;2)用表达式指定变量时,必须使用“[ ]”eg:G01 X[#11+#22] F#33;3)被引用变量的值根据地址的最小设定单位自动舍入eg:#4=12.34567G01 X#4;实际上#4=12.3464)改变引用变量的符号,要把负号放在“#”的前面eg:G00 X-#10;5)引用未定义的变量时,变量及地址被忽略eg:#11=0 #22为空值G01 X#11 Y#22;实际为G01 X0;4、变量的赋值1)直接赋值# =数值(或表达式)eg:#1=1.0 #2=2.0 #3=#1*#2 =1*2说明:等号左边不能用表达式。

#4+10.0=#3 #4=#3-10.0 2)引数赋值宏调用时,在主程序中赋值(二)宏程序算术和逻辑运算说明:1)定义转换:#i=#j eg :#1=10.0 #2=#1 ⇒ #2=10.02)加法形演算: “+”和;“-”差;#i=#jOR#k 逻辑和;#i=#jXOR#k 异或eg :3)乘法形运算: “*”乘;“/”商;“AND ”与(逻辑乘); #i=#jMOD#k 取余4)函数运算:SIN 、COS 、TAN[ ] (后面的变量必须加“[ ]”) ATAN[ ] 反正切、SQRT 平方根、ABS 绝对值、ROUND 四舍五入整数化、FIX 小数点以下舍去、FUP 小数点以下进位、LN 自然对数、EXP e xa) 角度以“度”为单位;eg :#j=90︒30'=90.5︒ SIN[#j]=SIN[90.5] #j 取值-1~1之间,否则报警。

宏程序A类B类G65等常见公式用法

宏程序A类B类G65等常见公式用法
将跟随在一个地址后的数值用一个变量来代替,即引入了变量。 例:对于F#103,若#103=50时,则为F50; 对于Z-#110,若#110=100时,则Z为-100; 对于G#130,若#130=3时,则为G03。
• (3)变量的类型 1)公共变量 公共变量在不同的的宏程序中的意义相同,是在主程序和主 程序调用的各用户宏程序内公用的变量。也就是说,在一个宏指 令中的#i与在另一个宏指令中的#i是相同的。 公共变量的序号为:#100~#131;#500~#531。其中#100~ #131公共变量在电源断电后即清零,重新开机时被设置为“0”; #500~#531公共变量即使断电后,它们的值也保持不变,因此 也称为保持型变量。
• 7)条件转移6 #j LE #k(≤) 编程格式G65 H86 Pn Q#j Q#k (n为程序段号) 例G65 H86 P1000 Q#101 R#102 当#101≤#102,转移到N1000;若#101>#102,执行下 一程序段。
• 4、使用注意 为保证宏程序的正常运行,在使用用户宏程序的过程
高技能人才培训宏程序教案
一、宏程序编程概念
宏程序的编制方法简单地解释就是:利用变量 编程的方法。
用户利用数控系统提供的变量、数学运算功能、
逻辑判断功能、程序循环功能等功能,来实现一些
特殊的用法。
x2
例如:椭圆的解析方程: a 2
y2 b2
1
椭圆的参数方程:其中t为变量 x a cos(t) y b sin(t)
G65 H26 复合乘/除 G65 H27 复合平方根1
# i=﹙# i × # j﹚÷# k
# i=√# j2+# k2
G65 H28 复合平方根2
# i=√# j2-# k2

B宏程序语句

B宏程序语句

宏程序语句和NC 语句下面的程序段为宏程序语句:•包含算术或逻辑运算(=)的程序段。

•包含控制语句(例如,GOTO,DO,END)的程序段。

•包含宏程序调用指令(例如,用G65,G66,G67 或其它G 代码,M 代码调用宏程序)的程序段。

除了宏程序语句以外的任何程序段都为NC 语句。

说明•即使置于单程序段运行方式,机床也不停止。

但是,当参数N0.6000#5SBM 设定为1 时,在单程序段方式中,机床停止。

•与NC 语句的不同•在刀具半径补偿方式中宏程序语句段不做为不移动程序段处理(见Ⅱ-15.7 节)。

如果NPS(参数N0.3450#4)为1,满足以下条件时程序段中的NC 语句可认为与宏程序语句性质相同。

•与宏程序语句有相同性质的NC 语句•含有子程序调用指令(例如,用M98 或其它M 代码或用T 代码调用子程序)但没有除O,N 或L 地址之外的其它地址指令的NC 语句其性质与宏程序相同。

•不包含除O,N,P 或L 以外的指令地址的程序段其性质与宏程序语句相同。

15.5.2 IF 之后指定条件表达式。

条件转移(IF 语句)IF[<条件表达式>] GOTO n如果指定的条件表达式满足时,转移到标有顺序号n 的程序段。

如果指定的条件表达式不满足,执行下个程序段。

如果变量#1 的值大于10,转移到顺序号N2 的程序段。

IF[#1GT10]GOTO2;如果条件满足程序如果条件不满足N2 G00 G91 X10.0;IF[<条件表达式>]THEN如果条件表达式满足,执行预先决定的宏程序语句。

只执行一个宏程序语句。

如果#1 和#2 的值相同,0 赋给#3。

IF〔#1 EQ #2〕THEN #3=0;说明·条件表达式条件表达式必须包括算符。

算符插在两个变量中间或变量和常数中间,并且用括号(〔,〕)封闭。

表达式可以替代变量。

运算符由 2 个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一个值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二、教学过程
1.变量
B类宏程序的变量与A类宏程序的变量基本相似,但也略有不同,主要区别有以下几个方面。

(1)变量的表示:B类宏程序除可采用A类宏程序的变量表示方法外,还可以用表达式表示,但表达式必须封闭在方括号“[ ]”中。

程序的圆括号“()”用于注释。

例# [#1+#2+10] 当#1=10,#2=100时,该变量表示#120。

(2)变量的引用:引用变量也可以用表达式表示
例G01 X [#100-30.0] Y- #101 F [#101+#103] ;
当#100=100时、#101=50、#103=80时,上式即表示为G01 X70.0 Y-50.0 F130;
(3)变量的种类:B类与A类宏程序的变量种类相同
2.变量的赋值
(1)直接赋值变量可以在操作面板上用MID方式直接赋值,也可在程序中以等式方式赋值,在等号左边不能用表达式。

例#100 =100.0;#100 =30.0+20.0
(2)引数赋值宏程序以子程序方式出现,所用的变量可在宏调用时赋值。

如下所示:
例G65 P1000 X100.0 Y30.0 Z20.0 F100.0;
此处的X、Y、Z不代表坐标字,F也不代表进给字,而是对应与宏程序中的变量号,变量的具体数值由引数后的数值决定。

引用宏程序体中的变量对应关系有两种,见表2—4—2及表2—4—3。

此两种方法可以混用,其中G、L、N、O、P不能作为引数替变量赋值。

例变量赋值方法1
G65P0030 A50.0 I40.0 J100.0 K0 I20 J10.0 K40.0;
经赋值后#1=50.0,#4=40.0,#5=100.0,#6=0,#7=20.0,#8=10.0,#9=40.0。

变量赋值方法2
G65 P0020 A50.0 X40.0 F100
经赋值后#1=50.0,#24=40.0,#9=100.0。

变量的赋值方法1、2混合
G65 P0030 A50.0 D40.0 I100.0 K0 I20.0
经赋值后,I20.0与D40.0同时分配给变量# 7,则后一个# 7有效,所以变量# 7=20.0,其余同上。

采用赋值后前面A类宏程序例题精加工程序可改写成如下形式:
O010;(主程序)

G65 P0210 X28.0 Z-20.0 A20.0 B0 R20.0;(赋值后,#24=28.0,#26=-20.0,#1=20.0,#2=0,#18=20.0)…
O210;(精加工宏程序)
N1000 G01Z#26;
X#24;
G02 X#24 Y0 I-#24 J0;
#2=#2+0.1;
#1=SQRT[#18 * #18-#2 * #2]
#24=#1+8.0;
#26=-20.0+#2;
IF[#26 LE 0]GOTO 1000
GO1Z20;
G01X0.0 Y40.0;
M99;
3.运算指令
B类宏程序的运算指令与A类宏程序的运算指令有很大区别,它的运算类似于数学运算,用各种数学符号来表示。

常用运算指令见表2—4—4。

宏程序计算说明如下
(1)函数SIN COS 等的角度单位是度,分和秒要换算成带小数点的度。

如90°30′表示90.5°。

而30°18′表示30.3°。

(2)宏程序数学运算计算的次序依次为:函数运算(SIN COS ATAN 等),乘和除运算(*、/、AND 等),加和减运算(+、-、OR、XOR等)
例 #1 = #2 + #3 * SIN [ #4 ];
运算次数为:①函数SIN[ # ]4
②乘和除运算 #3 * SIN[ # 4]
③加和减运算 #2 + #3 * SIN[ #4 ]
(3)函数中的括号用于改变运算次序,函数中的括号允许嵌套使用,但最多只允许嵌套5级。

例 #1=SIN[[[ #2 + #3 ] * 4 + #5 ] / #6]
(4)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;
控制指令:控制指令到控制程序流向的作用。

(1)分支语句
格式一 GOTOn;
例 GOTO 1000;
格式一所示无条件转移语句,当执行该程序时,无条件转移到N1000程序段执行。

格式二IF[条件表达式]GOTOn;
例 IF [ #1 GT #100]GOTO1000;
格式二所示有条件转移语句,如果条件成立,则转到N程序段执行,如果条件不成立,则执行下一句程序。

条件式的种类见表2—4—5。

(2)循环指令
WHILE[条件式]DOm(m=1、2、3…);

ENDm;
当条件式满足时,就循环执行WHILE与END之间的程序段m次,当条件不满足时,就执行ENDm;的下一个程序段。

三、编程实例与练习课题
例1 用B类宏程序编写如图2—4—3所示椭圆凸台加工程序。

O0020;(主程序)
G90 G80 G40 G21 G17 G94;(程序初始化)
G91 G28 Z0.0;
G90 G54;
G00 X40.0 Y0.0;
G43 Z20.0 H01;
S600 M03;
G01 Z0.0 F200;
M98 P0120 L9;(去余量,Z向分层切削,每次切深2mm)
G90 G01 Z20.0;
G01 X40.0 Y0;
M98 P0220;(调用宏程序,加工椭圆锥台)
G91 G28 Z0.0;
M05;
M30;
O0120;(粗加工去余量子程序)
G91 G01 Z-2.0;
G90;
#103=360;(角度变量赋初值)
N100 #104=18.0 * COS [# 103]; (X坐标值变量)
#105=24.0 * SIN[#103];(Y坐标值变量)
G41 G01 X#104 Y#105 D01;
#103=#103-1.0;(角度每次增量为-1°)
IF [#103 GE 0.0] GOTO 100;(如果角度大于等于0°,则返回执行循环。

) G40 G01 X40.0 Y0;
M99;
O0220 (精加工椭圆锥子程序)
#110=0;(刀尖到底平面高度,见图2)
#111=-18.0;(刀尖Z坐标值)
#101=18.0;(短半轴半径)
#102=24.0;(长半轴半径)
N200#103=360.0;(角度变量)
G01 Z#111 F100;
N300#104=#101 * COS [#103];(刀尖X坐标值)
#105=#102 * SIN [#103];(刀尖Y坐标值)
G41 G01 X#104 Y#105 D01;
#103=#103-1.0;
IF [#103 GE 0.0] GOTO 300;(循环加工椭圆)
G40 G01 X40.0 Y0;
#110=#110+0.1;
#111=#111+0.1;(刀尖Z坐标值)
#101=18.0-#110*TAN [30.0];(短半轴半径变量) #102=24.0-#110*TAN [30.0];(长半轴半径变量) IF [#111 LE 0.0] GOTO 200;(循环加工椭圆锥台) M99;。

相关文档
最新文档