回复:200Smart子程序类似于背景数据块的实现讨论,。

已锁定

芳季

西门子1847工业学习平台

  • 帖子

    15507
  • 精华

    101
  • 被关注

    961

论坛等级:至圣

注册时间:2007-08-03

钻石 钻石 如何晋级?

发布于 2021-11-25 19:37:13

32楼

展开查看
以下是引用winter938在2021-11-25 17:55:01的发言 >31楼

参见下面图片说明吧



以下是引用xiatianyun在2021-11-25 13:27:05的发言 >30楼: 芳季的程序在对每...

引用30楼详细内容:

 芳季的程序在对每个子程序调用时分配的过程数据区前四个字节存储的是数据区首址指针,接着才存储真正的过程数据,所以要+4.且需要程序全扫描才能保证数据不会混乱。这种机制对中断程序中调用的子程序是有问题的。

-----------------

我分析的是每个子程序最后4bytes存储的都是VB1000的地址,开始时VD1000指向自己,随着其他子程序的执行VD1000指向各自的开始地址。但无论如何LD56都指向VB1000。SBR0开始的空闲需要LD56+4指向VB1004,但是常规子程序的LD56指向的VD1000所指向的V区已经时本身所需要的V区开始地址了,也+4就不明白了。

程序中没有对LD56进行过修改呀,所以LD56还是存储初始化时的&VB1000.

不是八,是四,告诉下家,你从那里开始使用。

指针指的地方放着一个指针。这事情我也想了很久。很绕。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8942条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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