[西门子] 西门子PLC多重背景的使用

[复制链接]
查看46647 | 回复0 | 2024-2-28 09:32:43 | 显示全部楼层 |阅读模式
一个背景DB用于某个FB的多次背景(多重背景)

用户也可以将多个电机的背景数据同时传递到一个背景DB。为此,用户必须增加一个FB来管理电机控制器的多次调用,并且,在调用FB的定义表中用数据类型为“FB”的静态变量定义每个背景。

如果用户只用一个背景DB存放某个FB的多次背景,则节约了存储空间,并能最优地使用数据块。



在这个例子中,FB22不需要自己的背景数据块,因为它的背景数据存在调用FB的背景数据块中。

一个背景DB用于不同FB的多次背景(多重背景)

在一个功能块中,用户可以调用其它已经存在的FB的背景。为此,用户可以将所需的背景数据赋值到调用FB的背景数据块中,这就意味着,在这种情况中,用户不需要为被调FB增加任何数据块。

为了将这些多重背景在一个背景数据块中实现,用户必须在调用功能块的变量声明表部分,为每次独立的背景定义一个以被调用的FB为数据类型的静态变量。在功能块内部的调用,则不再需要背景数据块,只需要变量的符号名。



变量声明表中的多重背景;

使用多重背景:

如果用户希望或不得不用有限的几个数据块存放背景数据以提高S7 CPU中的性能(例如存储能力)是可能的。如果在功能块中调用其它的功能块(FB),不需要它们自己的(额外的)背景数据块。

解决的方法如下:

•  在调用功能块的变量声明表中,将被调用的功能块做为静态变量参数。

•  在该功能块中,调用其它功能块不带有(额外的)背景数据块。

•  这就将背景数据都压缩在一个背景数据块中,用户能够更有效地利用数据块的资源。



唯一的要求:用户必须“告诉”调用功能块,哪个背景需要调用以及这些背景的类型(FB是什么?)。这些细节必须在调用功能块的参数声明窗口输入。被调用的功能块在数据区中至少要有一个变量或参数(VAR_TEMP不能用)。





声明多重背景的规则:

多重背景的声明有下列规则:

•  只有在版本2以上的STEP 7中生成的功能块(参看功能块的属性中的块特性),才可能声明多重背景。

•  为了声明多重背景,功能块必须设置为有多重背景能力(在STEP 7中缺省设置),可在编辑器中用Options > Customize 取消。

•  必须有一个背景数据块分配给声明了多重背景的功能块。

•  多重背景只能声明为静态变量(声明类型为“Stat ”)。

在变量声明窗口中输入多重背景:

1.  打开功能块,在该功能块中将调用下一级功能块。

2.  如果不想给被用调的功能块使用背景数据块,可以为这些功能块在调用它们的功能块变量声明表中定义一个静态变量。

-    在变量表中选择“STAT”。

-    在变量视窗的“Name(名)”栏中为FB的调用输入一个名字。

-    在“Data Type(数据类型)”栏中输入需要调用的功能块作为一个绝对地址或用它的符号名。

-    可以在注释栏输入任何需要的注释。

在程序部分调用

如果声明了多重背景,可以调用FB和无需指定一个背景DB。

例如:如果定义了静态变量  "Name: Motor_1 , Data type: FB20",则可按下述方法调用背景:

Call Motor_1   //  调用FB20,无背景数据块

注意:

l一个FB2 在FB1 中被定义为多重背景,并且FB2 的时间标签比FB1 的更新。

l在对一个FB的接口修改后,已有的多重背景及背景数据块必须刷新。

l当调用一个FB(单个背景或多重背景) 时,地址寄存器AR2 被改写。

------------------END---------------

每天进步一点点

Make small but daily progress

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则