寄存器间接寻址的问题

已锁定

子烟

  • 帖子

    385
  • 精华

    1
  • 被关注

    11

论坛等级:侠士

注册时间:2008-04-04

普通 普通 如何晋级?

寄存器间接寻址的问题

851

6

2019-01-04 08:56:10

我在理解PLC时,本想找到DB35.DBX1.5/1.6这个轴半闭环和全闭环是由什么控制的,  涉及到1.5/1.6的程序块是FC37,程序如下所示:  

     AN    #IN0

      BEC   

      L     #IN1

      L     30

      +I    

      T     #TEMP12

      OPN   DB [#TEMP12]

      A     DBX   93.5

      A     DB10.DBX  104.7

      A     DB10.DBX  108.7

      AN    DB10.DBX  106.1

      A     #IN6

      A(    

      ON    #IN8

      O     DB126.DBX   64.4

      )     

      A(    

      ON    #IN9

      O     DB126.DBX  234.5

      )     

      A(    

      A     DB109.DBX   46.1

      AN    DB109.DBX   46.0

      ON    #IN10

      )     

      A(    

      ON    #IN11

      O     DB126.DBX   57.1

      )     

      OPN   DB [#TEMP12]

      =     DBX    2.1

      SET   

      =     DBX   21.7

      A(    

      A     #IN11

      A     DB126.DBX   57.4

      O     

      AN    #IN11

      )     

      OPN   DB [#TEMP12]

      AN    #IN7

      =     DBX    1.5

      A(    

      A     #IN11

      A     DB126.DBX   57.4

      O     

      AN    #IN11

      )     

      OPN   DB [#TEMP12]

      A     #IN7

      =     DBX    1.6

      SET   

      =     DBX    1.7

      A     #IN5

      =     DBX   12.7

      A     #IN2

      AN    #IN4

      =     DBX   12.0

      A     #IN2

      AN    #IN3

      =     DBX   12.1

      SET   

      =     DB21.DBX    6.6

      =     DBX    6.7

      =     DBX   25.3

可以看出#IN7的常闭控制1.5,常开控制1.6,后来查到调用FC37的程序块FB92,如下所示:

      L     DB126.DBW  412

      L     0

      ==I   

      JC    M001

      L     DB20.DBB  131

      L     0

      ==I   

      JC    M001

      L     6

      L     8

      *I    

      L     DB126.DBW  412

      +I    

      LAR1  

      SET   

      OPN   DI    92

      =     DBX [AR1,P#0.0]

M001: NOP   0

      L     1

M002: T     #STAT0

      L     1

      -I    

      LAR1  

      OPN   DB    20

      A     DBX [AR1,P#118.1]

      =     #STAT1[1]

      A     DBX [AR1,P#104.1]

      =     #STAT1[2]

      A     DBX [AR1,P#152.1]

      =     #STAT1[3]

      A     DBX [AR1,P#114.1]

      =     #STAT1[4]

      A     DBX [AR1,P#112.1]

      =     #STAT1[5]

      A     DBX [AR1,P#106.1]

      =     #STAT1[6]

      OPN   DI    92

      A     DBX [AR1,P#6.1]

      =     #STAT1[10]

      L     #STAT0

      L     19

      +I    

      SLW   3

      L     DW#16#0

      OD    

      T     #TEMP3[1]

      TAK   

      L     DW#16#1

      OD    

      T     #TEMP3[2]

      TAK   

      L     DW#16#2

      OD    

      T     #TEMP3[3]

      OPN   DB   109

      A     DBX [#TEMP3[1]]

      =     #STAT1[7]

      A     DBX [#TEMP3[2]]

      =     #STAT1[8]

      A     DBX [#TEMP3[3]]

      =     #STAT1[9]

      CALL  FC    37

       IN0 :=#STAT1[1]

       IN1 :=#STAT0

       IN2 :=#STAT1[3]

       IN3 :=#STAT1[8]

       IN4 :=#STAT1[9]

       IN5 :=#STAT1[7]

       IN6 :=Q1.7

       IN7 :=#STAT1[2]

       IN8 :=#STAT1[4]

       IN9 :=#STAT1[5]

       IN10:=#STAT1[10]

       IN11:=#STAT1[6]

      L     DB126.DBW  408

      L     #STAT0

      ==I   

      JC    M003

      INC   1

      JU    M002

M003: NOP   0

我自己推理#STAT0=1时,AR1=0,就是第一个轴DB31,以此类推#STAT0=5时,AR1=4,就是第5个轴DB35,DB20.DBX108.1控制闭环和半闭环的点,同时查到MD14504=50,MD14506=60,推理得出14512[8]中的第一位的状态控制DB35.DBX1.5/1.6的状态,而现场参数状态证明我的理解是错误的,请大家帮忙分析一下,应该如何理解这个程序,不胜感激!

寄存器间接寻址的问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54615条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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