理论教育 功能(FC)和功能块(FB)的区别与联系

功能(FC)和功能块(FB)的区别与联系

时间:2023-06-17 理论教育 版权反馈
【摘要】:功能FC是从另一个代码块进行调用时执行的子程序,不具有相关的背景数据块。可以在程序中的不同位置多次调用同一个功能FC,FC适合于对频繁发生的复杂功能进行编程,从而实现程序代码的复用。如果没有给功能FC的输出参数赋值,则返回给被调用块的值可以是随机值。在用户程序中,调用块将参数传递到功能块FB,并标识可存储特定调用数据或该功能块FB实例的特定数据块。

功能(FC)和功能块(FB)的区别与联系

功能FC是从另一个代码块(OB、FB或FC)进行调用时执行的子程序,不具有相关的背景数据块。在用户程序中,调用块将参数传递给功能FC,其输出值必须写入存储器地址或全局数据块中。可以在程序中的不同位置多次调用同一个功能FC,FC适合于对频繁发生的复杂功能进行编程,从而实现程序代码的复用。在功能FC执行完后,临时变量中的数据将丢失,对需要永久性存储的数据可使用全局数据块进行存储。调用功能FC时需要对所有形参赋值,可将变量或常量指定为实参,但会有一些限制,如:不能给输出和输入/输出参数分配常数值,复杂数据类型的参数不能作为实参分配。可以将调用功能FC的形参分配给被调用功能FC(功能块FB)的形参。如果没有给功能FC的输出参数赋值,则返回给被调用块的值可以是随机值。对于功能FC的输入/输出参数,输出参数不会是随机值,因为如果未对该参数执行写操作,将保留其中的旧输出值或输入值。

功能块FB是带有静态数据的代码块,它是从另一个代码块(OB、FB或FC)进行调用时执行的子程序。在用户程序中,调用块将参数传递到功能块FB,并标识可存储特定调用数据或该功能块FB实例的特定数据块。因为功能块FB带有存储器,所以可随时在用户程序中任何地方进行参数访问。功能块FB的各个实例部分配有背景数据块,其中包含功能块FB使用的数据,可以在程序中的不同位置多次调用同一个功能块FB。(www.daowen.com)

在功能块FB中,访问参数时,使用背景数据块中的实参。如果调用功能块FB时,没有传送输入参数或没有写访问输出参数,那么将使用原先保存在背景数据块中存储的值。当数据区(数据块)地址或调用块的局部变量用作实参时,实参将临时保存到用于传送参数的调用块的本地数据区中。可以将调用功能块FB的形参分配给被调用功能FC(功能块FB)的形参。不能将复杂数据类型的输入或输出参数作为实参分配给被调用功能块FB的输入或输出参数。可以给功能块FB接口中的形参赋初值,这些值将传送到相关的背景数据块。如果在调用指令中没有将实参分配给形参,将使用当前存储在背景数据块中的值。

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

我要反馈