关于PLC和NC 交换的$A_DB的数据怎么学习?

已锁定

完颜大骨头

  • 帖子

    202
  • 精华

    0
  • 被关注

    31

论坛等级:侠士

注册时间:2013-08-10

普通 普通 如何晋级?

关于PLC和NC 交换的$A_DB的数据怎么学习?

2538

7

2017-09-01 15:32:54

比如有一台沈阳GMB龙门加工中心(840D没有激活刀具管理)换刀程序有一段程序如下:(相关联的PLC怎么看?是FC21什么的吗?)

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

DEF INT NEW_TOOL, SPD_TOOL

DEF REAL HIGHSPEED,LOWSPEED

NEW_TOOL=$C_T        ; new programmed tool number

SPD_TOOL=$P_TOOLNO   ; current tool number on the spindle

HIGHSPEED=$MN_USER_DATA_FLOAT[1]  

LOWSPEED=$MN_USER_DATA_FLOAT[2]     



    IF $MN_USER_DATA_INT[3]==0 GOTOF _END           


    IF $A_DBB[83]==1 GOTOF _END ;程序段搜索  $A_DBB[83]什么意思?哪来的?怎么了解?

  G290                 ;西门子方式

 

  IF $P_ISTEST==1 GOTOF _END


  _MM[0]=$MN_USER_DATA_INT[3]    _MM[0]前面一直没有定义,是制造商随便用的数组吗?

    IF NEW_TOOL>_MM[0]     GOTOF _END0   ; GOTO ALARM MSG

    IF SPD_TOOL==NEW_TOOL  GOTOF NO_CHG

  

    IF (_MM[2]==_MM[4]) GOTOF _RIGHT

   GOTOF _ALARM1

_RIGHT: 

  _MM[0]=0

_PP: _MM[0]=$A_DBB[72]  ;开门条件:ATC原点,对应db91.dbw72 刀库开门的条件检测可以做到M93对应的PLC里吗?然后$A_DBB[72]是不是就是db91.dbw72?里面通过PLC传递的吗?

     IF _MM[0]<>1  GOTOB _PP 

  M93    ;刀库门开

 STOPRE                   

  G500                           ;取消零点偏置

  D0                             ;取消刀补

  m24     ;取消Y轴第二软限位

  STOPRE                           

  G153 G0 G90 Z0                      ;Z轴回零点

  SPOS=$MN_USER_DATA_FLOAT[0]                           ; 主轴准停

  G153 G01 G90 Y=$MN_USER_DATA_INT[4]  F=HIGHSPEED 

  _MM[0]=0        

_TT: _MM[0]=$A_DBB[80]  ;YZ轴运动条件:开门到位 同样$A_DBB[80]怎么查找他的根源,哪来的?

     IF _MM[0]==0  GOTOB _TT

   

  G153 G01 G90  Y=$MA_FIX_POINT_POS[1,AX2]  F=HIGHSPEED 

  G153 G01 G90  Z=$MA_FIX_POINT_POS[1,AX3]  F=HIGHSPEED 


  M91             ;断进给轴伺服使能

  STOPRE

  M81

  STOPRE

  _MM[0]=0 

_AA: _MM[0]=$A_DBB[66]  ;机械手启动条件:倒刀到位且ATC在原点,db91.dbb66 

     IF _MM[0]<>1  GOTOB _AA


  M84             ;到刀,机械手扣刀,主轴松刀,机械手换刀,主轴夹刀

  STOPRE 

  _MM[0]=0 

_BB: _MM[0]=$A_DBB[70]   ;主轴夹紧的条件,db91.dbb70

     IF _MM[0]<>1  GOTOB _BB   ;主轴夹紧以后才激活刀具参数


  M85                    ;ATC二次回原点

  STOPRE                                             

  M66                    ;激活刀具参数   通道参数22560设定的值,用于激活刀具参数,这些刀具参数是什么在哪里?(840D但没有开通刀具管理)

  STOPRE


  _MM[0]=0 

_CC: _MM[0]=$A_DBB[72]   ;恢复进给使能的条件:ATC在原点,db91.dbw72

     IF _MM[0]<>1  GOTOB _CC 


  M92                    ;恢复进给轴伺服使能

  STOPRE

  D0

  G153 G0 G90 Z0              ;Z轴返

  G153 G0 G90 Y=$MN_USER_DATA_INT[4]    


  ;刷新NC刀表                             下面用到大量的_MM[]数组,是固定的意思吗

  M66激活刀具就是激活这些吗?如果是,那么_MM[]数组肯定是有专门指定的意思吧?

 


  _MM[0]=0   ;最大刀数

  _MM[1]=0

  _MM[2]=0   ;实际刀数和

  _MM[3]=0

  _MM[4]=0   ;理论刀数和

  _MM[0]=$MN_USER_DATA_INT[3]

AA:_TH[_MM[1]]=$A_DBB[_MM[1]]  ;赋值给刀表

  _MM[2]=_TH[_MM[1]]+_MM[2]    ;_MM[2]不能在其他地方清零赋值    _TH[]什么意思

  _MM[1]=_MM[1]+1

    IF  _MM[1]<=_MM[0] GOTOB AA


    IF _MM[0]MOD(2)==0

  _MM[4]=(1+_MM[0])*_MM[0]/2  

    ELSE

  GOTOF MS

    ENDIF

MS:_MM[4]=(POT(_MM[0])+ _MM[0])/2

_ST:

    IF _MM[2]==_MM[4] 

  GOTOF _RIGHT1

    ELSE 

  GOTOF _ALARM1

    ENDIF 




_RIGHT1: 

  _MM[0]=0          

_QQ: _MM[0]=$A_DBB[72]  ;关门条件:ATC原点

     IF _MM[0]<>1  GOTOB _QQ


  M94                   ;刀库门关

  STOPRE

    

  m25                    ;恢复Y轴第二软限位

  STOPRE

 

  M83                     ;回刀

  STOPRE

  _MM[0]=0

_TT1: _MM[0]=$A_DBB[80]  

      IF _MM[0]<>0  GOTOB _TT1

  GOTOF _END        ;换刀结束条件

NO_CHG:

  MSG("***编程刀具号等于主轴刀具号***")

  ;MSG("***PROGRAMMED TOOL is on the spindle. No TOOL change ***")

  G4F3

  GOTOF _END 


_ALARM1:

  MSG("***刀具表中出现相同刀号_MM[2]<>MM[4]***")

  GOTOB _ALARM1 


_END0:

  MSG("***换刀结束. 新刀具超出换刀数量***")

  GOTOB _END0 

_END:


关于PLC和NC 交换的$A_DB的数据怎么学习? 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SINUMERIK

共有24803条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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