实例

定义:函数块调用后,需要相应的存储器保存工作数据。这些数据又称为实例。

实例具有以下特性:

实例通常分配给一个 FB。

实例的结构取决于所关联函数块的接口,且只能在此进行更改。

实例在函数块调用时自动生成。

单实例:

被调用的函数块将数据保存在自已的背景数据块中。

使用单实例具有以下优势:

函数块可重用

适用于简单程序的完美结构

缺点:如果重复调用会导致大量数据块,不方便管理。

多重实例:

被调用函数块不会将数据保存在自已的背景数据块中,而是保存在另一函数块的实例中。

使用多重实例具有以下优势:

适用于复杂块的完美结构。

背景数据块的数量较少。

轻松编写本地子程序,如本地定时器或边沿评估等。

注意:多重实例数据位于调用块的“Static”区域中。

参数实例:

将函数块的实例作为输入输出参数 (InOut) 传送到另一数据块中。该块可访问已传送实例中的数据或调用关联函数块。

使用参数实例具有以下优势:

在运行过程中,可定义当前使用的实例。  
在程序循环中,可通过迭代方式处理不同的实例。

注意:参数实例数据位于调用块的“InOut”区域中。

实际测试

单个实例

首先先新建一个FB块作为主程序。

在这里插入图片描述

开始生成一个单个实例

在这里插入图片描述

可以看到再FB块下生成了一个相应的DB块。

在这里插入图片描述

多重实例

生成一个多重实例

在这里插入图片描述

注意没有DB块生成。

在这里插入图片描述

实例的数据存到调用的块里面去了。

在这里插入图片描述

参数实例

生成一个参数实例

在这里插入图片描述

注意没有DB块生成。

在这里插入图片描述

实例的数据接口到了调用块的输入接口。

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐