⇘ 功能块通常是通过一个功能块实例进行调用。因此一个功能块实例必须被定义为一个局部或者全局变量。参阅 ⇘ “功能块实例”章节以便了解更多。
然后选择所需的功能块可以通过以下语法进行调用:
语法:
<instance name>.<variable name>
注意以下几条:
如果功能块中至少有一个参数是保持型变量,整个实例都会作为一个保持型数据被存储。 |
访问功能块变量示例
假设:功能块fb有一个INT型的输入变量 in1 。在一个程序中对此功能块进行调用。请参阅在ST中的生命和实现:
PROGRAM prog
VAR
inst1:fb;
END_VAR
inst1.in1:=22; (* fb is called and input variable in1 gets assigned value 22 *)
inst1(); (* fb is called, this is needed for the following access on the output variable *)
res:=inst1.outl; (* output variable of fb is read *)
FBD中的示例:
调用中的参数分配:
在文本语言IL和ST中,可以在调用功能块实例的同时设置输入或者输出参数的值。参数值可以直接分配给功能块实例之后。对于输入参数使用 ":=" 与变量声明位置的 ⇘ 初始化相同,对于输出参数用"=>"进行表示。
示例,调用时进行参数分配:
在这个示例中一个定时器功能块 (实例名为 CMD_TMR) 带有 IN 和 PT参数被定义。输出变量 Q 被赋予变量 A。结果变量是以功能块实例名,紧跟着一个点然后是变量名的方式进行的调用:
CMD_TMR(IN := %IX5, PT := 300);
A:=CMD_TMR.Q
如果该实例通过输入助手带参数方式添加到 ST 或者 IL POU中,它将会按照以下示例中的语法规则自动的给出其所包含的全部参数值。但是不是必须输入所有的参数值。
对于上述示例中提到的将会被显示如下: