下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本文格式为Word版,下载可任意编辑西门子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
2、=*r*r。输入r值,便得到圆的面积s,这就是最简洁的函数,r是自变量,s是因变量。 图一 变量声明 图2 FC函数内容Input:输入型参数,供应外部输入接口。类似于函数f(x)中的x,是一个自变量。Input类型参数,是外部变量的拷贝副本,修改其值,外部变量无变化。假设在程序中修改R的值,从图2编译信息发觉,传递的并不是实际参数,所以修改外部接口变量无变化。Output:输出型参数,供应外部输出接口。该类型参数由于直接引用外部变量地址,可以修改其值。InOut:输入输出型参数,既做输入又做输出。同Output类型一样,可以修改外部接口变量的值。在适当地方,使用InOut类型变量,可以削减占
3、用plc的变量声明空间。Temp:局部变量,在函数内部使用,不供应外部的接口。我们经常把temp变量用于数据转换的中间值,或者用于循环变量,比如用于For 或者While循环。由于Temp是局部变量,它的值是随机,使用必需初始化,对其赋值。Constant:常量,在函数内部使用,意思是恒定不变的变量,只能在声明处修改。比如我们这里的圆周率是固定不变的,可能调用的地方有几十处,若程序中直接引用3.1415,后期修改,需要把每个地方都修改过去,很麻烦。在声明处修改值,全部函数中的变量都会修改。假设我们在程序中修改常量,从图2中编译信息可以发觉,常量不能在程序中修改。Return:函数返回值,存储计
4、算结果。默认为无返回值,所以声明为void。在我们的数学学问里面函数应当是要有返回值的,但是在TIA PORTAL可以没有返回值,我们把这种无返回类型的函数,称为procedure(过程)。我们这里设置为Real类型,返回圆的面积。有读者可能有疑问,return变量和Output类型都可以用来存储计算结果,两者的区分是什么呢?其中有一个显著的区分是Output类型输出参数可以声明若干个,但是return类型的返回变量,只能声明一个,且变量名字无法修改。其他区分,等讲解SCL的时候,再做解答。在mainOB1程序块里面拖动FC1函数,得到如下运行结果: 图3 程序运行结果 图4 DB块值监控程序
5、解读:由于PLC程序是从左到右执行,所以"Func"函数块的左侧是输入接口,右侧是输出接口。观看函数块的内部变量名字,发觉和函数中的声明一一对应,除了Ret_Val变量。Ret_Val是Return接口Func变量的别名,由于每个函数的名字都不一样,所以统一用Ret_Val作为函数返回值变量的名称。程序一是对模拟量值进行转换,采样的辨别率下限是0,上限为27648,采样的数字量值15000,通过调用指定函数把转换出来的值放在变量"Data".电压值,得到转换值为0.5425347.把变量"Data".电压值放在FC函数的Inout接口
6、中,利用PLC的扫描周期,通过DataDB块可以看到最终值5.425347。若不放在Inout,把其放在Input接口,我们必需在OutPut接口再声明一个变量,用于存储最终的转换值。这样声明就可以节约PLC的内存空间了,同样使程序看起来更简洁。FC函数块的代码内容比较简洁,请自行阅读理解,若有问题,可以留言。FB块讲解要了解FB和FC的区分,让我们剖析一下这两个模块的变量声明结构: 图5 FB块变量声明 图6 FB占用DB背景块内部变量通过FB和FC的变量声明,我们可以看到三个明显的区分:1、FB块增加了Static静态区声明2、FB增加了保持性和可访问性选择上述两个区分正好说明白FB=FC
7、+DB公式的成立,由于这两个特性是DB块才有的特性哦。我们在一般DB块里面声明的变量都在Static区声明,不信的话,你可以打开来看看。我们可以通过访问FB拥有的背景块来访问FB中变量的值。当FC调用结束后,各种接口中声明的变量值无法保存,FB调用结束后,仍旧可以保留变量的值,你可以通过FB的背景DB块进行访问。FB的每次调用都会自动生成一个DB块,想想我们编程当中,进行哪类操作也会有类似行为?其实就是我们用的特别频繁的定时器操作,每一次拖动TON定时器都会自动建立一个DB块。通过系统资源查看定时器拥有的DB块,看看和图6是否类似。 图7 定时器DB背景块结构由于定时器拥有背景块,当我们停止计
8、时后,PLC无论经过多少个扫描周期,还是可以读取停止计时时刻的值,这就是拥有DB背景块的好处,FB块与此类似。3、FB块没有Return接口由于可以通过Output接口存储返回值,所以没有Return接口影响不大。 图8 FB程序增加部分由于程序类似,FB程序只列出增加部分。我们可以看到该程序,每次调用都会把最大电压值放在MaxVol变量中,同时添加CheckTime变量,用于记录转变电压的时间。在hmi程序上面,我们可以很便利读取这两个变量,来实时猎取当前的最大电压值和修改时间,是不是很便利?读者可能会有疑问,假如我自己写一个FC函数,然后外部添加一个DB块,不是一样可以实现此功能吗?看上去似乎讲的很有道理呀,不过这个想法是错误的。假如你在PLC程序中只调用FB块一次,那么可以采纳此方法。假如你在PLC程序里面,既要比较电
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖州市中医院放射性栓塞技术考核
- 南京市中医院肺功能设备维护考核
- 淄博市中医院感染病护理安全操作考核
- 宣城市人民医院神经外科主治医师晋升考核
- 泉州市中医院认知训练护士操作规范考核
- 赣州市中医院康复医学科住院医师规范化培训考核
- 萍乡市中医院中药制剂技术准入考核
- 福州市人民医院妇科肿瘤B超诊断考核
- 三明市中医院老年人尿失禁评估与康复考核
- 大兴安岭中医院线雕技术操作考核
- 2025年少先队辅导员知识竞赛题库及答案
- 2023年游泳竞赛规则
- 供货进度保证措施方案
- 2025至2030可穿戴生命体征监护仪行业市场占有率及投资前景评估规划报告
- 教师待岗人员管理办法
- 规培中医基础理论
- 三级安全教育试题及答案(包含公司级、部门级、班组级)
- 2025至2030中国碳中和产业发展分析及投资机会分析报告
- 食品生产许可培训课件
- 市场监督管理行政执法
- 培训机构教师如何有效跟家长沟通
评论
0/150
提交评论