回复:S7-300 FC块TEMP 临时变量的疑惑

威师爷

  • 帖子

    5108
  • 精华

    47
  • 被关注

    255

论坛等级:至圣

注册时间:2013-09-18

白金 白金 如何晋级?

发布于 2016-05-29 21:39:38

3楼

展开查看
以下是引用KITT在2016-05-29 21:27:45的发言 >

 L区是临时存储器使用之前一定要先赋值再使用或者说是先初始化再用如果不赋值使用会有什么后果?不赋值的话他读取的状态是前一个同级块调用后的状态,也就是说他上一个调用的同级块L6.0的状态将决定他的状态,L堆栈会因为他的调用层级字节分配发生变化一般上一层占用固定的字节然后在此基础上再行分配,你要理解这个堆栈的意思,比如OB1的TEMP变量有20个BYTE然而你在OB1调用的FC1的话是在这20个BYTE的基础上分配的但是同一级调用分配的L区地址是在同一个区间是可以在下个块中使用的,L区的使用就像个指针定义你当前块的初始地址如果初始地址相同那么你的数据就不会交叉,西门子不建议这么做主要是因为怕这个L区当前的指针发生变化后数据会交叉。

也就是说这个程序是错误的?这样就证明了我想法是正确的。


谢谢!



工业起重机防摇摆 QQ:404136820 AntiSwayControl
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54621条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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