在STEP 7中,使用总体的块编程主要涉及以下步骤:
定义局部变量
在功能块的变量声明表中,声明局部变量。局部变量包括参数和局部变量(静态变量和临时变量)。参数是在调用块和被调用块间传递的数据,而静态变量和临时变量是仅供逻辑块本身使用的数据。
编写逻辑程序
在变量声明表之后,编写逻辑指令组成的程序。程序中使用到变量声明表中给出的局部数据。
参数传递
当调用功能块时,需要提供块执行时要用到的数据或变量,即参数传递。可以通过物理地址、符号地址或常数等形式作为实参给形参赋值。STEP 7对不同形参类型的赋值形式有一定的限制。
功能块编程与调用举例
编写功能块程序时,可以使用变量名(前缀为“”)来引用局部变量,这样可以在增量方式下自动产生前缀。
```step7
// 定义功能块FB1
FUNCTION_BLOCK FB1
// 定义局部变量
VAR
// 输入参数
IN_PARAM: INT;
// 输出参数
OUT_PARAM: INT;
// 静态局部变量
STATIC_VAR: INT;
// 临时变量
TEMP_VAR: INT;
END_VAR
// 逻辑程序
WHEN IN_PARAM > 0 THEN
OUT_PARAM := IN_PARAM * 2;
STATIC_VAR := STATIC_VAR + 1;
TEMP_VAR := IN_PARAM - 1;
ELSE
OUT_PARAM := 0;
STATIC_VAR := 0;
TEMP_VAR := 0;
END_WHEN
END_FUNCTION_BLOCK
// 调用功能块FB1
CALL FB1(IN_PARAM := 5, OUT_PARAM := OUT_PARAM)
```
在这个示例中,我们定义了一个名为`FB1`的功能块,它包含一个输入参数`IN_PARAM`,一个输出参数`OUT_PARAM`,一个静态局部变量`STATIC_VAR`,和一个临时变量`TEMP_VAR`。在逻辑程序中,我们根据输入参数的值计算输出参数和其他局部变量的值。最后,我们通过`CALL`语句调用功能块,并传递输入参数。
通过这种方式,你可以使用总体的块编程方法在STEP 7中组织和执行复杂的控制逻辑。