刚开始学编程时,分不清FC和FB到底什么时候用合理,各自的作用又是什么,下面简单讲解一下两个功能块的区别与作用。
1:FC和FB都可以用于封装可复用的子程序逻辑。最本质的区别:FB有自己的“记忆”(背景数据块),FC没有。即添加新块时,FB会生成一个背景数据块DB块,FC没有。
2:FC纯功能逻辑计算器,必须给所有形参赋值才能用,内部Temp临时变量仅本次扫描有用,用完即忘,清空。(无STAT)
运用场景
数学运算:温度单位转换、流量计算、平均值滤波。
逻辑判断:信号取反、多路选择、报警条件判断。
数据处理:BCD转INT、字符串截取、校验和计算。
3:FB带记忆的设备驱动功能块,封装有状态的控制逻辑,比如说需要记载步序程序。调用时会生成一个DB,状态存储在DB里面,里面数据也可以调用。比FC多一个变量类型,静态变量(STAT)。可设置为断电保持,如图。
FB有独立的存储背景块,所以只需要一个电机FB即可多重调用控制一百个电机都行。但是过多的调用FB产生DB会占用很多资源。
4:如何选择FC,FB?
用FC当:
功能无状态,纯计算/转换。
只调用1次,或调用时无数据冲突风险。
追求极致执行速度。
用FB当:
需要保存状态/自锁/计数/计时。
控制多个相同设备(电机、轴、阀) 。
程序结构复杂,追求模块化、可复用、易维护。
总结:FC算完就忘,FB自带存档;单功能用FC,多设备复杂逻辑用FB。