回复:STEP7程序问题 ?????着急

SKYLight

  • 帖子

    18
  • 精华

    0
  • 被关注

    2

论坛等级:新手

注册时间:2004-09-21

普通 普通 如何晋级?

发布于 2004-09-21 19:16:58

0楼

试了试,果然会有错误动作。
查了半天,可能跟CPU的L stack有关。
All the temporary variables (TEMP) of an OB and its associated blocks are saved in the L stack.
这是S7帮助中的一句,并且好像在FC切换的时候,L stack并不清空。
在你的FC1中temp2的地址是0.0,FC2中temp2的地址也是0.0。此时若M1.0=1,则temp2=1,当退出FC1后L stack的地址0.0仍为1。进入FC2后m2.0=0,temp5不更新,则temp5=0.0=1,输出自然为1。再FC2中再加一个TEMP变量,如temp7,则其地址为0.1,把程序中temp5的地方换成temp7,则一切正常。或者不加变量,在FC1中调FC2也正常。
看来以后少用TEMP变量,用的话就尽量错开地址或者在块开始处初始化。并且L stack空间并不大,s7-300只有256Byte,超了要出错。


还有一个小问题,我在CPU诊断中如何看B stack的内容?我按照提示将PLC拨到STOP,它确说没有可用的entries,为什么?
高手们有什么办法,希望不吝赐教。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54755条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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