这个问题一般出现在编程新手阶段,但是网上只能见到一些讲解FC和FB的区别,优缺点等。书上也没有选择的方法,西门子官方微信的视频号也只会讲两者的区别,同样没讲该如何选择。
比如直接贴出西门子的网页:
https://www.ad.siemens.com.cn/download/materialaggregation_2453.html
比如有给出回答:FC+DB=FB
比如有人只会FC+DB的方式编程,还有人偏爱FB编程,却不会用多重背景导致一堆背景数据块
众说纷纭,没有统一的标准。
我曾在论坛里回帖时说过一次我的个人见解,但没多少人看到,学习到。有人看到后醍醐灌顶,茅塞顿开。按照这个标准来选择一定不用再纠结。
大道至简,总结起来就是一句话:
在PLC的单个扫描周期内就可以出结果的程序用功能FC,在PLC多个扫描周期后才能出结果的程序用功能块FB。
这句话含金量老高了,就悟吧。
程序功能是IO映射,数值转换,量程转换,数值处理等,PLC单周期内出结果的程序用FC,程序中使用变量的话放在FC里的临时区即可,FC是可以重复调用的。
程序如果带沿信号,定时器,工艺指令,通信指令等,PLC在多个周期后才能出结果的程序用功能块FB,沿的储存位,定时器都放在静态区,工艺指令,通信指令也放入静态区多重背景。FB最重要的应用就是多重背景,这个一定要熟练应用,不然会有一堆背景DB。还有就是如果重复调用的FB不在同一时刻工作的话(EN脚断开的情况),可以使用同一个背景,这样可以节约很多资源。
看懂了,再编程时就不用纠结了。
那么,你在编程时如何对FC,FB进行选择的呢?看了本帖的内容,你心里有什么样的领悟?