数据段传输

想将一段区域的数据整体复制到另外一段数据内,应该怎么用指针实现啊,比方说piw0–piw100 传到DB1.DBW0–DB1.DBW100怎么写!

最佳答案

楼主,这种程序比较简单,不需要使用地址寄存器AR1,AR2,使用32位指针即可。

OPN DB1

L P#0.0

T MD0

L 100

Next:T MW4

L PIW[MD0]

T DBW[MD0]

L MD0

+ 16

T MD0

L MW4

LOOP Next


另:MOVEBLK不支持PIW区,所以不能使用。


另外,对楼上的地址寄存器AR1,AR2提点修改意见:AR2可以省略,因为AR1中的地址相同
OPN   DB     1        //打开DB 1
      L     P#0.0         //初始读指针
       LAR1  
      L     100               // 100个字的循环计数为初值
M001: T     MB    10        //计数值 送入MB 10
      L     PIW [AR1,P#0.0]   //按读指针指示的地址读数据
       T     DBW [AR1,P#0.0]  //按写指针指示的地址写数据
       +AR1  P#2.0            //读指针指向下一数据地址
       L     MB    10        //取循环计数值
      LOOP  M001           //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环。


有关指针编程的资料请参考下载中心F0215文档:S7-300/400寻址
http://www.ad.siemens.com.cn/download/docMessage.aspx?ID=1597&loginID=&srno=&sendtime=

提问者对于答案的评价:
谢谢回答,但是你的程序有问题,在Next:T  MW 4一直显示红色,不知道为什么,你改的程序,没有问题,可以用,连接也很好,谢谢了

专家置评

已阅,最佳答案正确。

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

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

相关推荐