各位高手请来看看,我遇到了一个间接寻址的问题,希望大家能够帮我解决。

我在解决一个更换产品数据的问题,我用到了sfc20的数据发送具体程序如下。


OPN   "DB600"                                      打开源db
      L     W#16#1002                         定义为byte类型
      T     LW     0                                   定义为byte类型
      L     #didatalength                        装载变量设定读取目标db数据的长度
      T     LW     2                                     传送目标db的长度到lw4
      L     600                                             装载源db的地址
      T     LW     4                                      传送到lw4
      L     P#DBX 0.0                      问题就在这里,读取目标db块的起始位是否可以定义为变量,我随时可以控制,希望大哥们能帮助我
      T     LD     6


      L     #dipartnomber
      T     #dipartnomber_1
      L     #diDBnumber
      T     #diDBnumber_1

      OPN   DB [#diDBnumber_1]
      L     W#16#1002
      T     LW    10
      L     #didatalength
      T     LW    12
      L     #dipartnomber_1
      T     LW    14
      L     P#DBX 18.0
      T     LD    16


      A     I      0.1
      JCN   m001
      OPN   "DB600"
      CALL  "BLKMOV"
       SRCBLK :=#ANY1
       RET_VAL:=MW1600
       DSTBLK :=#ANY2

问题补充:
感谢您的回答,但是我对您回答的程序有点看不懂,不知道什么意思您是否能够解释的在详细一点,感激不尽,不如你下面的L     MB    10     //“读取目标db块的起始字节”      //int变量
L     P#1.0
*D    
 L     P#0.0
 +D    
LAR1  

OPN   DB    11
L     DBB [AR1,P#0.0]     
这程序如何与我的程序段对接?是要在建立变量吗??

最佳答案

L     MB    10                    //“读取目标db块的起始字节”      //int变量
      L     P#1.0
      *D    
      L     P#0.0
      +D    
      LAR1  

      OPN   DB    11
      L     DBB [AR1,P#0.0]     
//如果你想L dbb11,赋值MB10=11,则上述程序L DBB[AR1,P#0.0]=L DBB11

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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 上午5:14
下一篇 2018年12月1日 上午5:14

相关推荐