回复:STL指针编程

永不言弃666

  • 帖子

    302
  • 精华

    2
  • 被关注

    0

论坛等级:侠士

注册时间:2013-06-26

普通 普通 如何晋级?

发布于 2015-04-29 11:57:37

3楼

展开查看
以下是引用Automann在2015-04-29 10:03:57的发言 >1楼:下面是FC1的程序状态监控图, sttt的数据类型为pointer,累加器1的显示格式为十六进制。



下面是参数类型Pointer各字节的意义。



第一条指令中的P##sttt是OB1的局部数据区中保存6字节Pointer sttt的起始字节地址,第二个#号是局部变量的符号。
第二条指令LAR1将上述地址送AR1,AR1中的V21.0是OB1的局部数据区中的地址。
指令“L D [AR1,P#2.0]”将指针sttt第2个字节开始的后4个字节(即sttt的实参MW20的地址P#M20.0)送ACCU1。
第4条指令LAR1将ACCU1中的地址送AR1,从监控可知AR1中的地址为P#M20.0。
指令“L 1.000000e+003”将1000.0送ACCU1。
指令RND将1000.0转换为双整数1000(16#3e8)。
执行最后一条指令“MW [AR1,P#50.0]”时,AR1中的地址P#M20.0加上偏移量P#50.0,所以地址MW [AR1,P#50.0]为MW70.
朋友,先谢谢你又来回复我,太详细了。我还有最后一点想问下,870000a8是从哪里来的?以及a8通过L D [AR1,P#2.0怎么就算出a0了呢?
如果你有梦想的话,就要去捍卫它。那些一事无成的人想告诉你你也成不了大器。如果你有理想的话,就要去努力实现。就这样。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54620条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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