西门子PLC FC和FB用法讲解

时间:2023-03-06作者:佚名
很多新手都会问,FC和FB到底什么区别呢?该怎么使用呢?其实很简单啦,仔细阅读下面内容就能理解哦!
FC块讲解
首先,我们从两者的名字就可以进行区分,可以用一个公式即FB=FC DB来表示,FB是具有DB背景块的特殊FC,也就是说FB具有FC的功能,同时拥有一个DB块。FC全称是Function函数。
注:DB块 全称DataBlock 数据存储区域,类似数据库中关系表结构。
那首先什么函数呢?

西门子PLC FC和FB用法讲解
函数
函数 f(x)就像机器或黑箱,给予输入值x便产生唯一输出值f (x)。x是自变量,f(x)是因变量。举一个我们常见的公式,求圆的面积,s=π*r*r。输入r值,便得到圆的面积s,这就是最简单的函数,r是自变量,s是因变量。

西门子PLC FC和FB用法讲解
图一 变量声明

西门子PLC FC和FB用法讲解
图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函数,得到如下运行结果:

西门子PLC FC和FB用法讲解
图3 程序运行结果

西门子PLC FC和FB用法讲解
图4 DB块值监控
程序解读:
由于PLC程序是从左到右执行,所以"Func"函数块的左侧是输入接口,右侧是输出接口。观察函数块的内部变量名字,发现和函数中的声明一一对应,除了变量。Ret_Val是Return接口变量的别名,由于每个函数的名字都不一样,所以统一用作为函数返回值变量的名称。
程序一是对模拟量值进行转换,采样的分辨率下限是0,上限为27648,采样的数字量值15000,通过调用指定函数把转换出来的值放在变量<"Data".电压值>,得到转换值为0.5425347.
把变量<"Data".电压值>放在FC函数的Inout接口中,利用PLC的扫描周期,通过DB块可以看到最终值5.425347。若不放在Inout,把其放在Input接口,我们必须在OutPut接口再声明一个变量,用于存储最终的转换值。这样声明就可以节省PLC的内存空间了,同样使程序看起来更简洁。
FC函数块的代码内容比较简单,请自行阅读理解,若有问题,可以留言。
FB块讲解
要了解FB和FC的区别,让我们剖析一下这两个模块的变量声明结构:

西门子PLC FC和FB用法讲解
图5 FB块变量声明

西门子PLC FC和FB用法讲解
图6 FB占用DB背景块内部变量
通过FB和FC的变量声明,我们可以看到三个明显的区别:
1、FB块增加了Static静态区声明
2、FB增加了保持性和可访问性选择
上述两个区别正好说明了FB=FC DB公式的成立,因为这两个特性是DB块才有的特性哦。我们在普通DB块里面声明的变量都在Static区声明,不信的话,你可以打开来看看。我们可以通过访问FB拥有的背景块来访问FB中变量的值。
当FC调用结束后,各种接口中声明的变量值无法保存,FB调用结束后,仍然可以保留变量的值,你可以通过FB的背景DB块进行访问。FB的每次调用都会自动生成一个DB块,想想我们编程当中,进行哪类操作也会有类似行为?其实就是我们用的非常频繁的定时器操作,每一次拖动定时器都会自动建立一个DB块。通过<系统资源>查看定时器拥有的DB块,看看和图6是否类似。

西门子PLC FC和FB用法讲解
图7 定时器DB背景块结构
由于定时器拥有背景块,当我们停止计时后,PLC无论经过多少个扫描周期,还是可以读取停止计时时刻的值,这就是拥有DB背景块的好处,FB块与此类似。
3、FB块没有Return接口
由于可以通过Output接口存储返回值,所以没有Return接口影响不大。

西门子PLC FC和FB用法讲解
图8 FB程序增加部分
由于程序类似,FB程序只列出增加部分。我们可以看到该程序,每次调用都会把最大电压值放在变量中,同时添加变量,用于记录改变电压的时间。在hmi程序上面,我们可以很方便读取这两个变量,来实时获取当前的最大电压值和修改时间,是不是很方便?
读者可能会有疑问,如果我自己写一个FC函数,然后外部添加一个DB块,不是一样可以实现此功能吗?看上去好像讲的很有道理呀,不过这个想法是错误的。
如果你在PLC程序中只调用FB块一次,那么可以采用此方法。如果你在PLC程序里面,既要比较电压,还要比较如电流、温度和湿度等,如果用同一个FC怎么实现呢?用FB可以很好的解决此问题,不明白的,可要仔细想想!
今天关于FC和FB的区别已经讲完,如果仔细阅读,应该能搞清楚这两者的区别。若还有问题,欢迎留言,同时欢迎指出本文的错误。

相关阅读

电气设备故障的诊断维修实例,非常实用,建议收藏

案例1 故障现象:CQ6230轻型车床,运行中出现电机过热,主轴转动无力,伴随较大的振动和噪声。 故障分析 :初步检查三相电源电压正常,按照先机损后电路原则,拆下主轴电机传动皮...
2023-06-16
电气设备故障的诊断维修实例,非常实用,建议收藏

电工工具大全!让您分分钟认清电工工具和用法

电工作为化工行业不可缺少的工种之一,肩负着维护整个工厂正常运转的重要使命。在维护和检修电路时,电工常用的工具分为通用工具,线路安装工具和设备装修工具三大类。无论你...
2023-06-11

施工现场临时用电常见强电电气安全隐患和规范要求

《施工现场临时用电安全技术规范》JGJ 46-2005第8.1.3条:每台用电设备必须有各自专用的开关箱,严禁用同一个开关箱直接控制2台及2台以上用电设备(含插座)。(新、改、扩建,220/380V...
2024-08-21
施工现场临时用电常见强电电气安全隐患和规范要求

汽车大灯的硬件电路设计方案 奥迪转向灯电路分析

汽车日趋(píng)民化,已被越来越多的家庭选为自己的代步工具;行车安全引起了社会广泛的关注每当我们驾驶汽车行驶路口,在左转弯或者右转弯的时候需要打方向灯,常常听到“滴答...
2023-06-19
汽车大灯的硬件电路设计方案 奥迪转向灯电路分析

供电线路与电力变压器的防雷措施

本文介绍了供电线路与电力变压器的防雷措施,避雷线(除终端杆外)宜每杆作一次接地,为确保安全,宜在避雷线终端杆的前一杆上加装一组氧化锌避雷器,下面具体来看下。 供电线...
2024-03-18

热销商品

拷边机 包缝机内六角上针匙 开刀 上针内6角螺丝刀扳手 1.5 1.6

拷边机(包缝机)专用内六角上针匙及开刀工具,适用于精确调整机针位置与维护设备。配备1.5mm与1.6mm两种规格的内六角螺丝刀扳手,专为紧固或拆卸上针螺丝设计,确保机针安...
1.65

暗装开关插座面板单开双控一开五孔二三极USB快充肤感超薄家用4开

暗装开关插座面板,简约设计,完美融入家居环境。单开双控,轻松实现远程控制,方便实用。一开五孔,满足多种电器插孔需求;二三极USB快充,快速充电,高效便捷。超薄设计,节省空...
1.2

鸿雁开关插座面板旗舰店家用暗装墙壁86型一开带五孔多孔X86-1

鸿雁开关插座面板旗舰店推出的家用暗装墙壁86型一开带五孔多孔X86-1,是一款设计精良、功能齐全的家居电气产品。该产品采用86型标准面板尺寸,安装方便,适用于各种暗...
4.71

不锈钢加厚镊子维修工具夹子圆头弯头防滑带齿止血烧烤夹茶杯水草

不锈钢加厚镊子维修工具夹子圆头弯头防滑带齿止血烧烤夹茶杯水草 这款不锈钢加厚镊子维修工具夹子是设计用于各种专业场合的多功能工具。它拥有一个厚实的手柄,确...
0.8

三色变光led筒灯2.5寸3W5瓦开孔6 7.5 8公分家用客厅嵌入式天花灯

三色变光LED筒灯,2.5寸精巧设计,功率可选3W/5W,适用于开孔直径6.7–8公分的家用嵌入式安装。采用高亮LED光源,支持暖光、自然光、白光三色切换,满足不同场景氛围需求。...
7.2

网站栏目