• WAP手机版 RSS订阅 加入收藏  设为首页
数控技术

西门子用户循环开发技巧

时间:2016-10-09 22:55:37   作者:未知   来源:网络文摘   阅读:111   评论:0
    因为西门子系统在用户手写程序功能扩展方面比较强大,所以我厂一直都是自己开发循环配合西门子循环组合使用。因为西门子标准的循环要考虑很多问题,尤其是安全问题,这就制约了程序的功能,现重点介绍下我厂最早开发的一个用户循环。

 

  此循环开发之初是为了在镗孔时使刀具在距离最终深度一定距离时,自动地改变进给和转速。程序源代码(参数和标准循环顺序一样,各参数为返回平面、参考平面安全距离、最终深度坐标、孔深、距离最终坐标需要变换的距离、变换后的进给及变换后的转速)如下:

 

%_N_TMK_SPF

;$PATH=/_N_CUS_DIR

PROC TMK(REAL RTP,REAL

RFP,REAL SDIS,REAL DP,REAL

DPR,REAL RJS,REAL JSF,REAL JSS)

SAVE SBLOF DISPLOF

;VERSION: 11.5.31 MAY 31, 2011

;CHANGE : 11.5.31 MAY 31, 2011

;DEVELOPER: KECHENGCUI

DEF REAL RBLS,RF,RJSF,RJSS

DEF AXIS A_3

DEF INT IPB5

DEFINE LX AS G01 G60 G90

DEFINE LY AS G00 G64 G90

A_3=$P_AXN3

RBLS=$P_S[1]

IF ($P_SUBPAR[2]==FALSE)

RFP=$AA_IW[$P_AXN3] SDIS=0

ENDIF

I F ($P_SUBPAR[4]<>TRUE)

AND($P_SUBPAR[5]==TRUE)

DP=RFP+DPR

ENDIF

IPB5=(RFP-DP)/ABS(RFP-DP)

LYAX[$P_AXN3]=SDIS*IPB5+

RFP

RF=$P_F

IF$P_SUBPAR[6]==TRUE

LXAX[A_3]=DP+RJS*IPB5;

IFJSF<0;

IFABS(JSF)<1

RJSF=ABS(JSF)*RF

ELSE

RJSF=RF/ABS(JSF)

ENDIF

ELSE

RJSF=JSF

ENDIF

IF($P_SUBPAR[8]==TRUE)

AND(JSS<0)

IFABS(JSS)<1

RJSS=ABS(JSS)*RBLS

ELSE

RJSS=RBLS/ABS(JSS)

ENDIF

ELSE

RJSS=JSS

ENDIF

IF$P_SUBPAR[8]==TRUE

LXAX[A_3]=DP FB=RJSF

S=RJSS

ELSE

LXAX[A_3]=DP FB=RJSF

ENDIF

ELSE

LXAX[A_3]=DP

ENDIF

G04S2

IFRBLS<>$P_S[1]

S=RBLSF=RF

ENDIF

IF ($P_SUBPAR[1]==TRUE)

AND($P_SUBPAR[2]==TRUE)

LYAX[A_3]=RTP

ENDIF

M17

 

    上面程序只有一个减速的功能,下面是使用实例:

 

G54G90 G00 X0 Y0 Z100 D1

S300F60 M3

TMK(100,0,5,-50,,5,20,350)

M5

G00SUPA Z0 D0

M30

 

  程序先定位然后主轴正转,刀具定位到参考平面的安全距离处,然后以循环外设定的进给和转速加工到孔底坐标的减速距离处,进给变为循环设定的进给,转速设定为循环设定的转速,进给和转速都可不填或者只添一项, 如果都不填就类似于一个cycle81;然后刀具返回到返回平面,返回平面可以不填,也可以是任意值,如果不是返回到安全的方向建议不填,因为不填的话刀具到孔底就停止循环,这个设计是为了和其他循环配合使用。

 

  在我厂车间经常加工一些隔板孔,即在一个坐标上有两个以上的孔,因为西门子的标准循环不允许返回平面,而在参考平面的另一个方向,或者加工完成后停留在孔底不返回,所以在编程时只能用“G0”“G1”这种代码写几行甚至十几行程序,计算和修改都很麻烦,后期维护也比较麻烦。此循环设计就完美解决了这个问题,下面是三层孔的加工程序:

 

G54G90 G00 X0 Y0 Z100 D1

S300F60 M3

TMK(,0,5,-50)

TMK(,-100,5,,-50)

TMK(100,-200,5,,-50)

M5

G00SUPA Z0 D0

M30

 

  程序加工完第一个孔,由于没填参考平面,所以程序加工到孔底就没有后续动作了,循环结束;进入下一个循环,下一个循环正常执行,结束后没有返回数据,所以不返回,进入下一个循环;最后一个循环到孔底后,有返回平面数据,所以执行返回平面。简洁明了,方便维护。

 

  此外,程序还可以写成如下形式:

 

G54G90 G00 X0 Y0 Z100 D1

S300F60 M3

TMK(-95,0,5,-50)

TMK(-195,,,,-50)

TMK(100,,,-50)

M5

G00SUPA Z0 D0

M30

 

  第一个循环结束后, 返回到第二个孔的孔端处,由于第二个孔的参考平面没有填写,所以就以当前点为参考平面,进行加工。这段程序在铣孔倒角用的用户循环中优势明显,当同一轴线上加工多个整圆时只需填一个参数即可。

 

发表于《金属加工(冷加工)》2016年15期58页

作者:山推工程机械股份有限公司  崔克诚    田伍臣    刘  伟    王成奎


标签:西门子 循环开发 
相关评论
免责申明:天天CAD教程网旨在相互学习交流,是一个完全免费的网站,部分原创作品,欢迎转载,部分内容来自互联网,如果侵犯了您的权利请尽快通知我们!
QQ交流群:92453056  邮箱:admin@ttcad.com Copyright 2008-2017天天CAD教程网 湘ICP备17006802号