回复:应用探讨——西门子指针编程使用探讨

火麒麟

西门子1847工业学习平台

  • 帖子

    571
  • 精华

    18
  • 被关注

    20

论坛等级:侠圣

注册时间:2006-09-21

普通 普通 如何晋级?

发布于 2011-12-19 16:46:55

127楼

quote:以下是引用youhm在2011-12-19 15:39:45的发言:
quote:以下是引用鹅卵石在2011-12-19 14:27:11的发言:
有网友实验得出:“用一条指令将P##TABLE(注:pointer类型)送给累加器1,第二条指令将累加器1中的数据传送到AR1,当#TABLE为DB4.DBW6时,累加器2 ACCU 2为4,累加器1 ACCU1为84000030,见图。参数类型pointer不是6个字节吗?为何通过这个程序试验得到的结果是累加器2记录的是Byte0和Byte1,而累加器1记录的是Byte2 Byte3 Byte4 Byte5.”

我想:any类型的指针是否是:“累加器2记录的是Byte0和Byte1、BYTE2、BYTE3,而累加器1记录的是Byte4 Byte5Byte6Byte7”


/service/answer/Uploads/questionimgs/20111219161842_93.bmp

看了你在找答案里的贴图了,原因如下
图形显示只能说明在调用块时,使用了累加器1储存过DBW6这个地址,你在第一条语句设置断点,此时程序中断,但第一条指令L P##TABEL还没有执行,如果你在第二条语句设置断点,当程序执行到这个断点时,你会发现累加器1的最高字节是87也就是V区(上一层程序的L区),也就是这个指针参数存放的起始地址。

赞同累加器在处理过程中的存储功能,但关于累加器1和累加器2记录指针是完全错误的,累加器存储的是起始地址
游鸿明大侠能讲讲在FC调用过程中,累加器的处理机制么
业精于勤,行成于思
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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