S7-300在博图中的间接寻址

在博图中1200的PLC可以用POKE_BLK,但是S7-300在博图中就不支持了,比如MW0=1就将DB1.DBW0到DB1.DBW6的数据传送复制给DB2.DBW0到DB2.DBW6,
MW0=2就将DB1.DBW8到DB1.DBW14的数据传送复制给DB2.DBW0到DB2.DBW6,依次类推,S7-300在博图中要怎么实现呢

最佳答案

根据MW0的值,构造两个Any指针,源数据的起始地址根据Mw0的值进行赋值,目标数据区的地址是固定的,
  L     MW     0
      L     0
      <=I   
      JC    End
      TAK   
      L     1
      -I    
      L     8
      *I    
      T     #index
根据MW0的值确定源数据区的起始地址
 LAR1  P##Source_Any
      L     W#16#1004
      T     LW [AR1,P#0.0]
      L     7
      T     LW [AR1,P#2.0]
      L     1
      T     LW [AR1,P#4.0]
      L     #index
      SLW   3
      L     P#DBX 0.0
      OD    
      T     LD [AR1,P#6.0]

   LAR1  P##Target_Any
      L     W#16#1004
      T     LW [AR1,P#0.0]
      L     7
      T     LW [AR1,P#2.0]
      L     2
      T     LW [AR1,P#4.0]
      L     0
      SLW   3
      L     P#DBX 0.0
      OD    
      T     LD [AR1,P#6.0]
构造目标数据区的地址指针,一切都是固定值
      CALL  "BLKMOV"
       IN0    :=#Source_Any
       RET_VAL:=#Temp0
       OUT1   :=#Target_Any
调用系统功能块SFC20  ,进行数据块传送
End:  NOP   0

提问者对于答案的评价:
谢谢

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月30日 下午10:24
下一篇 2020年10月30日 下午10:24

相关推荐