西门子s7-300与s7-400中fc与fb的区别

作者:老电工时间:2015-10-23 21:49:17

西门子s7-300与s7-400中fc与fb的区别

1、FB有背景数据块,FC没有背景数据块。这是最本质的区别。

背景数据块是每个被控对象的专用存储区,就好像被控对象在银行的私人保险箱。临时变量是多个FB、FC的被控对象公用的数据区,就好像布告栏,大家都可以往上面贴布告,先贴的布告将被后贴的覆盖。

2、FB和FC的局部数据都有IN、OUT、IN_OUT和TEMP,FC的返回值RET_VAL实际上是输出参数。因此有无静态变量(STAT)是二者的局部变量的本质区别。FC没有静态变量。

3、功能块的输出参数不仅与来自外部的输入参数有关,还与用静态变量保存的内部状态数据有关。功能因为没有静态变量,相同的输入参数产生的执行结果是相同的。

4、不能给功能的局部变量设置初始值,可以给功能块的局部变量(不包括TEMP)设置初始值。初始值需要专用的存储区来保持,FC因为没有背景数据块,所以不能设置初始值。

附,fc与fb区别的其它解释。

FC和FB区别

问题:

同一FC调用N次赋不同实参和同一FB调用N个背景DB有什么区别?
例如,FC1被调用实参使用DB1.DBX0.0等和FB1被调用背景数据块用DB1。

解答:
FC功能FB功能块,区别在于功能块带数据存储,两者都是为了简化编程结构化编程设计的,目的都是用程序实现一个用户想要的功能。

STEP7编程软件FB与FC的区别

FB和FC的区别主要有3点:

1、有无背景数据块。

2、有无静态变量。

3、临时变量之外的局部变量有无初始值。
如果有相邻两次调用之间需要保存的局部变量,必须选用FB。上述局部变量应选用静态变量。这样才能保证在FB内部不使用全局变量,FB内部程序不需任何的修改,就可以移植到其他项目。

-- 分隔线 ---

西门子PLC,S7-300或者S7-400中的FB(功能块)

一般编程的时候FB用途很少的(比较大的系统除外)
所以大部分时间都是使用FC,功能:FB自己带数据块存储数据,FC使用共享数据块存储。
例如,建立个FC1,在OB1中调用call fc1。
如果有数据交换的话,在建立个DB1为共享数据块,则,举例采集的温度,在FC1中编程,可以通过FC105功能存储到DB1中,然后再FC1使用例如DB1.DBW0。

FB带自己的数据块,不需要共享数据块。

-- 分隔线 ---

S7-300程序FB和FC有什么区别

S7-300程序FB和FC有什么区别,UDT和DB有什么区别。

UDT只有被DB"选择"后才能应用,单独无法访问。它毕竟只是一种结构,而不是变量,不代表地址。

UDT的数据怎么样访问?

UDT相当一个模板,它本身不会被下载到PLC当中的,比如定义一个UDT1, 然后定义一个数据块DB1,而这个数据块的类型就可以设置成UDT1类型。

FB因为有背景数据块可以有静态变量,FC则没有,不能定义静态变量,UDT是自定义数据类型,可把多个数据的组合定义成一个类型,DB块则是保存数据的地方,当然也可以定义UDT类型的数据。

FC和FB的根本区别在于,FC不具备自己的存储区,而FB拥有自己的存储区------DB,在调用任何一个FB时,都必须指定一个背景DB.这一区别使得FC和FB在以下几个方面有所不同。

1、参数、变量的类型。
fb有静态(stat)变量类型,而fc没有。

2、参数的赋值。

由于fc没有数据区,因此在调用fc的时候必须给形参赋实参,而fb的情况比较复杂,对于fb对于大多数类型的参数,可以赋也可以不赋。

udt是自定义数据类型,db块则是保存数据的地方。

调用fb时,系统会提示生成一个背景数据块。在wincc里用到变量时,fb比较实用。

一般的子程序fc就可以了,能用fc,尽量用fc,节省plc运行时间与plc存储。

本站仅提供信息发布平台,文章仅代表作者个人观点。

猜你喜欢

首页 > plc > 西门子plc