首页 理论教育 背景数据块与函数块的比较

背景数据块与函数块的比较

时间:2023-06-24 理论教育 版权反馈
【摘要】:存放在背景数据块中的数据在FB 块结束以后,仍能继续保持,具有“记忆”功能。FB 与FC 相比,有以下不同:FB 每次调用都必须分配一个背景数据块,属于带存储数据功能的块。只能在函数FC 内部访问它的局部变量,其他代码块或HMI 可以访问函数块FB 的背景数据块中的变量。函数FC 没有静态变量,函数块FB 有保存在背景数据块中的静态变量。调用函数FC 时应给所有的形参指定实参。函数因为没有静态数据,相同的输入参数产生相同的执行结果。

背景数据块与函数块的比较

函数块(Function Block,FB)是用户所编写的有固定存储区的块。FB 为带“记忆”的逻辑块,它有一个数据结构与函数块参数表完全相同的数据块 (DB),即背景数据块(Instance Data Block),函数块的所有形参和静态数据都存储在一个单独的、被指定给该函数块的背景数据块中,用来存储接口数据区(TEMP 类型除外)和运算的中间数据。当函数块被执行时,背景数据块被调用,函数块结束,调用随之结束。存放在背景数据块中的数据在FB 块结束以后,仍能继续保持,具有“记忆”功能。一个函数块可以有多个背景数据块,使函数块可以被不同的对象使用。

FB 与FC 相比,有以下不同:

(1)FB 每次调用都必须分配一个背景数据块,属于带存储数据功能的块。FC 没有背景数据块,没有存储数据功能。

(2)只能在函数FC 内部访问它的局部变量,其他代码块或HMI (人机界面)可以访问函数块FB 的背景数据块中的变量。(www.xing528.com)

(3)函数FC 没有静态变量(Static),函数块FB 有保存在背景数据块中的静态变量。当编写FC 程序时,必须寻找空的标志区(M 区)或全局数据块来存储需保持的数据,并且要自己编写程序来保存它们,而FB 的静态变量可由STEP 7 的软件来自动保存。

(4)函数块FB 的局部变量(不包括Temp)有默认值(初始值),函数FC 的局部变量没有默认值。在调用函数块FB 时可以不设置某些有默认值的输入、输出参数的实参,这种情况下将使用这些参数在背景数据块中的启动值,或使用上一次执行后的参数值,这样可以使得调用函数块更简单。调用函数FC 时应给所有的形参指定实参。

(5)函数块FB 的输出参数值不仅与来自外部的输入参数有关,还与用静态数据保存的内部状态数据有关。函数因为没有静态数据,相同的输入参数产生相同的执行结果。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈