回复:在一个带有形参的FC中多次调用一个带有形参的FC,发生冲突

已锁定

askab

  • 帖子

    405
  • 精华

    5
  • 被关注

    34

论坛等级:侠圣

注册时间:2005-07-24

黄金 黄金 如何晋级?

发布于 2022-08-02 08:55:41

6楼

怀疑是在FC142中形参传给FC141形参的缘故导致的,不理解其中的逻辑,希望大神给解答一下,感谢!!!

///////////////////////////////////////////////////////////////////////////////////////////////////

IN---------变量是外部输入的,只能被本程序块读,不能被本程序块写;
OUT-------是本程序块输出的,一个状态结果,其他程序通过引脚只能读值不能写;
IN_OUT--- 输入输出变量 本程序块和其他程序都可以读写这个引脚的值。
TEMP -----临时变量,顾名思义是暂时存储数据的变量。这些临时的数据存储在CPU工作存储区的局部数据堆栈(L堆栈)中。
STAT-------在PLC运行期间始终被存储。S7 将静态变量定义在背景数据块(仅对FB而言,FC和OB无静态变量),当被调用块运行时,能读出或修改静态变量;被调用块结束后,静态变量保留在数据块中。

不是啥都用FB,然后加背景DB ,有的场合比如上面的就是浪费PLC 存储空间。

 OUT 是一个逻辑结果,不是一个逻辑条件,light 是个结果,你使用light 的状态去 控制它的结果,在逻辑上是说不通的。 

你这里来的light 不是全局变量,而是 FC内部的逻辑结果输出。

这个与我们继电器电路,触点再次互锁线圈是不同原理的。(相当于全局变量)该触点针对你的配电柜是有且唯一存在的,这样就好理解为啥大家让你用INOUT了。

例如你  写三个逻辑到你那个FC110

   1.  A(                                

      O     I0.0

      O     Q0.0

      )     

      AN    I0.1

      =     Q0.0

  2  A(                                

      O     I0.2

      O     Q0.1

      )     

      AN    I0.3

      =     Q0.1

  2  A(                                

      O     I0.4

      O     Q0.2

      )     

      AN    I0.5

      =     Q0.2

这个是成立的,因为I/Q 是属于全局变量,哪怕你放在某一个FC/FB 内

但按照你原来的建立的FC110

发现一个停都停。现在应该清楚了吧。


大家同行,you ok ? me !
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54776条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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