回复:帮忙看到这段程序

youhm

  • 帖子

    4924
  • 精华

    81
  • 被关注

    51

论坛等级:至圣

注册时间:2008-06-28

普通 普通 如何晋级?

发布于 2014-02-05 08:40:16

3楼

TAR1 #tAR1_MEM //保存当前AR1到变量#tAR1_MEM
TAR2 #tAR_BASE //保存当前AR2到变量#tAR_BASE
L P##inDATA_POINTER //装载变量 #inDATA_POINTER的起始地址到累加器,在多重背景调用里,这个地址实际是相对地址,即就是一个偏移量
L DW#16#7FFFF
AD //过滤32位地址里的区域信息(比如P#DBX100.0变成P#100.0)
T #tAR_OFFSET
L #tAR_OFFSET
L #tAR_BASE //这段代码我想是在FB里的,FB里AR2保存的是背景数据的起始地址
+D
LAR1 //这里实际上就是把变量#inDATA_POINTER的真实地址(即在多重背景数据块里的绝对地址)装载到AR1
L W [AR1,P#0.0]
T MW 2 //传送#inDATA_POINTER的第一个字到MW2,Pointer指针的第一个字是DB块号
L D [AR1,P#2.0]
T MD 4 //传送#inDATA_POINTER后4个字节的32位区域地址到MD4
LAR1 #tAR1_MEM //恢复AR1之前的值

这段代码说明了如何在多重背景调用里访问FB的输入Pointer 类型指针变量。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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