西门子PLC编程中FB和FC的区别

连乃祥 2019-12-21 23:42:00

推荐回答

简单一点,FB和FC都可以看做是子程序,都可以被多次调用,区别是FB需要一个背景数据块,FC不需要。当调用子程序时,FB可以保存中间运算结果不变到背景数据块中,以便下次调用时继续使用,FC不能保存中间运算结果,下次调用时中间变量被赋予随机值,不能继续使用,需要重新赋值后才可以使用。
赵飞船2019-12-22 00:22:21

提示您:回答为网友贡献,仅供参考。

其他回答

  • FC,FB其实从根本上来说,都是一个函数。他们具有相同的功能。如同两个人,他们都会炒这一道菜。但是FC很穷,因为他们没有自己的厨房,当他需要炒菜的时候,需要向人家借用厨房,炒完之后,还要打扫干净,归还人家。如果他炒两次菜,则需要向人家借两次。而FB则不同,他把自己的手艺传授给了DB1,DB2......DBn,一共N个这样的徒弟。并且这N个人都有自己的厨房。当需要炒菜的时候,N个徒弟可以同时开工,很快就把菜做好了。并且他们炒完之后,也不需要打扫自己的厨房。FC就是一人形单影只的吊丝。运算的时候,需要向RAM借用空间,运行完毕后,这个空间就不属于它了。所有的数据都被清空。只把结果留给他人。则FB则是一个坐拥N套房子的高富帅。他想用那个房子炒菜,就用那个房子炒菜。每次完成之后,也不需要清理房间,因为这是他自己的房子。FB运行过程的数据,都可以在DB块中保存下来,只到下一次运算,被新的数据覆盖。
    车小霞2019-12-22 00:54:48
  • FB自动建立一个DB块相当于把数据保存进内存.而FC可以调用DB数据块,如果不调用DB块写的数据都存入的是寄存器就也就是临时性的数据不做保存。
    齐新红2019-12-22 00:38:36
  • 如果FB和FC不需要多次调用,那么这两者之间就没区别。如果多次调用,FB模块可以带数据DB,有初始值。FC不带数据DB。举个简单的例子,有一个工艺需要多次调用,并且用到一个数据,这数据在不同的次数里有不同的数值。那么这时候使用FC就不可能实现这么个功能。用FB了,在数据区里,每一次的调用,都可以定义不同的初始值,问题也就解决了。当谈,假如多次调用的模块工艺里不携带数据的,那FB和FC也没区别,都相当于200里的子程序。
    连亚欣2019-12-22 00:11:16
  • 问题1,肯定能用串联编写,而且写起来比较简单,不过看起来有点乱,不太明了。问题2,能用,FB能完全取代FC。区别在于,FC必须赋值,也就是FC本身来说是一个纯的功能块,本身没有全局变量。而FB,可以不赋值,本身就有背景数据块。
    龚山珍2019-12-22 00:01:52

相关问答