首页 > 文章 > 数控编程 > 编程基础 > 宏程序

用FANUC宏程序编制单轴磨削循环及补偿功能

       2023-04-18 来源:互联网热度:143评论:0
    广告
    核心提示:单轴外圆数控磨床,径向采用数控轴(X轴)控制,轴向仍用液压油缸驱动,因此无法使用两轴磨床数控系统提供的磨削循环功能。在实践中,可以使用FANUC系统提供的用户宏程序,编制单轴的磨削循环功能。根据机床的具体结构,又编制了砂轮手动修整、自动补偿及手动测量工件、自动补偿的控

单轴外圆数控磨床,径向采用数控轴(X轴)控制,轴向仍用液压油缸驱动,因此无法使用两轴磨床数控系统提供的磨削循环功能。在实践中,可以使用FANUC系统提供的用户宏程序,编制单轴的磨削循环功能。根据机床的具体结构,又编制了砂轮手动修整、自动补偿及手动测量工件、自动补偿的控制功能。在青海重型机床厂生产 的CA8311B轴颈车磨床上,经过一年多的生产使用,证明是实用的。下面分别介绍软件的内容。

1 功能介绍

1.1 外圆磨削循环

由于只有径向控制轴(X轴),无法实现连续进给磨削,只能实现两端进给的轴向磨削循环。因此在左右两端各设1个轴向行程识别开关(如图1所示)。

当砂轮移到工件的左端时,左端行程开关闭合,发出到位信号,程序中用接口输入变量#1005=1表示。控制系统接到该信号后,发出X轴进给移动指令,砂〖LL〗轮前进一个A值;同理,当系统接到右端行程开关发出的到位信号,程序中用接口输入变量#1006=1表示,砂轮前进一个B值。依次循环,直到到达指令的位置。

实现给定磨削量的磨削加工,可以按A、B两值相加为一个循环,将被磨除量均分。砂轮快速移至R点,经n次(A+B)磨削之后,其剩余量为h′。若砂轮在工件左端,且h′<A时,按h′进给,否则按A值进给。若在工件右端,且h′<B值时,按h′进给,否则按B值进给。软件必须保证只在工件两端进给,中间不得进给。当磨除量变为零时,必须磨到另一端才能退砂轮。整个磨削过程分粗磨、精磨和光磨。在实际使用中,在R点设置一个暂停,操作者可以插入手动磨削,以利于修活使用,也可以再转为自动磨削。磨削初值用现在位置变量#5041取值。

1.2 测量值的自动补偿

在粗磨结束后,精磨开始前插入手动测量,操作者将测量结果输入到系统中,系统根据指令值与实测值之差,对磨削量进行补偿。

是否需要测量,由面板上的开关设置,此开关状态用接口输入信号#1007输入系统。当开关接通,即信号为“1”时进行测量。当开关断开,即信号为“0”时,则不进行测量,直接进行精磨加工。当实测值与指令值相同时,可以不输入实测值,此时,系统不修正磨削量,仍按原磨削量进行磨削。如需测量,在测量之前安排光磨加工,以求与完成零件磨削的状态相同。

1.3 砂轮修整量的自动补偿

根据机床采用普通金刚笔修整砂轮、手动进给、手动换向修整这样的操作,软件自动计算修整量,并修正工件坐标原点设定值。砂轮修整之后,不需对刀,即可进行磨削加工。

在面板上设置砂轮修整开关,此开关状态用接口输入信号#1004输入系统。当修整开关合上,即信号为“1”时,执行砂轮修整服务程序。当开关断开,即信号为“0”时,系统执行磨削加工。

2 软件框图

按主程序、子程序结构编制软件。

(1)主程序(O0001) 见图2。

(2)砂轮修整子程序(O0020) 见图3。

(3)磨削子程序(O0010) 见图4。

(4)测量子程序(O0030) 见图5。




3 菜单编程

将磨削所需数据用系统断电不清除的宏变量表示。编程时,操作者只需把所需数据输入,不需要修改程序。零件变化时,只需改变相关尺寸数据。

  具体设置如下:

  #500 粗磨开始点

  #501 粗磨结束点,即精磨开始点

  #502 精磨结束点,即光磨开始点,亦即零件尺寸

  #503 粗磨左进刀量,即第一次切深

  #504 粗磨右进刀量,即第二次切深

  #505 粗磨进刀进给速度

  #506 精磨左进刀量

  #507 精磨右进刀量

  #508 精磨进刀进给速度

  #509 光磨次数

    #510 工件坐标原点设定值

  #511 金刚笔尺寸

    #514 测量点设定值(系统自动设置)

  #515 测量点实测值(先由系统自动设置为设定值,再由操作者修改)〖

4 程序

  (1)主程序

  O0001;

  G98;

  IF[#1004EQ 0]G0T0 10;    (修砂轮开关,1:修砂轮,0:磨工件)

  M98P0020;           (修砂轮

  N10 M98P0010;         (磨工件

  N20 M30;

  (2)磨削子程序

  O0010;

  G50 X#510;           (设置工件坐标原点)

  G00 X[#500+1.0];       (分段趋近工件)

  G01 X[#500+0.6]F500;

   X#500 F #505;

   N30 M00;            (手动磨削,手动_自动磨削,自动磨削)

  #9=#509;

  #20=#5041;           (砂轮现在位置)

    N50 IF[#20 EQ #501]G0T0 110; (粗磨结束)

  N60 IF[#1006 EQ 0]G0T0 60;

  N70 IF[#1005 EQ 0]G0T0 70;  (粗磨加工,左端进给)

    IF[#20 EQ #501]G0T0 110; (粗磨左端结束)

    #20=#20-#503;

    IF[#20 GE #501]G0T0 80;

  #20=#501;

  N80 G01 X#20 F#505;

  N90 IF[#1006 EQ 0]G0T0 90; (右端进给)

    IF[#20 EQ #501]G0T0 110;

    #20=#20-#504;

    IF[#20 GE #501]G0T0 100;

    #20=#501;

  N100 G01 X#20 F#505;

    G0T0 70;

    N110 IF[#1007 EQ 0]G0T0 120; (测量开关,1:测量,0:磨工件)

    M98 P0030;           (测量子程序)

  N120 IF[#1006 EQ 0]G0T0 170;(精磨加工)

  N130 IF[#1005 EQ 0]G0T0 130;(左端进给)

     IF[#20 EQ #502]G0T0 180;(精磨结束)

     #20=#20-#506;

     IF[#20 GE #502]G0T0 140;

     #20=#502

  N140 G01 X#20 F#508;

  N160 IF[#1006 EQ 0]G0T0 160;(右端进给)

     IF[#20 EQ #502]G0T0 190;(精磨结束)

     #20=#20-#507;

     IF[#20 GE #502]G0T0 170;

     #20=#502;〖ZK)〗

  N170 G01 X#20 F#508;

     G0T0 130;

  N180 IF[#1005 EQ 0]G0T0 180; (光磨)

     IF[#9 EQ 0]G0T0 200;

     #9=#9-1;

  N190 IF[#1006 EQ 0]G0T0 190;

     IF[#9 EQ 0]G0T0 200;

     #9=#9-1;

     G0T0 180;

  N200 G28 U1.0;

  N300 M99;

  (3)砂轮修整子程序

  O0020;

  G50 X#510;

  G00 X[#511 +1.0];    (砂轮分段趋近金刚笔)

  G01 X[#511 +0.6]F500;

    X#511 F#508;

  N400 M00;         (手动修整砂轮)

    #21=#5041

  N450 IF[#1004 EQ 1]G0T0 450;

     #22=#511-#21;    (计算修整量)

     #510=#510+#22;    (修正工件坐标原点设定值)

  G28 U1.0;

  M99 P20;          (返回主程序,结束)

  (4)测量子程序

  O0030;

     #19=#509;          (设置光磨走刀次数)

     IF[#1006 EQ 1]G0T0 510;

  N500 IF[#1005 EQ 0]G0T0 500; (测量前光磨)

     IF[#19 EQ 0]G0T0 520;

     #19=#19-1;

  N510 IF[#1006 EQ 0]G0T0 510;

     IF[#19 EQ 0]G0T0 520;

     #19=#19-1;G0T0 500;

  N520 #514=#501;        (测点设定值)

     #515=#514;        (预先赋值)

  G28 U1.0;

  N530 M00;            (手动测量,实测值输入#515)

  N540 IF[#1007 EQ 1]G0T0 540;

  G00 X[#514 +1.0];

  G01 X[#514 +0.6]F500;

    X#514 F#508;

    IF[#515 EQ #514]G0T0 580;   (不修正精磨量)

    #23=#515-#514;

    #510=#510+#23;       (修正工件坐标原点设定值)

  G50 X#515;           (修正工件坐标原点)

    #20=#515;          (修改砂轮现在位置)

  N580 M99;


  • 信息来源:互联网
  • 版权声明:本站部分内容文章及图片来自互联网或自媒体,版权归属于原作者。如内容、图片有任何版权侵权问题,请联系我们处理,我们将在第一时间删除内容。
  • 免责声明:数控信息网发布此文目的在于促进信息交流,不存在盈利性目的,此文观点与本站立场无关,不承担任何责任。未经证实的信息仅供参考,据此操作风险自担。
  • 文本链接:https://skxx.site/news/show-3121.html
  • 编程爱好者共发布585篇

  • 生成海报

    分享到微信

    分享到QQ

    更多分享

0相关评论
  • 编程爱好者
为正在学习编程的朋友提供相关知识内容
  • 文章585
  • 浏览14800
  • 收藏0
  • 粉丝 0
    推荐图文