在博图中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