西门子plc200编程软件编程中FB和FC的区别

西门子PLC中FB和FC区别
查看: 3449|
摘要: FB--功能块,带背景数据块 FC--功能,相当于函数 他们之间的主要区别是:FC使用的是共享数据块,FB使用的是背景数据块 举个例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可 ...
FB--功能块,带背景数据块&?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
FC--功能,相当于函数
他们之间的主要区别是:FC使用的是共享数据块,FB使用的是背景数据块
举个例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可以了,但是,如果您使用FC,那么您需要不断的修改共享数据块,否则会导致数据丢失。FB确保了3个电机的参数互不干扰。
FB,FC本质都是一样的,都相当于子程序,可以被其他程序调用(也可以调用其他子程序)。他们的最大区别是,FB与DB配合使用,DB中保存着FB使用&的数据,即使FB退出后也会一直保留。FC就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。在实际编程中,是使用FB还是&FC,要看实际的需要决定。FB的好处楼上以讲得很好了。
FB与FC没有太大的差别,FB带有背景数据块,而FC没有。所以FB带上不同的数据块,就可以带上不同的参数值。这样就可以用同一FB和不同的背景数据块,被多个对象调用。
FC和FB像C中的函数,只不过FB可以生成静态变量,在下次函数调用时数据可以保留,而FC的变量只在调用期内有效,下次调用又重新更换。
S7-300中的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控制地址就可以。
举个例子来说,有50台电机需要控制,这些电机除了参数不一样,控制流程上是一样的,每个
电机需要不同的参数去运行,运行中的过程参数要参与到下一次的控制过程中。
这个要求,用FC做的话,你需要针对不同的电机分配好DB块,来逐一的确认参数地址,不能混
淆,保存和调用不能出错,可以想象会有多麻烦。如果用FB来做呢?写好控制过程和定义的参
数的调用就可以了。针对电机重复调用同一个FB,每次调用指定一个独立的DB作为背景数据块
,完全不必理会背景DB中的数据是怎么存储的。如果功能需要修改,只要修改该FB就行了。
还有其他的例子,比如PID、比如流量累计等等。
fc就相当于流水线,加工完就过去了!没有任何纪录。fb+db不但可以加工,还能记录数据的。
一般有多个设备的时候,我们编写一个fb然后多次调用,自动生成相应的db,这样简化了我们
FB的变量声明表中有静态变量,并可以进行多级的参数传递,因此在调用FB时需生成背景数据块,
而FC则没有这些.FB可以替代FC,反之则不行.
多级的参数传递即所谓的MULTI&INSTANCE,你可以把FB,DB做为另外一个FB中的函数来调用,
如在FB2中可以使用FB1中的参数,而最终只生成一个背景数据块。
FB其实不会占用过多的资源,因为一个程序总是有这些变量的,无论是全局的还是局部变量。
我现在,大量使用的是FB,FC只用来编一些逻辑,及简单的子程序,或仅仅几个CALL指令调用
FB。使用FB及局部变量,更有利于程序的模块化,增加程序的可移植性,就象西门子公司提供的FB
其实FB和FC根本的区别是: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、程序的结构性不强,维护起来浪费
所以,FB和FC结合起来用是最方便的。
建议大家试试FB,当你理解了FB后,你会感到惊喜的
Zane:关于FB,FC的使用,我也是在具体的应用中一步一步地体会过来的,不过这仅是我个人
的看法与体会,并没有说一定要这样用,各位可以做不同的尝试。但有一点是肯定的,就是在
动手写程序之前,事先对整个项目要有一个很好的规划。
看老外的程序通常都是在FC里直接编程,而国内的多是在FB里编程然后再在FC里调用。这两种
方法各有什么优缺点呢?
用FC能实现的任务,就没必要用FB。
FC&FB&本质上一样
调用FB相当于在FC里opn&di&,并使用ar2来索引变量
FB的优点是数据块里的变量可按名字使用,仅仅是显示而已,执行效率和fc一样
实际上FC更加灵活,在fc里可以多次调用opn&di&访问多个背景块,ar2也可以做多种用途
而fb里的ar2原则上是不能使用了,调用fb还要指定数据块,麻烦
FB&实际上是编程环境玩的一个魔法而已
PLC的程序指令上实际是没有FB和FC的区别的
调用FB或者FC最终都是转化为UC&或CC的调用指令
要观察编程环境的这个魔法,只需写一个带参子程序(FB&或&FC),并在另一个块里调用,全部
下载后,再更改子程序的参数接口,下载该子程序
(此时调用块的调用指令已无效),然后上载调用块
1,一般用FB编写一些常用的控制程序,例如阀泵的控制等等,在接口得stat变量里面可以定义一些阀门得开度预设值(不通过输入,直接在上面可以控制的),并且可以把现场的故障信号写入stat变量中,直接送到HMI上面。
2,而FC一般就是调用这些FB,给一些输入输出即可。
3,FC的所有输入输出必须赋值,而FB只要给出背景数据块即可。
4,当然如果说我不需要什么过程的数值,那就FC好了,简单。
如果大家对计算机编程有点了解的话,我觉得可以这样理解:
1、FC象程序里的“函数”,直接调用,针对过程编程;
2、FB则象是“类”,具有接口、属性以及方法,用于对“控制对象”编程,而FB的DB就象是一个具体的“控制对象”的实例。
上一篇:下一篇:
Powered by &
这里是—这里可以学习 —这里是。
栏目导航:后使用快捷导航没有帐号?
只需一步,快速开始
查看: 4765|回复: 1
西门子PLC中FB和FC区别?
阅读权限40
主题好友积分
签到天数: 2 天连续签到: 0 天&
注册海川吧,与320万海川交流分享
才可以下载或查看,没有帐号?
西门子PLC中FB和FC区别?
还有那个全局变量局部变量搞的我头有点大
上一篇:下一篇:& &
阅读权限75
主题好友积分
签到天数: 1857 天连续签到: 2 天[LV.9]以坛为家III&
功能(FC)
没有固定的存储区的块,其临时变量存储在局域数据堆栈中,功能执行结束后,这些数据就丢失了。用共享数据区来存储那些在功能执行结束后需要保存的数据。调用功能和功能块时用实参(实际参数)代替形参(形式参数)。形参是实参在逻辑块中的名称,功能不需要背景数据块。功能和功能块用IN、OUT和IN_OUT参数做指针,指向调用它的逻辑块提供的实参。功能可以为调用它的块提供数据类型为RETURN的返回值。功能块(FB)功能块是用户编写的有自己的存储区(背景数据块)的块,每次调用功能块时需要提供各种类型的数据给功能块,功能块也要返回变量给调用它的块。这些数据以静态变量(STAT)的形式存放在指定的背景数据块 (DI) 中,临时变量TEMP存储在局域数据堆栈中。
调用FB或SFB时,必须指定DI的编号。在编译FB或SFB时自动生成背景数据块中的数据。一个功能块可以有多个背景数据块,用于不同的被控对象。
可以在FB的变量声明表中给形参赋初值。如果调用块时没有提供实参,将使用上一次存储在DI中的参数。
看图查隐患(1.16)安全漫画(1.16)安全主管不能一心二用消防安全漫画(1.16)小巫见大巫筒节能不能这么拼接阀门上的数字,HY666表示的什么?求高手解答!
隐形透视眼镜哪里卖,【电/微158`·_·`1712`·_·`2088】赢,教你方法)。质 量 保 障
广告投放&事务
举报及事务联系邮箱:&&
工作日均访客8万人 IP 6万 欢迎您的参与 化工技术交流第一社区,共同学习 共同提高!
版权所有 丰行天下-海川化工论坛 -
Discuz! X3西门子300PLC的FB和fc的区别,请大侠形象点解释-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
西门子300PLC的FB和fc的区别,请大侠形象点解释
来源:互联网 发表时间: 18:45:54 责任编辑:李志喜字体:
为了帮助网友解决“西门子300PLC的FB和fc的区别,请大侠形象点解释”相关的问题,中国学网通过互联网对“西门子300PLC的FB和fc的区别,请大侠形象点解释”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:西门子300PLC的FB和fc的区别,请大侠形象点解释,具体解决方案如下:解决方案1:FC,FB其实从根本上来说,都是一个函数。他们具有相同的功能。如同两个人,他们都会炒这一道菜。但是FC很穷,因为他们没有自己的厨房,当他需要炒菜的时候,需要向人家借用厨房,炒完之后,还要打扫干净,归还人家。如果他炒两次菜,则需要向人家借两次。
而FB则不同,他把自己的手艺传授给了DB1,DB2......DBn,一共N个这样的徒弟。并且这N个人都有自己的厨房。当需要炒菜的时候,N个徒弟可以同时开工,很快就把菜做好了。并且他们炒完之后,也不需要打扫自己的厨房。
FC就是一人形单影只的吊丝。运算的时候,需要向RAM借用空间,运行完毕后,这个空间就不属于它了。所有的数据都被清空。只把结果留给他人。则FB则是一个坐拥N套房子的高富帅。他想用那个房子炒菜,就用那个房子炒菜。每次完成之后,也不需要清理房间,因为这是他自己的房子。FB运行过程的数据,都可以在DB块中保存下来,只到下一次运算,被新的数据覆盖。
1个回答2个回答1个回答1个回答3个回答1个回答2个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答
相关文章:
<a href="/cse/search?q=<inputclass="s-btn"type="submit"text="<inputclass="s-btn"type="submit"text="<buttonhidefocusclass="s-btnjs-ask-btn"text="我要提问
<a href="/cse/search?q=您的位置: >
  用西门子PLC编程时,可以用到功能块FB和功能FC(FB、FC都是组织块)资料上说FB与FC都可以作为用户编写的子程序,但是我不明白这两个组织块之间到底有什么区别阿?在应用上到底有什么不同之处吗?
  FB--功能块,带背景数据块
  FC--功能,相当于函数
  他们之间的主要区别是:FC使用的是共享数据块,FB使用的是背景数据块
  举个例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可以了,但是,如果您使用FC,那么您需要不断的修改共享数据块,否则会导致数据丢失。FB确保了3个电机的参数互不干扰。
  FB,FC本质都是一样的,都相当于子程序,可以被其他程序调用(也可以调用其他子程序)。他们的最大区别是,FB与DB配合使用,DB中保存着FB使用的数据,即使FB退出后也会一直保留。FC就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。在实际编程中,是使用FB还是FC,要看实际的需要决定。FB的好处楼上以讲得很好了。
  FB与FC没有太大的差别,FB带有背景数据块,而FC没有。所以FB带上不同的数据块,就可以带上不同的参数值。这样就可以用同一FB和不同的背景数据块,被多个对象调用。
  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控制地址就可!
非常好我支持^.^
不好我反对
相关阅读:
( 发表人:叶子 )
评价:好评中评差评
技术交流、我要发言
发表评论,获取积分! 请遵守相关规定!提 交
Powered by: 电子发烧友 (
. .All Rights Reserved 粤ICP备号}

我要回帖

更多关于 西门子 fb 编程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信