找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
小程序查看
手机扫码追踪该问题
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
300中有无类似200中的字节块或字块传送的指令?
可以应用系统功能块SFC来实现。
例如,想在程序运行中某条件满足时,让整个DB2块的所有数据都为0。可以这样编程:
首先先建立一所有数据都为0的DB1,待程序运行中某条件满足时,调用SFC21将DB1充满整个DB2,这个DB2就是要清零的DB。
使用SFC21 “FILL”初始化存储区
描述:
使用SFC21 “FILL”,可以初始化一个存储区(目标区域),数据采用另一个存储区(源区域)的内容。此SFC拷贝数据直到充满整个存储区。
有关SFC21具体用法见:
<S7-300400的系统软件和标准功能>
其中3.3 使用SFC21 “FILL”初始化存储区。
下载:
http://www2.ad.siemens.com.cn/download/Upload/AS/manual/1023.pdf
补充:
比如一次写200个字节(100个字),不想用多条MOVE指令,想找简单的办法?
也可以用循环语句:
1. 将DB2共200个字节清0
在OB1:
OPN DB 2 //打开DB 2
L P#0.0 //初始读指针(标红色处可按实际应用的地址替代,例如10.0)
LAR1
L 100 // 100个字(200个字节)的循环计数为初值
M001: T MB 10 //计数值 送入MB 10
L 0 //取常数0
T DBW [AR1,P#0.0] //按写指针指示的地址写数据
+AR1 P#2.0 //读指针指向下一数据地址
L MB 10 //取循环计数值
LOOP M001 //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环。
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!