发布于 2011-11-10 19:08:52
11楼
功能块(FB)
功能块(FB)属于个人自己编程的块。功能块是一种"带内存"的块。分配数据块作为其内存(背景数据块)。传送到FB的参数和静态变量保存在实例DB中。临时变量则保存在本地数据堆栈中。
执行完FB时,不会丢失实例DB中保存的数据。但执行完FB时,会丢失保存在本地数据堆栈中的数据。
注意
为避免在使用FB时出错,读取附录中的传送参数时的允许数据类型。
应用
FB包含由其它逻辑块调用FB时始终执行的程序。功能块可以使频繁发生的复杂功能更易于编程。
功能块和背景数据块
背景数据块可分配给传送参数的每个功能块调用。
通过调用一个FB的多重背景,可以通过一个FB控制多个设备。例如,用于电机类型的FB可以通过给不同电机使用不同的实例数据集来控制各个电机。每个电机的数据(例如,速度、斜坡、累积操作时间等)可以保存在一个或多个实例DB中。
下图显示了使用保存在实例DB中的实际参数的FB的形式参数。
数据类型FB的变量
如果将用户程序结构化,以便FB能包含现存功能块的调用,那么可以在调用FB的变量声明表中包含作为数据类型FB的静态变量调用的FB。该技术允许在一个背景数据块(多重背景)中嵌套变量和集中实例数据。
将实际参数分配给形式参数
通常没有必要在STEP 7 中将实际参数分配给FB的形式参数。但也有例外情况。但下列场合中必须分配实际参数:
复杂数据类型的输入/输出参数(例如,STRING、ARRAY、DATE_AND_TIME)
所有参数类型 (例如TIMER、COUNTER或POINTER)
STEP 7按如下所述将实际参数分配给FB的形式参数:
在调用声明中指定实际参数时:FB指令使用所提供的实际参数。
当未在调用语句中指定实际参数时:FB指令使用保存在实例DB中的值。
下表显示了必须分配实际参数的FB变量。
数据类型
变量
基本数据类型
复杂数据类型
参数类型
输入
不要求参数
不要求参数
要求实际参数
输出
不要求参数
不要求参数
要求实际参数
输入/输出
不要求参数
要求实际参数
-
将初始值分配给形式参数
可以在FB的声明部分将初始值分配给形式参数。这些值写入到与FB有关的实例DB中。
如果在调用声明中没有将实际参数分配给形式参数,则STEP 7将使用保存在实例DB中的值。这些值也可以是在FB变量声明表中输入的初始值。
下表显示了可以分配初始值的变量。由于执行块后,临时数据已丢失,因此不能给它们分配任何值。
you must control your mood