从功能块实例的外部只能访问功能块输入和输出变量,不包括其内部变量。
对于功能块实例的访问限制为已在其中声明它的 POU,除非已将它全局声明。
在调用实例时,可将所需的值分配至功能块参数。请参阅下面在调用时分配参数部分。
功能块的输入/输出变量 (VAR_IN_OUT
) 作为指针传送。
在 SFC 中,功能块调用只能在步中进行。
功能块实例的实例名称可用作功能或另一个功能块的输入参数。
将保留功能块的所有值,直到下次处理功能块时。因此,功能块调用并非总是返回相同的输出值,即使用一样的参数完成也可能如此。
假设:功能块 fb
具有类型为 in1
的输入变量 INT。在此可看到在程序 prog
中调用该变量。在 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 中,您可在调用功能块时立即设置输入和/或输出参数。可将值分配至功能块实例名称后括号中的参数。对于输入参数,该赋值使用 :=
进行,和声明位置的变量初始化一样。对于输出参数,将使用 =>
。