- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STEP7问题汇集
用西门子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的好处楼上以讲得很好了。??FC和FB像C中的函数,只不过FB可以生成静态变量,在下次函数调用时数据可以保留,而FC的变量只在调用期内有效,下次调用又重新更换。?说的简单一点,FB是有背景数据块的,而FC没有如果你有几套一样的或者相似的参数要处理的话,用FB会方便一点例如,计算A同学和B同学的成绩,其实每个同学的成绩都是有数学,语文,英语组成,那么在计算每个同学的数据时都是三个科目成绩相加,算法是一样的,那么我们就可以做一个功能块,把这个算法写进去,在块里面定义变量数学,语文,英语,然后把算法写好,再去为A,B同学分别创建一个数据块,也就是FB的背景数据块,你会发现,你打开数据块后,里面的变量和FB里面的变量名称个数是一样的,那么把数据块1,2分别分配给A,B的话,就可以把AB同学的成绩分别写到数据块里,然后由FB调用不通的数据块就可以计算A,B的成绩了,这样每组数据都有自己的数据块,不容易造成数据混乱如果用功能FC来做的话,也可以,但是你要自己去每个数据块里面定义变量,比较麻烦,或者也可以直接把所有同学的成绩的数据全写到一个块里面,但这样容易数据混乱还有就是FB里面是有静态变量的,而FC没有,FC有return,FB没有至于这两的用法,请参看相关资料。
在S7体系里,多重背景数据块与多个背景数据块是两个概念。不同编号相同结构的数据块是多背景数据块,比如常用的PID函数FB41可以有多个不同的背景数据块。多重背景数据块是在一个背景数据块里包含有不同FB的背景数据块,一般只在DB块非常多,系统DB编号资源不够用或出于管理方便等目的才会用到。这样用一个大的背景数据块装入很多小的数据块,减少了DB的数量。这些小的数据块结构取决于不同的FB,可以相同也可以不同。浅入深出举例讲解一下:多重背景数据块??先建立一个FB10。完成内容X*Y=Z?定义形式参数?IN:X,Y?OUT:Z?保存?然后在建立FB20,形式参数STAT里定义?NAME:MUL?Data Type:FB10?程序中写以反复的写 call MUL。保存
?OB1中写 CALL FB20,DB10?DB10为多重背景数据块
STEP7怎样使用多重背景数据块?多重数据块是数据块的一种特殊形式,如在OB1中调用FB10,在FB10中又调用FB1和FB2,则只要FB10的背景数据块选择为多重背景数据块就可以了,FB1和FB2不需要建立背景数据块,其接口参数都保存在FB10的多重背景数据块中。建立多重背景数据块的方法是:在建立数据块只要在数据类型选项中选择“实例的DB”就可以了,见下例。
下面通过一例简单介绍一下多重背景数据块使用的一些注意事项和方法。例如,PLC控制两台电机,且控制两台电机的接口参数均相同。一般的作法,我们可以编写功能块FB1控制两台电机,当控制不同的电机时,分别使用不同的背景数据块就可以控制不同的电机了(如第一台电机的控制参数保存在DB1中,第二台电机的控制参数保存在DB2中,我们可以在控制第一台电机调用FB1时以DB1为背景数据就可以了,第二台同样以DB2为背景数据块)。这样就需要使用两个背景数据,如果控制的电机台数更多,则会使用更多的数据块。使用多重背景数据块就是为了减少数据块的数量。
像这种情况,我们就可以利用多重背景数据块来减少数据块的使用量。拿本例来说,我们就可以在OB1中调用FB10,再在FB10中分别调用(每台电机各调用一次)FB1来控制两台电机的运转。对于每次调用,FB1都将它的数据存储在FB1的背景数据块DB1中。这样就无需再为FB1分配数据块,所有的功能块都指向FB10的数据块DB10。原理图如下:
500)this.width=500 border=0
首先,我们
文档评论(0)