想复制某个DB块中的一段连续数据区到某个连续的IO域,应该怎么做?

用博途v12给S7-1200编程,想复制某个DB块中的一段连续数据区到某个连续的IO域,应该用什么指令?应该怎么做?我试move_BLK指令好像不行,它只接受array的搬移

最佳答案

1、使用SFC20 “BLKMOV”复制存储区域可以呀。它只接受array的搬移?DB块中的一段连续数据区就是array呀。有关SFC20 “BLKMOV”的用法见:
<S7-300400的系统软件和标准功能>下载:
http://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText=1023
2、给你一个循环程序:例:
将DB20*20个字送入PIW256- PIW275,
  OPN   DB     20      //打开DB 20
      L     P#0.0          //初始读指针
      LAR1  
      L     P#256.0            //初始写指针
      LAR2  
      L     20               // 20个字的循环计数为初值
M001: T     MB    10        //计数值 送入MB 10
      L    DBW [AR1,P#0.0]   //按读指针指示的地址读数据
      T    PIW   [AR2,P#0.0]  //按写指针指示的地址写数据
      +AR1  P#2.0            //读指针指向下一数据地址
      +AR2  P#2.0            //写指针指向下一数据地址
      L     MB    10        //取循环计数值
      LOOP  M001           //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环。

提问者对于答案的评价:
我用LAD编程,对回答内容还需要学习测试

专家置评

建议使用SCL的peek、poke指令来做。

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

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

相关推荐