[西门子] 编程到底选择FC还是FB好?

[复制链接]
查看84 | 回复0 | 2024-11-2 08:53:58 | 显示全部楼层 |阅读模式
>

文末有55个实战案例资料

导读:在使用1200PLC编程的时候,如果现场有多种设备,比如有输送带、气缸、风机等,那我们通常会使用FC或者FB块来对比较大的程序块划分。那对于初学者来说,到底是选择FC块来编程,还是选择FB块来编程呢?本文就一起来聊聊这个话题,这个问题也是初学者最喜欢问的问题。

1.首先来看官方对FCFB块的定义:

(1)FC(功能)是不含存储区的代码块,常用于对一组输入值执行特定运算,FC(功能)没有相关的背景数据块 (DB),没有可以存储块参数值的数据存储器,因此,调用函数时,必须给所有形参分配实参。

(2)函数块FB是带存储器的代码块。在调用函数块FB时,需要为其分配背景数据块,该背景数据块(DB)用于存储块的参数。由于FB调用时,会分配对应的DB块,所以对于带形式参数的FB,在调用时可以不对FB上的管脚赋予实参。

想必大家看完了上文所讲的概念,大家还是不知道如何选择?那么我们就用示例来给大家阐述:

(1)不管是FC程序块还是FB程序块都可以使用带参数和不带参数的编程方法,带参数的FC/FB会生成管脚,不带参数的则不会生成管脚

通过上图其实可以看明白,不带参数的FCFB使用的是全局变量来编写程序的,比如全局变量I0.0,Q0.0,M0.0,DB1.DBX0.0等,这些变量都是全局的。那么使用这种全局变量的方法来编写程序的话仅仅是调用一次是没有问题,那如果调用2次则不行,为什么呢?举个简单例子:假如FC1块种使用了Q0.0这个全局变量,如果调用2次,则就会出现双线圈。

那既然使用不带参数的FC或者FB来编写程序不能调用2次以上,那他们编程没有区别。所以得出结果就是:如果使用不带参数的FC或者FB来编写程序是一样的,自行选择就可以。

那第2种情况就是带参数的FCFB了,这种程序可以多次调用的:

就如下图所示是一个“起保停”程序,这边就调用了两次,FC1里边的程序是只需要编写一次,然后调用的时候在管脚上分配不同的地址即可,这样就简化了我们编程的工作,比如我们现场有10个气缸,那就可以使用带参数的程序编写一遍,然后调用10次即可。

1.假如编写一个简单程序(程序中没有沿脉冲、定时器、计数器等),建议可以直接选择FC程序块就可以。为什么呢?看下面这个程序包含了沿脉冲、定时器等,那么这些参数要定义在Inout接口变量中,否则可能无法正常运行。

当我们调用FC程序块的时候,会生成一些管脚,有些管脚根本就没太大作用,比如“沿脉冲暂存位”“启动标志位”管脚,但是你又不得不分配,所以这种情况就很不方便。如果使用FB来编写就会方便很多

以下是FB来编写上面的那个程序,对于“沿脉冲暂存位”“启动标志位”等参数可以直接定义在“Static”中,调用FB时则一些不必要的管脚则不会生成。

2.在调用程序的时候,如果使用带参数的FC,那么生成的管脚是一定要填写地址的,否则会报错。而FB则不会报错,因为本身它就有背景数据块赋予初始值

那么它不报错的好处在哪里呢,这样更加方便我们对程序进行封装,比如有一个比较大的程序,管脚比较多,有“启动”“停止”“加减速设定”“模式选择”等,我们就可以使用FB把考虑的要素全部写进去,但是如果我实际工作中用不到此管脚,则不分配参数即可,但是一旦需要此管脚时,不需要再修改程序。

最近有很多小伙伴说要案例书籍,说是手机上看文章不是很方便,我抽时间把55个实战案例全部整理出来,案例都是比较典型的,其中包括气缸控制程序、报警程序、程序框架、运动控制程序封装、模拟量控制变频器、通信等实战案例。需要的可以加我微信:biao467524527,如果加不上可以私信我。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则