FB/FC的通常使用情况主要还是进行相似功能或者相似算法的封装,通过对FB/FC的调用来有效减少相同部分的重复编程,简化程序结构,提高编程效率。
现在就两者的区别与使用做一下自己使用下来的总结:
区别:
FB有自己独立的背景数据块,也就是说他所有的IN OUT INOUT或者 VAR等都是会建立自己特定的存储区;
FC无背景数据块,其IN OUT INOUT等变量相当于指针的形式指向实参地址[我认为这样理解更好一点],其VAR是其被调用的时候系统临时分配地址内存,使用过后其占用的地址内存即被释放,所以FC中的VAR[西门子的temp]必须先赋值再使用
使用:
最近写了一个类似挡停的程序块,但是我这个是线体电机的传输,两者的使用功能相似,下面是FC的接口
下面是调用
以上重复调用FC执行时是没有问题的,但是如果你将上述函数块转成FB后,那么你再调用的时候,需要在FB实例化时是以需要调用的次数去实例FB数量的,如果只实例一个那么你会发现在调用的时候,IN等接口会保持相同的数据状态
以上是自己使用上的理解,如有问题,请留言!