回复:初始化背景数据块

兴龙庄

  • 帖子

    11
  • 精华

    0
  • 被关注

    1

论坛等级:游士

注册时间:2014-05-19

普通 普通 如何晋级?

发布于 2014-07-17 23:50:12

1楼

找到答案了,使用ANY型定义一个目标区域,该目标区域实际上就是整个数据块,然后使用SFC21初始化整个区域;具体说明如下:
1. 首先定义一个ANY型的临时变量
2. 为它的LW0字赋值为 W#16#1002,表示ANY寻址的数据类型为BYTE,
3, 通过DBLG为ANY型指针赋值给LW2,即重复因子(数据长度)
4. 通过DBNO为ANY型指针赋值给LW4,即DB号
5, 把指针 P#DBX0.0传送到LDW6
以上5个步骤就把数据块的整个区域定义为了一个ANY型的指针了,再通过调用SFC21,把0(类型为BYTE)作为源区域值,上面的定义的指针为目标区域值就可以了实现把整个数据块初始化为0了.
程序如下:
L 0
T #Zero //将累加器1中的内容复制到Zero(byte型)临时变量中
OPN #dbBlock //打开dbBLOCK,
L DBLG
LAR1 P##pFillDB //一个临时变量,类型为ANY,初值为P#0.0
T W [AR1,P#2.0]
L W#16#1002
T W [AR1,P#0.0] //表示寻址的数据类型为字节
L DBNO
T W [AR1,P#4.0]
L P#DBX 0.0
T D [AR1,P#6.0]
CALL "FILL"
BVAL :=#Zero
RET_VAL:=#iSFC21Return
BLK :=#pFillDB
漫漫人生海,滔滔命运湖
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54621条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。