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

比如有一台沈阳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:

版主推荐答案

    FC21功能块(Transfer PLC NCK data exchange),当此功能块被调用的时候,根据此功能块的FUNCTION CODE,实现PLC与NCK的数据通讯.

    $A_DBB // Data byte (8 bits)
    $A_DBW // Data word (16 bits)
    $A_DBD // Data double word (32 bits)
    $A_DBR // Real data (32 bits)

    CALL  "FB_SIEM_ PLC_NCK"   ;FC21

           Enable :=TRUE   

           Funct  :=B#16#4   ;写入

           S7Var  :="DB_MW_an_NC".MW_FenaL_re   ;DB293.DBD0

           IVAR1  :=36   ;$A_DBD[36]

           IVAR2  :=-1

           Error  :=#temp1

           ErrCode:=#temp2

          NOP   0

    举例说明,调用FC21,执行写操作,将DB293.DBD0赋值给$A_DBD[36],然后再NC中执行相关操作。Funct  :=B#16#3 ;读入数据,所以具体要看你的PLC怎么写的。

     _MM[0]前面一直没有定义,是制造商定义的全局变量或通道变量,在变量定义中可以找到。

查看完整帖子:
http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1419209&bid=20

提问者对于答案的评价:

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc307447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日 下午1:54
下一篇 2020年11月1日 下午1:54

相关推荐

  • 西门子840D 手轮问题

    现在机床是840D的落地镗床,手轮是那种有液晶显示是手轮,        1,当我没关闭工件坐标系的…

    SINUMERIK 2017年6月29日
  • Step7 v5.5 sp5安装程序

    哪位大师有Step7 v5.5 sp5的安装程序,麻烦分享个下载地址,谢谢 版主推荐答案 SP4 http://www.ad.siemens.com.cn/club/bbs/pos…

    SINUMERIK 2017年6月4日
  • 1FW6130-0PB15-2JD2电机水冷系统密封问题

    我公司购买了两套数控系统,包含1FW6130-0PB15-2JD2力矩电机,安装时发现电机定子外圆310mm圆度不好,一台是0.25mm,另一台0.3mm,与供应商沟通也没有得到很…

    SINUMERIK 2020年10月31日
  • start-up tool for drives的安装Toolbox DVD 828D V04_07_02_01

    安装过程出现这个提示,请教各位改怎么解决 问题补充:HMI-SERVICR PACK2 图片说明:    钻石用户推荐最佳答案 在什么系统下安装的?&…

    2020年10月31日
  • 802dsl系统服务概览信号界面谁能帮我照个图片谢谢了

    信号问题 钻石用户推荐最佳答案 不知道系统服务信号是什么参考:SINUMERIK 802D sl 功能说明http://www.ad.siemens.…

    SINUMERIK 2020年10月31日
  • N10093spl存取号参数是什么意思

    工厂有好几台相同设备,发现一台的机床参数10093是0,其他的都是1,但在机床的参数上没有显示此参数,备份文件中有,这参数有什么作用,要如何修改。 问题补充:我们机床正常是为1,但…

    SINUMERIK 2021年7月5日
  • 802DSL系统疑问?

     大家好!      公司的车床是802DSL系统,主轴是模拟量主轴,主轴编码器叠加在X轴模块上的第三编码器。现在的问题是主轴旋转…

    SINUMERIK 2020年11月1日
  • 怎样修改1FL6062-1AC61-1LG1电机的ID?

    现有一台1FL6062-1AC61-1LG1电机的编码器撞坏,手头正好有一台备用的1FL6067-1AC61-1LG1电机,想把这台电机编码器拆到1FL6062-1AC61-1LG…

    SINUMERIK 2020年10月31日
  • 硬件问题解答

    我公司有台SINUMERIK 802S的数控系统最近一直出现这样一个现象,前几天总是需要重复启动,系统才能正常显示,当时因为生产任务紧张,就没有做任何处理.元旦放了一天假后,今天上…

    SINUMERIK 2019年6月11日
  • 802d加模拟主轴可以加工LEBUS卷筒吗?

    802d加模拟主轴可以加工LEBUS卷筒吗 具体方法是什么呢? 最佳答案 具体要看你的LEBUS卷筒技术要求了,模拟主轴用变频器也可以使用编码器定位。 提问者对于答案的评…

    SINUMERIK 2017年11月6日