SUPER 指针

SUPER 在不同编程语言下的调用:

ST

SUPER^.METH_DoIt();

FBD/CFC/LD

功能 SUPER 方式目前在指令列表方式下还暂时不支持。

示例

本地变量 iVarB 覆盖功能变量 iVarB。

        
FUNCTION_BLOCK FB_Base
VAR_OUTPUT
    iCnt : INT;
END_VAR
    METHOD METH_DoIt : BOOL
    iCnt := -1;
    
    METHOD METH_DoAlso : BOOL
    METH_DoAlso := TRUE;

FUNCTION_BLOCK FB_1 EXTENDS FB_Base
VAR_OUTPUT
    iBase: INT;
END_VAR
// Calls the method defined under FB_1
THIS^.METH_DoIt(); 
THIS^.METH_DoAlso();
// Calls the method defined under FB_Base
SUPER^.METH_DoIt(); 
SUPER^.METH_DoAlso();
iBase := SUPER^.iCnt;

    METHOD METH_DoIt : BOOL
    iCnt := 1111;    
    METH_DoIt := TRUE;

END_VAR
PROGRAM PLC_PRG
VAR
    myBase: FB_Base;
    myFB_1: FB_1;
    iTHIS: INT;
    iBase: INT;
END_VAR
myBase();
iBase := myBase.iCnt;
myFB_1();
iTHIS := myFB_1.iCnt;