PLC编程能块FB与功能FC的区别
说的简单一点,FB是有背景数据块的,而FC没有。如果你有几套一样的或者相似的参数要处理的话,用FB会方便一点。
例如,计算A同学和B同学的成绩,其实每个同学的成绩都是有数学,语文,英语组成,那么在计算每个同学的数据时都是三个科目成绩相加,算法是一样的,那么我们就可以做一个功能块,把这个算法写进去,在块里面定义变量数学,语文,英语,然后把算法写好,再去为A,B同学分别创建一个数据块,也就是FB的背景数据块,你会发现,你打开北京数据块后,里面的变量和FB里面的变量名称,个数是一样的,那么把数据块1,2分别分配给A,B的话,就可以把AB同学的成绩分别写到数据块里,然后由FB调用不通的数据块就可以计算A,B的成绩了,这样每组数据都有自己的数据块,不容易造成数据混乱如果用功能FC来做的话,也可以,但是你要自己去每个数据块里面定义变量,比较麻烦,或者也可以直接把所有同学的成绩的数据全写到一个块里面,但这样容易数据混乱
还有就是FB里面是有静态变量的,而FC没有,FC有return,FB没有至于这两的用法
西门子PLC中DBW和DIW区别
西门子plc S7300中DB和DI数据块寄存器,使用DB寄存器打开数据块后,使用DBX、DBB、DBW、DBD等来访问数据块里的变量
比如
OPN DB 1
L DBW 0 //此时访问的就是DB1.DBW 0
使用DI寄存器打开数据块后,使用DIX、DIB、DIW、DID等来访问数据块里的变量
OPN DI 1
L DIW 0 //此时访问的也是DB1.DBW 0
因为调用FB时,系统自动使用DI寄存器来打开背景数据块,所以通常DI寄存器又被称为背景数据块寄存器,如果在FB里不使用OPN DI打开数据块,直接使用DIW访问的就是背景数据块里的一个字变量,所以在FB里好不要使用DI寄存器打开其它的数据,否则造成参数访问混乱。
看到DIW并不一定是访问的背景数据块,要看是否在FB里使用,是否使用了OPN DI打开了其它数据块,不在FB里DB寄存器和DI寄存器使用没有区别