西门子PLC FC和FB用法讲解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西门子PLC FC和FB用法讲解

西门子PLC FC和FB用法讲解   很多新手都会问,FC和FB到底什么区别呢?该怎么使用呢?其实很简单啦,仔细阅读下面内容就能理解哦!   FC块讲解   首先,我们从两者的名字就可以进行区分,可以用一个公式即FB=FC+DB来表示,FB是具有DB背景块的特殊FC,也就是说FB具有FC的功能,同时拥有一个DB块。FC全称是Function函数。   注:DB块 全称DataBlock 数据存储区域,类似数据库中关系表结构。   那首先什么函数呢?      函数   函数 f(x)就像机器或黑箱,给予输入值x便产生唯一输出值f (x)。x是自变量,f(x)是因变量。举一个我们常见的公式,求圆的面积,s=π*r*r。输入r值,便得到圆的面积s,这就是最简单的函数,r是自变量,s是因变量。      图一 变量声明      图2 FC函数内容   Input:输入型参数,提供外部输入接口。类似于函数f(x)中的x,是一个自变量。Input类型参数,是外部变量的拷贝副本,修改其值,外部变量无变化。假设在程序中修改R的值,从图2编译信息发现,传递的并不是实际参数,所以修改外部接口变量无变化。   Output:输出型参数,提供外部输出接口。该类型参数由于直接引用外部变量地址,可以修改其值。   InOut:输入输出型参数,既做输入又做输出。同Output类型一样,可以修改外部接口变量的值。在适当地方,使用InOut类型变量,可以减少占用plc的变量声明空间。   Temp:局部变量,在函数内部使用,不提供外部的接口。我们常常把temp变量用于数据转换的中间值,或者用于循环变量,比如用于For 或者While循环。由于Temp是局部变量,它的值是随机,使用必须初始化,对其赋值。   Constant:常量,在函数内部使用,意思是恒定不变的变量,只能在声明处修改。比如我们这里的π圆周率是固定不变的,可能调用的地方有几十处,若程序中直接引用3.1415,后期修改,需要把每个地方都修改过去,很麻烦。在声明处修改π值,所有函数中的π变量都会修改。假设我们在程序中修改π常量,从图2中编译信息可以发现,常量不能在程序中修改。   Return:函数返回值,存储计算结果。默认为无返回值,所以声明为void。在我们的数学知识里面函数应该是要有返回值的,但是在TIA PORTAL可以没有返回值,我们把这种无返回类型的函数,称为procedure(过程)。我们这里设置为Real类型,返回圆的面积。有读者可能有疑问,return变量和Output类型都可以用来存储计算结果,两者的区别是什么呢?其中有一个显著的区别是Output类型输出参数可以声明若干个,但是return类型的返回变量,只能声明一个,且变量名字无法修改。其他区别,等讲解SCL的时候,再做解答。   在main[OB1]程序块里面拖动FC1函数,得到如下运行结果:      图3 程序运行结果      图4 DB块值监控   程序解读:   由于PLC程序是从左到右执行,所以”Func”函数块的左侧是输入接口,右侧是输出接口。观察函数块的内部变量名字,发现和函数中的声明一一对应,除了变量。Ret_Val是Return接口变量的别名,由于每个函数的名字都不一样,所以统一用作为函数返回值变量的名称。   程序一是对模拟量值进行转换,采样的分辨率下限是0,上限为27648,采样的数字量值15000,通过调用指定函数把转换出来的值放在变量,得到转换值为0.5425347.   把变量放在FC函数的Inout接口中,利用PLC的扫描周期,通过DB块可以看到最终值5.425347。若不放在Inout,把其放在Input接口,我们必须在OutPut接口再声明一个变量,用于存储最终的转换值。这样声明就可以节省PLC的内存空间了,同样使程序看起来更简洁。   FC函数块的代码内容比较简单,请自行阅读理解,若有问题,可以留言。   FB块讲解   要了解FB和FC的区别,让我们剖析一下这两个模块的变量声明结构:         图5 FB块变量声明      图6 FB占用DB背景块内部变量   通过FB和FC的变量声明,我们可以看到三个明显的区别:   1、FB块增加了Static静态区声明   2、FB增加了保持性和可访问性选择   上述两个区别正好说明了FB=FC+DB公式的成立,因为这两个特性是DB块才有的特性哦。我们在普通DB块里面声明的变量都在Static区声明,不信的话,你可以打开来看看。我们可以通过访问FB拥有的背景块来访问FB中变量的值。   当FC调用结束后,各种接口中声明的变量值无法保存,FB调用结束后,仍然可以保留变量的值,你可以通过FB的背景DB块进行访问。FB的每次调用都会自动生成

文档评论(0)

181****2553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档