STEP7 FOR循环中能能否用DB寻址

有个问题想请各位大侠确定一下,FOR循环中能能否用DB寻址。
我下面这段程序,循环里面注释处,用DB9.DBD0实现不了我想要的功能,但换成一个常数或者一个双字的M寄存器地址就可以,想请各位大侠确定一下,FOR循环中能能否用DB寻址
A     "HMI_启动"
      FP    M    520.0
      JNB   M001
      L     0
      T     MD   534
      L     P#0.0
      LAR1  
      L     5

back: T     MD   530

      OPN   DB11
      L     MD   534
      L     MD   116
      *D    
      L    DB9.DBD0   //此处改为一个数,或者是MD就OK
      +D    
      T     DBD [AR1,P#0.0]
      T     DBD [AR1,P#4.0]
      T     MD   650
      T     MD [AR1,P#660.0]
      L     P#10.0
      +AR1  
      L     1
      L     MD   534
      +D    
      T     MD   534
      L     MD   530
      LOOP  back

M001: NOP   0

最佳答案

可以的,问题是打开db11后,你又打开了db9,而你却要把数据传送的db11,所以仅仅把打开db11换个位置即可,请看:
back: T     MD   530

      //OPN   DB11 
      L     MD   534
      L     MD   116
      *D    
      L    DB9.DBD0   //此处改为一个数,或者是MD就OK
      +D    
     OPN   DB11
      T     DBD [AR1,P#0.0]
      T     DBD [AR1,P#4.0]
      T     MD   650
      T     MD [AR1,P#660.0]
      L     P#10.0
      +AR1  
      L     1
      L     MD   534
      +D    
      T     MD   534
      L     MD   530
      LOOP  back

M001: NOP   0

提问者对于答案的评价:
谢谢您,按照您这种方法可以,我知道用OPN这条指令时,之前打开的数据块就会关闭,现在这种情况确实是用OPN打开的块被关闭了,,难道用绝对寻址方式DB9.DBD0也算打开了对应的DB块

最佳答案作者回复:
DB9.DBD0也算打开了对应的DB块,是的

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月2日
下一篇 2018年12月2日

相关推荐