FC的参数是没有实际的地址的,只是在调用FC的时候,对应到一个实际的地址来读取参数。而FB的参数都是有实际对应的地址的,也就是对应的背景数据块的地址。FB参数传递的是数据。FB可以生成静态变量,下次调用FB的时候,这些静态变量可以被保留。而FC的变量只在调用期内有效。FB与FC的区别在于入口参数,出口参数和使用静态变量。如果一个FB对入口参数,出口参数和使用静态变量都不需要,那么与使用没有入口参数和出口参数的FC基本一样了。
FB可以和多个背景数据块配合使用,被用来控制多个对象。例如控制多个电机或者泵的运行。多个电机之间参数互不干扰。如果使用FC达成同样功能,就需要不断地修改共享数据块,以避免对象的数据丢失。FC没有一个永久的数据块来存储数据,只是在被调用的时候,被分配一个临时的数据区
FC这个块,每次调用时,所用数据都是初始化状态的;而FB要有一个固定的DB,所以调用时,会读写DB中的数据,可以是过程值,上一次调用时的结果值.
比如作PID调节要调用功能块的话,应该是使用FB,它可由DB来保存过程值等;那么FC的调用,则是每次的数据是初始化的.
|