西门子FB和FC区别

比如一个程序用FB能编出来,但是用FC来做就不能实现

1、数据块不同:FC使用的是共享数据块,FB使用的是背景数据块

举个例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可以了,但是,如果您使用FC,那么您需要不断的修改共享数据块,否则会导致数据丢失。FB确保了3个电机的参数互不干扰。

2、实际决定不同:

FB,FC本质都是一样的,都相当于子程序,可以被其他程序调用(也可以调用其他子程序)。他们的最大区别是,FB与DB配合使用,DB中保存着FB使用的数据,即使FB退出后也会一直保留。FC就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。在实际编程中,是使用FB还是FC,要看实际的需要决定。

FB与FC没有太大的差别,FB带有背景数据块,而FC没有。所以FB带上不同的数据块,就可以带上不同的参数值。这样就可以用同一FB和不同的背景数据块,被多个对象调用。

3、静态变量不同:

FC和FB像C中的函数,只不过FB可以生成静态变量,在下次函数调用时数据可以保留,而FC的变量只在调用期内有效,下次调用又重新更换。

S7-300plc中的FB和FC的分别?FB带有自己的背景DB而FC没有自己的背景DB,用FC和FB有什么分别呢,他们都能实现控制功能,到底该用FB还是该用FC,什么时候用FB什么时候用FC?

FB与FC没有太大的差别,FB带有背景数据块,而FC没有。所以FB带上不同的数据块,就可以带上不同的参数值。这样就可以用同一FB和不同的背景数据块,被多个对象调用。

FC和FB像C中的函数,只不过FB可以生成静态变量,在下次函数调用时数据可以保留,而FC的变量只在调用期内有效,下次调用又重新更换。每次调用FC的I/O区域必须要自己每次手动输入,而FB就不要,省去不少麻烦,如果在上位机控制直接输入DB控制地址就可!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-08-11

1、不同的数据块:FC使用共享数据块,FB使用后台数据块

例如,如果要用相同的参数控制3个电机,则只需使用FB编程以及3个背景数据块。 但是,如果使用FC,则需要不断修改共享数据块。 否则,数据将丢失。  FB确保三个电机的参数不会相互干扰。

2、实际决定有所不同:

FB和FC本质上是相同的,它们等效于子例程,并且可以被其他程序调用(也可以调用其他子例程)。 它们之间最大的区别是FB与DB结合使用,即使FB退出后,FB使用的数据也存储在DB中。  FC没有永久性的数据块来存储数据,在操作过程中只会分配一个临时的数据区域。 在实际编程中,使用FB还是FC取决于实际需求。

FB和FC之间没有太大区别。  FB有一个背景数据块,而FC没有。 因此FB可以为不同的数据块带来不同的参数值。 这样,多个对象可以使用相同的FB和不同的背景数据块。

3、不同的静态变量:

FC和FB与C中的函数相似,不同之处在于FB可以生成静态变量,并且数据可以在下一个函数调用期间保留,而FC变量仅在调用期间有效,下一次将被替换。

FB和FC之间没有太大区别。  FB有一个背景数据块,而FC没有。 因此FB可以为不同的数据块带来不同的参数值。 这样,多个对象可以使用相同的FB和不同的背景数据块。

FC和FB与C中的函数相似,不同之处在于FB可以生成静态变量,并且数据可以在下一个函数调用期间保留,而FC变量仅在调用期间有效,下一次将被替换。 每次调用FC的I / O区域时,每次都必须手动输入它,而FB则不需要它,这省去了很多麻烦。 如果直接在上位机控件中输入DB控件地址!


  

本回答被网友采纳
第2个回答  推荐于2017-09-11
如果FB和FC不需要多次调用,那么这两者之间就没区别。如果多次调用,FB模块可以带数据DB,有初始值。FC不带数据DB。
举个简单的例子,有一个工艺需要多次调用,并且用到一个数据,这数据在不同的次数里有不同的数值。那么这时候使用FC就不可能实现这么个功能。用FB了,在数据区里,每一次的调用,都可以定义不同的初始值,问题也就解决了。当谈,假如多次调用的模块工艺里不携带数据的,那FB和FC也没区别,都相当于200里的子程序本回答被提问者采纳
第3个回答  2020-09-10
FC是函数,FB是函数块,最直观是FC不带背景数据块,而FB调用会自动生成背景数据块来永久保存FB里的数据;如果使用FC+全局背景数据块就和FB功能没什么区别;
但是编程时如何选择用FB还是FC呢?一般把控制程序写成FB,可以多次调用;FC主要是调用FB达到把整个程序分段的作用!比如电机控制、气缸控制、各个工位写成FB,手动自动模块写成FC,FC中调用FB这样程序就很清晰!
懂了的同学点!
第4个回答  2018-01-24
FC,FB其实从根本上来说,都是一个函数。他们具有相同的功能。如同两个人,他们都会炒这一道菜。但是FC很穷,因为他们没有自己的厨房,当他需要炒菜的时候,需要向人家借用厨房,炒完之后,还要打扫干净,归还人家。如果他炒两次菜,则需要向人家借两次。
而FB则不同,他把自己的手艺传授给了DB1,DB2......DBn,一共N个这样的徒弟。并且这N个人都有自己的厨房。当需要炒菜的时候,N个徒弟可以同时开工,很快就把菜做好了。并且他们炒完之后,也不需要打扫自己的厨房。

FC就是一人形单影只的吊丝。运算的时候,需要向RAM借用空间,运行完毕后,这个空间就不属于它了。所有的数据都被清空。只把结果留给他人。则FB则是一个坐拥N套房子的高富帅。他想用那个房子炒菜,就用那个房子炒菜。每次完成之后,也不需要清理房间,因为这是他自己的房子。FB运行过程的数据,都可以在DB块中保存下来,只到下一次运算,被新的数据覆盖。
相似回答