回复:请教各位老师一段程序的含义

虎躯一震

  • 帖子

    79
  • 精华

    0
  • 被关注

    3

论坛等级:游侠

注册时间:2009-07-10

普通 普通 如何晋级?

发布于 2010-12-13 15:42:50

5楼

总算明白了。
zhangli0给的资料缺了一部分,如果加上pointer和any的寻址就没问题了,另外860才是L,870是V。
这里面用到的其实是pointer,pointer是48位,前12位是DB号(或为0),后32位采用区间寻址的话是1000 0YYY 0000 0BBB BBBB BBBB BBBB BXXX。前面八位是数据区,14-29是字节地址,30-32是位地址。
#Meas_Val是pointer类型。
那么L P##Meas_Val 其实是(hex)前十六位:1f6(十进制502)后32位84000049,但是模拟器模拟出来的AR1是870000a8(即V21.0)这是为什么?
L W[AR1,P#0.0],其实取得是前16位,即502;
后面的 L D[AR1,P#2.0],其实是AR1偏移2个字节(即偏移16位),得到后32位即84000049.
LAR1 最后为 DBX9.1

大致就是这样,希望指正。详见pointer和any的寻址。
不知道这种用法作用在什么地方,感觉没有很深的意义呀。不过我也复习了一遍指针,感觉总算是把指针学到了。

好好学习,天天向上
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54776条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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