西门子PLC中FB和FC区别

时间:2023-03-21作者:佚名

FB--功能块,带背景数据块

FC--功能,相当于函数

他们之间的主要区别是:FC使用的是共享数据块,FB使用的是背景数据块

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

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

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

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

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

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

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

举个例子来说,有50台电机需要控制,这些电机除了参数不一样,控制流程上是一样的,每个

电机需要不同的参数去运行,运行中的过程参数要参与到下一次的控制过程中。

这个要求,用FC做的话,你需要针对不同的电机分配好DB块,来逐一的确认参数地址,不能混

淆,保存和调用不能出错,可以想象会有多麻烦。如果用FB来做呢?写好控制过程和定义的参

数的调用就可以了。针对电机重复调用同一个FB,每次调用指定一个独立的DB作为背景数据块

,完全不必理会背景DB中的数据是怎么存储的。如果功能需要修改,只要修改该FB就行了。

还有其他的例子,比如PID、比如流量累计等等。

fc就相当于流水线,加工完就过去了!没有任何纪录。fb db不但可以加工,还能记录数据的。

一般有多个设备的时候,我们编写一个fb然后多次调用,自动生成相应的db,这样简化了我们

的工作。

FB的变量声明表中有静态变量,并可以进行多级的参数传递,因此在调用FB时需生成背景数据块,

FC则没有这些.FB可以替代FC,反之则不行.

多级的参数传递即所谓的MULTI INSTANCE,你可以把FBDB做为另外一个FB中的函数来调用,

如在FB2中可以使用FB1中的参数,而最终只生成一个背景数据块。

Zane:

FB其实不会占用过多的资源,因为一个程序总是有这些变量的,无论是全局的还是局部变量。

我现在,大量使用的是FBFC只用来编一些逻辑,及简单的子程序,或仅仅几个CALL指令调用

FB。使用FB及局部变量,更有利于程序的模块化,增加程序的可移植性,就象西门子公司提供的FB

.

其实FBFC根本的区别是:FB支持静态变量,而FC只支持临时变量。

静态变量:是调用FB返回时,仍然要为FB保留此变量区,因此不会改变这一区域的数据值。临

时变量却没有这样的特性。

所以在FC中如果在对临时数据变量处写入确定的数据前,就去读时就可能产生不可预见的结果

,而对于静态变量却不会,因为它会保留你上次写入的结果。

万泉河:

咱们编制的控制程序,FB极少用到。所说的用FB来替代FC实用的情况,更是少见,有谁曾经把

FC全部用光啦?恐怕系统都不能负担了。

提供的标准库中,FB倒是不少的。

如果你要编制的函数没有用到静态变量,恐怕没有必要使用FB吧?我看高级语言中,虽然静态

变量使用很容易,但实际用也很少啊。

侠客:我和zane的观点一样,我工作中也是把相同功能的工作编制成FB,然后在FC里调用,程

序修改起来方便,举个例子:如果你有10台电机,一般我们都要给他编制启动,停止逻辑,报

警,复位逻辑。如果我编一个FB把这些逻辑都做好了,为每一个电机分配一个背景数据块的话

,我在FC调用这些电机时,我只要把这些电机对应的I/O点添到FB的管脚上就可以了,完全不再

用考虑他里面的逻辑了,如果你全是用FC编这些逻辑的话,1、你要写10遍,2、如果你用粘贴

和复制的话,有可能有的I/O点忘记修改或其他一些错误,3、程序的结构性不强,维护起来浪费

时间。

所以,FBFC结合起来用是最方便的。

建议大家试试FB,当你理解了FB后,你会感到惊喜的

Zane:关于FBFC的使用,我也是在具体的应用中一步一步地体会过来的,不过这仅是我个人

的看法与体会,并没有说一定要这样用,各位可以做不同的尝试。但有一点是肯定的,就是在

动手写程序之前,事先对整个项目要有一个很好的规划。

看老外的程序通常都是在FC里直接编程,而国内的多是在FB里编程然后再在FC里调用。这两种

方法各有什么优缺点呢?

FC能实现的任务,就没必要用FB

FC FB 本质上一样

调用FB相当于在FCopn di ,并使用ar2来索引变量

FB的优点是数据块里的变量可按名字使用,仅仅是显示而已,执行效率和fc一样

补充:

实际上FC更加灵活,fc里可以多次调用opn di 访问多个背景块,ar2也可以做多种用途

fb里的ar2原则上是不能使用了,调用fb还要指定数据块,麻烦

补充2

FB 实际上是编程环境玩的一个魔法而已

PLC的程序指令上实际是没有FBFC的区别的

调用FB或者FC最终都是转化为UC CC的调用指令

要观察编程环境的这个魔法,只需写一个带参子程序(FB FC,并在另一个块里调用,全部

下载后,再更改子程序的参数接口,下载该子程序

(此时调用块的调用指令已无效),然后上载调用块

1,一般用FB编写一些常用的控制程序,例如阀泵的控制等等,在接口得stat变量里面可以定义一些阀门得开度预设值(不通过输入,直接在hmi上面可以控制的),并且可以把现场的故障信号写入stat变量中,直接送到HMI上面。

2,而FC一般就是调用这些FB,给一些输入输出即可。

3FC的所有输入输出必须赋值,而FB只要给出背景数据块即可。

4,当然如果说我不需要什么过程的数值,那就FC好了,简单。

如果大家对计算机编程有点了解的话,我觉得可以这样理解:

1FC象程序里的“函数”,直接调用,针对过程编程;

2FB则象是“类”,具有接口、属性以及方法,用于对“控制对象”编程,而FBDB就象是一个具体的“控制对象”的实例。

相关阅读

电力电缆试验技术知识

电力电缆试验,是鉴定电力电缆性能和质量进行的各种试验。电缆试验就是检查电缆质量、绝缘状况和对电缆线路所做的各种测试,由于电力电缆是用于传输大功率电能,一般在高电压、大...
2024-08-21
电力电缆试验技术知识

涨知识!电缆接头防水,先包自粘带还是先包胶带?

在电缆接头进行防水处理时,一般的做法是先包裹自粘带,然后再包覆胶带。这个步骤顺序的原因是确保在接头上形成一个密封的防水层,以最大程度地防止水分渗入并保护电缆和接头。...
2024-09-27
涨知识!电缆接头防水,先包自粘带还是先包胶带?

常见电动机控制线路的功能与实际应用(二)

点动开关控制单相交流电动机正/反转控制线路 采用点动开关的单相交流电动机正/反转控制电路是指通过改变辅助线圈相对于主线圈的相位,控制电动机正/反转工作状态的电路。该电...
2023-06-25
常见电动机控制线路的功能与实际应用(二)

水电工:空气开关哪家强?你习惯用什么品牌的空气开关?

电工都知道,空气开关和漏电保护开关的应用十分的广泛,特别是在家庭安全用电中的作用更是不可替代,目前市面上有很多的空气开关和漏电保护开关的品牌,那么哪种空气开关或者...
2023-06-11

【信号基础】电路分析方法-结点分析法

在有n个结点的电路中,任选一个结点为参考结点,其余各结点至参考结点的电压称为该结点的结点电位。以结点电位为待求变量,将各支路电流用结点电位表示,列写除了参考结点以外其他...
2026-05-23
【信号基础】电路分析方法-结点分析法

热销商品

连发瓦斯枪通用瓦斯射钉钢钉枪瓦斯气体高强度瓦斯射钉枪165气罐

连发瓦斯枪是一款专为高强度瓦斯射钉设计的工具,其特点在于能够连续发射瓦斯气体,适用于多种需要快速穿透和固定材料的场景。这款瓦斯枪配备了165气罐,容量足够满足...
4.5

黄铜镀镍金属电缆防水接头EWM密封格兰头HSM电线固定填料函M20M16

黄铜镀镍金属电缆防水接头EWM密封格兰头(HSM型)是一款高性能电线固定与密封装置,适用于M16和M20螺纹规格。采用优质黄铜材质并表面镀镍处理,具备优异的防腐蚀性、机械...
1.14

消防配件二氧化碳灭火器2 3 5 7KG弯头喷管24Kg干冰CO2外喷头喷嘴

二氧化碳灭火器配件中的2357KG弯头喷管与24Kg干冰CO₂外喷头喷嘴,是专业消防设备的重要组成部分。该弯头喷管采用高强度耐腐蚀材料制造,连接灵活,适用于高压CO₂灭火...
4.5

雷士照明led筒灯孔灯客厅吊顶天花灯嵌入式过道筒灯射灯桶灯家用

雷士照明LED筒灯是一款专为现代家居设计的嵌入式照明产品,适用于客厅、吊顶、过道、卧室等空间。采用高品质LED光源,光线柔和均匀,显色指数高,有效还原真实色彩,营造舒...
5.78

雷士照明嵌入式防眩筒灯射灯窄边过道灯深杯客厅无主灯天花灯米雪

雷士照明嵌入式防眩筒灯射灯——“米雪”系列,专为现代无主灯设计打造。采用窄边深杯结构,有效控制杂散光,实现精准防眩,营造舒适柔和的光环境。适用于客厅、过道、天...
25.67

网站栏目