回复:块多次调用,返回值互相干挠

shine

  • 帖子

    8803
  • 精华

    39
  • 被关注

    158

论坛等级:至圣

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2018-07-06 11:01:01

10楼

展开查看
以下是引用芳季在2018-05-12 19:51:04的发言 >6楼

同一级子程序会共享同一片L。你不相信,可以这样:

做一个子程序,没有参数的。里面只写movb 99 LB0。

又做一个子程序,没有参数,里面只写movb LB0 vb0。

然后在主程序随意次序用sm0.0调用这两个子程序。结果vb0就是99。

你没有做到先赋值后调用。L区数值对于你的程序来说,在同一次调用中,如果你没给它赋值,你就要把其中的数据当作是不确定值。如果你的数据要保存到下一次调用再次使用,你就需要用InOut类型,或者另外想办法,比如引入指针,把不同调用的数据写入到不同的V区中。(300/400/1200/1500没有这个问题,因为可以用FB的static数据区保存数据)

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9436条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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