FB和FC有什么区别

FB和FC有什么区别

ID:37918463

大小:28.00 KB

页数:8页

时间:2019-06-02

FB和FC有什么区别_第1页
FB和FC有什么区别_第2页
FB和FC有什么区别_第3页
FB和FC有什么区别_第4页
FB和FC有什么区别_第5页
资源描述:

《FB和FC有什么区别》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用西门子PLC编程时,可以用到功能块FB和功能FC(FB、FC都是组织块)资料上说FB与FC都可以作为用户编写的子程序,但是我不明白这两个组织块之间到底有什么区别阿?在应用上到底有什么不同之处吗? FB--功能块,带背景数据块 FC--功能,相当于函数 他们之间的主要区别是:FC使用的是共享数据块,FB使用的是背景数据块 举个例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可以了,但是,如果您使用FC,那么您需要不断的修改共享数据块,否则会导致数据丢失。FB确保了3个电机的参数互不干扰。 

2、FB,FC本质都是一样的,都相当于子程序,可以被其他程序调用(也可以调用其他子程序)。他们的最大区别是,FB与DB配合使用,DB中保存着FB使用的数据,即使FB退出后也会一直保留。FC就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。在实际编程中,是使用FB还是FC,要看实际的需要决定。FB的好处楼上以讲得很好了。 FB与FC没有太大的差别,FB带有背景数据块,而FC没有。所以FB带上不同的数据块,就可以带上不同的参数值。这样就可以用同一FB和不同的背景数据块,被多个对象调用。 FC和FB像C中的函数,只

3、不过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可以生成静态变量,

4、在下次函数调用时数据可以保留,而FC的变量只在调用期内有效,下次调用又重新更换。 每次调用FC的I/O区域必须要自己每次手动输入,而FB就不要,省去不少麻烦,如果在上位机控制直接输入DB控制地址就可!.我简单的说说FB和FC的区别,FB是具有存储功能的,FC没有存储功能,这是一般的理解;FB需要背景数据块,而FC是没有的;参数的传递方式不同,FB的输入输出对应着背景数据块地址,而FC的输入输出是没有实际地址对应的,只有的程序调用时,才会和实际的地址产生对应关系。FB参数传递的是数据,FC参数传递的是数据的地址。FB(功能块)的

5、处理方式是围绕着数据块处理数据,他的入口参数和出口参数都是数据块里的数据,以及STAT的数据都是数据块里,入口参数和出口参数、STAT可以认为是静态数据,这些数据不会因为函数消失而逝去,他会一直保存在数据块里。FB里的变量与他的背景数据块是一一对应的,而他的对应并不是一层不变的。更确切的说,FB里的变量在调用时将根据AR2的值当作偏移量与背景数据块是一一对应。如果一个FB功能块里没有入口参数、出口参数及STAT数据,他将不需要背景数据块,这时的FB和没有入口出口参数的FC就没有什么区别了,就只能使用临时变量和全局变量了。用很多

6、人认为,FB的背景数据块必须由FB生成、FB里的第一个变量对应着背景数据块的第一个变量,还有就是由FB生成的数据块只能作为FB的背景数据块使用。其实这些理解是错误的,FB的背景数据块不一定是通过FB生成的,可以像生成共享数据块一样生成FB的背景数据块,换句话说,普通的数据块也可以作为FB的背景数据块,不过这种做法是有一定前提的,就是这个数据块的字节数必须大于等于FB所需的字节数,如果小于FB所需的字节数时,FB访问到超出背景数据块的变量时就会找不到变量的地址,肯定会出错了。FB里的第一个变量对应可以对应数据块字节数减去FB所需

7、背景数据块字节数里的任意位置的变量,我觉得这个比较好理解,在多重背景里不就是这样吗。谈到这里我得说点别的,好像这种情况下,FB里不可以有多重背景,在S7里,多重背景好像是不允许嵌套的,说道这里我马上在S7做了测试,证明我的想法是错误的,多重背景是可以嵌套的。话回正题,由FB生成的数据块也是可以像访问普通数据块一样通过共享数据块方式访问,不信,你可以自己试一试。说说如何使用普通的数据块作为FB的背景数据块,会不会有人现在就开始自己试了,怎么不行呢,一调用程序就程序红色,有错误啊。告诉你,使用CALL指令编写时SETP7会自动检查

8、DB块和FB的关系,要是时间标记和大小不一致就会报错。在这里我们可以使用UC指令调用FB,UC指令是不传递参数的(对于这个说法,我不太认同,我将会在使用UC调用FC时是如何传递参数一节讲述),那么我们如何将参数传递给FB呢?又如何将FB的输出读出来呢?我在前面说过,背景数据块

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。