有区别,区别在于,FB和FC块的主要区别如下:
FB具有背景数据块,能够保存上一次执行的数据。每次调用FB时,都会生成一个背景数据块,因此多次调用会生成多个背景数据块。FB的参数具有实际对应的地址,即背景数据块的地址,并且可以生成静态变量,这些变量在下次调用FB时可以被保留。此外,FB中使用定时器时,可以选择“多重实例”,将定时器的数据保存到调用函数块的背景数据块中,从而避免定时混乱。
而FC(功能)没有背景数据块,因此不能保存上一次执行的数据。FC的参数没有实际的地址,只是在调用时对应到一个实际的地址来读取参数。FC的变量只在调用期内有效,并且不具有STAT和TEMP,因为FC没有自己的存储区,所以需要使用全局DB或M区。在FC块中使用定时器时,只能选择“单个实例”,此时的定时器相当于全局的,因此FC块不可以多次调用。
综上所述,FB和FC块的主要区别在于是否有背景数据块、参数传递方式、静态变量的生成以及定时器的使用方式。