1      免责声明

本使用手册及样例包目录内所包含文档、PLC程序、机床可执行程序(MPF、SPF、…)、电气图,可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系济南友联控制工程有限公司技术支持与服务部门。

对于在使用中发生的人员、财产损失本公司不承担任何责任,由使用者自行承担风险。

以上声明内容的最终解释权归济南友联控制工程有限公司所有,后续内容更新不做另行通知。

2      概述

通过圆弧上某一点的机床坐标计算出该点的角度,并将该角度设置为HOLES2循环的起始角度。

3      要求

3.1      硬件要求


硬件

工艺

PPU24x/NCU710

PPU26x/NCU720

PPU28x/NCU730

PPU28x.Advance

铣床

3.2      软件版本要求

        

3.3      其他要求

该机型为龙门移动式数控钻床,与常规机型不同之处在于,龙门前后移动轴为Y轴,立柱左右移动为X轴,上下移动为Z轴。

                                              image.png

4      方案解析

4.1      方案解析一

image.png

如图所示,已知圆心坐标X0,Y0和圆弧上某一点的坐标X1,Y1,通过反正切函数求取角度α。也可计算出边长c然后求反余弦。

4.2      方案解析二

反正切2指令:ATAN2 计算功能可以从两个互相垂直的矢量计算出总矢量的角度。结果位于四个象限的范围内 (-180°< 0 < +180°)。

image.png

5      调试或使用步骤

5.1      调试步骤

首先通过手动方式下的测量工件,圆形凸台来设置工件零偏,找到工件圆心位置。

image.png

为了便于理解,在此将机床坐标X100,Y100设置为圆心:

image.png

 

新建一个子程序命名为LL01.SPF,编辑内容如下:

N10  PROC LL01 SAVE DISPLOF

;-----------------------------

N20  DEF REAL XX0,YY0,XX1,YY1,XX_SUB,YY_SUB,_ANG,ST_ANG

N30  DEF REAL _XX0,_YY0,_XX1,_YY1,_XX_SUB,_YY_SUB

;-----读取当前G54内XY的值,以及起始点XY的坐标值----------------

N40  XX0=$P_UIFR[1,X,TR];

N50  YY0=$P_UIFR[1,Y,TR];

N60  XX1=$AA_IM[X];

N70  YY1=$AA_IM[Y];

N80  G04 F0.3

N90 STOPRE

由于SINIUMERIK 828D采用80 位浮点数纳米计算精度 NANOFP 技术,计算精度很高,所以我们将读取的数据进行一下取小数点后四位的处理,为什么这么处理呢?原因如下:

如下图所示,我们先将以下几个变量,写入到R参数中

image.png

通过比较R参数显示的数值发现,系统只显示了小数点后三位,而R参数中读取的系统变量却有很多位。实际使用中发现假如将某一点的XY坐标值设置为G54的零偏,在不移动的情况下执行上图中的程序,理论上R0=R2,R1=R3,但由于电机受到外部机械作用力等原因,XY轴的实际坐标会有少些变动,但是G54零偏内的数值已经设为了固定值,实际发现R0和R2,R1和R3在最末尾的几位数存在很小的偏差,为防止这种极端情况对后续计算的影响,我们采取取小数点后四位的方法。

image.png

数据处理编程如下:

;-----将读出的数据进行取小数点后四位的处理----------------

N100 _XX0=TRUNC(XX0*10000)*0.0001

N110 _YY0=TRUNC(YY0*10000)*0.0001

N120 _XX1=TRUNC(XX1*10000)*0.0001

N130 _YY1=TRUNC(YY1*10000)*0.0001

N140  STOPRE

;-----------------------------

N150  _XX_SUB=(_XX1-_XX0);

N160  _YY_SUB=(_YY1-_YY0);

N170  STOPRE

;-----如果圆心和圆弧上的点是同一个点------------------------

N180 IF (_XX_SUB==0)AND(_YY_SUB==0) GOTOF END

根据方案解析中的方法,编辑如下程序:

;-----用圆弧上XY的坐标减去圆心坐标------------------------

N190  XX_SUB=(XX1-XX0); X

N200  YY_SUB=(YY1-YY0);Y

N210  STOPRE

;-----计算矢量角度------------------------

N220  _ANG=ATAN2(YY_SUB,XX_SUB);

N230  STOPRE

N240 IF _ANG>=0

N250 ST_ANG=_ANG

N260 ENDIF

N270 IF _ANG<0

N280 ST_ANG=(360+_ANG)

N290 ENDIF

;-----将角度值送入R20------------------------

N300  MSG("零件加工起始角度为:"<<ST_ANG<<"度;")

N310  M0

N320  MSG("请校对零件加工参照点;第一孔角度R20为"<<ST_ANG<<"度;")

N330  R20=ST_ANG

N340  M17

N350  END:

N360  MSG("圆心和起点是同一个点,请重新找正")

N370  M0

N380  M17

验证:

我们现在MDA方式下,以机床坐标X100,Y100为圆心,R100为半径编辑一个整圆的程序,然后运行该程序,在中间任意一点复位,则该点坐标即为圆弧上任一点的坐标,然后执行LL01.SPF的程序,计算出该点的角度,并将该角度赋值到HOLES2循环中的起始角度中,执行HOLES2即可验证角度是否正确。

如下图所示XY分别停留在-49.557和86.857的位置

image.png

保持当前位置不动,在AUTO方式下,执行LL01.SPF,计算出该点的起始角度为119.7072849度

image.png

在零件程序中新建ASK.MPF程序,编辑内容如下:

image.png

image.png

执行ASK.MPF程序如下:第一个孔位置正确,验证成功。

image.png

后在四个象限区域和四个象限点共计采取八个位置,经过验证都没有问题。

 

 

5.2      HOLES2操作说明

HOLES2循环中起始角度是可以使用负角度的,其中正角度为逆时针旋转,负角度为顺时针旋转,本例中为方便操作工进行操作,将最终的计算角度都转换为了正角度值。

image.png

6      应用举例

例如下图中的两个零件是风电设备中的变桨轴承,该零件经过热处理,由于工艺原因留下一处软带位置,钻孔加工时就需以该软带为基准,由于工件体积较大仅靠工装定位到该点费时费力,并且位置不准确,使用此方法既方便又高效。

image.png

image.png

7      参考文献

SINUMERIK 840D sl工作准备部分  编程手册 12/2018

SINUMERIK 840D sl System variables Parameter Manual 03/2013

SINUMERIK 840D sl铣削操作手册 06/2019

8      作者/联系人

王镇

济南友联控制工程有限公司

2020.07.17

9      版本信息

版本

日期

修改内容

V1.0

2020.07.17