公司新闻 行业资讯

公司新闻

Company news

FC与FB块的区别
发布时间:2019-01-29   点击次数:1528次

FC块的接口参数里有return,即返回值,为什么FB块中没有这个参数?这个参数只作为返回值用?FB块没有返回值?另外FB块中的STAT接口参数和TEMP接口参数有什么区别?哪些情况使用STAT?哪些情况使用TEMP?
答:受西门子影响一般都把FC/FB之间的区别放在了有没有背景数据块上,这其实是比较片面的。FC/FB在存在原本是为了不同的应用而出现的,FC就像是数学中的函数,比如sin(x),它本身可以出现在算式中,返回值就是它的结果,但FB则不同,它是为了完成某种功能而出现,不需要用返回值来表示结果,它也不能像FC一样直接加入算式中,这点在LAD或FBD编程中体现不出来,在某些编程语言中就体现的很明显。
虽然现在因为FC/FB功能都很强大,实际项目中使用的FC常常可以用FB来完成,给FC配一个共享数据块后也能较好的模仿一个FB,但归根结底区别如前所说,把FC想象为数学中的函数就好理解了。
这个问题单从应用方法(不谈两者的由来)来讲一下FB与FC的区别:
FC块有return,而FB没有return;
STAT静态变量,只有功能块FB有;
FB有背景数据块,而FC没有。
1、FC块的接口参数里有return,即返回值,为什么FB块中没有这个参数?这个参数只作为返回值用?
FC块有return,而FB没有return.
对于RETURN一般只用RET_VAL这个值,可以用于反映FC的运行结果。例如,我们常见的FC105等程序都有这个接口,通过这些接口的数据值,我们可以判断的程序的运行结果如何。
为什么FB块中没有这个参数?
因为FB有背景数据块,FB的运行结果可以通过背景数据块中相关的数据来判断的程序的运行结果如何。
2、FB块中的STAT接口参数和TEMP接口参数有什么区别?
STAT静态变量,只有功能块FB有,也是FB和FC的一个最大的区别。静态变量在其对应FB块执行完后数据会保存,而临时变量TEMP在对应FB块执行完后数据就清除。
3、哪些情况使用STAT?哪些情况使用TEMP?
在本次程序运行不能确定的变量,或对下次程序运行相关的变量需要使用STAT。例如,程序中有有关上升沿和下降沿相关指令时必须采用静态变量。某些在本次程序执行是即可确定结果且对下次程序运行无关的变量可以使用TEMP。

Copyright © 2018 南京天普电气系统工程有限公司 版权所有 苏ICP备18026356号  技术支持:雨泽网络