回复:帮忙分析一下小程序执行现象

西门子PLC学员

  • 帖子

    686
  • 精华

    5
  • 被关注

    7

论坛等级:侠士

注册时间:2005-11-22

黄金 黄金 如何晋级?

发布于 2007-09-17 22:48:54

0楼

参数传递:
如果FC的输入、输出或输入/输出参数被赋值为常量,或保存在DB中的参数,那么STL/LAD/FBD编辑器首先在主调L堆栈中保留必要的存储空间,然后复制—>带有输入和输入/输出参数-->L堆栈中实参的值。
对于输出参数,在L堆栈中保留存储区域,但没有初始化。
然后才实际切换到被调用FC,此时STL/LAD/FBD编辑器在每次传递一个区域交叉指针到被调FC的L堆栈区域。
跳转回主调块后,结果-->带有输入和输入/输出参数-->将复制到实参。
结果:
这个机制表明了在被调FC中,输入参数只能被扫描,输出参数只能被写入。
如果输入参数被写入,相应值被保存在L堆栈,但是在FC处理之后不能被复制到实参。同样,输出 参数只能写不能读。扫描输出参数时,从L堆栈读到未定义值,因为没有被初始化。
输入/输出参数引起的问题较少。它们在FC调用之前赋值为实参的值,在调用之后移除。
注意事项:
在被调FC中,必须写输出参数(避免使用指令如“S”和“R”),否则将从L堆栈中复制未定义值到实参。
如果不能确保写入输出参数,应选择使用输入/输出参数来代替。
学如逆水行舟,不进则退
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54716条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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