B类宏程序

合集下载
  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;

相关文档
最新文档