分享一段802D的换刀小程序

已锁定

隐身人

版主 西门子1847工业学习平台

  • 帖子

    10346
  • 精华

    72
  • 被关注

    532

论坛等级:至圣

注册时间:2005-12-20

钻石 钻石 如何晋级?

分享一段802D的换刀小程序

4134

10

2019-01-08 09:15:21

  加工中心与铣床的不同处,就是刀库,刀库的种类也是千差万别,但控制方式基本原理都是一样的,昨天去维修了一个802D系统的加工中心,虽然系统早已停产,但换刀程序思路和现在的换刀思路基本是一致的,问题就是换刀中间卡住了,所以要参看换刀程序,感觉小程序挺有代表性,就做了注释,发出来供坛友参阅;

  %_N_CHANG_TOOL_SPF

;$PATH=/_N_CUS_DIR

PROC CHANG_TOOL SAVE DISPLOF SBLOF

;MD14510[15]刀盘刀位数

;MD14514[1]Z 轴准备位置

;MD14514[2]Z轴换刀位置

;MD14514[3]高速度

;MD14514[4]低速度

;MD14514[6]换刀位置误差值

; 由正常方式进入程序测试方式后第一次换刀                       

  IF ((_TM[5]==0)AND($P_ISTEST==1))  GOTOF _SIMU1           

; 程序测试方式下换刀                                            

  IF ((_TM[5]==1)AND($P_ISTEST==1))  GOTOF _SIMU2              

; 由程序测试方式返回正常方式后第一次换刀                       

  IF ((_TM[5]==1)AND($P_ISTEST==0))  GOTOF _E_SIM            

_T_CHG:

M87;换刀开始

M86;刀库旋转到主轴刀号位

IF $P_TOOLP==$P_TOOLNO                            GOTOF _NOCHG1

IF $P_TOOLP>$MN_USER_DATA_INT[15]                 GOTOF _NOCHG2

IF $MN_USER_DATA_INT[15] ==0                      GOTOF _E_PAR1

IF $MN_USER_DATA_FLOAT[1]==$MN_USER_DATA_FLOAT[2] GOTOF _E_PAR2

IF $MN_USER_DATA_FLOAT[3]==0                      GOTOF _E_PAR3

IF $MN_USER_DATA_FLOAT[4]==0                      GOTOF _E_PAR4

IF $MN_USER_DATA_FLOAT[6]==0                      GOTOF _E_PAR5

G500                                            ;取消工件坐标系

D0                                              ;取消刀具参数

_TM[0]=1                                        ;取刀标志

IF ($P_TOOLP==0)AND($P_TOOLNO<>0)  GOTOF _T_RET ;还刀           

IF ($P_TOOLP<>0)AND($P_TOOLNO==0)  GOTOF _T_GET ;取刀           

IF ($P_TOOLP<>0)AND($P_TOOLNO<>0)  GOTOF _T_EXC ;换刀           

GOTOF _EOSBR

_T_EXC:            ;换刀 

_TM[0]=3           ;刀具交换标志

_T_RET:            ;还刀

G90 G01                         

F=$MN_USER_DATA_FLOAT[3]              ;高速度                      

G153 Z=$MN_USER_DATA_FLOAT[2]+0.01   

M3S1100

M5

M39

M82     ;发出刀库伸出命令

M81     ;发出松刀命令

F=     $MN_USER_DATA_FLOAT[4]         ;低速度

G153 Z=$MN_USER_DATA_FLOAT[2]+0.01+30 ;Z 轴拉丁换刀位置

F=$MN_USER_DATA_FLOAT[3]              ;高速度          

G153 Z=$MN_USER_DATA_FLOAT[1]+0.01    ;Z 轴返回准备位置              

IF _TM[0]==3 GOTOF _T_LOC        ;如果是换刀, 则找刀并取刀      

; 如果是只还刀, 则主轴紧刀, 刀库缩回, 还刀过程结束             

M80     ;发出紧刀命令且等待命令应答                      

M83     ;发出刀库缩回命令且等待命令应答

STOPRE

IF $P_TOOLP==0   GOTOF _INI1

$TC_DP25[$P_TOOLP,1]=0

_INI1:

IF $P_TOOLNO==0    GOTOF _INI2

$TC_DP25[$P_TOOLNO,1]=$A_DBB[133]

_INI2:                  

T0 M206         ;主轴上无刀具, T0生效                            

M88             ;换刀结束

GOTOF _END     ;>>>>>>>>>>>>>> 还刀结束返回 <<<<<<<<<<<<<<<<<<<<<<

_T_LOC:

M84    ;发出刀库定位命令                

GOTOF _T_TAKE  ;                                                

_T_GET:       ;取刀 

G90 G01                          ;                              

M84    ;发出刀库定位命令, 进入换刀准备位置,

F=     $MN_USER_DATA_FLOAT[3]         ;高速度                      

G153 Z=$MN_USER_DATA_FLOAT[1]+0.01   

M3S1100

M5              

STOPRE

M39         

M82     ;发出刀库伸出命令且等待命令应答                  

STOPRE

M81     ;发出松刀命令且等待命令应答                      

_T_TAKE:                         ;                              

F=     $MN_USER_DATA_FLOAT[3]         ;高速度 

G153 Z=$MN_USER_DATA_FLOAT[2]+0.01+30 ;Z 轴拉丁换刀位置 

F=     $MN_USER_DATA_FLOAT[4]         ;低速度                  

G153 Z=$MN_USER_DATA_FLOAT[2]+0.01    ;Z 轴进入换刀位置              

M80     ;发出紧刀命令且等待命令应答                      

M83     ;发出刀库缩回命令且等待命令应答                  

F=     $MN_USER_DATA_FLOAT[3]         ;高速度                      

G153 Z=$MN_USER_DATA_FLOAT[1]+0.01    ;Z 轴回到换刀准备位置

STOPRE

IF $P_TOOLP==0   GOTOF _INI11

$TC_DP25[$P_TOOLP,1]=0

_INI11:

IF $P_TOOLNO==0    GOTOF _INI21

$TC_DP25[$P_TOOLNO,1]=$A_DBB[133]

_INI21:         

T=$P_TOOLP M206                       ;激活刀补                                      

M88                                   ;换刀结束

GOTOF _END     

;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

_E_SIM:

;SS   换刀控制过程: 程序测试处理

_TM[7]=$P_TOOLP                                

T=_TM[6]                          ;恢复主轴刀具号                

M206                              ;主轴刀具参数生效 

T=_TM[7]               

MSG("恢复主轴刀具号:"<<_TM[6])   ;                              

G04 F5                           ;                              

_TM[5]=0                         ;清除程序测试标记              

_TM[6]=0 

_TM[7]=0                        ;                              

GOTOB _T_CHG                     ;                              

_SIMU1:                          ;                              

;仿真方式时,T功能生效, 刀具参数立即生效

_TM[5]=1                         ;记录程序测试状态              

_TM[6]=$P_TOOLNO                 ;记录主轴刀具号                

_SIMU2:                          ;                              

T=$P_TOOLP                       ;                              

M206                             

GOTOF _END

;%%    故障信息显示   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

_NOCHG1:                                                       

MSG("### 没有换刀: 编程刀具等于主轴刀具")                      

G04 F3                                                         

GOTOF _EOSBR                                                   

_NOCHG2:                                                       

MSG("### 没有换刀: 编程刀号超过最大值. 循环启动继续或复位")    

M00                                                            

GOTOF _EOSBR                                                   

_E_PAR1:                                                       

MSG("*** PLC 参数错: 刀盘刀位数 MD14510[15] 没有设定")         

M00                                                            

GOTOF _EOSBR                                                   

_E_PAR2:                                                       

MSG("*** PLC 参数错: 换刀准备位置14514[1]等于换刀位置14514[2]");

M00                                                            

GOTOF _EOSBR                                                   

_E_PAR3:                                                       

MSG("*** PLC 参数错: 抓刀速度 MD14514[3] 等于 0")              

M00                                                            

GOTOF _EOSBR                                                   

_E_PAR4:                                                       

MSG("*** PLC 参数错: 提刀速度 MD14514[4] 等于 0")              

M00                                                            

GOTOF _EOSBR                                                   

_E_PAR5:                                                       

MSG("*** PLC 参数错: 换刀位置误差 MD14514[6] 等于 0")              

M00                                                            

GOTOF _EOSBR                                                                                                                      

;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

_END:

M18         ; 主轴恢复速度控制方式

S100M3

M5

_EOSBR:

MSG(" ")

M17 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


分享一段802D的换刀小程序 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SINUMERIK

共有24788条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。