回复:调用FC赋值DB块问题

8709

  • 帖子

    89
  • 精华

    0
  • 被关注

    4

论坛等级:游侠

注册时间:2005-10-14

黄金 黄金 如何晋级?

发布于 2011-12-10 20:41:46

2楼

quote:以下是引用youhm在2011-12-10 15:09:25的发言:
这是由FC的参数传递方式引起的,当FC的参数是一个绝对地址引用的DB块数据时,将为这个参数分配一个临时区域用于参数值的传递,就像你这种情况DB1.DBX0.1做为一个OUT参数的实参,为其分配的临时区域处于V区,这个V区是上一层程序的本地数据,也就是调用这个FC的块的临时变量区域L区,做为一个临时变量,如果你在FC里没有对它OUT进行赋值,那么它将会是一个不确定的值,块执行完后就会把这个具有不确定值的临时变量写入OUT变量的实参DB1.DBX0.1,如果使用IN_OUT类型的话,FC块开始会读入实参DB1.DBX0.0到临时变量,所以即使在FC没没有执行对输出OUT的写入,临时变量里也不会是一个不确定的值,块结束后会把临时变量里读入原来的值写如IN_OUT的实参。当FC的参数使用M、I、Q等区域时参数传递的是地址,也就是说在FC里操作OUT变量实际就是操作实参,不存在把一个不确定的临时变量值写入实参的情况。

谢谢,不过我还是不明白,V区指的是FC1中的L区吗?为什么DB块用V区,而M,I,Q不用V区?为什么置为复位出现这种情况,而线圈没问题???
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54619条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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