指针: THIS
这 THIS
指针是用于面向对象编程的特殊变量。
THIS
是一个功能块的指针,指向它自己的功能块实例。一个 THIS
指针对每个功能块自动可用。您可以使用 THIS
仅在方法和功能块中。 THIS
可用于类别中的输入助手中的实现 关键词.
指针的解引用: THIS^
. 的使用
THIS
指针如果局部变量覆盖方法中的功能块变量,您可以使用
THIS
指针。请参见下面的示例 (1)如果指向功能块自己的功能块实例的指针被引用以在功能中使用。 (见下例(2))
例 100. 例子
英石
THIS^.METH_DoIt();
FBD/CFC/LD

例 101. 例子
这 iVarB
局部变量覆盖 iVarB
功能块变量。
FUNCTION_BLOCK fbA VAR_INPUT iVarA: INT; END_VAR iVarA := 1; FUNCTION_BLOCK fbB EXTENDS fbA VAR_INPUT iVarB: INT := 0; END_VAR iVarA := 11; iVarB := 2; METHOD DoIt : BOOL VAR_INPUT END_VAR VAR iVarB: INT; END_VAR iVarB := 22; // The local variable iVarB is set. THIS^.iVarB := 222; // The function block variable iVarB is set even though iVarB is obscured. PROGRAM PLC_PRG VAR MyfbB: fbB; END_VAR MyfbB(iVarA:=0, iVarB:= 0); MyfbB.DoIt();
例 102. 例子
函数调用需要引用它自己的实例。
FUNCTION funA VAR_INPUT pFB: fbA; END_VAR ...; FUNCTION_BLOCK fbA VAR_INPUT iVarA: INT; END_VAR ...; FUNCTION_BLOCK fbB EXTENDS fbA VAR_INPUT iVarB: INT := 0; END_VAR iVarA := 11; iVarB := 2; METHOD DoIt : BOOL VAR_INPUT END_VAR VAR iVarB: INT; END_VAR iVarB := 22; //The local variable iVarB is set. funA(pFB := THIS^); //funA is called via THIS^. PROGRAM PLC_PRG VAR MyfbB: fbB; END_VAR MyfbB(iVarA:=0 , iVarB:= 0); MyfbB.DoIt();
提示
THIS
尚未针对指令列表 (IL) 实现。