定义
当函数块 (FB) 调用另一个函数块时,可其实例数据存储在调用函数块的背景数据块中。这种块调用又称之为多重实例。
优势
使用多重实例具有以下优势:
适用于复杂块的完美结构
背景数据块的数量较少
轻松编写本地子程序,如本地定时器或边沿评估等。
多重实例的工作原理
下图显示了一个函数块正在使用另一函数块(“Valve”)。其中,“Valve”作为一个多重实例进行调用;即,该函数块的数据将保存在调用函数的背景数据块中。多重实例数据位于调用块的“Static”区域中。在 S7-1200/S7-1500 系列的 CPU 中,该实例也可位于另一函数块的背景数据块中。
创建多重实例 可通过以下几种方式创建多重实例:
在程序中调用函数块时,“调用方式”(Call options) 对话框随即打开。在该对话框中,可输入要将该函数块作为单实例、多重实例或参数实例进行调用。
直接在调用块接口中声明多重实例。
直接在另一函数块接口中声明多重实例 (S7-1200/S7-1500)。
多重实例的 ARRAY 多重实例也可创建为一个 ARRAY。在程序循环执行的过程中,可使用一个可变下标对各个 ARRAY 元素进行寻址。 直接在函数块接口中声明 ARRAY of multi-instances。
调用多重实例
调用一个多重实例时,系统将指示所分配的实例。下图显示了“Block”块在 LAD 中作为多重实例进行调用。
在以下示例中,该实例位于调用块背景数据块本地:
在以下示例中,该实例位于背景数据块中“MyOtherFB”(S7-1200/S7-1500):
在以下示例中,该实例位于背景数据块“MyOtherFB”中的 ARRAY of multi-instances 内 (S7-1200/S7-1500):
全部0条评论
快来发表一下你的评论吧 !