实例
定义:函数块调用后,需要相应的存储器保存工作数据。这些数据又称为实例。
实例具有以下特性:
实例通常分配给一个 FB。
实例的结构取决于所关联函数块的接口,且只能在此进行更改。
实例在函数块调用时自动生成。
单实例:
被调用的函数块将数据保存在自已的背景数据块中。
使用单实例具有以下优势:
函数块可重用
适用于简单程序的完美结构
缺点:如果重复调用会导致大量数据块,不方便管理。
多重实例:
被调用函数块不会将数据保存在自已的背景数据块中,而是保存在另一函数块的实例中。
使用多重实例具有以下优势:
适用于复杂块的完美结构。
背景数据块的数量较少。
轻松编写本地子程序,如本地定时器或边沿评估等。
注意:多重实例数据位于调用块的“Static”区域中。
参数实例:
将函数块的实例作为输入输出参数 (InOut) 传送到另一数据块中。该块可访问已传送实例中的数据或调用关联函数块。
使用参数实例具有以下优势:
在运行过程中,可定义当前使用的实例。
在程序循环中,可通过迭代方式处理不同的实例。
注意:参数实例数据位于调用块的“InOut”区域中。
实际测试
单个实例
首先先新建一个FB块作为主程序。
开始生成一个单个实例。
可以看到再FB块下生成了一个相应的DB块。
多重实例
生成一个多重实例。
注意没有DB块生成。
实例的数据存到调用的块里面去了。
参数实例
生成一个参数实例。
注意没有DB块生成。
实例的数据接口到了调用块的输入接口。