登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:间接寻址请教

点击:509 回复:5

有一段程序如下
因每次存贮按BYTE 14 DB11.DBW0=0-30。用间接寻址的方法可以简化程序,但如何做请高手指教?
A(    
    L     "DISPLAY".STEP_SETTING    //DB11.DBW0
    L     1
    ==I  
    )    
    JNB   _010
    CALL  "BLKMOV"
     SRCBLK :=P#DB100.DBX0.0 BYTE 14
     RET_VAL:=MW188
     DSTBLK :=P#DB12.DBX0.0 BYTE 14
_010: NOP   0
A(    
    L     "DISPLAY".STEP_SETTING    //DB11.DBW0
    L     2
    ==I  
    )    
    JNB   _010
    CALL  "BLKMOV"
     SRCBLK :=P#DB100.DBX14.0 BYTE 14
     RET_VAL:=MW188
     DSTBLK :=P#DB12.DBX0.0 BYTE 14
_010: NOP   0
A(    
    L     "DISPLAY".STEP_SETTING    //DB11.DBW0
    L     3
    ==I  
    )    
    JNB   _010
    CALL  "BLKMOV"
     SRCBLK :=P#DB100.DBX28.0 BYTE 14
     RET_VAL:=MW188
     DSTBLK :=P#DB12.DBX0.0 BYTE 14
_010: NOP   0
------------
13-07-17 10:22
差不多这个意思?-----:
L P#0.0
T MD100
MD100=MD100+8*14*"DISPLAY".STEP_SETTING-----------------改成PLC语句
   CALL  "BLKMOV"
    SRCBLK :=P#DB100.DBX[md100] BYTE 14
    RET_VAL:=MW188
    DSTBLK :=P#DB12.DBX0.0 BYTE 14
或者,直接变P#DB100.DBX
L P#DB100.DBX0.0
T MD100
MD100=MD100+8*14*"DISPLAY".STEP_SETTING-----------------改成PLC语句
   CALL  "BLKMOV"
    SRCBLK :=md100 BYTE 14
    RET_VAL:=MW188
    DSTBLK :=P#DB12.DBX0.0 BYTE 14
或者,有配方的程序....
自己试试吧.
最后修改:2013/7/17 11:37:56
13-07-17 11:34
SRCBLK :=P#DB100.DBX14.0 BYTE 14 错误
SRCBLK :=md100 BYTE 14 错误
L P#DB100.DBX0.0 错误
13-07-18 12:22
SRCBLK :=P#DB100.DBX[md100] BYTE 14 错误
13-07-18 12:27
我试过程序错误,没有好办法吗?
13-07-20 15:31
没有高手吗?
13-07-24 09:15

工控新闻

更多新闻资讯