下面主要介绍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 表示程序段号。 * 第 1 页 2019-7-25
例:GOTO1,表示转移到第一程序段。
再如:GOTO#10,表示转移到变量#10决定的程序段。 (2)条件转移(IF)语句
在IF后指定一条件,当条件满足时,转移到顺序号为n 的程序段,不满足则执行下一程序段。 格式为:IF [表达式] GOTO n。 (3)循环(WHILE)语句
在WHILE后指定一条件表达式,当条件满足时,执行D O到E N D之间的程序(然后返回到W H I L E重新判断条件),不满足则执行END后的下一程序段。 格式为:WHILE[条件式]DOm; (m=1,2,3循环执行范围的识别号,) … … END m;
其中m只能是1、2 和3,否则系统报警。DO——END循环能够按需要使用多次,即循环嵌套。 二、编程实例分析 1.零件1
如图1所示零件,该零件编程时以 椭圆右端中心O 点作为编程原点,由于加 工的椭圆极角θ 为90°,所以可以采用 将椭圆极角设为自变量,当椭圆极角从 O 点(0°)逐渐增加到A 点(90°)时, 根据椭圆参数方程求得椭圆OA段上每个点所对应的短轴值和长轴值,然后再算出椭圆O A 段上每个点在工件坐标系中所对应的X 值和Z 值,从而加工出椭圆。编 程中采用条件转移(IF)语句。
该椭圆的参数方程:加工程序为: O0001
,其中,X 表示椭圆长轴值;Y 表示椭圆短轴值;θ 表示椭圆极角。其
* 第 2 页 2019-7-25
G97 G99 T0101 M03 S1000 G00 X65 Z5
#1=0 将椭圆极角设为自变量,赋值为0° *
第 3 页
2019-7-25
N10 #2=25*SIN[#1] 参数方程中椭圆短轴值 #3=40*COS[#1] 参数方程中椭圆长轴值
#4=#2*2 椭圆OA段上各点在工件坐标系中X坐标值,*2为直径值 #5=#3-40 椭圆O A段上各点 在工件坐标系中Z坐标值,#3-40=-(40-#3) G01 X#4 Z#5 F0.1 加工椭圆
#1=#1+0.1 自变量椭圆极角每次 增量为0.1°
IF [#1LE90] GOTO10 如果#1小 于且等于90°,则返回到N10程序段不 满足则执行下一程序段 X65
G00 X100 Z100 M05 M30 2.零件2
如图2 所示零件,该零件编程时以其右端中心O点作为编程原点,如果用椭圆极角编程,则要计算出B点处的椭圆极角,比较繁琐。从零件图给出的尺寸可知A 点对应的椭圆短轴值为7mm,B 点对应的椭圆短轴值为(60-56)/2=2(mm),因此我们可以将椭圆短轴设为自变量,数值由A 点的7mm逐渐减少到B 点的2mm,然后根据椭圆标准方程,求得所对应的长轴变化值,最后再算出椭圆AB 段每个点在工件坐标系中对应的X 值和Z值,从而加工出该零件的椭圆部分。 编程中采用循环(WHILE)语句。
由该椭圆的标准方程 得:
其加工程序为: O0002 G97 G99 T0101 M03 S1000 G00 X65 Z5 X46
G01 Z-5 F0.1
:
。其中,X表示椭圆长轴值;Y 表示椭圆短轴值。
#1=7 将椭圆短轴设为自变量,赋 值为7mm
WHILE [#1GE2] DO1 #1如满足 大于且等于2,则执行DO到END之间的 程序,否则转到END后的下一程序段
#2=10/7*SQRT[49-#1*#1] 由椭 圆的标准方程推算出椭圆长轴值 *
第 4 页
2019-7-25
相关推荐: