回复:问了4个工程师依旧没解决的问题,关于FC的out

youhm

  • 帖子

    4924
  • 精华

    81
  • 被关注

    51

论坛等级:至圣

注册时间:2008-06-28

普通 普通 如何晋级?

发布于 2011-12-03 16:48:38

4楼

在PLCSIM里仿真没出现错误停机的情况,楼主最好把CPU诊断缓冲区内容贴出来
在FC里直接引用绝对地址DB块数据时是通过V区(调用FC的上一层程序的本地数据即L区)变量中转的,写输出是把数据先写入V区变量,块执行完后再由V区写入DB块,如果在FC里没有执行对OUT变量的写入,那么FC执行完也会把V区写入DB块,可这时V区没有被更新,可能就是一个不确定的值,DB块也就得到一个不确定的值,如果是有那个IN_OUT类型来定义,那么FC会把DB块数据读入V区,这样如果没有执行输出,那么将输出原来的值。使用M区变量和楼上提到的先打开数据块然后用DBD10这样的,参数传递的是实际地址,就不会经过V区了。
另外,在FC里使用复杂数据类型参数,实际上是通过指针传递的,你可以在DB块里使用自定义类型,这样也不会经过V区,如果需要传递大量数据,我觉得这是个好方法,不过在FC里引用自定义类型参数,会占用地址寄存器AR1和DB寄存器。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54757条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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